Perfeziona il tuo personale LLM open source utilizzando le ultime tecniche

Perfeziona il tuo personalissimo LLM open source con le ultime tecniche

In questo articolo sintonizzo un LLM base LLama2 per generare codice SQL. Utilizzo tecniche di ottimizzazione del processo di fine-tuning dei parametri efficienti.

Source: https://www.pexels.com/photo/calm-body-of-lake-between-mountains-346529/

In un articolo precedente, ho iniziato a mostrare perché dovresti considerare l’addestramento del tuo LLM. Ho anche fornito una breve introduzione ai requisiti hardware, così come i metodi per ottimizzare l’addestramento e l’inferenza. In questo articolo, spiegherò esattamente come eseguire il fine-tuning di un LLM open-source e fornirò frammenti di codice affinché tu possa seguire e riprodurre i risultati. Sintonizzeremo un modello Llama2–7B per ottenere un output SQL basato su input in linguaggio naturale, in altre parole, il modello convertirà una domanda che poniamo in linguaggio naturale:

“Quanti clienti hanno deciso di comprare delle uova nel mese di novembre?”

In una query SQL che restituirà il risultato corrispondente:

SELECT COUNT(DISTINCT customer_id) AS num_customersFROM purchasesWHERE product_name = 'eggs'AND EXTRACT(MONTH FROM purchase_date) = 11;

In ogni caso, lo schema del database (DB) verrà fornito come contesto di lavoro per il LLM:

CREATE TABLE purchases (    purchase_id INT PRIMARY KEY,    customer_id INT,    product_name VARCHAR(255),    purchase_date DATE);

Utilizzeremo questo dataset nel processo di sintonizzazione. Benché questo articolo si concentri principalmente sul raggiungimento dell’obiettivo sopra descritto, la metodologia verrà presentata in modo tale che tu possa adattare il processo di sintonizzazione in base alle tue esigenze.

In questo articolo userò Google Colab per eseguire il fine-tuning del LLM. Useremo il dataset know_sql (licenza OpenRAIL) che ho menzionato in precedenza. Useremo anche il framework axolotl per gestire il processo di fine-tuning. Il loro GitHub contiene una documentazione molto utile. Invece di scrivere le ~100 righe di codice per gestire manualmente il processo di fine-tuning, axolotl ci permette di modificare semplicemente un file di configurazione YAML per il modello rispettivo che vogliamo sintonizzare. In questo articolo esaminerò il processo esatto, ma consiglierei di leggere la documentazione di axolotl se qualcosa non è chiaro.