Basaran هو بديل مفتوح المصدر لواجهة برمجة تطبيقات إكمال النص OpenAI. يوفر واجهة برمجة تطبيقات متدفقة متوافقة لنماذج إنشاء النص المستندة إلى Hugging Face Transformers.
سيشهد مجتمع المصادر المفتوحة في النهاية لحظة الانتشار المستقر لنماذج اللغات الكبيرة (LLMs)، ويتيح لك Basaran استبدال خدمة OpenAI بأحدث نموذج مفتوح المصدر لتشغيل تطبيقك دون تعديل سطر واحد من التعليمات البرمجية.
الملامح الرئيسية لBasaran هي:
استبدل 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 Driver وNVIDIA Container Runtime. تأتي صورة Basaran بالفعل مع مكتبات ذات صلة مثل CUDA وcuDNN، لذلك ليست هناك حاجة لتثبيتها يدويًا.
يمكن استخدام صورة باساران بثلاث طرق:
MODEL="user/repo"
، يمكن تنزيل النموذج المقابل من Hugging Face Hub أثناء بدء التشغيل الأول.MODEL
إلى المسار المقابل.بالنسبة لحالات الاستخدام المذكورة أعلاه، يمكنك العثور على نماذج ملفات Dockerfiles وملفات إنشاء عامل الإرساء في دليل عمليات النشر.
تم اختبار 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 لا يدعم معلمة 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 | ○ | ● | - | - |
يعد توفير واجهة برمجة تطبيقات دردشة موحدة أمرًا صعبًا حاليًا لأن كل نموذج له تنسيق مختلف لسجل الدردشة.
لذلك، يوصى بتنسيق سجل الدردشة مسبقًا بناءً على متطلبات النموذج المحدد واستخدامه كموجه لإكمال واجهة برمجة التطبيقات.
**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 هايبرونيم