
Para clonar este repositorio con todos sus submódulos, use el indicador --recurse-submodules :
git clone --recurse-submodules https://github.com/gersteinlab/ML-Bench.git
cd ML-Bench Si ya ha clonado el repositorio sin el indicador --recurse-submodules , puede ejecutar los siguientes comandos para obtener los submódulos:
git submodule update --init --recursiveLuego corre
pip install -r requirements.txtPuede cargar el conjunto de datos utilizando el siguiente código:
from datasets import load_dataset
ml_bench = load_dataset ( "super-dainiu/ml-bench" ) # splits: ['full', 'quarter']El conjunto de datos contiene las siguientes columnas:
github_id : la ID del repositorio de GitHub.github : la URL del repositorio de GitHub.repo_id : la ID de la muestra dentro de cada repositorio.id : la identificación única de la muestra en todo el conjunto de datos.path : la ruta a la carpeta correspondiente en el banco LLM.arguments : los argumentos especificados en los requisitos del usuario.instruction : las instrucciones del usuario para la tarea.oracle : el contenido de Oracle relevante para la tarea.type : el tipo de salida esperado basado en el contenido de Oracle.output : la salida de la verdad de tierra generada en función del contenido de Oracle.prefix_code : el fragmento de código para preparar el entorno de ejecuciónSi desea ejecutar ML-LLM-Bench, debe realizar el procesamiento posterior en el conjunto de datos. Puede usar el siguiente código para procesar el conjunto de datos:
bash scripts/post_process/prepare.shVer post_process para más detalles.
Después de los submódulos de clon, puede ejecutar
cd scripts/post_process
bash prepare.sh para generar referencia completa y trimestre en merged_full_benchmark.jsonl y merged_quarter_benchmark.jsonl
Puede cambiar readme_content = fr.read() en merge.py , línea 50 a readme_content = fr.read()[:100000] para obtener 32k Longitud de contenido ReadMe o para readme_content = fr.read()[:400000] para obtener contenidos Readme de 128k de longitud.
Bajo la configuración de 128k, los usuarios pueden preparar TrainSet y TestSet en 10 minutos con 10 trabajadores. Sin limitación de token, los usuarios pueden necesitar 2 horas para preparar todo el conjunto de datos y obtener un gran conjunto de datos.
Para ejecutar el contenedor Docker ML-LLM-Bench, puede usar el siguiente comando:
docker pull public.ecr.aws/i5g0m1f6/ml-bench
docker run -it -v ML_Bench:/deep_data public.ecr.aws/i5g0m1f6/ml-bench /bin/bashPara descargar pesas de modelo y preparar archivos, puede usar el siguiente comando:
bash utils/download_model_weight_pics.shPuede tardar 2 horas en prepararlos automáticamente.
Coloque sus resultados en output/ directorio y actualice el --input_path en exec.sh con su ruta. Además, modifique la dirección de registro.
Luego ejecute bash utils/exec.sh . Y puede verificar los registros de ejecución en su archivo de registro, ver los resultados generales en output/{{MODEL_NAME}}_{{TASK}}_results_{{TIMESTAMP}}.jsonl , y vea los resultados para cada apositorio en output/{{MODEL_NAME}}_{{TASK}}_results_{{TIMESTAMP}}.jsonl .
Ambos archivos JSONL que comienzan con eval_result y eval_total contienen resultados de ejecución parcial en nuestro documento.
La output/ carpeta incluye las salidas generadas por el modelo que utilizamos para las pruebas.
La carpeta logs/ registros guarda nuestro registro de ejecución.
El archivo utils/temp.py no es para usuarios, se utiliza para almacenar el código escrito por los modelos.
Además, el proceso de ejecución puede generar nuevos archivos innecesarios.
Para reproducir el rendimiento de OpenAI en esta tarea, use el siguiente script:
bash script/openai/run.sh Debe cambiar la configuración de parámetros en script/openai/run.sh :
type : Elija entre quarter o full .model : Nombre del modelo.input_file : ruta de archivo del conjunto de datos.answer_file : Respuesta original en formato JSON de GPT.parsing_file : postprocese la salida de GPT en formato JSONL para obtener segmentos de código ejecutable.readme_type : elija entre oracle_segment y readme .oracle_segment : el párrafo de código en el readMe que es más relevante para la tarea.readme : todo el texto del ReadMe en el repositorio donde se encuentra la tarea.engine_name : elija entre gpt-35-turbo-16k y gpt-4-32 .n_turn : número de códigos ejecutables GPT Devuelve (5 veces en el experimento en papel).openai_key : su tecla API OpenAI.Consulte OpenAI para obtener más detalles.
Llama-Recipes proporciona una distribución PIP para una fácil instalación y uso en otros proyectos. Alternativamente, se puede instalar desde la fuente.
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 .
Por definición, tenemos tres tareas en el documento.
Puede usar el siguiente script para reproducir el rendimiento de ajuste de Codellama-7B en esta tarea:
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 Debe cambiar la configuración de parámetros de OUTPUT_PATH , TASK y DATA_PATH correspondientemente.
OUTPUT_DIR : el directorio para guardar el modelo.TASK : elija entre 1 , 2 y 3 .DATA_PATH : el directorio del conjunto de datos. Puede usar el siguiente script para reproducir el rendimiento de inferencia de Codellama-7B en esta tarea:
python chat_completion.py
--model_name ' codellama/CodeLlama-7b-Instruct-hf '
--peft_model PEFT_MODEL
--prompt_file PROMPT_FILE
--task TASK Debe cambiar la configuración de parámetros de PEFT_MODEL , PROMPT_FILE y TASK correspondientemente.
PEFT_MODEL : La ruta del modelo PEFT.PROMPT_FILE : la ruta del archivo de solicitud.TASK : elija entre 1 , 2 y 3 .Consulte Finetune para más detalles.
Para ejecutar el contenedor Docker ML-Agent Bench, puede usar el siguiente comando:
docker pull public.ecr.aws/i5g0m1f6/ml-bench
docker run -it public.ecr.aws/i5g0m1f6/ml-bench /bin/bashEsto extraerá la última imagen de Docker de Bench ML-Agent y la ejecutará en un caparazón interactivo. El contenedor incluye todas las dependencias necesarias para ejecutar la base de código ML-Agent Bench.
Para el banco ML-Agent en OpenDevin, consulte la Guía de configuración de OpenDevin.
Consulte Envss para obtener más detalles.
Distribuido bajo la licencia MIT. Vea LICENSE para más información.