
لاستنساخ هذا المستودع مع جميع أجهزة النقل الفرعية ، استخدم علم --recurse-submodules :
git clone --recurse-submodules https://github.com/gersteinlab/ML-Bench.git
cd ML-Bench إذا كنت قد قمت بالفعل باستنساخ المستودع بدون علامة- --recurse-submodules ، فيمكنك تشغيل الأوامر التالية لجلب الجهاز الفرعي:
git submodule update --init --recursiveثم ركض
pip install -r requirements.txtيمكنك تحميل مجموعة البيانات باستخدام الرمز التالي:
from datasets import load_dataset
ml_bench = load_dataset ( "super-dainiu/ml-bench" ) # splits: ['full', 'quarter']تحتوي مجموعة البيانات على الأعمدة التالية:
github_id : معرف مستودع github.github : عنوان URL لمستودع GitHub.repo_id : معرف العينة داخل كل مستودع.id : المعرف الفريد للعينة في مجموعة البيانات بأكملها.path : المسار إلى المجلد المقابل في مقعد LLM.arguments : الوسيطات المحددة في متطلبات المستخدم.instruction : تعليمات المستخدم للمهمة.oracle : محتويات أوراكل ذات صلة بالمهمة.type : نوع الإخراج المتوقع بناءً على محتويات أوراكل.output : إخراج الحقيقة الأساسي الناتج بناءً على محتويات أوراكل.prefix_code : مقتطف الكود لإعداد بيئة التنفيذإذا كنت ترغب في تشغيل مقعد ML-LLM ، فأنت بحاجة إلى إجراء معالجة ما بعد المعالجة على مجموعة البيانات. يمكنك استخدام الكود التالي لربط مجموعة البيانات:
bash scripts/post_process/prepare.shانظر Post_process لمزيد من التفاصيل.
بعد النسيمات الفرعية المستنسخة ، يمكنك الجري
cd scripts/post_process
bash prepare.sh merged_quarter_benchmark.jsonl merged_full_benchmark.jsonl
يمكنك تغيير readme_content = fr.read() في merge.py ، السطر 50 إلى readme_content = fr.read()[:100000] للحصول على 32 كيلو متر محتويات readme أو إلى readme_content = fr.read()[:400000] للحصول على محتوى طوله 128k.
بموجب إعداد 128 ألف ، يمكن للمستخدمين إعداد Trainset و Testset في 10 دقائق مع 10 عمال. بدون قيود رمزية ، قد يحتاج المستخدمون إلى ساعتين لإعداد مجموعة البيانات بأكملها والحصول على مجموعة بيانات ضخمة.
لتشغيل حاوية Docker ML-LLM-BECK ، يمكنك استخدام الأمر التالي:
docker pull public.ecr.aws/i5g0m1f6/ml-bench
docker run -it -v ML_Bench:/deep_data public.ecr.aws/i5g0m1f6/ml-bench /bin/bashلتنزيل أوزان النموذج وإعداد الملفات ، يمكنك استخدام الأمر التالي:
bash utils/download_model_weight_pics.shقد يستغرق الأمر ساعتين لإعدادهم تلقائيًا.
ضع نتائجك في output/ الدليل ، وقم بتحديث --input_path في exec.sh مع مسارك. أيضا ، تعديل عنوان السجل.
ثم قم بتشغيل bash utils/exec.sh . ويمكنك التحقق من سجلات التشغيل في ملف السجل الخاص بك ، وعرض النتائج الإجمالية في output/{{MODEL_NAME}}_{{TASK}}_results_{{TIMESTAMP}}.jsonl output/{{MODEL_NAME}}_{{TASK}}_results_{{TIMESTAMP}}.jsonl .
يحتوي كل من ملفات JSONL بدءًا من eval_result و eval_total على نتائج تنفيذ جزئية في ورقتنا.
يتضمن output/ المجلد المخرجات التي تم إنشاؤها بواسطة النموذج التي استخدمناها للاختبار.
logs/ المجلد يحفظ سجل التنفيذ الخاص بنا.
ملف utils/temp.py ليس للمستخدمين ، يتم استخدامه لتخزين الكود المكتوب بواسطة النماذج.
بالإضافة إلى ذلك ، قد تقوم عملية التنفيذ بإنشاء ملفات جديدة غير ضرورية.
لإعادة إنتاج أداء Openai في هذه المهمة ، استخدم البرنامج النصي التالي:
bash script/openai/run.sh تحتاج إلى تغيير إعدادات المعلمة في script/openai/run.sh :
type : اختر من quarter أو full .model : اسم النموذج.input_file : مسار ملف مجموعة البيانات.answer_file : الإجابة الأصلية بتنسيق JSON من GPT.parsing_file : بعد العملية إخراج GPT بتنسيق JSONL للحصول على شرائح رمز قابلة للتنفيذ.readme_type : اختر من oracle_segment و readme .oracle_segment : فقرة الكود في ReadMe الأكثر صلة بالمهمة.readme : النص الكامل لـ README في المستودع حيث توجد المهمة.engine_name : اختر من gpt-35-turbo-16k و gpt-4-32 .n_turn : عدد الرموز القابلة للتنفيذ GPT إرجاع (5 مرات في التجربة الورقية).openai_key : مفتاح API Openai الخاص بك.يرجى الرجوع إلى Openai للحصول على التفاصيل.
يوفر Llama-Recipes توزيع PIP لسهولة التثبيت والاستخدام في مشاريع أخرى. بدلاً من ذلك ، يمكن تثبيته من المصدر.
pip install --extra-index-url https://download.pytorch.org/whl/test/cu118 llama-recipes
git clone https://github.com/facebookresearch/llama-recipes
cd llama-recipes
pip install -U pip setuptools
pip install --extra-index-url https://download.pytorch.org/whl/test/cu118 -e .
بحكم التعريف ، لدينا ثلاث مهام في الورقة.
يمكنك استخدام البرنامج النصي التالي لإعادة إنتاج الأداء الدقيق لـ Codellama-7B في هذه المهمة :
torchrun --nproc_per_node 2 finetuning.py
--use_peft
--peft_method lora
--enable_fsdp
--model_name codellama/CodeLlama-7b-Instruct-hf
--context_length 8192
--dataset mlbench_dataset
--output_dir OUTPUT_PATH
--task TASK
--data_path DATA_PATH تحتاج إلى تغيير إعدادات المعلمة من OUTPUT_PATH ، TASK ، و DATA_PATH على المقابل.
OUTPUT_DIR : الدليل لحفظ النموذج.TASK : اختر من 1 و 2 و 3 .DATA_PATH : دليل مجموعة البيانات. يمكنك استخدام البرنامج النصي التالي لإعادة إنتاج أداء الاستدلال في Codellama-7B في هذه المهمة :
python chat_completion.py
--model_name ' codellama/CodeLlama-7b-Instruct-hf '
--peft_model PEFT_MODEL
--prompt_file PROMPT_FILE
--task TASK تحتاج إلى تغيير إعدادات المعلمة لـ PEFT_MODEL و PROMPT_FILE TASK المقابلة.
PEFT_MODEL : مسار نموذج PEFT.PROMPT_FILE : مسار الملف الموجه.TASK : اختر من 1 و 2 و 3 .يرجى الرجوع إلى Finetune للحصول على التفاصيل.
لتشغيل حاوية Docker ML-Agent-Acker ، يمكنك استخدام الأمر التالي:
docker pull public.ecr.aws/i5g0m1f6/ml-bench
docker run -it public.ecr.aws/i5g0m1f6/ml-bench /bin/bashسيؤدي ذلك إلى سحب أحدث صورة Docker من طراز ML-Ogent على مقاعد البدلاء وتشغيلها في قذيفة تفاعلية. تتضمن الحاوية جميع التبعيات اللازمة لتشغيل قاعدة كود ML-Agent-Bench.
بالنسبة إلى ML-Agent-Betic في Opendevin ، يرجى الرجوع إلى دليل إعداد Opendevin.
يرجى الرجوع إلى Envs للحصول على التفاصيل.
موزعة تحت رخصة معهد ماساتشوستس للتكنولوجيا. انظر LICENSE لمزيد من المعلومات.