
要克隆此存储库及其所有类模块,请使用--recurse-submodules flag:
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存储库的ID。github :GitHub存储库的URL。repo_id :每个存储库中的样本ID。id :整个数据集中示例的唯一ID。path :LLM基础中相应文件夹的路径。arguments :用户要求中指定的参数。instruction :任务的用户说明。oracle :与任务相关的Oracle内容。type :基于Oracle内容的预期输出类型。output :基于Oracle内容生成的地面真相输出。prefix_code :用于准备执行环境的代码段如果您想运行ML-LLM板凳,则需要在数据集上进行后处理。您可以使用以下代码将数据集进行后处理:
bash scripts/post_process/prepare.sh有关更多详细信息,请参见Post_process。
克隆子模型后,您可以运行
cd scripts/post_process
bash prepare.sh将完整和四分之一的基准制成merged_full_benchmark.jsonl and merged_quarter_benchmark.jsonl
您可以在merge.py中更改readme_content = fr.read() ,第50行readme_content = fr.read()[:100000]以获取32K长的readme readme contents或readme_content = fr.read()[:400000] ,以获得128K长度的readme readme readme readme。
在128K设置下,用户可以在10分钟内使用10个工人准备火车集和测试集。如果没有令牌限制,用户可能需要2个小时才能准备整个数据集并获取一个庞大的数据集。
要运行ML-LLM-Bench Docker容器,您可以使用以下命令:
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/目录中,然后使用路径更新exec.sh中的--input_path 。另外,修改日志地址。
然后运行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 :GPT的JSON格式的原始答案。parsing_file :后处理GPT以JSONL格式获得可执行的代码段。readme_type :从oracle_segment和readme中进行选择。oracle_segment :与任务最相关的README中的代码段落。readme :任务所在的存储库中读书的整个文本。engine_name :从gpt-35-turbo-16k和gpt-4-32中进行选择。n_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和3 2选择。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 :file:提示文件的路径。TASK :从1和3 2选择。有关详细信息,请参阅Finetune。
要运行ML-Agent台Docker容器,您可以使用以下命令:
docker pull public.ecr.aws/i5g0m1f6/ml-bench
docker run -it public.ecr.aws/i5g0m1f6/ml-bench /bin/bash这将拉出最新的ML-Agent台式码头图像,并将其运行在交互式外壳中。该容器包含运行ML-Agent基础代码库的所有必要依赖项。
有关OpenDevin中的ML代理板,请参阅Opendevin设置指南。
有关详细信息,请参考Envs。
根据MIT许可分发。有关更多信息,请参见LICENSE 。