إطار عمل تعريفي للتعلم العميق تم تصميمه من أجل الحجم والكفاءة.
مهم
لقد انتقل مجتمعنا إلى Discord - يرجى الانضمام إلينا هناك!
Ludwig هو إطار عمل ذو تعليمات برمجية منخفضة لبناء نماذج ذكاء اصطناعي مخصصة مثل LLMs والشبكات العصبية العميقة الأخرى.
الميزات الرئيسية:
تتم استضافة Ludwig بواسطة Linux Foundation AI & Data.
التثبيت من PyPi. انتبه إلى أن Ludwig يتطلب Python 3.8+.
pip install ludwig
أو التثبيت مع كافة التبعيات الاختيارية:
pip install ludwig[full]
يرجى الاطلاع على المساهمة للحصول على تعليمات التثبيت الأكثر تفصيلاً.
هل تريد إلقاء نظرة سريعة على بعض ميزات Ludwig 0.8؟ تحقق من دفتر ملاحظات Colab هذا
هل تتطلع إلى ضبط Llama-2 أو Mistral؟ تحقق من هذه الدفاتر:
للحصول على برنامج تعليمي كامل، راجع دليل البدء الرسمي، أو قم بإلقاء نظرة على الأمثلة الشاملة.
دعونا نقوم بضبط نموذج لغة كبير LLaMA-2-7b تم تدريبه مسبقًا لاتباع التعليمات مثل chatbot ("ضبط التعليمات").
سنستخدم مجموعة بيانات Stanford Alpaca، والتي سيتم تنسيقها كملف يشبه الجدول ويبدو كما يلي:
تعليمات | مدخل | الإخراج |
---|---|---|
أعط ثلاث نصائح للبقاء بصحة جيدة. | 1. تناول نظام غذائي متوازن وتأكد من أنه يحتوي على... | |
رتب العناصر الواردة أدناه بالترتيب... | كعكة، أنا، الأكل | أنا آكل الكعكة. |
أكتب فقرة تعريفية عن شخصية مشهورة... | ميشيل أوباما | ميشيل أوباما امرأة ملهمة.. |
... | ... | ... |
قم بإنشاء ملف تكوين YAML باسم model.yaml
بما يلي:
model_type : llm
base_model : meta-llama/Llama-2-7b-hf
quantization :
bits : 4
adapter :
type : lora
prompt :
template : |
Below is an instruction that describes a task, paired with an input that may provide further context.
Write a response that appropriately completes the request.
### Instruction:
{instruction}
### Input:
{input}
### Response:
input_features :
- name : prompt
type : text
output_features :
- name : output
type : text
trainer :
type : finetune
learning_rate : 0.0001
batch_size : 1
gradient_accumulation_steps : 16
epochs : 3
learning_rate_scheduler :
decay : cosine
warmup_fraction : 0.01
preprocessing :
sample_ratio : 0.1
backend :
type : local
والآن دعونا ندرب النموذج:
export HUGGING_FACE_HUB_TOKEN = " <api_token> "
ludwig train --config model.yaml --dataset " ludwig://alpaca "
دعونا نبني شبكة عصبية تتنبأ بما إذا كانت مراجعة ناقد سينمائي معين على موقع Rotten Tomatoes إيجابية أم سلبية.
ستكون مجموعة البيانات الخاصة بنا عبارة عن ملف CSV يبدو كما يلي:
movie_title | content_rated | الأنواع | وقت التشغيل | top_critic | review_content | مُستَحسَن |
---|---|---|---|---|---|---|
نجنا من الشر | ر | أكشن ومغامرة، رعب | 117.0 | حقيقي | يقدم المخرج سكوت ديريكسون وشريكه بول هاريس بوردمان إجراءات روتينية مع مخاوف غير ملحوظة. | 0 |
باربرا | ص-13 | بيت الفن والعالمي والدراما | 105.0 | خطأ شنيع | بطريقة ما، في هذه الرواية المثيرة، تمكنت باربرا من الحفاظ على مبادئها، وإنسانيتها وشجاعتها، وتقاتل لإنقاذ فتاة مراهقة منشقة يحاول الشيوعيون تدمير حياتها. | 1 |
زعماء الرهيبة | ر | كوميديا | 98.0 | خطأ شنيع | لا يستطيع هؤلاء الزعماء تبرير القتل أو الذكريات الكوميدية الدائمة، مما يؤدي إلى المساس بشكل قاتل بمهزلة كان من الممكن أن تكون رائعة ولكنها تنتهي في نهاية المطاف إلى مجرد متواضعة. | 0 |
... | ... | ... | ... | ... | ... | ... |
قم بتنزيل عينة من مجموعة البيانات من هنا.
wget https://ludwig.ai/latest/data/rotten_tomatoes.csv
قم بعد ذلك بإنشاء ملف تكوين YAML باسم model.yaml
بما يلي:
input_features :
- name : genres
type : set
preprocessing :
tokenizer : comma
- name : content_rating
type : category
- name : top_critic
type : binary
- name : runtime
type : number
- name : review_content
type : text
encoder :
type : embed
output_features :
- name : recommended
type : binary
هذا كل شيء! الآن دعونا ندرب النموذج:
ludwig train --config model.yaml --dataset rotten_tomatoes.csv
النمذجة سعيدة
حاول تطبيق Ludwig على بياناتك. تواصل مع Discord إذا كان لديك أي أسئلة.
الحد الأدنى من نموذج التعلم الآلي
يعتني لودفيج بالتعقيد الهندسي للتعلم الآلي خارج الصندوق، مما يمكّن علماء الأبحاث من التركيز على بناء النماذج على أعلى مستوى من التجريد. المعالجة المسبقة للبيانات، وتحسين المعلمات الفائقة، وإدارة الأجهزة، والتدريب الموزع لنماذج torch.nn.Module
تأتي مجانًا تمامًا.
قم ببناء معاييرك بسهولة
يعد إنشاء خط أساس متطور ومقارنته بنموذج جديد بمثابة تغيير بسيط في التكوين.
قم بتطبيق بنيات جديدة بسهولة على العديد من المشكلات ومجموعات البيانات
قم بتطبيق نماذج جديدة عبر مجموعة واسعة من المهام ومجموعات البيانات التي يدعمها Ludwig. يتضمن Ludwig مجموعة أدوات قياس أداء كاملة يمكن لأي مستخدم الوصول إليها، لإجراء تجارب باستخدام نماذج متعددة عبر مجموعات بيانات متعددة بتكوين بسيط فقط.
معالجة مسبقة للبيانات ونمذجة ومقاييس قابلة للتكوين بدرجة عالية
يمكن تعديل أي وجميع جوانب بنية النموذج وحلقة التدريب والبحث عن المعلمات الفائقة والبنية الأساسية للواجهة الخلفية كحقول إضافية في التكوين التعريفي لتخصيص المسار لتلبية متطلباتك. للحصول على تفاصيل حول ما يمكن تهيئته، راجع مستندات تكوين Ludwig.
تعلم متعدد الوسائط ومتعدد المهام خارج الصندوق
يمكنك مزج البيانات الجدولية والنصوص والصور وحتى الصوت ومطابقتها في تكوينات نموذجية معقدة دون كتابة تعليمات برمجية.
تصدير وتتبع النماذج الغنية
تتبع جميع التجارب والمقاييس تلقائيًا باستخدام أدوات مثل Tensorboard وComet ML وWeights & Biases وMLFlow وAim Stack.
يمكنك توسيع نطاق التدريب تلقائيًا ليشمل مجموعات متعددة وحدات معالجة الرسومات والعقد
انتقل من التدريب على جهازك المحلي إلى السحابة دون تغيير التعليمات البرمجية.
واجهة منخفضة التعليمات البرمجية لأحدث النماذج، بما في ذلك محولات Huggingface المدربة مسبقًا
يتكامل Ludwig أيضًا بشكل أصلي مع النماذج المدربة مسبقًا، مثل تلك المتوفرة في Huggingface Transformers. يمكن للمستخدمين الاختيار من بين مجموعة واسعة من نماذج PyTorch الحديثة المدربة مسبقًا لاستخدامها دون الحاجة إلى كتابة أي تعليمات برمجية على الإطلاق. على سبيل المثال، يعد تدريب نموذج تحليل المشاعر المستند إلى BERT مع Ludwig أمرًا بسيطًا مثل:
ludwig train --dataset sst5 --config_str " {input_features: [{name: sentence, type: text, encoder: bert}], output_features: [{name: label, type: category}]} "
واجهة ذات كود منخفض لـ AutoML
يتيح Ludwig AutoML للمستخدمين الحصول على نماذج مدربة من خلال توفير مجموعة بيانات والعمود المستهدف وميزانية زمنية فقط.
auto_train_results = ludwig . automl . auto_train ( dataset = my_dataset_df , target = target_column_name , time_limit_s = 7200 )
سهولة الإنتاج
يجعل Ludwig من السهل تقديم نماذج التعلم العميق، بما في ذلك وحدات معالجة الرسومات. قم بتشغيل REST API لنموذج Ludwig الذي تم تدريبه.
ludwig serve --model_path=/path/to/model
يدعم Ludwig تصدير النماذج إلى حزم Torchscript الفعالة.
ludwig export_torchscript -–model_path=/path/to/model
اقرأ منشوراتنا حول Ludwig، وdeclarative ML، ومعايير Ludwig's SoTA.
تعرف على المزيد حول كيفية عمل Ludwig، وكيفية البدء، والعمل من خلال المزيد من الأمثلة.
إذا كنت مهتمًا بالمساهمة، أو لديك أسئلة أو تعليقات أو أفكار لمشاركتها، أو إذا كنت تريد فقط أن تكون على اطلاع، فيرجى التفكير في الانضمام إلى مجتمع Discord الخاص بنا ومتابعتنا على X!
Ludwig هو مشروع مفتوح المصدر تتم إدارته بشكل نشط ويعتمد على مساهمات الأشخاص مثلك تمامًا. فكر في الانضمام إلى المجموعة النشطة من المساهمين في Ludwig لجعل Ludwig إطار عمل أكثر سهولة وغنيًا بالميزات ليستخدمه الجميع!