In questo articolo, ottimizzo un LLM LLama2 di base per l’output del codice SQL. Utilizzo tecniche di parametrizzazione efficiente dei parametri per ottimizzare il processo.
In un articolo precedenteHo iniziato a spiegare perché avresti preso in considerazione la formazione del tuo LLM. Ho inoltre fornito una breve introduzione ai requisiti hardware, nonché ai metodi per ottimizzare l’addestramento e l’inferenza. In questo articolo, tratterò esattamente come mettere a punto un LLM open source e fornirò frammenti di codice da seguire e riprodurre i risultati. Metteremo a punto un modello Llama2–7B per fornirci un output SQL basato sull’input in linguaggio naturale – in altre parole, il modello convertirà una domanda che poniamo in linguaggio naturale:
“Quanti clienti hanno deciso di acquistare le uova nel mese di novembre?”
A una query SQL che recupera il risultato corrispondente:
SELECT COUNT(DISTINCT customer_id) AS num_customers
FROM purchases
WHERE product_name = 'eggs'
AND EXTRACT(MONTH FROM purchase_date) = 11;
In ogni caso, lo schema del database (DB) verrà fornito come contesto con cui il LLM potrà lavorare:
CREATE TABLE purchases (
purchase_id INT PRIMARY KEY,
customer_id INT,
product_name VARCHAR(255),
purchase_date DATE
);
Useremo questo set di dati nel processo di sintonizzazione. Sebbene questo articolo sia incentrato principalmente sul raggiungimento del compito di cui sopra, la metodologia verrà fornita in modo tale da poter adattare il processo di ottimizzazione in base alle proprie esigenze.
In questo articolo utilizzerò Google Co per mettere a punto il LLM. Utilizzeremo il set di dati know_sql (licenza OpenRAIL) di cui ho parlato in precedenza. Utilizzeremo anche il struttura dell’axolotl per gestire il processo di messa a punto. Hanno un’ottima documentazione sulla loro pagina GitHub. Invece di scrivere circa 100 righe di codice per gestire manualmente il processo di messa a punto, axolotl ci consente di modificare semplicemente un file di configurazione YAML per il rispettivo modello che stiamo cercando di mettere a punto. Esaminerò il processo esatto in questo articolo, ma suggerirei di leggere la documentazione di axolotl se qualcosa non è chiaro.
Fonte: towardsdatascience.com