这里我们就要提到FIM了,Fill-in-the-Middle(FIM,或 中间填充)是一种让语言模型在文本的任意位置(开头、中间或结尾)动态生成缺失内容的技术,突破了传统自回归模型(如GPT)只能从左到右生成的限制。它的核心思想是双向上下文建模和动态插入生成,广泛应用于代码补全、文本编辑、指令生成等场景。
1. Fill-in-the-Middle(FIM)的基本原理
(1) 传统自回归生成的局限
-
单向生成:GPT类模型只能按顺序(从左到右)生成文本,无法在已有文本中“插入”内容。
-
例如,给定前缀
"请生成一段文本,其中包含以下_____"
,模型只能继续向后生成,无法补全中间的空白。
-
(2) FIM 的核心改进
FIM 通过以下两种方式实现灵活填空:
-
双向上下文编码
-
同时利用“前缀(prefix)”和“后缀(suffix)”信息,模型能理解缺失部分(middle)的上下文。
- 例如:
输入:[前缀] "请生成一段文本,其中包含以下_____" [后缀] "。文本内容:'打开文件后检查格式。'" 输出:模型补全中间部分 → "指令:'操作步骤:1. 打开文件;2. 检查格式'"
-
-
非连续生成(Non-autoregressive 或部分自回归)
-
允许模型直接预测缺失部分,而非逐词生成(类似T5的填空式生成)。
-
2. FIM 的技术实现方法
(1) 数据格式:特殊标记分隔
FIM 需要将输入文本划分为三部分,并用特殊标记(如<PRE>
、<SUF>
、<MID>
)标识:
原始文本: "请生成一段文本,其中包含以下指令。文本内容:'打开文件后检查格式。'"
拆分后:
<PRE> 请生成一段文本,其中包含以下 <SUF> 。文本内容:'打开文件后检查格式。' <MID> 指令:
-
模型任务:根据
<PRE>
和<SUF>
预测<MID>
的内容。
(2) 模型架构
支持 FIM 的模型需具备以下能力:
-
双向注意力机制
-
如 T5、GLM、StarCoder(代码补全专用),可同时编码前缀和后缀。
-
-
动态位置编码
-
处理非连续文本的位置关系(如GLM的2D位置编码)。
-
-
插入式生成(Insertion-based Decoding)
-
模型在生成时选择“插入位置”和内容(如InsertGPT)。
-
(3) 训练策略
-
掩码策略:随机挖空文本的中间部分,让模型学习补全。
-
例如:随机选择文本片段作为
<MID>
,其余部分分为<PRE>
和<SUF>
。
-
-
损失函数:仅计算
<MID>
部分的预测损失(交叉熵)。
3. FIM 的实际应用案例
(1) 代码补全(如GitHub Copilot)
- 场景:开发者写代码时,模型补全中间缺失的函数或变量。
<PRE> def calculate_sum(a, b): return <SUF> <MID> a + b
-
模型:StarCoder、Codex(支持FIM模式)。
(2) 指令生成(Reverse Mode Generation)
- 场景:根据已有文本生成合适的指令。
<PRE> 文本内容:"打开文件后检查格式。" <SUF> <MID> 指令:"操作步骤:1. 打开文件;2. 检查格式。"
(3) 文本编辑(如句子改写)
- 场景:在句子中间插入修饰语。
<PRE> "深度学习是" <SUF> "领域的重要技术。" <MID> "当前人工智能"
这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
如何学习AI大模型?
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