Grazier é uma biblioteca Python para chamar facilmente grandes modelos de linguagem a partir de uma API unificada.
Da OpenAI:
Do Antrópico:
Do Google/GCP:
De Huggingface
Do Facebook (via Huggingface)
De Stanford (via Huggingface)
De Berkeley (via Huggingface)
Do StabilityAI (via Huggingface)
De AllenAI (via Huggingface)
Do AI21
Modelos de imagem/linguagem:
Grazier pode ser facilmente instalado usando pip:
pip install grazier
Cada um dos LLMs pode precisar de configuração adicional, que você pode encontrar na seção de configuração do mecanismo abaixo.
Para mecanismos de conclusão, é tão simples quanto:
import grazier
grazier . list_models ()
[ 'gptj-6B' , 'gpt2' , 'gpt2-med' , 'gpt2-lg' , 'gpt2-xl' , 'distilgpt2' , 'gptneo-125M' , 'gptneo-1.3B' , 'gptneo-2.7B' , 'stablelm-3B' , 'stablelm-7B' , 'opt-125M' , 'opt-350M' , 'opt-1.3b' , 'opt-2.7b' , 'opt-6.7b' , 'opt-13b' , 'opt-30b' , 'opt-66b' , 'llama-7B' , 'llama-13B' , 'llama-30B' , 'llama-65B' , 'gpt3-davinci3' , 'gpt3-davinci2' , 'gpt3-curie' , 'gpt3-babbage' , 'gpt3-ada' , 'palm' ]
gpt2 = grazier . get ( "gpt2" )
completion = gpt2 ( "I enjoy walking with my cute dog, but sometimes he gets scared and" )
print ( completion )
Para mecanismos de chat, tudo que você precisa fazer é adicionar o parâmetro type="chat"
:
from grazier import Conversation , Speaker , get , list_models
conversation = Conversation ()
conversation . add_turn ( "You are a funny person." , speaker = Speaker . SYSTEM )
conversation . add_turn ( "Hi, how are you?" , speaker = Speaker . USER )
conversation . add_turn ( "I am doing well, how about you?" , speaker = Speaker . AI )
conversation . add_turn ( "What are you planning to do today?" , speaker = Speaker . USER )
list_models ( type = "chat" )
[ 'claude' , 'claude-100k' , 'claude-instant' , 'claude-instant-100k' , 'bard' , 'koala-7b' , 'koala-13b-v1' , 'koala-13b-v2' , 'vicuna-7b' , 'vicuna-13b' , 'alpaca-13b' , 'chat-gpt' , 'gpt4' , 'gpt4-32k' , 'stablelm-3b' , 'stablelm-7b' , 'palm' ]
gpt4 = get ( "gpt4" , type = "chat" )
next_turn = gpt4 ( conversation )
print ( next_turn )
Para mecanismos de visão aumentada (imagem), use type="image"
import grazier
from PIL import Image
grazier . list_models ( type = "image" )
[ 'blip2-opt-2.7b' , 'blip2-opt-6.7b' , 'blip2-opt-2.7b-coco' , 'blip2-opt-6.7b-coco' , 'blip2-flan-t5-xl' , 'blip2-flan-t5-xxl' , 'blip2-flan-t5-xl-coco' , 'openflamingo-3b-vitl-mpt1b' , 'openflamingo-3b-vitl-mpt1b-dolly' , 'openflamingo-9b-vitl-mpt7b' , 'openflamingo-4b-vitl-rpj3b' ]
blip2 = grazier . get ( "blip2-opt-2.7b" , type = "image" )
image = Image . open ( 'test_data/dog.jpg' )
completion = blip2 ( image , "A photo of" )
print ( completion )
Cada mecanismo pode exigir a transmissão de alguns detalhes específicos. Por exemplo, os mecanismos OpenAI exigem uma chave de API. Esses detalhes geralmente são configurados com variáveis de ambiente.
Para mecanismos OpenAI, você precisará definir as variáveis de ambiente OPENAI_API_KEY
e OPENAI_API_ORG
. Você pode encontrar sua chave de API e ID da organização no painel OpenAI. Você pode definir essas variáveis de ambiente em seu shell ou em um arquivo .env
na raiz do seu projeto. Por exemplo, em um arquivo .env
, você teria:
OPENAI_API_KEY= < your key >
OPENAI_API_ORG= < your org id >
ou na linha de comando:
export OPENAI_API_KEY= < your key >
export OPENAI_API_ORG= < your org id >
Para motores Antrópicos, você precisará definir a variável de ambiente ANTHROPIC_API_KEY
. Você pode encontrar sua chave API no painel da Antrópico. Você pode definir esta variável de ambiente em seu shell ou em um arquivo .env
na raiz do seu projeto. Por exemplo, em um arquivo .env
, você teria:
ANTHROPIC_API_KEY= < your key >
ou na linha de comando:
export ANTHROPIC_API_KEY= < your key >
Para mecanismos do Google, usamos a API de nuvem Vertex, que requer um projeto Google Cloud Platform (GCP). Você pode criar um projeto do GCP no console do GCP. Você também precisará ativar a API Vertex AI para seu projeto, configurar uma conta de serviços e fazer download das credenciais JSON da conta. Você pode encontrar instruções para isso seguindo as etapas 1 a 6 do tutorial aqui. Finalmente, você precisará definir a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS
para o caminho do arquivo JSON. Você pode definir esta variável de ambiente em seu shell ou em um arquivo .env
na raiz do seu projeto. Por exemplo, em um arquivo .env
, você teria:
GOOGLE_APPLICATION_CREDENTIALS= < path to your JSON file >
ou na linha de comando:
export GOOGLE_APPLICATION_CREDENTIALS= < path to your JSON file >
Para o mecanismo Bard, você precisará obter seus tokens Bard __Secure-1PSID e __Secure-1PSIDTS. Obtenha o valor desta variável acessando primeiro https://bard.google.com/, faça login, pressione F12 para console e vá para a guia "Aplicativo", depois "Cookies" e copie o valor do Cookies "__Secure-1PSID" e "__Secure-1PSIDTS". Você pode então definir as variáveis de ambiente:
BARD__Secure_1PSID= < your session id >
BARD__Secure_1PSIDTS= < your session id timestamp >
A maioria dos motores huggingface não requer configuração adicional, no entanto, alguns dos modelos maiores requerem uma GPU para funcionar com qualquer tipo de eficiência (e alguns requerem múltiplas GPUs com grandes quantidades de memória). Você pode encontrar mais detalhes sobre os requisitos de cada modelo no hub de modelos Huggingface.
Para esses mecanismos, você mesmo precisará obter e pós-processar os pesos (devido ao licenciamento do Facebook). Você pode encontrar as instruções para fazer isso na página de cada modelo:
Depois que os pesos forem baixados e processados, você pode definir as seguintes variáveis de ambiente para o diretório raiz que contém uma pasta para cada variante (o formato é {root_dir}/{model-prefix}/weights.bin
, o diretório raiz seria root_dir
, e o prefixo do modelo é o nome do modelo, por exemplo, tulu-65b
):
LLAMA_WEIGHTS_ROOT= < path to the llama weights >
ALPACA_WEIGHTS_ROOT= < path to the alpaca weights >
KOALA_WEIGHTS_ROOT= < path to the koala weights >
VICUNA_WEIGHTS_ROOT= < path to the vicuna weights >
ALLENAI_WEIGHTS_ROOT= < path to the allenai weights >
Para modelos AI21, você precisará definir a variável de ambiente AI21_API_KEY
. Você pode encontrar sua chave API no painel do AI21 Studio. Você pode definir esta variável de ambiente em seu shell ou em um arquivo .env
na raiz do seu projeto. Por exemplo, em um arquivo .env
, você teria:
AI21_API_KEY= < your key >
ou na linha de comando:
export AI21_API_KEY= < your key >
Se você usa grazier em seu trabalho, cite:
@misc{grazier,
author = {David Chan},
title = {grazier: Easily call Large Language Models from a unified API},
year = {2023},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {url{
https://github.com/DavidMChan/grazier
}}
}
grazier é licenciado sob os termos da licença do MIT. Consulte LICENÇA para obter mais informações.