
Um dieses Repository mit all seinen Submodulen zu klonen, verwenden Sie das Flag- --recurse-submodules :
git clone --recurse-submodules https://github.com/gersteinlab/ML-Bench.git
cd ML-Bench Wenn Sie das Repository bereits ohne das Flag --recurse-submodules -Flag geklont haben, können Sie die folgenden Befehle ausführen, um die Submodules zu holen:
git submodule update --init --recursiveDann rennen
pip install -r requirements.txtSie können den Datensatz mit dem folgenden Code laden:
from datasets import load_dataset
ml_bench = load_dataset ( "super-dainiu/ml-bench" ) # splits: ['full', 'quarter']Der Datensatz enthält die folgenden Spalten:
github_id : Die ID des Github -Repositorys.github : Die URL des Github -Repositorys.repo_id : Die ID des Beispiels in jedem Repository.id : Die eindeutige ID des Beispiels im gesamten Datensatz.path : Der Pfad zum entsprechenden Ordner in LLM-Bench.arguments : Die in den Benutzeranforderungen angegebenen Argumente.instruction : Die Benutzeranweisungen für die Aufgabe.oracle : Der für die Aufgabe relevante Orakelinhalt.type : Der erwartete Ausgangstyp basierend auf dem Oracle -Inhalt.output : Die nach dem Oracle -Inhalt erzeugte Grundwahrheitsausgabe.prefix_code : Der Code -Snippet zur Vorbereitung der AusführungsumgebungWenn Sie ML-LlM-Bench ausführen möchten, müssen Sie nach der Verarbeitung im Datensatz nacharbeiten. Sie können den folgenden Code verwenden, um den Datensatz nachzuarbeiten:
bash scripts/post_process/prepare.shWeitere Informationen finden Sie unter post_process.
Nach dem Klon -Submodul können Sie rennen
cd scripts/post_process
bash prepare.sh , um Voll- und Viertel -Benchmark in merged_full_benchmark.jsonl und merged_quarter_benchmark.jsonl zu generieren
Sie können readme_content = fr.read() in merge.py , Zeile 50 zu readme_content = fr.read()[:100000] ändern, um 32K Länge Readme -Inhalt zu erhalten, oder bis zu readme_content = fr.read()[:400000] , um 128K -Länge der LEADME -Inhalte zu erhalten.
Im Rahmen der 128.000 -Einstellung können Benutzer Trainset und Testset in 10 Minuten mit 10 Arbeitern vorbereiten. Ohne Token -Einschränkung benötigen Benutzer möglicherweise 2 Stunden, um den gesamten Datensatz vorzubereiten und einen riesigen Datensatz zu erhalten.
Um den ML-Llm-Bench-Docker-Container auszuführen, können Sie den folgenden Befehl verwenden:
docker pull public.ecr.aws/i5g0m1f6/ml-bench
docker run -it -v ML_Bench:/deep_data public.ecr.aws/i5g0m1f6/ml-bench /bin/bashUm Modellgewichte herunterzuladen und Dateien vorzubereiten, können Sie den folgenden Befehl verwenden:
bash utils/download_model_weight_pics.shEs kann 2 Stunden dauern, um sie automatisch vorzubereiten.
Platzieren Sie Ihre Ergebnisse in output/ Verzeichnis und aktualisieren Sie den --input_path in exec.sh mit Ihrem Pfad. Ändern Sie auch die Protokolladresse.
Führen Sie dann bash utils/exec.sh aus. Und Sie können die Ausführungsprotokolle in Ihrer Protokolldatei überprüfen, die Gesamtergebnisse in output/{{MODEL_NAME}}_{{TASK}}_results_{{TIMESTAMP}}.jsonl anzeigen und sehen die Ergebnisse für jedes Repository in in jedem Repository in der output/{{MODEL_NAME}}_{{TASK}}_results_{{TIMESTAMP}}.jsonl .
Beide JSONL -Dateien, beginnend mit eval_result und eval_total enthalten partielle Ausführungsergebnisse in unserem Artikel.
Der output/ Ordner enthält die für die Tests verwendeten Modell-generierten Ausgänge.
Die logs/ Ordner speichern unser The Execute -Protokoll.
Die Datei utils/temp.py ist nicht für Benutzer gedacht, sondern zum Speichern des von Models verfassten Code.
Darüber hinaus kann der Ausführungsprozess neue unnötige Dateien generieren.
Verwenden Sie das folgende Skript, um die Leistung von OpenAI für diese Aufgabe zu reproduzieren:
bash script/openai/run.sh Sie müssen die Parametereinstellungen in script/openai/run.sh ändern:
type : Wählen Sie aus quarter oder full .model : Modellname.input_file : Dateipfad des Datensatzes.answer_file : Originalantwort im JSON -Format von GPT.parsing_file : Nachbearbeitung der Ausgabe von GPT im JSONL-Format, um ausführbare Code-Segmente zu erhalten.readme_type : Wählen Sie aus oracle_segment und readme .oracle_segment : Der Code -Absatz in der Readme, die für die Aufgabe am relevantesten ist.readme : Der gesamte Text des Readme im Repository, in dem sich die Aufgabe befindet.engine_name : Wählen Sie aus gpt-35-turbo-16k und gpt-4-32 .n_turn : Anzahl der ausführbaren Codes GPT zurückgegeben (5 -mal im Papierversuch).openai_key : Dein OpenAI -API -Schlüssel.Weitere Informationen finden Sie in OpenAI.
Lama-Recipes bietet eine PIP-Verteilung für die einfache Installation und Verwendung in anderen Projekten. Alternativ kann es aus der Quelle installiert werden.
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 .
Per Definition haben wir drei Aufgaben in der Zeitung.
Sie können das folgende Skript verwenden, um die Feinabstimmung von Codellama-7b bei dieser Aufgabe zu reproduzieren:
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 Sie müssen die Parametereinstellungen von OUTPUT_PATH , TASK und DATA_PATH entsprechend ändern.
OUTPUT_DIR : Das Verzeichnis zum Speichern des Modells.TASK : Wählen Sie aus 1 , 2 und 3 .DATA_PATH : Das Verzeichnis des Datensatzes. Sie können das folgende Skript verwenden, um die Inferenzleistung von Codellama-7b bei dieser Aufgabe zu reproduzieren:
python chat_completion.py
--model_name ' codellama/CodeLlama-7b-Instruct-hf '
--peft_model PEFT_MODEL
--prompt_file PROMPT_FILE
--task TASK Sie müssen die Parametereinstellungen von PEFT_MODEL , PROMPT_FILE und TASK ändern.
PEFT_MODEL : Der Pfad des PEFT -Modells.PROMPT_FILE : Der Pfad der Eingabeaufforderungdatei.TASK : Wählen Sie aus 1 , 2 und 3 .Weitere Informationen finden Sie in Finetune.
Um den ML-Agent-Bench-Docker-Container auszuführen, können Sie den folgenden Befehl verwenden:
docker pull public.ecr.aws/i5g0m1f6/ml-bench
docker run -it public.ecr.aws/i5g0m1f6/ml-bench /bin/bashDadurch wird das neueste ML-Agent-Bench-Docker-Bild gezogen und es in einer interaktiven Shell ausgeführt. Der Container enthält alle erforderlichen Abhängigkeiten, um die ML-Agent-Bench-Codebasis auszuführen.
Weitere Informationen zu ML-Agent-Bench in Opendevin finden Sie im OpenVin-Setup-Handbuch.
Weitere Informationen finden Sie in Envs.
Unter der MIT -Lizenz verteilt. Weitere Informationen finden Sie LICENSE .