当前位置: 首页 > news >正文

以翻译 Kubernetes 文档为例,探索 AI 模型 Fine-Tuning 微调

在现在的 AI 领域,Fine-Tuning(微调)是一种常见且有效的方法,通过对已经训练好的模型进行特定任务的微调,可以使模型在特定场景下表现得更加出色和符合需求。在这篇文章中,我将以 Kubernetes 文档的英译中为背景,分享我进行 Fine-Tuning 的探索过程。

Fine-Tuning 的基本过程

Fine-Tuning 的核心思想是,在一个预训练模型的基础上,使用特定领域的数据进行进一步训练,从而让模型更好地适应该领域。通常,Fine-Tuning 包括以下几个步骤:

  • • 选择预训练模型:根据任务需求选择合适的预训练模型,例如特定领域模型或者通用的大语言模型(LLM)。
  • • 准备数据集:收集并整理与目标任务相关的数据集,为模型微调提供训练样本。
  • • 模型微调:通过在该数据集上进行训练,使模型在特定任务中表现得更好。
  • • 模型评估与优化:评估模型表现,根据需要进行调整。
  • • 输出新模型:微调完成后,保存优化后的模型,供后续任务使用。

在这次实验中,我首先尝试使用专用的翻译模型进行 Fine-Tuning,然后进一步尝试以大语言模型(LLM)为基础进行 Fine-Tuning

基于特定领域模型的 Fine-Tuning

由于翻译是一个特定领域,已经存在很多相关的模型,并且这些模型相比于 LLM 会更小。因此,我首先选择了 HuggingFace 上的 Helsinki-NLP/opus-mt-en-zh 模型进行尝试。

数据准备:我的数据集取自 Kubernetes 官方文档,然后整理成了 jsonl 文件,内容如下图所示,en 表示英文原文,zh 表示对应的中文翻译:

图片

代码实现如下:

图片

图片

基本过程就是:加载基础模型、加载并划分数据集、数据预处理、设置训练参数然后训练、评估、最后输出微调好的新模型。

由于我本地硬件资源的限制,我只能加载部分数据进行训练,并且降低了训练的批次和轮次,读者可以根据实际情况调整为不同的参数。

基于 LLM 的 Fine-Tuning 尝试

Seq2Seq 和 CausalLM 的区别

上文中使用的翻译领域模型是一种 Seq2Seq(序列到序列)模型,它使用的是 encoder-decoder(编码-解码)架构,编码器将输入序列编码为一个上下文向量,解码器基于这个上下文向量生成输出序列,翻译的过程就是一个编码解码的过程。

而常见的 LLM 则属于 CausalLM(因果语言模型),基于自回归方式,仅考虑前面的上下文信息来生成后续词语,其实就是文字接龙。

LLM Fine-Tuning

Fine-Tuning 的过程基本类似,但是由于 LLMCausalLM)与 Seq2Seqencoder-decoder)模型并不相同,因此两者在数据集的输入格式、训练方式、评估存在区别。

比如,使用 LLM 进行 Fine-Tuning 的时候,需要对输入数据进行额外的 prompt 格式转换:

"""<|im_start|>system
You are a professional translator who can translate English to Chinese accurately while preserving the original formatting and technical terms.
<|im_end|>
<|im_start|>user
Translate the following English text to Chinese:
{en_text}
<|im_end|>
<|im_start|>assistant
{zh_text}
<|im_end|>"""

通过 system 指定背景,user 代表用户,assistant 代表 AI 的回答,把数据集按照上述格式填充,然后再进行训练。

使用 LoRA 加速 Fine-Tuning

本地训练 LLM 会更加消耗资源,即使我只选择了 Qwen2.5-0.5B 这个小模型,只加载数据集的部分数据,并且调整训练参数也无法完成 Fine-Tuning。因此,我不得不寻求一种资源占用更低、性能更好的方式,而 LoRA 就是其中一种。

