先看一个观点,先说图灵测试,测的是“像不像”,不是“是不是, 图灵测试本质上是行为主义的,它只看AI表现出来的对话行为像不像人,并不关心它内部是怎么想的,有没有理解,有没有意识。
新一周的第一天,来看两个问题,一个是RAG中的表格处理问题,如何进行序列化。另一个是RL用于推理模型训练的一些分析,为消融实验,有些定性得结论,结论可以参考。
一、再看表格处理中的序列化问题
关于表格的RAG问题,我们之前在《表格RAG怎么做》(https://mp.weixin.qq.com/s/cT4q7Fz6QW6fUIX927b5Gg)中有讲过,并且在《Large Language Models (LLMs) on Tabular Data: Predic-tion, Generation, and Understanding - A Survey》(https://arxiv.org/pdf/2402.17944)中也可以进一步看到具体的表格处理技术总结。
其中,表格序列化是核心之一,我们来看看。
序列化的意思是将表格数据转换为文本格式,以便输入到LLM中。常见的文本格式包括Markdown、LaTeX和X-Separated等。公式为:Text=Serialize(Table),其中,Serialize表示序列化函数,Table表示表格数据。
序列化的本质是将一个大型表格转换为一组小的、上下文独立的字符串。经过广泛的实验和结构化输出模式,找到了一个解决方案,即使是GPT-4o-mini也能几乎无损地序列化大型表格。最初,以Markdown格式将表格输入LLM,但后来改用HTML格式(这在这里证明很有用)。语言模型更容易理解它,而且它允许描述带有合并单元格、子标题和其他结构复杂性的表格。
例如,要回答**“2021年公司股东权益是多少?”**这样的问题,只需向LLM提供一句话就足够了,而不需要提供包含大量“噪音”的大型结构。
在序列化过程中,整个表被转换成一组这样的独立块:
具体操作在:https://github.com/IlyaRice/RAG-Challenge-2/blob/3ed9a2a7453420ed96cfc48939ea42d47a5f7b1c/src/tables_serialization.py#L313-L345
这种思路其实是思路就是行列扫描,nxm,但这块容易出现爆炸问题。对于大表召回,就很难办了,上下文窗口有限,比如对比某一列,或者某一行,这个行列有几百条。但其实也有解法,这个只是用于召回,可以作为桥梁,将整张表的html格式返回,这样能解决部分问题,做一些后处理。
各种方案的优缺点:
1)Markdown格式,将表格数据转换为Markdown格式的文本,每行用竖线分隔,列用竖杠分隔。优点是易于阅读和编辑,缺点是可能不够紧凑;
2)LaTeX格式,将表格数据转换为LaTeX格式的文本,使用双反斜杠和竖线进行分隔。优点是格式严谨,适合复杂的表格,缺点是可读性较差。
3)X-Separated格式,将表格数据转换为以逗号或其他分隔符分隔的文本。优点是简洁,适合自动化处理,缺点是可能不够直观。
4)Attribute-Value Pairs,将表格数据转换为属性-值对的文本格式。优点是简单直接,缺点是可能不够清晰。
5)HTML格式,将表格数据转换为HTML元素。优点是格式丰富,适合复杂的表格,缺点是可读性较差;
5)Sentences,将表格数据转换为自然语言句子。优点是语义丰富,缺点是可能过于冗长。
这里的经验是,大模型的性能对输入表格格式敏感。DFLoader和JSON格式更适合事实查找和表格转换任务。HTML或XML表格格式比表格问答和表格值任务更容易被GPT模型理解,但需要更多的标记消耗。同标记语言(特别是HTML)在GPT3.5和GPT4上的表现优于X分隔格式,这里的假设是,GPT模型在大量网络数据上进行训练,因此可能在解释表格时接触到更多的HTML和XML格式。
二、R1-like推理模型的实证分析
关于RL用于推理模型的一些分析,《An Empirical Study on Eliciting and Improving R1-like Reasoning Models》,https://arxiv.org/pdf/2503.04548,做了几个消融实验,还蛮有趣的。
例如基模型实验中,直接对预训练的基模型进行RL训练,探索训练超参数的影响,分析不同骨干模型的效果,研究提示设计对推理能力的影响,以及观察RL训练过程中代表性推理模式的出现。
微调模型实验中,通过长链推理数据(CoT)冷启动微调基础模型,然后进行RL训练。比较了合成数据和蒸馏数据的效果。
工具操作实验中选择DEEPSEEK-R1-DISTILL-QWEN-32B作为骨干模型,通过示范数据蒸馏和SFT实验逐步培养工具操作能力,然后进行RL训练。
有以下几个结论可以读读:
1、Base模型和SFT模型哪个好?
在使用相同RL策略和数据的情况下,对比了QWEN2.5-7B-Base和QWEN2.5-7B-INSTRUCT。
几个结论:
预训练后,基础模型已经展现出执行单独复杂推理动作的潜力。RL过程有效地激活了这一能力,使模型能够将这些动作整合成一个连贯且深思熟虑的思考过程。
Qwen2.5-7b-ins能够按照指令进行思考和推理,响应长度增加缓慢;Qwen2.5-7b在RL早期阶段(0~30步)响应长度迅速增加,随后与ins模型趋势相似。由于Qwen2.5-7b是base模型,输出长度难以确定,模型自发学会增加响应长度来提高奖励,最终趋势与指令模型相似。
这似乎暗示对于RL而言,激发的是预训练时的推理能力,做不做指令遵循SFT可能并不会决定后续效果。
2、强化学习(RL)的几个因素对基础模型的影响比较关键?
大型推理模型的表现受到RL设置的严重影响。以下超参数对RL训练的影响最为显著:
训练批量大小(Train Batch Size),较大的训练批量大小(如1024)能显著提高训练效率,使模型在早期训练阶段快速提升性能,并且表现出更高的稳定性。使用较大批量大小进行训练表现出更大的稳定性,与较小批量大小相比,训练指标波动显著减少。
学习策略(Learning Strategy),on-policy学习策略相比off-policy学习策略效果更好,因为它鼓励更大的探索,模型在训练过程中自然且迅速地增加响应长度,并在测试集上表现更优。
展开次数(Rollout Times),较多的展开次数(如64次)显著提高了训练性能,鼓励模型生成更长的响应,并带来更多的探索。
展开温度(Rollout Temperature),较高的展开温度(如1.2)有助于模型在早期训练阶段快速扩展响应长度,并且在某些情况下表现优于较低温度的设置。比较了n=8和n=64的情况,并发现增加展开次数显著提高了训练性能,鼓励模型生成更长的响应并进行更多探索。
然而,较高的温度并不总是有益的;提高的温度可以促进探索,但也可能导致生成更多无意义的内容(重复、胡言乱语等)。较低的温度在训练的早期阶段产生了更高的平均奖励,但它可能限制模型后续的探索,导致在后续阶段表现不够有效,所以,较高的温度往往能够带来更好的性能,前提是模型能够正常生成文本且没有胡言乱语。
动态KL退火策略比其他变体表现得更好。在训练的早期阶段,模型容易崩溃,可能会陷入局部最优解。固定的KL值可以限制参数更新,防止模型退化。然而,随着训练的进行,较大的KL值变得不适合强化学习,限制了模型能力的进一步提升。通过逐渐放宽这些约束,动态KL退火能够持续改进主干模型。
3、参数规模影响及敏感性?
在RL训练过程中,模型逐渐展现出类似人类的复杂推理行为(如验证、反思和修正)。
这些行为在训练初期就已存在,但随着训练的进行,这些模式变得更加明显和高效,通过统计推理关键词(如“verify”、“double check”、“reflect”等)的频率变化,可以观察到RL训练如何逐步强化这些推理能力。
即使在没有监督微调(SFT)的情况下,通过纯RL训练,基础模型(如QWEN2.5-32B)也能显著提升推理能力,包括响应长度和测试准确率。
**小规模模型(1.5B)**在RL训练中,模型的探索能力相对较弱。这可能是因为它们的参数较少,学习能力有限。例如,在相同的RL设置下,1.5B模型在训练初期的响应长度和准确率提升较慢。对RL设置(如学习率、采样次数、温度系数等)的变化不敏感,性能提升较为缓慢且有限。
中等规模模型(7B)展现出比1.5B模型更强的探索能力,能够更快地适应RL训练并提升性能。这表明模型规模的增加有助于提高其学习和探索能力。
大规模模型(32B) 在RL训练中表现出最强的探索能力。其响应长度和准确率在训练过程中显著提升,尤其是在训练步数增加时,性能增长更为明显。
4、长提示还是短提示好?对RL的影响如何?
第一种是简短提示,类似于DeepSeek-R1-Zero中使用的提示。
为了更好地激发基础模型的推理能力,设计了一个新的提示,其中包含了关于推理过程的详细说明,称为长提示,与简单提示相比,这个新提示保留了特定推理格式的需求,同时增加了对推理过程的全面描述,这包括可以在推理过程中应用的策略(例如分析问题、总结发现)以及推荐在整个过程中使用的表达和词汇(例如,“等待”、“或者”)。
结论为:
当在两种类型的提示上训练时,QWEN2.5-1.5B和QWEN2.5-7B表现出不同的行为。
对于QWEN2.5-1.5B,在短提示上训练的模型在测试集上的表现比在长提示上训练的模型更好。这可能是因为一个1.5B大小的基模型相对容量有限,难以遵循详细提示中的复杂指令。
相比之下,当使用不同的提示训练时,7B大小模型在下游任务上的表现相似。然而,使用长提示语训练的模型生成了较短的回应,这表明它通过遵循提示语中提供的指导原则,学会了更高效地进行推理。
因此,更详细的提示语可以引导模型更有效地思考,提高推理效率。然而,它们并不一定能在下游任务上带来性能的提升。
此外,LLMs可能会利用长度偏置的奖励函数(即奖励操纵),这些函数旨在鼓励更长的响应和更复杂的推理行为,但是,响应长度是强化学习训练成功与否的一个重要指标;然而,它是性能提升的结果,而非原因。
设计专门的奖励函数以明确鼓励模型产生更长的响应可能会导致奖励作弊等问题,这并不能从根本上提升模型的推理能力。也就是,虽然较长的响应可以提供更多推理空间,但过度延长响应长度可能导致冗余推理或性能下降。
理想的解决方案是让模型根据问题难度自适应调整响应长度。
5、训练数据是用合成的还是蒸馏的好?
构建长CoT训练数据有两种主要方法,合成长CoT数据和从大型推理模型中蒸馏。
对于第一种方法,合成包含各种推理模式(例如,反思和验证)的指令微调数据,以鼓励探索和多样化推理模式。根据现有工作,从公共数据集中选取大约5k个难题。
对于第二种方法,使用现有的大型推理模型进行蒸馏,从OpenThoughts中选择大约50k条数据,该数据从DEEPSEEK-R1中提炼出长CoT相应。
使用长链推理数据(如合成数据或从大型推理模型中蒸馏的数据)进行监督微调(SFT)可以显著提升模型的推理能力。
在初期训练中,合成数据方法表现出一定的有效性,能够鼓励模型生成更长的响应,并探索多样化的推理模式。然而,合成数据的复杂性有限,合成数据通常使用相对简单的策略生成,这些策略不足以捕捉或表示从高度能力的推理模型中更有效地提炼出的复杂推理过程,难以捕捉复杂的推理步骤,因此在后续的RL训练中效果逐渐减弱。
蒸馏数据方法在后续RL训练中表现更好,因为它从高质量的源模型中提取了复杂的推理模式。蒸馏数据不仅包含了丰富的推理步骤,还能更好地引导模型进行有效的推理,从而显著提升模型的整体性能。
即使模型已经通过长链推理数据微调达到了较高性能,RL训练仍能进一步提升其推理能力。 强化学习训练一致性地提升了微调模型的性能,包括短期和长期的CoT推理模型。即使在Qwen2.5-1.5B通过蒸馏数据训练达到较高水平的表现后,强化学习训练进一步提升其能力,在AIME 2024上实现了显著的准确率为39.33
6、工具操作的实验说明了什么结论?
通过监督微调(SFT)赋予模型工具操作能力(如代码解释器),可以显著提升模型的推理性能。例如,STILL-3-TOOL-32B在AIME 2024上的准确率达到86.67%(贪婪搜索);
即使少量高质量的工具操作ICL数据也能显著提升模型性能,表明工具操作能力可以通过少量但高质量的训练数据有效激活。
例如,在工具操作实验中,STILL-3-TOOL-32B模型在AIME 2024上取得了显著的改进,达到了86.67的准确率。其成功的原因可以再回顾下:
一个是示例数据蒸馏,通过从强大的教师模型(如DeepSeek-R1)中蒸馏示范数据,逐步培养了模型的工具操作能力。这些数据包含了代码片段和正确的答案,帮助模型学习如何在推理过程中有效地使用工具。
一个是SFT微调,通过系统的示范数据蒸馏和SFT实验,逐步精炼了模型的工具操作能力。这种方法不仅提高了模型生成代码片段的能力,还增强了模型在推理过程中调用外部工具的意愿。
一个是RL训练,在掌握了工具操作能力后,通过RL训练进一步提升了模型的性能。RL训练鼓励模型在推理过程中自主调用工具,从而显著提高了其在复杂数学问题上的推理能力。
总结
本文主要回顾了两个工作,一个是RAG中的表格处理问题,如何进行序列化。
另一个是RL用于推理模型的一些分析,其中的一些分析结果其实还蛮有趣的,虽然有些实验限制,但结果依然有指导性。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。