pip install - r requirements . txt export KAGGLE_USERNAME= " your_kaggle_username "
export KAGGLE_KEY= " your_api_key "
export HF_TOKEN= " your_hf_token " sudo apt install unzipkaggle datasets download -d lizhecheng/lmsys-datasets
unzip lmsys-datasets.zipkaggle datasets download -d lizhecheng/lmsys-lora
unzip lmsys-lora.zip cd src
cd team gemma / cd team llama
python train_xxx.pyKlicken Sie auf Full-Training-Code
Überprüfen Sie unseren Code bei LMSYS GitHub.
Wir verwenden die Anweisungsabstimmung und machen das Eingangsformat von entscheidender Bedeutung. Nach dem Experimentieren mit verschiedenen Formaten haben wir den optimalen Ansatz identifiziert:
Erstens definieren wir eine maximale Länge. Anschließend verkettet wir mehrere Kurven von Eingabeaufforderungspaaren innerhalb dieser Grenze. Wenn ein vorheriges Eingabeaufforderungspaar die maximale Länge überschreitet, wird das neue Eingabeaufforderungspaar in einer separaten Zeile platziert. Betrachten Sie beispielsweise die Eingabeaufforderungen [p1, p2, p3] mit entsprechenden Antworten [A1, A2, A3] und [B1, B2, B3]. Mit dieser Methode können wir zwei Zeilen erzeugen: (P1, A1, B1) und (P2, A2, B2, P3, A3, B3), die Annahme (P1, A1, B1) überschreitet die maximale Länge nicht. Für das Training verwenden wir jedoch nur die letzte Wende des Eingabeaufforderungspaars für jede ID.
Dieser Ansatz bietet zwei wichtige Vorteile:
<start_of_turn>user
Here are two question-answering dialogues. Compare two models' performance on answering questions, determine which is better.
#Prompt1
xxxxx
#Response
##Model A
xxxxx
##Model B
xxxx
#Prompt2
xxxxx
#Response
............
###options
A. Model A
B. Model B
C. Tie
<end_of_turn>
<start_of_turn>model
A<eos>
4bit Qlora auf Gemma-2-9b-it und meta-llama-3.1-8b-instruct, Parameter: r = 32, modules = ["q_proj", "k_proj", "v_proj", "o_proj"].
Anweisungsabbau statt Klassifizierung.
KEINE GRADIENT_Checkpointing_enable (), um die Trainingszeit zu verkürzen.
Verwendete zusätzliche 33K-Daten für Feinabstimmungen und Proben von 10K-Daten, um TTA zu erledigen.
Große CV -Spaltung (80% / 20%), um Duplikate zwischen Zug und Validierung zu vermeiden.
GPU: Mehrfach 80 GB A100 GPUS + Multiple A40 -GPUs.
Setzen Sie die Temperatur = 1,03 für Inferenz.
Submission1: GEMMA-2-9B-IT + LAMA-3.1-8B-IT + GEMMA-2-2B-IT & Submission2: GEMMA-2-9B-IT + LLAMA-3.1-8B-IT + TTA.
Aufgrund einiger bösartiger Menschen war das, was einst ein sehr stabiler und bedeutungsvoller Wettbewerb war, zu einem der schlimmsten in Kaggle's Geschichte.
Vielen Dank an das gesamte Team für die harte Arbeit aller. Machen wir weiter vorwärts!