Grazier ist eine Python-Bibliothek zum einfachen Aufrufen großer Sprachmodelle über eine einheitliche API.
Von OpenAI:
Von Anthropic:
Von Google/GCP:
Von Huggingface
Von Facebook (über Huggingface)
Von Stanford (über Huggingface)
Aus Berkeley (über Huggingface)
Von StabilityAI (über Huggingface)
Von AllenAI (über Huggingface)
Von AI21
Bild-/Sprachmodelle:
Grazier kann einfach mit pip installiert werden:
pip install grazier
Für jedes der LLMs ist möglicherweise eine zusätzliche Einrichtung erforderlich, die Sie im Abschnitt zur Engine-Einrichtung unten finden.
Für Completion Engines ist es so einfach:
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 )
Für Chat-Engines müssen Sie lediglich den Parameter type="chat"
hinzufügen:
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 )
Für vision-erweiterte (Bild-)Engines verwenden Sie 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 )
Für jede Engine müssen möglicherweise bestimmte Details übergeben werden. OpenAI-Engines erfordern beispielsweise einen API-Schlüssel. Diese Details werden im Allgemeinen mit Umgebungsvariablen eingerichtet.
Für OpenAI-Engines müssen Sie die Umgebungsvariablen OPENAI_API_KEY
und OPENAI_API_ORG
festlegen. Sie finden Ihren API-Schlüssel und Ihre Organisations-ID im OpenAI-Dashboard. Sie können diese Umgebungsvariablen in Ihrer Shell oder in einer .env
Datei im Stammverzeichnis Ihres Projekts festlegen. In einer .env
Datei hätten Sie beispielsweise Folgendes:
OPENAI_API_KEY= < your key >
OPENAI_API_ORG= < your org id >
oder auf der Kommandozeile:
export OPENAI_API_KEY= < your key >
export OPENAI_API_ORG= < your org id >
Für Anthropic-Engines müssen Sie die Umgebungsvariable ANTHROPIC_API_KEY
festlegen. Sie finden Ihren API-Schlüssel im Anthropic-Dashboard. Sie können diese Umgebungsvariable in Ihrer Shell oder in einer .env
Datei im Stammverzeichnis Ihres Projekts festlegen. In einer .env
Datei hätten Sie beispielsweise Folgendes:
ANTHROPIC_API_KEY= < your key >
oder auf der Kommandozeile:
export ANTHROPIC_API_KEY= < your key >
Für Google Engines verwenden wir die Vertex Cloud API, die ein Google Cloud Platform (GCP)-Projekt erfordert. Sie können ein GCP-Projekt in der GCP-Konsole erstellen. Sie müssen außerdem die Vertex AI-API für Ihr Projekt aktivieren, ein Dienstkonto einrichten und die JSON-Anmeldeinformationen des Kontos herunterladen. Eine Anleitung dazu finden Sie im Anschluss an die Schritte 1 bis 6 des Tutorials hier. Abschließend müssen Sie die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS
auf den Pfad der JSON-Datei setzen. Sie können diese Umgebungsvariable in Ihrer Shell oder in einer .env
Datei im Stammverzeichnis Ihres Projekts festlegen. In einer .env
Datei hätten Sie beispielsweise Folgendes:
GOOGLE_APPLICATION_CREDENTIALS= < path to your JSON file >
oder auf der Kommandozeile:
export GOOGLE_APPLICATION_CREDENTIALS= < path to your JSON file >
Für die Bard-Engine benötigen Sie Ihre Bard-Token __Secure-1PSID und __Secure-1PSIDTS. Rufen Sie den Wert dieser Variablen ab, indem Sie zunächst https://bard.google.com/ aufrufen, sich dann anmelden, F12 für die Konsole drücken, zur Registerkarte „Anwendung“ und dann zu „Cookies“ wechseln und dann den Wert kopieren Cookies „__Secure-1PSID“ und „__Secure-1PSIDTS“. Anschließend können Sie die Umgebungsvariablen festlegen:
BARD__Secure_1PSID= < your session id >
BARD__Secure_1PSIDTS= < your session id timestamp >
Die meisten Huggingface-Engines erfordern keine zusätzliche Einrichtung, einige der größeren Modelle benötigen jedoch eine GPU, um mit einiger Effizienz zu laufen (und einige erfordern mehrere GPUs mit viel Speicher). Weitere Einzelheiten zu den Anforderungen für jedes Modell finden Sie im Huggingface-Modellhub.
Für diese Engines müssen Sie die Gewichte selbst beschaffen und nachbearbeiten (aufgrund der Lizenzierung von Facebook). Die Anleitung dazu finden Sie auf jeder Modellseite:
Sobald die Gewichtungen heruntergeladen und verarbeitet wurden, können Sie die folgenden Umgebungsvariablen auf das Stammverzeichnis festlegen, das einen Ordner für jede Variante enthält (das Format lautet: {root_dir}/{model-prefix}/weights.bin
, das Stammverzeichnis wäre). root_dir
und das Modellpräfix ist der Name des Modells, z. B. 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 >
Für AI21-Modelle müssen Sie die Umgebungsvariable AI21_API_KEY
festlegen. Sie finden Ihren API-Schlüssel im AI21 Studio Dashboard. Sie können diese Umgebungsvariable in Ihrer Shell oder in einer .env
Datei im Stammverzeichnis Ihres Projekts festlegen. In einer .env
Datei hätten Sie beispielsweise Folgendes:
AI21_API_KEY= < your key >
oder auf der Kommandozeile:
export AI21_API_KEY= < your key >
Wenn Sie in Ihrer Arbeit Grazier verwenden, geben Sie bitte Folgendes an:
@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 ist unter den Bedingungen der MIT-Lizenz lizenziert. Weitere Informationen finden Sie unter LIZENZ.