
이 저장소를 모든 서브 모드로 복제하려면 --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 저장소의 ID.github : Github 저장소의 URL.repo_id : 각 저장소 내 샘플의 ID.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 로 전체 및 쿼터 벤치 마크를 생성합니다.
merge.py 에서 readme_content = fr.read() , 50 행에서 readme_content = fr.read()[:100000] 을 변경하여 32k 길이의 readme 컨텐츠를 가져 오거나 readme_content = fr.read()[:400000] 변경하여 128k 길이의 읽기 내용을 얻을 수 있습니다.
128K 환경에서 사용자는 10 분 동안 10 분 안에 Trainset 및 Testset을 준비 할 수 있습니다. 토큰 제한이 없으면 사용자는 전체 데이터 세트를 준비하고 거대한 데이터 세트를 얻는 데 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 .
eval_result 로 시작하는 JSONL 파일 및 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 : 사후 처리 JSONL 형식의 GPT 출력을 실행 가능한 코드 세그먼트를 얻습니다.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 : 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 및 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을 참조하십시오.
ML-Agent-Bench Docker 컨테이너를 실행하려면 다음 명령을 사용할 수 있습니다.
docker pull public.ecr.aws/i5g0m1f6/ml-bench
docker run -it public.ecr.aws/i5g0m1f6/ml-bench /bin/bash이렇게하면 최신 ML-Agent-Bench Docker 이미지를 당겨 대화 형 쉘로 실행합니다. 컨테이너에는 ML-Agent-Bench 코드베이스를 실행하는 데 필요한 모든 종속성이 포함되어 있습니다.
Opendevin의 ML-Agent-Bench의 경우 Opendevin 설정 안내서를 참조하십시오.
자세한 내용은 Envs를 참조하십시오.
MIT 라이센스에 따라 배포됩니다. 자세한 내용은 LICENSE 참조하십시오.