
Untuk mengkloning repositori ini dengan semua submodulnya, gunakan bendera --recurse-submodules :
git clone --recurse-submodules https://github.com/gersteinlab/ML-Bench.git
cd ML-Bench Jika Anda telah mengkloning repositori tanpa bendera --recurse-submodules , Anda dapat menjalankan perintah berikut untuk mengambil submodul:
git submodule update --init --recursiveLalu jalankan
pip install -r requirements.txtAnda dapat memuat dataset menggunakan kode berikut:
from datasets import load_dataset
ml_bench = load_dataset ( "super-dainiu/ml-bench" ) # splits: ['full', 'quarter']Dataset berisi kolom berikut:
github_id : ID repositori github.github : URL repositori GitHub.repo_id : ID sampel dalam setiap repositori.id : ID unik sampel di seluruh dataset.path : Jalur ke folder yang sesuai di LLM-Bench.arguments : Argumen yang ditentukan dalam persyaratan pengguna.instruction : Instruksi pengguna untuk tugas tersebut.oracle : Isi Oracle yang relevan dengan tugas.type : Jenis output yang diharapkan berdasarkan konten Oracle.output : Output kebenaran tanah yang dihasilkan berdasarkan konten Oracle.prefix_code : Cuplikan kode untuk mempersiapkan lingkungan eksekusiJika Anda ingin menjalankan ml-llm-bench, Anda perlu melakukan pasca pemrosesan pada dataset. Anda dapat menggunakan kode berikut untuk memposting dataset:
bash scripts/post_process/prepare.shLihat Post_Process untuk lebih jelasnya.
Setelah submodul klon, Anda dapat berlari
cd scripts/post_process
bash prepare.sh untuk menghasilkan tolok ukur penuh dan seperempat menjadi merged_full_benchmark.jsonl dan merged_quarter_benchmark.jsonl
Anda dapat mengubah readme_content = fr.read() di merge.py , baris 50 ke readme_content = fr.read()[:100000] untuk mendapatkan konten readme panjang 32k atau untuk readme_content = fr.read()[:400000] untuk mendapatkan 128K panjang readme contents.
Di bawah pengaturan 128K, pengguna dapat menyiapkan pelatihan dan testset dalam 10 menit dengan 10 pekerja. Tanpa batasan token, pengguna mungkin perlu 2 jam untuk menyiapkan seluruh dataset dan mendapatkan dataset yang sangat besar.
Untuk menjalankan wadah Docker ML-LLM-Bench, Anda dapat menggunakan perintah berikut:
docker pull public.ecr.aws/i5g0m1f6/ml-bench
docker run -it -v ML_Bench:/deep_data public.ecr.aws/i5g0m1f6/ml-bench /bin/bashUntuk mengunduh bobot model dan menyiapkan file, Anda dapat menggunakan perintah berikut:
bash utils/download_model_weight_pics.shMungkin perlu 2 jam untuk secara otomatis mempersiapkannya.
Tempatkan hasil Anda di output/ direktori, dan perbarui --input_path di exec.sh dengan jalur Anda. Juga, ubah alamat log.
Kemudian jalankan bash utils/exec.sh . Dan Anda dapat memeriksa log run di file log Anda, lihat hasil keseluruhan dalam output/{{MODEL_NAME}}_{{TASK}}_results_{{TIMESTAMP}}.jsonl , dan lihat hasilnya untuk setiap repositori di output/{{MODEL_NAME}}_{{TASK}}_results_{{TIMESTAMP}}.jsonl .
Kedua file JSONL dimulai dengan eval_result dan eval_total berisi hasil eksekusi parsial dalam makalah kami.
output/ folder mencakup output yang dihasilkan model yang kami gunakan untuk pengujian.
logs/ folder menyimpan log eksekusi kami.
File utils/temp.py bukan untuk pengguna, digunakan untuk menyimpan kode yang ditulis oleh model.
Selain itu, proses eksekusi dapat menghasilkan file baru yang tidak perlu.
Untuk mereproduksi kinerja Openai pada tugas ini, gunakan skrip berikut:
bash script/openai/run.sh Anda perlu mengubah pengaturan parameter dalam script/openai/run.sh :
type : Pilih dari quarter atau full .model : Nama model.input_file : jalur file dataset.answer_file : Jawaban asli dalam format JSON dari GPT.parsing_file : Pasca proses output GPT dalam format JSONL untuk mendapatkan segmen kode yang dapat dieksekusi.readme_type : Pilih dari oracle_segment dan readme .oracle_segment : Paragraf kode dalam readme yang paling relevan dengan tugas tersebut.readme : Seluruh teks readme di repositori tempat tugas berada.engine_name : Pilih dari gpt-35-turbo-16k dan gpt-4-32 .n_turn : Jumlah kode yang dapat dieksekusi, pengembalian GPT (5 kali dalam percobaan kertas).openai_key : Kunci API OpenAI Anda.Silakan merujuk ke OpenAi untuk detailnya.
Llama-Recipes menyediakan distribusi PIP untuk pemasangan dan penggunaan yang mudah di proyek lain. Atau, itu dapat diinstal dari sumbernya.
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 .
Menurut definisi, kami memiliki tiga tugas di koran.
Anda dapat menggunakan skrip berikut untuk mereproduksi kinerja fine-tuning Codellama-7B pada tugas ini :
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 Anda perlu mengubah pengaturan parameter OUTPUT_PATH , TASK , dan DATA_PATH .
OUTPUT_DIR : Direktori untuk menyimpan model.TASK : Pilih dari 1 , 2 dan 3 .DATA_PATH : Direktori dataset. Anda dapat menggunakan skrip berikut untuk mereproduksi kinerja inferensi Codellama-7b pada tugas ini :
python chat_completion.py
--model_name ' codellama/CodeLlama-7b-Instruct-hf '
--peft_model PEFT_MODEL
--prompt_file PROMPT_FILE
--task TASK Anda perlu mengubah pengaturan parameter PEFT_MODEL , PROMPT_FILE , dan TASK yang sesuai.
PEFT_MODEL : Jalur model PEFT.PROMPT_FILE : jalur file prompt.TASK : Pilih dari 1 , 2 dan 3 .Silakan merujuk ke Finetune untuk detailnya.
Untuk menjalankan wadah Docker ML-Agent-Bench, Anda dapat menggunakan perintah berikut:
docker pull public.ecr.aws/i5g0m1f6/ml-bench
docker run -it public.ecr.aws/i5g0m1f6/ml-bench /bin/bashIni akan menarik gambar Docker ML-Agent-Bench terbaru dan menjalankannya dalam cangkang interaktif. Wadah mencakup semua dependensi yang diperlukan untuk menjalankan basis kode-agen-ml.
Untuk ML-agent-Bench di Opendevin, silakan merujuk ke Panduan Pengaturan Opendevin.
Silakan merujuk ke Envs untuk detailnya.
Didistribusikan di bawah lisensi MIT. Lihat LICENSE untuk informasi lebih lanjut.