Grazier es una biblioteca de Python para llamar fácilmente a modelos de lenguaje grandes desde una API unificada.
De OpenAI:
De antrópico:
De Google/GCP:
De abrazando cara
Desde Facebook (a través de Huggingface)
Desde Stanford (a través de Huggingface)
Desde Berkeley (a través de Huggingface)
De StabilityAI (a través de Huggingface)
De AllenAI (a través de Huggingface)
De AI21
Modelos de imagen/idioma:
Grazier se puede instalar fácilmente usando pip:
pip install grazier
Es posible que cada uno de los LLM necesite una configuración adicional, que puede encontrar en la sección de configuración del motor a continuación.
Para motores de finalización, es tan simple como:
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 los motores de chat, todo lo que necesitas hacer es agregar el 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 motores de visión aumentada (imagen), utilice 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 motor puede requerir que se pasen algunos detalles específicos. Por ejemplo, los motores OpenAI requieren una clave API. Estos detalles generalmente se configuran con variables de entorno.
Para los motores OpenAI, deberá configurar las variables de entorno OPENAI_API_KEY
y OPENAI_API_ORG
. Puede encontrar su clave API y su ID de organización en el panel de OpenAI. Puede configurar estas variables de entorno en su shell o en un archivo .env
en la raíz de su proyecto. Por ejemplo, en un archivo .env
, tendrías:
OPENAI_API_KEY= < your key >
OPENAI_API_ORG= < your org id >
o en la línea de comando:
export OPENAI_API_KEY= < your key >
export OPENAI_API_ORG= < your org id >
Para los motores Anthropic, deberá configurar la variable de entorno ANTHROPIC_API_KEY
. Puede encontrar su clave API en el panel de Anthropic. Puede configurar esta variable de entorno en su shell o en un archivo .env
en la raíz de su proyecto. Por ejemplo, en un archivo .env
, tendrías:
ANTHROPIC_API_KEY= < your key >
o en la línea de comando:
export ANTHROPIC_API_KEY= < your key >
Para los motores de Google, utilizamos la API de nube Vertex, que requiere un proyecto de Google Cloud Platform (GCP). Puedes crear un proyecto de GCP en la consola de GCP. También deberá habilitar la API de Vertex AI para su proyecto, configurar una cuenta de servicios y descargar las credenciales JSON de la cuenta. Puede encontrar instrucciones para ello siguiendo los pasos 1 a 6 del tutorial aquí. Finalmente, deberá configurar la variable de entorno GOOGLE_APPLICATION_CREDENTIALS
en la ruta del archivo JSON. Puede configurar esta variable de entorno en su shell o en un archivo .env
en la raíz de su proyecto. Por ejemplo, en un archivo .env
, tendrías:
GOOGLE_APPLICATION_CREDENTIALS= < path to your JSON file >
o en la línea de comando:
export GOOGLE_APPLICATION_CREDENTIALS= < path to your JSON file >
Para el motor Bard, necesitará obtener sus tokens Bard __Secure-1PSID y __Secure-1PSIDTS. Obtenga el valor de esta variable yendo primero a https://bard.google.com/, luego inicie sesión, presione F12 para la consola y vaya a la pestaña "Aplicación", luego "Cookies", luego copie el valor de Cookies "__Secure-1PSID" y "__Secure-1PSIDTS". Luego puede configurar las variables de entorno:
BARD__Secure_1PSID= < your session id >
BARD__Secure_1PSIDTS= < your session id timestamp >
La mayoría de los motores de Huggingface no requieren configuración adicional; sin embargo, algunos de los modelos más grandes requieren una GPU para funcionar con algún tipo de eficiencia (y algunos requieren varias GPU con grandes cantidades de memoria). Puede encontrar más detalles sobre los requisitos de cada modelo en el centro de modelos de Huggingface.
Para estos motores, deberá obtener y posprocesar los pesos usted mismo (debido a la licencia de Facebook). Puedes encontrar las instrucciones para hacerlo en la página de cada modelo:
Una vez que los pesos se hayan descargado y procesado, puede configurar las siguientes variables de entorno en el directorio raíz que contiene una carpeta para cada variante (el formato es {root_dir}/{model-prefix}/weights.bin
, el directorio raíz sería root_dir
y el prefijo del modelo es el nombre del modelo, por ejemplo, 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 los modelos AI21, deberá configurar la variable de entorno AI21_API_KEY
. Puede encontrar su clave API en el Panel de control de AI21 Studio. Puede configurar esta variable de entorno en su shell o en un archivo .env
en la raíz de su proyecto. Por ejemplo, en un archivo .env
, tendrías:
AI21_API_KEY= < your key >
o en la línea de comando:
export AI21_API_KEY= < your key >
Si utiliza ganadero en su trabajo, 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 tiene licencia según los términos de la licencia MIT. Consulte LICENCIA para obtener más información.