Basaran เป็นทางเลือกโอเพ่นซอร์สแทน API การเติมข้อความ OpenAI มี API การสตรีมที่เข้ากันได้สำหรับโมเดลการสร้างข้อความที่ใช้ Hugging Face Transformers
ในที่สุดชุมชนโอเพ่นซอร์สจะได้เห็นช่วงเวลา Stable Diffusion สำหรับโมเดลภาษาขนาดใหญ่ (LLM) และ Basaran ช่วยให้คุณสามารถแทนที่บริการของ OpenAI ด้วยโมเดลโอเพ่นซอร์สล่าสุดเพื่อขับเคลื่อนแอปพลิเคชันของคุณโดยไม่ต้องแก้ไขโค้ดแม้แต่บรรทัดเดียว
คุณสมบัติที่สำคัญของบาซารันคือ:
แทนที่ user/repo
ด้วยโมเดลที่คุณเลือกและ XYZ
ด้วยเวอร์ชันล่าสุด จากนั้นรัน:
docker run -p 80:80 -e MODEL=user/repo hyperonym/basaran:X.Y.Z
และคุณก็พร้อมที่จะไป!
Playground: http://127.0.0.1/
API: http://127.0.0.1/v1/completions
อิมเมจ Docker มีอยู่ในแพ็คเกจ Docker Hub และ GitHub
สำหรับการเร่งความเร็ว GPU คุณต้องติดตั้งไดรเวอร์ NVIDIA และ NVIDIA Container Runtime ด้วย อิมเมจของ Basaran มาพร้อมกับไลบรารีที่เกี่ยวข้องอยู่แล้ว เช่น CUDA และ cuDNN ดังนั้นจึงไม่จำเป็นต้องติดตั้งด้วยตนเอง
รูปภาพของ Basaran สามารถใช้ได้สามวิธี:
MODEL="user/repo"
คุณจะสามารถดาวน์โหลดโมเดลที่เกี่ยวข้องได้จาก Hugging Face Hub ในระหว่างการเริ่มต้นระบบครั้งแรกMODEL
ไปยังเส้นทางที่เกี่ยวข้องสำหรับกรณีการใช้งานข้างต้น คุณสามารถค้นหาตัวอย่างไฟล์ Dockerfiles และไฟล์ Docker-compose ได้ในไดเร็กทอรีการปรับใช้
Basaran ได้รับการทดสอบบน Python 3.8+ และ PyTorch 1.13+ คุณควรสร้างสภาพแวดล้อมเสมือนจริงด้วยเวอร์ชันของ Python ที่คุณต้องการใช้ และเปิดใช้งานก่อนดำเนินการต่อ
pip
: pip install basaran
pip install accelerate bitsandbytes
user/repo
ด้วยโมเดลที่เลือกและรัน Basaran: MODEL=user/repo PORT=80 python -m basaran
สำหรับรายการตัวแปรสภาพแวดล้อมทั้งหมด โปรดดูที่ __init__.py
หากคุณต้องการเข้าถึงฟีเจอร์ล่าสุดหรือแฮ็กด้วยตัวเอง คุณสามารถเลือกเรียกใช้จากแหล่งที่มาโดยใช้ git
ได้
git clone https://github.com/hyperonym/basaran.git && cd basaran
pip install -r requirements.txt
user/repo
ด้วยโมเดลที่เลือกและรัน Basaran: MODEL=user/repo PORT=80 python -m basaran
รูปแบบคำขอ HTTP และการตอบกลับของ Basaran สอดคล้องกับ OpenAI API
การเติมข้อความให้สมบูรณ์เป็นตัวอย่าง:
curl http://127.0.0.1/v1/completions
-H ' Content-Type: application/json '
-d ' { "prompt": "once upon a time,", "echo": true } '
{
"id" : " cmpl-e08c701b4ba032c09ef080e1 " ,
"object" : " text_completion " ,
"created" : 1678003509 ,
"model" : " bigscience/bloomz-560m " ,
"choices" : [
{
"text" : " once upon a time, the human being faces a complicated situation and he needs to find a new life. " ,
"index" : 0 ,
"logprobs" : null ,
"finish_reason" : " length "
}
],
"usage" : {
"prompt_tokens" : 5 ,
"completion_tokens" : 21 ,
"total_tokens" : 26
}
}
หากแอปพลิเคชันของคุณใช้ไลบรารีไคลเอ็นต์ที่ OpenAI มอบให้ คุณจะต้องแก้ไขตัวแปรสภาพแวดล้อม OPENAI_API_BASE
เพื่อให้ตรงกับตำแหน่งข้อมูลของ Basaran เท่านั้น:
OPENAI_API_BASE= " http://127.0.0.1/v1 " python your_app.py
ไดเร็กทอรีตัวอย่างมีตัวอย่างการใช้ไลบรารี OpenAI Python
Basaran ยังมีให้บริการเป็นห้องสมุดบน PyPI สามารถใช้งานได้โดยตรงใน Python โดยไม่จำเป็นต้องเริ่มเซิร์ฟเวอร์ API แยกต่างหาก
pip
: pip install basaran
load_model
เพื่อโหลดโมเดล: from basaran . model import load_model
model = load_model ( "user/repo" )
for choice in model ( "once upon a time" ):
print ( choice )
ไดเร็กทอรีตัวอย่างประกอบด้วยตัวอย่างการใช้ Basaran เป็นไลบรารี
รูปแบบ API ของ Basaran สอดคล้องกับ OpenAI โดยมีความแตกต่างในความเข้ากันได้ส่วนใหญ่ในแง่ของการรองรับพารามิเตอร์และฟิลด์การตอบสนอง ส่วนต่อไปนี้ให้ข้อมูลโดยละเอียดเกี่ยวกับความเข้ากันได้ของแต่ละตำแหน่งข้อมูล
แต่ละกระบวนการของ Basaran ทำหน้าที่เพียงโมเดลเดียวเท่านั้น ดังนั้นผลลัพธ์จึงมีเพียงโมเดลนั้นเท่านั้น
แม้ว่า Basaran จะไม่รองรับพารามิเตอร์ model
แต่ไลบรารีไคลเอ็นต์ OpenAI ต้องการให้แสดงพารามิเตอร์ดังกล่าว ดังนั้นคุณสามารถป้อนชื่อรุ่นแบบสุ่มได้
พารามิเตอร์ | บาซารัน | OpenAI | ค่าเริ่มต้น | มูลค่าสูงสุด |
---|---|---|---|---|
model | - | - | ||
prompt | "" | COMPLETION_MAX_PROMPT | ||
suffix | - | - | ||
min_tokens | 0 | COMPLETION_MAX_TOKENS | ||
max_tokens | 16 | COMPLETION_MAX_TOKENS | ||
temperature | 1.0 | - | ||
top_p | 1.0 | - | ||
n | 1 | COMPLETION_MAX_N | ||
stream | false | - | ||
logprobs | 0 | COMPLETION_MAX_LOGPROBS | ||
echo | false | - | ||
stop | - | - | ||
presence_penalty | - | - | ||
frequency_penalty | - | - | ||
best_of | - | - | ||
logit_bias | - | - | ||
user | - | - |
การจัดหา API การแชทแบบรวมเป็นเรื่องยากในขณะนี้ เนื่องจากแต่ละรุ่นมีรูปแบบประวัติการแชทที่แตกต่างกัน
ดังนั้นจึงขอแนะนำให้จัดรูปแบบประวัติการแชทล่วงหน้าตามความต้องการของรุ่นเฉพาะและใช้เป็นพรอมต์สำหรับ API การเสร็จสิ้น
**Summarize a long document into a single sentence and ...**
<human>: Last year, the travel industry saw a big ...
<bot>: If you're traveling this spring break, ...
<human>: But ...
<bot>:
[Round 0]
问:你好
答:你好!有什么我可以帮助你的吗?
[Round 1]
问:你是谁?
答:
ดูปัญหาที่เปิดอยู่สำหรับรายการคุณลักษณะที่นำเสนอทั้งหมด
โครงการนี้เป็นโอเพ่นซอร์ส หากคุณมีความคิดเห็นหรือคำถามใดๆ โปรดติดต่อโดยสร้างปัญหาได้เลย
การมีส่วนร่วมได้รับการชื่นชมอย่างมาก โปรดดูที่ CONTRIBUTING.md สำหรับข้อมูลเพิ่มเติม
Basaran มีให้บริการภายใต้ใบอนุญาต MIT
© 2023 ไฮเปอร์นิมม์