OpenBezoar: Modelli Piccoli, Economici e Aperti Addestrati su Miscele di Dati di Istruzione
OpenBezoar: Small, Cost-Effective and Open Models Trained on Mixes of Instruction Data
April 18, 2024
Autori: Chandeepa Dissanayake, Lahiru Lowe, Sachith Gunasekara, Yasiru Ratnayake
cs.AI
Abstract
Il fine-tuning di LLM preaddestrati per una varietà di task downstream ha dimostrato un successo notevole e ha catturato l'interesse sia del mondo accademico che dei professionisti. Per garantire che tali LLM fine-tunati siano allineati con le preferenze umane, sono emerse tecniche come RLHF e DPO. Allo stesso tempo, c'è un crescente interesse per modelli con un numero ridotto di parametri. In questo lavoro, utilizzando OpenLLaMA 3Bv2 come modello di base, descriviamo la ricetta utilizzata per il fine-tuning della famiglia di modelli OpenBezoar. In questa ricetta: generiamo prima dati sintetici per il fine-tuning su istruzioni utilizzando una variante open e commercialmente non restrittiva del modello Falcon-40B fine-tunato su istruzioni, seguendo tre schemi basati su: LaMini-LM, WizardLM/Evol-Instruct (con il dataset databricks-dolly-15k come dataset di partenza) e Orca (con la Flan Collection come dataset di partenza), quindi filtriamo queste generazioni utilizzando GPT-4 come proxy umano. Successivamente, eseguiamo un fine-tuning supervisionato basato su QLoRA in modo sequenziale con ciascuno schema. Il checkpoint risultante viene ulteriormente fine-tunato con un sottoinsieme del dataset HH-RLHF per minimizzare lo spostamento di distribuzione prima di utilizzare la loss DPO per ottenere il checkpoint finale. La valutazione viene effettuata con i task/metriche di LM Eval Harness e su MT-Bench utilizzando il framework "LLM-as-a-judge" con Claude 2.1, con il risultato che il checkpoint finale, "OpenBezoar-HH-RLHF-DPO", dimostra prestazioni superiori rispetto a molti modelli con 3B parametri, superando persino il modello migliore in una delle categorie della Huggingface Open LLM Leaderboard. Rilasciamo i checkpoint "OpenBezoar-SFT", "OpenBezoar-HH-RLHF-SFT", "OpenBezoar-HH-RLHF-DPO", insieme ai nostri dataset generati su HuggingFace all'indirizzo https://huggingface.co/collections/SurgeGlobal/open-bezoar-6620a24923e12127e9e2b9cc e il nostro codice su https://bitbucket.org/paladinanalytics/workspace/projects/OP.
English
Instruction fine-tuning pretrained LLMs for diverse downstream tasks has
demonstrated remarkable success and has captured the interest of both academics
and practitioners. To ensure such fine-tuned LLMs align with human preferences,
techniques such as RLHF and DPO have emerged. At the same time, there is
increasing interest in smaller parameter counts for models. In this work, using
OpenLLaMA 3Bv2 as a base model, we describe the recipe used to fine-tune the
OpenBezoar family of models. In this recipe: We first generate synthetic
instruction fine-tuning data using an open and commercially non-restrictive
instruction fine-tuned variant of the Falcon-40B model under three schemes
based on: LaMini-LM, WizardLM/Evol-Instruct (with databricks-dolly-15k as a
seed dataset) and Orca (with the Flan Collection as a seed dataset), then
filter these generations using GPT-4 as a human proxy. We then perform
cost-effective QLoRA-based supervised fine-tuning sequentially with each
scheme. The resulting checkpoint is further fine-tuned with a subset of the
HH-RLHF dataset to minimize distribution shift prior to using the DPO loss to
obtain the final checkpoint. Evaluation is done with the LM Eval Harness
tasks/metrics as well as on MT-Bench using the "LLM-as-a-judge" framework with
Claude 2.1, with the finding that the final checkpoint,
"OpenBezoar-HH-RLHF-DPO", demonstrates superior performance over many models at
the 3B parameter scale, even outperforming the top model in one of the
categories on the Huggingface Open LLM Leaderboard. We release
"OpenBezoar-SFT", "OpenBezoar-HH-RLHF-SFT", "OpenBezoar-HH-RLHF-DPO"
checkpoints, alongside our generated datasets on HuggingFace at
https://huggingface.co/collections/SurgeGlobal/open-bezoar-6620a24923e12127e9e2b9cc
and our codebase at
https://bitbucket.org/paladinanalytics/workspace/projects/OP.