Xiaoqiang Lin*, Zhaoxuan Wu*, Zhongxiang Dai, Wenyang Hu, Yao Shu, See-Kiong NG, Patrick Jaillet, Bryan Kian Hsiang Low
Projekt Homepage | Arxiv | Papier
Dies ist der Code für das Papier: Verwenden Sie Ihren Instinkt: Anweisungsoptimierung mithilfe neuronaler Banditen in Verbindung mit Transformatoren. Wir stellen alle Codes für unsere Experimente zur Verfügung, darunter:
Unser Code basiert auf dem Code von Ape und Extructzero.
Große Sprachmodelle (LLMs) haben bemerkenswerte Funktionen für Anweisungen gezeigt und in verschiedenen Anwendungen beeindruckende Leistungen erzielt. Die Leistungen von LLMs hängen jedoch stark von den ihnen gegebenen Anweisungen ab, die typischerweise manuell mit erheblichen menschlichen Bemühungen abgestimmt sind. Jüngste Arbeiten haben den BO-Algorithmus (Abfrageeffizientes Bayesian Optimization) verwendet, um die Anweisungen für Black-Box LLMs automatisch zu optimieren. BO ist jedoch normalerweise zu kurz, wenn hoch entwickelte (z. B. hochdimensionale) objektive Funktionen optimiert werden, wie z. B. die Funktionen, die eine Anweisung zur Leistung eines LLM abbilden. Dies ist hauptsächlich auf die begrenzte ausdrucksstarke Leistung des GP -Modells (Gaußschen Prozesses) zurückzuführen, das von BO als Ersatz zur Modellierung der objektiven Funktion verwendet wird. In der Zwischenzeit wurde wiederholt gezeigt, dass neuronale Netzwerke (NNS), insbesondere vorgeborene Transformatoren, eine starke ausdrucksstarke Kraft besitzen und hochkomplexe Funktionen modellieren können. Wir übernehmen also einen neuronalen Banditenalgorithmus, der den GP in BO durch ein NN-Ersatz ersetzt, um Anweisungen für Black-Box-LLMs zu optimieren. Noch wichtiger ist, dass der Neural-Banditen-Algorithmus es uns ermöglicht, das NN-Ersatz natürlich mit der verborgenen Darstellung zu koppeln, die ein vorgebildeter Transformator (dh eine Open-Source-LLM) erlernt hat, die seine Leistung erheblich stärkt. Diese motivieren uns, unsere Anweisungsoptimierung mithilfe neuronaler Banditen in Verbindung mit Transformatoren -Algorithmus vorzuschlagen. Wir führen die Anweisungsoptimierung für ChatGPT durch und verwenden umfangreiche Experimente, um zu zeigen, dass unser Instinkt die vorhandenen Methoden in verschiedenen Aufgaben konsequent übertrifft, z.
Sie können die Daten für die intrinsische Induktion aus dem Github -Repo von Extructzero herunterladen. Sie können den Datensatz von Samsum von der Huggingface -Website herunterladen. Sie können den Datensatz für GSM8K, Aquarat und SVAMP vom Repo für APE herunterladen.
Wir setzen das Datenpräparatur -Notizbuch auf COT/experiments/data/instruction_induction/pre_aqua.ipynb , COT/experiments/data/instruction_induction/pre_gsm8k.ipynb und Induction/experiments/data/nlptasks/pre_nlp_data.ipynb ein.
conda env create -f environment.yml unseren Code ausführen
Wir bieten Bash -Skripte für die Ausführung unserer Experimente zur Einführung von Anweisungen bei Induction/experiments/run_neural_bandits.sh . Um es ordnungsgemäß auszuführen, müssen Sie Folgendes im Terminal ausführen:
cd Induction
bash experiments/run_neural_bandits.sh
Um unseren Code für die Verbesserung der Anweisung der Kette des Kindes auszuführen, müssen Sie die Skript COT/experiments/run_cot_bandits.sh wie folgt ausführen:
cd COT
bash experiments/run_cot_bandits.sh
Beachten Sie, dass Sie vor dem Ausführen des obigen Bash-Skripts den OpenAI-Schlüssel angeben müssen, um gpt-turbo-3.5-0301 -API aufzurufen. Ändern Sie dazu Folgendes in den beiden Bash -Skripten:
export export OPENAI_API_KEY=YOUR_KEY
@inproceedings{lin2024use,
title={Use Your {INSTINCT}: INSTruction optimization for LLMs usIng Neural bandits Coupled with Transformers},
author={Xiaoqiang Lin and Zhaoxuan Wu and Zhongxiang Dai and Wenyang Hu and Yao Shu and See-Kiong Ng and Patrick Jaillet and Bryan Kian Hsiang Low},
year={2024},
booktitle={Proc. ICML}
}