大模型生成SQL是通用技能,但是经过测试,主流的大模型对Oracle数据库的JSON、Graph、Spatial、向量等专业SQL语法几乎不支持。本文将为您介绍如何在Oracle A10虚拟机上微调出一版新模型,来支持Oracle融合数据库的新特性SQL。OCI A10 GPU实例提供了一个高性价比的解决方案,允许用户以较低的成本获得高性能计算资源。Oracle A10虚拟机配置24GB显存,可以轻松微调Llama-3.1-8B模型。通过OCI控制台或API,用户可以方便地管理和监控其GPU实例。此外,OCI还提供了更加灵活的开发运维工具,进一步降低了管理复杂度。A10实例的创建方法如下图:
虚拟机的配置,需要选择“专业和上一代”(包含GPU)的,操作系统建议选择Ubuntu20.04,配置名为“VM.GPU.A10.1”即可。1. 使用conda管理Python的开发环境,它能够自动解决依赖关系,简化了Python库的管理过程。2. 选择 Unsloth 进行大模型微调,因为它具有显著的技术优势:- 训练速度可提高2到5倍,极大缩短微调时间,适用于快速迭代和实验。
微调步骤:
在进行微调之前,需要加载预训练模型。这里预训练模型选择meta-llama/Llama-3.1-8B-Instruct,该模型经过了监督微调(SFT) 和人类反馈的强化学习(RLHF),并且在公开可用的指令数据集以及超过2500万合成生成的示例上进行了训练,确保了高效性和准确性。代码如下:在微调之前,先测试预训练模型在特定任务上的表现,以便后续对比微调效果。如下图所示,预训练模型在Oracle Spatial SQL生成上存在错误,而微调后的新模型能够准确生成正确的 SQL 语句。
经过模型微调后,新的模型生成了准确的spatial SQL。微调所需的数据集由作者团队构建并审计,确保SQL语句在测试库上能正确执行。数据集涵盖Oracle 23ai数据库的JSON、Graph、Spatial、Text、Vector等全部SQL语法特性。示例的数据集格式为:基于数据集JSON格式设计Train Prompt参考格式,确保模型输入结构化。使用train_prompt_style模板将用户问题、上下文、SQL查询三元素组合成一个训练样本。LoRA(Low-Rank Adaptation)技术提供了一种高效、经济的方式来微调大型语言模型,具有以下优势:- 通过低秩分解矩阵减少需要更新的参数,降低显存需求和计算量。
在大模型微调过程中,涉及多个关键参数,这些参数直接影响模型的训练效果和性能。以下是常见参数的详细解释:训练次数(Epochs):整个训练数据集被完整遍历的次数,Epochs控制模型对数据的学习深度。更大的epochs可以让模型更好地拟合数据,但也可能导致过拟合。学习率(Learning Rate):学习率决定了模型收敛的速度和稳定性。高学习率训练速度快,但可能跳过最优解。低学习率训练更稳定,但可能收敛太慢或陷入局部最优。Batch Size:每次梯度更新所用的样本数量。较大的batch size训练更快,但可能需要更多GPU内存。较小的batch size占用内存少,但梯度可能不稳定。在微调完成后,使用验证集来进行一次全面的性能评估是确保模型质量和可靠性的重要环节。因为即使在训练期间监控了验证损失,并且它看起来稳定或有所改善,这并不保证模型没有过拟合。通过在微调结束后再次使用验证集,可以确认模型是否真正学会了泛化的模式,而不是仅仅记住了训练数据。另外,如果在微调过程中进行了多次实验并调整了不同的超参数,并最终需要选定一个模型配置,此时验证集可以帮助你在这多个候选模型中做出选择,确保所选模型在新数据上的表现最优。如果你计划部署模型并在实际环境中长期使用,定期使用验证集来监控模型的表现也是一个好的实践。这样可以在模型开始出现性能下降时及时采取措施,比如重新训练或更新模型。程序代码参考《微调步骤- 2测试预训练模型》部分。将微调后模型上传到Hugging Face ,以便共享和进一步优化。本次微调工作利用OCI A10 GPU实例,以高性价比的方式成功优化了Llama-3.1-8B以支持Oracle专业SQL。OCI A10的强大计算能力不仅加快了训练速度,还降低了显存需求,使得高效微调成为可能。此外,OCI提供的灵活管理工具简化了部署和维护,使开发者能专注于模型优化,而无需担心底层硬件配置。结合Unsloth和LoRA技术,我们成功实现了对Oracle JSON、Graph、Spatial、Vector 等SQL语法的精准支持,为大模型在数据库SQL生成领域的应用提供了可行方案。微调后的模型在Text2SQL任务中输出的SQL明显比预训练更精确。编辑:范宏伟
最后修改时间:2025-03-19 14:11:51
文章转载自
甲骨文云技术,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。