Grazier เป็นไลบรารี Python สำหรับการเรียกใช้โมเดลภาษาขนาดใหญ่จาก API แบบรวมได้อย่างง่ายดาย
จาก OpenAI:
จากมานุษยวิทยา:
จาก Google/GCP:
จากฮักกิ้งเฟซ
จากเฟซบุ๊ก (ผ่าน Huggingface)
จากสแตนฟอร์ด (ผ่าน Huggingface)
จาก Berkeley (ผ่าน Huggingface)
จาก StabilityAI (ผ่าน Huggingface)
จาก AllenAI (ผ่าน Huggingface)
จาก AI21
รูปภาพ/ภาษารุ่น:
Grazier สามารถติดตั้งได้อย่างง่ายดายโดยใช้ pip:
pip install grazier
LLM แต่ละแห่งอาจต้องมีการตั้งค่าเพิ่มเติม ซึ่งคุณสามารถดูได้ในส่วนการตั้งค่าเครื่องยนต์ด้านล่าง
สำหรับเครื่องยนต์ที่สมบูรณ์นั้น ทำได้ง่ายเพียง:
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
คุณสามารถค้นหาคีย์ API และรหัสองค์กรของคุณได้บนแดชบอร์ด OpenAI คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อมเหล่านี้ในเชลล์ของคุณหรือในไฟล์ .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
คุณสามารถค้นหาคีย์ API ของคุณได้ที่แดชบอร์ด Anthropic คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อมนี้ในเชลล์ของคุณหรือในไฟล์ .env
ในรูทของโปรเจ็กต์ของคุณได้ ตัวอย่างเช่น ในไฟล์ .env
คุณจะมี:
ANTHROPIC_API_KEY= < your key >
หรือบนบรรทัดคำสั่ง:
export ANTHROPIC_API_KEY= < your key >
สำหรับกลไกของ Google เราใช้ Vertex cloud API ซึ่งต้องมีโปรเจ็กต์ Google Cloud Platform (GCP) คุณสามารถสร้างโปรเจ็กต์ GCP ได้ที่คอนโซล GCP คุณจะต้องเปิดใช้งาน Vertex AI API สำหรับโปรเจ็กต์ของคุณ ตั้งค่าบัญชีบริการ และดาวน์โหลดข้อมูลประจำตัว JSON ของบัญชี คุณสามารถดูคำแนะนำสำหรับขั้นตอนที่ 1 ถึง 6 ของบทช่วยสอนได้ที่นี่ สุดท้ายนี้ คุณจะต้องตั้งค่าตัวแปรสภาพแวดล้อม GOOGLE_APPLICATION_CREDENTIALS
เป็นเส้นทางของไฟล์ JSON คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อมนี้ในเชลล์ของคุณหรือในไฟล์ .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 สำหรับคอนโซล และไปที่แท็บ "แอปพลิเคชัน" จากนั้น "คุกกี้" จากนั้นคัดลอกค่าของ คุกกี้ "__Secure-1PSID" และ "__Secure-1PSIDTS" จากนั้นคุณสามารถตั้งค่าตัวแปรสภาพแวดล้อมได้:
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
และ model-prefix เป็นชื่อของโมเดล เช่น 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
คุณสามารถค้นหาคีย์ API ของคุณได้ที่ AI21 Studio Dashboard คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อมนี้ในเชลล์ของคุณหรือในไฟล์ .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 ดูใบอนุญาตสำหรับข้อมูลเพิ่มเติม