Grazier 是一个 Python 库,用于通过统一的 API 轻松调用大型语言模型。
来自 OpenAI:
来自人类:
来自谷歌/GCP:
来自拥抱脸
来自 Facebook(通过 Huggingface)
来自斯坦福大学(来自 Huggingface)
来自伯克利(来自 Huggingface)
来自 StabilityAI(通过 Huggingface)
来自 AllenAI(来自 Huggingface)
来自AI21
图像/语言模型:
Grazier 可以使用 pip 轻松安装:
pip install grazier
每个法学硕士可能需要额外的设置,您可以在下面的引擎设置部分找到这些设置。
对于完成引擎,它很简单:
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 )
对于聊天引擎,您需要做的就是添加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 )
对于视觉增强(图像)引擎,请使用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 )
每个引擎可能需要传入一些特定的详细信息。例如,OpenAI 引擎需要 API 密钥。这些细节通常是通过环境变量来设置的。
对于 OpenAI 引擎,您需要设置OPENAI_API_KEY
和OPENAI_API_ORG
环境变量。您可以在 OpenAI 仪表板上找到您的 API 密钥和组织 ID。您可以在 shell 或项目根目录下的.env
文件中设置这些环境变量。例如,在.env
文件中,您将具有:
OPENAI_API_KEY= < your key >
OPENAI_API_ORG= < your org id >
或在命令行上:
export OPENAI_API_KEY= < your key >
export OPENAI_API_ORG= < your org id >
对于 Anthropic 引擎,您需要设置ANTHROPIC_API_KEY
环境变量。您可以在 Anthropic 仪表板上找到您的 API 密钥。您可以在 shell 或项目根目录下的.env
文件中设置此环境变量。例如,在.env
文件中,您将具有:
ANTHROPIC_API_KEY= < your key >
或在命令行上:
export ANTHROPIC_API_KEY= < your key >
对于 Google 引擎,我们使用 Vertex 云 API,这需要 Google Cloud Platform (GCP) 项目。您可以在 GCP 控制台创建 GCP 项目。您还需要为您的项目启用 Vertex AI API、设置服务帐户并下载帐户 JSON 凭据。您可以在此处找到有关本教程步骤 1 至 6 的说明。最后,您需要将GOOGLE_APPLICATION_CREDENTIALS
环境变量设置为 JSON 文件的路径。您可以在 shell 或项目根目录下的.env
文件中设置此环境变量。例如,在.env
文件中,您将具有:
GOOGLE_APPLICATION_CREDENTIALS= < path to your JSON file >
或在命令行上:
export GOOGLE_APPLICATION_CREDENTIALS= < path to your JSON file >
对于 Bard 引擎,您需要获取 Bard __Secure-1PSID 和 __Secure-1PSIDTS 令牌。首先访问 https://bard.google.com/ 获取此变量的值,然后登录,按 F12 打开控制台,然后转到“应用程序”选项卡,然后转到“Cookies”,然后复制该变量的值“__Secure-1PSID”和“__Secure-1PSIDTS”cookie。然后您可以设置环境变量:
BARD__Secure_1PSID= < your session id >
BARD__Secure_1PSIDTS= < your session id timestamp >
大多数 Huggingface 引擎不需要额外的设置,但是,一些较大的模型需要 GPU 才能以任何效率运行(有些需要多个具有大量内存的 GPU)。您可以在 Huggingface 模型中心找到有关每个模型要求的更多详细信息。
对于这些引擎,您需要自己获取权重并进行后处理(由于 Facebook 的许可)。您可以在每个模型页面上找到执行此操作的说明:
下载并处理权重后,您可以将以下环境变量设置为包含每个变体的文件夹的根目录(格式为{root_dir}/{model-prefix}/weights.bin
,根目录为root_dir
,模型前缀是模型的名称,例如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 >
对于 AI21 型号,您需要设置AI21_API_KEY
环境变量。您可以在 AI21 Studio 仪表板上找到您的 API 密钥。您可以在 shell 或项目根目录下的.env
文件中设置此环境变量。例如,在.env
文件中,您将具有:
AI21_API_KEY= < your key >
或在命令行上:
export AI21_API_KEY= < your key >
如果您在工作中使用grazier,请引用:
@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 根据 MIT 许可条款获得许可。请参阅许可证了解更多信息。