
ในการโคลนที่เก็บนี้ด้วย submodules ทั้งหมดให้ใช้ธง --recurse-submodules :
git clone --recurse-submodules https://github.com/gersteinlab/ML-Bench.git
cd ML-Bench หากคุณได้โคลนที่เก็บข้อมูลโดยไม่มีธง --recurse-submodules คุณสามารถเรียกใช้คำสั่งต่อไปนี้เพื่อดึงข้อมูลย่อย: 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 : ID ของที่เก็บ GitHubgithub : URL ของที่เก็บ GitHubrepo_id : ID ของตัวอย่างภายในที่เก็บแต่ละตัวid : ID ที่ไม่ซ้ำกันของตัวอย่างในชุดข้อมูลทั้งหมดpath : เส้นทางไปยังโฟลเดอร์ที่สอดคล้องกันใน LLM-bencharguments : อาร์กิวเมนต์ที่ระบุในข้อกำหนดของผู้ใช้instruction : คำแนะนำของผู้ใช้สำหรับงานoracle : เนื้อหาของ Oracle ที่เกี่ยวข้องกับงานtype : ประเภทเอาต์พุตที่คาดหวังตามเนื้อหาของ Oracleoutput : เอาต์พุตความจริงภาคพื้นดินที่สร้างขึ้นตามเนื้อหาของ Oracleprefix_code : รหัสตัวอย่างสำหรับการเตรียมสภาพแวดล้อมการดำเนินการหากคุณต้องการเรียกใช้ ML-LLM-BENCH คุณต้องทำการโพสต์ในชุดข้อมูล คุณสามารถใช้รหัสต่อไปนี้เพื่อโพสต์ชุดข้อมูล:
bash scripts/post_process/prepare.shดู Post_process สำหรับรายละเอียดเพิ่มเติม
หลังจากโคลน submodules คุณสามารถเรียกใช้
cd scripts/post_process
bash prepare.sh เพื่อสร้างเกณฑ์มาตรฐานเต็มรูปแบบและไตรมาสเป็น merged_full_benchmark.jsonl และ merged_quarter_benchmark.jsonl
คุณสามารถเปลี่ยน readme_content = fr.read() ใน merge.py , บรรทัด 50 เป็น readme_content = fr.read()[:100000] เพื่อให้ได้เนื้อหา readme ความยาว 32k หรือ readme_content = fr.read()[:400000] เพื่อรับเนื้อหาความยาว 128k
ภายใต้การตั้งค่า 128K ผู้ใช้สามารถเตรียมชุดฝึกอบรมและชุดทดสอบใน 10 นาทีกับพนักงาน 10 คน โดยไม่มีข้อ จำกัด โทเค็นผู้ใช้อาจต้องใช้เวลา 2 ชั่วโมงในการเตรียมชุดข้อมูลทั้งหมดและรับชุดข้อมูลขนาดใหญ่
ในการเรียกใช้คอนเทนเนอร์ Docker ML-LLM-Bench คุณสามารถใช้คำสั่งต่อไปนี้:
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อาจใช้เวลา 2 ชั่วโมงในการเตรียมพวกเขาโดยอัตโนมัติ
วางผลลัพธ์ของคุณใน 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 หรือ fullmodel : ชื่อรุ่นinput_file : เส้นทางไฟล์ของชุดข้อมูลanswer_file : คำตอบดั้งเดิมในรูปแบบ JSON จาก GPTparsing_file : โพสต์กระบวนการเอาต์พุตของ GPT ในรูปแบบ JSONL เพื่อรับกลุ่มรหัสที่ใช้งานได้readme_type : เลือก oracle_segment และ readmeoracle_segment : ย่อหน้ารหัสใน readme ที่เกี่ยวข้องกับงานมากที่สุดreadme : ข้อความทั้งหมดของ readMe ในที่เก็บที่งานอยู่engine_name : เลือกจาก gpt-35-turbo-16k และ gpt-4-32n_turn : จำนวนรหัสที่เรียกใช้งานได้ GPT ส่งคืน (5 ครั้งในการทดลองกระดาษ)openai_key : คีย์ OpenAI API ของคุณโปรดดูที่ 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 และ 3DATA_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 : เส้นทางของโมเดล PEFTPROMPT_FILE : เส้นทางของไฟล์พรอมต์TASK : เลือกจาก 1 , 2 และ 3โปรดดูที่ Finetune สำหรับรายละเอียด
ในการเรียกใช้คอนเทนเนอร์ Docker ML-Agent-Bench คุณสามารถใช้คำสั่งต่อไปนี้:
docker pull public.ecr.aws/i5g0m1f6/ml-bench
docker run -it public.ecr.aws/i5g0m1f6/ml-bench /bin/bashสิ่งนี้จะดึงอิมเมจนักเทียบท่า ML-agent-bench ล่าสุดและเรียกใช้ในเปลือกแบบโต้ตอบ คอนเทนเนอร์รวมถึงการพึ่งพาที่จำเป็นทั้งหมดเพื่อเรียกใช้รหัสเบส ML-agent-bench
สำหรับ ML-Agent-Bench ใน Opendevin โปรดดูที่คู่มือการตั้งค่า Opendevin
โปรดดูที่ Env สำหรับรายละเอียด
แจกจ่ายภายใต้ใบอนุญาต MIT ดู LICENSE สำหรับข้อมูลเพิ่มเติม