LoRA 通过在训练大型模型时引入低秩矩阵分解,只对模型的一部分参数进行 Fine-Tuning,其余参数保持不变,从而显著减少内存占用并提高训练效率。

我的代码实现如下:

图片

图片

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

通过 LoRA 技术,我得以在有限的硬件资源下完成了 LLMFine-Tuning

总结

在这次基于 Kubernetes 文档的翻译实验中,我探索了分别使用特定领域模型和 LLM 进行 Fine-Tuning 的过程,并通过 LoRA 技术有效地提升了 Fine-Tuning 的性能。除了 LoRA 之外,还有 AdapterQLoRADoRA 等等,它们都属于 Parameter-Efficient Fine-TuningPEFT)的研究范畴。

那么,如何系统的去学习大模型LLM?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

所有资料 ⚡️ ,朋友们如果有需要全套 《LLM大模型入门+进阶学习资源包》,扫码获取~
在这里插入图片描述

篇幅有限,部分资料如下:

👉LLM大模型学习指南+路线汇总👈

💥大模型入门要点,扫盲必看!
在这里插入图片描述
💥既然要系统的学习大模型,那么学习路线是必不可少的,这份路线能帮助你快速梳理知识,形成自己的体系。
在这里插入图片描述

👉大模型入门实战训练👈

💥光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

👉国内企业大模型落地应用案例👈

💥《中国大模型落地应用案例集》 收录了52个优秀的大模型落地应用案例,这些案例覆盖了金融、医疗、教育、交通、制造等众多领域,无论是对于大模型技术的研究者,还是对于希望了解大模型技术在实际业务中如何应用的业内人士,都具有很高的参考价值。 (文末领取)
在这里插入图片描述
💥《2024大模型行业应用十大典范案例集》 汇集了文化、医药、IT、钢铁、航空、企业服务等行业在大模型应用领域的典范案例。

在这里插入图片描述

👉LLM大模型学习视频👈

💥观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。 (文末领取)
在这里插入图片描述

👉640份大模型行业报告👈

💥包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
在这里插入图片描述

👉获取方式:

这份完整版的大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓
在这里插入图片描述


http://www.mrgr.cn/news/58211.html

相关文章:

  • 部署Leanote 蚂蚁笔记
  • V2X介绍
  • 初识jsp
  • vue通过JSON文件生成KML文件源码
  • Linux的目录结构 常用基础命令(2)
  • 基于stm32的4G模块点灯实验
  • 为什么有些编程语言不建议用下划线作为标识符开头?标识符的特殊字符。为什么不指定编译生成文件名, 默认是a.out?函数入口一定是main吗?
  • 创新业态下金融头部机构在 FICC 平台建设上的思考与实践
  • 人工智能技术的应用前景及对生活和工作方式的影响
  • 晨辉考试抽签软件的两种注册方法之二:在线注册
  • WebView渲染异常导致闪退解决方案
  • 开放式耳机推荐千元左右有哪些?开放式耳机推荐品牌
  • 迅为3A6000_7A2000核心主板龙芯全国产处理器龙芯3A5000等龙架构处理器软件兼容
  • 绝绝子工具
  • Java每日面试题(前端Vue拓展)(day20)
  • Web大学生网页作业成品——抗击疫情网页设计与实现(HTML+CSS)(4个页面)
  • 时间数据可视化基础实验(南丁格尔玫瑰图)——Python热狗大胃王比赛前三名分析
  • mysql原理、部署mysql主从+读写分离、监控mysql主从脚本
  • 【傻瓜教程】阿里云图标引入自己的项目
  • 电动机的启动,制动及保护
  • 6 C语言编程基础:注释的重要性与使用
  • 【工具】新手礼包之git相关环境包括中文的一套流程{收集和整理},gitlab的使用
  • [专有网络VPC]高可用虚拟IP(HaVip)
  • 基于SpringBoot的时装购物系统【源码】+【论文】
  • 没有密码,如何取消Word文档的只读模式?
  • RJ45 网口--内部有/没有变压器的连接器