Promptwright هي مكتبة Python من Stacklok مصممة لإنشاء مجموعات بيانات تركيبية كبيرة باستخدام LLM محلي. توفر المكتبة مجموعة من الواجهات المرنة وسهلة الاستخدام، مما يتيح للمستخدمين القدرة على إنشاء مجموعات بيانات تركيبية سريعة القيادة.
استلهم Promptwright من redotvideo/pluto، في الواقع بدأ كشوكة، لكن انتهى به الأمر إلى إعادة كتابة كبيرة، للسماح بإنشاء مجموعة بيانات مقابل نموذج LLM محلي، على عكس OpenAI حيث يمكن أن تكون التكاليف باهظة الثمن بشكل فاحش.
تتفاعل المكتبة مع Ollama، مما يجعل من السهل سحب نموذج وتشغيل Promptwright.
تكامل عميل LLM المحلي : التفاعل مع النماذج المستندة إلى Ollama
التعليمات والمطالبات القابلة للتكوين : تحديد التعليمات المخصصة ومطالبات النظام
اضغط على Hugging Face : ادفع مجموعة البيانات التي تم إنشاؤها إلى Hugging Face Hub.
بايثون 3.11+
تم تثبيت مكتبة promptwright
تم تثبيت وتشغيل Ollama CLI (راجع تثبيت Ollama
نموذج تم سحبه عبر Ollama (انظر توافق النموذج)
لتثبيت المتطلبات الأساسية، يمكنك استخدام الأوامر التالية:
نقطة تثبيت موجه خدمة أولاما ollama اسحب {model_name} # أيًا كان الطراز الذي تريد استخدامه
توجد بعض الأمثلة في دليل examples
التي توضح كيفية استخدام المكتبة لإنشاء مجموعات بيانات مختلفة تعتمد على الموضوع.
لتشغيل مثال:
تأكد من أنك قمت بتشغيل Ollama عن طريق تشغيل ollama serve
.
تأكد من تنزيل النموذج المطلوب (على سبيل المثال llama3.2:latest
).
قم بتعيين model_name
في ملف المثال المختار إلى النموذج الذي قمت بتنزيله.
المحرك = LocalDataEngine( args=LocalEngineArguments( تعليمات = "إنشاء مطالبات الكتابة الإبداعية وأمثلة الاستجابات."، system_prompt = "أنت مدرس كتابة إبداعية تقدم مطالبات كتابية وإجابات نموذجية."، model_name = "llama3.2:latest"، درجة الحرارة =0.9, # درجة حرارة أعلى لمزيد من الاختلافات الإبداعية max_retries=2,
قم بتشغيل ملف المثال الذي اخترته:
مثال بايثون/creative_writing.py
سيتم حفظ مجموعة البيانات التي تم إنشاؤها في ملف JSONL إلى كل ما تم تعيينه داخل dataset.save()
.
{ "رسائل": [ { "role": "system"، "content": "تم تكليفك بتصميم تجربة واقع افتراضي غامرة تنقل المستخدمين إلى عالم خيالي من العجائب." }, { "role": "user"، "content": "أنشئ مقطعًا وصفيًا حول شخصية تكتشف مواهبها الخفية." }, { "role": "assistant"، "content": "بينما كانت تحدق في اللوحة، كانت أصابع إيما تحوم فوق فرش الرسم، كما لو كانت مترددة في إطلاق العنان للألوان التي كانت محبوسة داخلها. بدأت الضربات بتخلي جريء، ودوامة يندمج اللونان الأزرق والأخضر في رقصة ساحرة من الضوء والظل، ومع كل لحظة تمر، شعرت بأنها أصبحت الفن - حيث تسرب جوهرها إلى القماش مثل الألوان المائية في عاصفة الربيع، وتلاشى العالم من حولها، ولم يتبق سوى الحيوية سيمفونية اللون والإبداع." } ] }
مجموعة البيانات : فئة لإدارة مجموعات البيانات التي تم إنشاؤها.
LocalDataEngine : المحرك الرئيسي المسؤول عن التفاعل مع عميل LLM وإنشاء مجموعات البيانات.
LocalEngineArguments : فئة تكوين تحدد التعليمات وموجه النظام ودرجة حرارة اسم النموذج وعمليات إعادة المحاولة وقوالب المطالبات المستخدمة لإنشاء البيانات.
OlmaClient : فئة عميل للتفاعل مع واجهة برمجة تطبيقات Ollama
HFUploader : فئة أداة مساعدة لتحميل مجموعات البيانات إلى Hugging Face (تمرير المسار إلى مجموعة البيانات والرمز المميز).
إذا واجهت أي أخطاء أثناء تشغيل البرنامج النصي، فإليك بعض الخطوات الشائعة لاستكشاف الأخطاء وإصلاحها:
أعد تشغيل أولاما :
خدمة Killall ollama && olma
التحقق من تثبيت النموذج :
سحب أولاما {model_name}
تحقق من سجلات أولاما :
افحص السجلات بحثًا عن أي رسائل خطأ قد توفر المزيد من السياق حول الخطأ الذي حدث، ويمكن العثور عليها في الدليل ~/.ollama/logs
.
يجب أن تعمل المكتبة مع معظم نماذج LLM. وقد تم اختباره مع النماذج التالية حتى الآن:
LLaMA3 : تم تصميم المكتبة لتعمل مع نموذج LLaMA وتحديدا llama3:latest
نموذج.
ميسترال : المكتبة متوافقة مع نموذج ميسترال وهو فرع من نموذج GPT-3.
إذا قمت بالاختبار بعد الآن، يرجى تقديم طلب سحب لتحديث هذه القائمة!
إذا كان هناك شيء يمكن تحسينه هنا، يرجى فتح مشكلة أو إرسال طلب سحب.
هذا المشروع مرخص بموجب ترخيص Apache 2. راجع ملف LICENSE
لمزيد من التفاصيل.