
Чтобы клонировать этот репозиторий со всеми его подмодулями, используйте флаг --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-Bench.arguments : аргументы, указанные в требованиях пользователя.instruction : Пользовательские инструкции для задачи.oracle : Содержание Oracle, относящееся к задаче.type : ожидаемый выходной тип на основе содержимого Oracle.output : основная истина, сгенерированная на основе содержимого Oracle.prefix_code : фрагмент кода для подготовки среды выполненияЕсли вы хотите запустить ML-LLM-Bench, вам нужно выполнить пост-обработку в наборе данных. Вы можете использовать следующий код для пост-обработки набора данных:
bash scripts/post_process/prepare.shСм. Post_process для получения более подробной информации.
После клонов подмодулей вы можете запустить
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] , чтобы получить содержимое readme длины 128 тыс.
В соответствии с настройкой 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/ папка сохраняет наш журнал Execute.
Файл 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-Bench, вы можете использовать следующую команду:
docker pull public.ecr.aws/i5g0m1f6/ml-bench
docker run -it public.ecr.aws/i5g0m1f6/ml-bench /bin/bashЭто вытащит новейшее изображение Docker ML-Agent-Bench и запустит его в интерактивной оболочке. Контейнер включает в себя все необходимые зависимости для запуска кодовой базы ML-Agent-Bench.
Для ML-Agent-Bench в OpenDevin, пожалуйста, обратитесь к руководству по настройке OpenDevin.
Пожалуйста, обратитесь к Envs для получения подробной информации.
Распределено по лицензии MIT. Смотрите LICENSE для получения дополнительной информации.