使用最新技术调优你自己的开源LLM
通过最新技术提升你自己的开源LLM体验
在本文中,我会调整一个基本的LLama2 LLM来输出SQL代码。我使用参数高效的微调技术来优化这个过程。

在上一篇文章中,我开始提出为什么你需要考虑训练自己的LLM的理由。我还简要介绍了硬件要求以及优化训练和推理的方法。在本文中,我将详细介绍如何微调一个开源的LLM,并提供代码片段供您参考和复现结果。我们将微调一个Llama2–7B模型,根据自然语言输入为我们提供SQL输出 – 换句话说,该模型将把我们用自然语言提出的问题转换为SQL查询:
“多少顾客在十一月份决定购买鸡蛋?”
转化为相应的SQL查询:
SELECT COUNT(DISTINCT customer_id) AS num_customers
FROM purchases
WHERE product_name = 'eggs'
AND EXTRACT(MONTH FROM purchase_date) = 11;
在每种情况下,数据库(DB)的模式将作为LLM的工作上下文提供:
CREATE TABLE purchases (
purchase_id INT PRIMARY KEY,
customer_id INT,
product_name VARCHAR(255),
purchase_date DATE);
我们将在微调过程中使用这个数据集。虽然本文主要关注实现上述任务,但方法将以适合您需求的方式提供。
在本文中,我将使用Google Colab来微调LLM。我们将使用我之前提到的know_sql数据集(OpenRAIL许可证)。我们还将使用axolotl框架来处理微调过程。他们在GitHub页面上有一些很棒的文档。与其手动处理微调过程的大约100行代码不同,axolotl允许我们只需编辑一个YAML配置文件,即可对我们要微调的相应模型进行微调。我将在本文中详细介绍整个过程,但如果有任何不清楚的地方,我建议先阅读axolotl的文档。