作者提出了Baichuan对齐(Baichuan Alignment),这是对Baichuan系列模型中采用的对齐技术的详细分析。这是行业首次全面的对齐方法论的概述,为推进AI研究提供了有价值的见解。作者研究了在对齐过程中提升模型性能的关键组件,包括优化方法、数据策略、能力增强和评估过程。这个过程跨越了三个关键阶段: Prompt 增强系统(PAS)、监督微调(SFT)和偏好对齐。遇到的困难、应用的解决方案以及取得的改进都进行了详细记录。
通过在多个成熟的基准测试中进行比较,作者突显了Baichuan Alignment所实现的科技进步。Baichuan-Instruct是一个内部模型,而Qwen2-Nova-72B和Llama3-PBM-Nova-70B分别是Qwen2-72B和Llama3-70B基础模型的指令版本,通过Baichuan Alignment进行优化。Baichuan-Instruct在核心能力上取得了显著改进,用户体验提升范围从17%到28%,并在专业基准测试上表现出色。在开源基准测试评估中,Qwen2-Nova-72B和Llama3-PBM-Nova-70B在几乎所有数据集上,始终优于其各自的官方指令版本。本报告旨在阐明对齐过程的关键技术,以促进社区更深入的理解。
Llama3-PBM-Nova-70B模型:https://huggingface.co/PKU-Baichuan-MLSystemLab/Llama3-PBM-Nova-70B
1 引言
随着人工智能技术的不断发展,其在各个领域的应用越来越广泛。本文旨在探讨人工智能在自然语言处理领域的最新进展,以及其在文本生成、情感分析、机器翻译等任务中的应用。本文将首先介绍人工智能的基本概念和自然语言处理的基本任务,然后重点介绍自然语言处理中的主要技术和方法,最后对人工智能在自然语言处理领域的应用进行总结。
近年来,大语言模型(LLMs)取得了显著的突破,显示出向人工通用智能(AGI)迈进的早期迹象。通过下一个 Token 预测机制,LLMs在大量数据集上进行自监督预训练,从而获得各种能力,使他们能够执行各种任务,如文本续写、总结和创意组合。进一步在对齐方法方面的改进,如 Prompt 增强系统(PAS),监督微调(SFT)和偏好建模,对于LLMs的演变变得重要。
这些发展提高了模型理解用户意图并遵循指令的能力,从而增强了他们的会话技能和应对复杂现实世界场景的适应性。尽管其重要性不言而喻,但关于对齐的全面理解仍难以为广大公众所接触。对齐的广泛和复杂性质导致了研究工作的分散,这些研究往往只能提供对特定领域的狭窄见解,使得全面呈现对齐景观的视角变得具有挑战性。此外,对齐常常被视为LLMs训练中的专有基石,充满了公司保密性。为了促进LLM领域的发展,作者提出了一个全面的和系统的Baichuan Alignment阐述,包括一系列先进和实用的对齐技术。
本文主要聚焦于Baichuan Alignment的四个关键方面:优化、数据、关键能力增强和系统评估。优化确保了LLM训练的有效性和效率,第2节详细讨论了训练方法、 Prompt 论点和模型合并等方法,以加速和提高模型性能。在强调数据在Baichuan Alignment中的重要性方面,作者关注 Prompt 选择、响应构建和偏好数据。第4节概述了在向AGI迈进的道路上增强核心能力所遇到的挑战,并详细阐述了通过Baichuan Alignment所获得的特定方法和见解。最后,第5节对Baichuan Alignment进行全面评估,重点关注用户体验、开源基准测试和特定能力评估。这种评估对于评估模型能力和指导迭代改进至关重要,特别是通过用户评估和第三方产品评估,这些评估与用户体验紧密相关。此外,作者引入了定制的基准测试,包括CFBench,SysBench和FB-Bench,以解决LLM应用中的当前挑战和实际需求。
作者从多个角度对多个模型进行了系统评估,这些模型在Baichuan Alignment之后得到了改进。在这些模型中,Baichuan-Instruct是作者内部使用的模型,而Qwen2-Nova-72B和Llama3-PBM-Nova-70B是从Qwen2-72B和Llama3-70B基础模型派生出来的,分别使用Baichuan Alignment技术进行了微调。用户体验评估表明,Baichuan-Instruct在多个核心能力方面取得了显著提升,提升幅度达到17%至28%。值得注意的是,在数学和推理方面取得了28%和23%的提升。
在开源基准测试中,Qwen2-Nova-72B在多个排行榜上超过了其官方指令版本Qwen2-72B-Instruct。同样,Llama3-PBM-Nova-70B与Llama-3-70B-Instruct相比取得了显著改进,在ArenaHard基准上实现了60%的相对提升(从46.6到74.5)。在特定基准测试中,Baichuan-Instruct在CFBench,SysBench和FBBench等核心能力方面排名靠前,与当前可用的领先模型相比。这种多维、全面和深入的评估强调了Baichuan Alignment技术的优越性及其在不同基础模型上的适用性。
作为实现AGI的至关重要的一步,作者公开分享了在Baichuan Alignment过程中遇到的挑战、解决问题的方法以及一些深入见解。这一披露旨在为社区提供从失败中吸取的新视角或教训,从而促进对对齐的讨论,并为AGI的进步做出有意义贡献。
2 优化
2.1 训练
在有监督的微调中,作者使用学习率,对各种大小的模型进行2到6个epoch的训练。对于所有训练会话,作者使用样本打包,以下将详细讨论。此外,作者应用权重衰减以防止过拟合。
在许多实际应用中,基于偏好数据使用Bradley-Terry模型估计一个奖励函数。然而,Bradley-Terry模型存在一些局限性,包括易于过拟合数据。即使在高质量的数据集上,在没有完成一个训练周期之前,这也可能发生。
此外,奖励模型仅确保不同响应的奖励分数相对顺序,而不是它们的绝对感受。例如,的拟合奖励分数差异可能小于,这鼓励模型寻找绕过奖励的捷径。为了减轻这种影响,作者在每个点上添加了MSE损失,让模型拟合从第3.3节标注的归一化绝对分数。
因此,奖励模型将最小化以下目标:
在作者的偏好数据集中,作者也混合了一些没有绝对分数的数据集,如开源的hh-rhhf数据集,SHP数据集。对于这些数据集中的数据,作者将其设置为0。通过这个目标,作者发现拟合的奖励模型更具鲁棒性。RM模型训练1到2个周期,具体取决于其大小。
在强化学习的进程中,作者对PPO和GRPO两种方法进行了实验,以进一步改进作者的模型。在应用这两种方法时,作者做了很少的修改:在进行合并模型(如第2.4节所述)的强化学习时,使用SFT数据集上的交叉熵损失作为PTX损失,会将模型降维为SFT+强化模型。因此,在强化训练期间,作者使用策略模型和原始模型之间的KL散度作为PTX损失。
此外,在计算每个 Token 的KL散度时,作者首先选择与参考模型中Top500对数概率对应的索引。对于这些Top500索引,作者分别计算了策略模型和参考模型中的归一化对数概率。然后,作者应用两个对数概率集之间的标准KL散度公式,而不是使用简化的KL散度版本,以确保KL保持非负并尽可能准确。在GRPO中,每个 Prompt 的n_sample设置为3,作者没有在 Token Level 的奖励分解中删除KL项。
强化学习的优化目标可以描述如下:
在训练过程中,模型会在每一定训练步骤后进行保存和评估。作者为各种任务类别建立了相应的测试集,以监控每个类别的过拟合或欠拟合情况。这使作者能够在训练数据中调整每个类别的 Prompt 比例,从而提高模型的整体性能。
在作者的实验中,作者发现即使没有批评模型,GRPO也能实现与PPO相当的结果。GRPO与PPO的评估基准差异(见第5.2.1节)在FollowBench上为+3.7%,在CFBench PSR Full上为+1.0%,在SysBench上为-0.50%。另一方面,与PPO相比,GRPO可以节省近一半的训练资源。
此外,它比直接优化方法(如DPO和KTO)实现更好的性能,同时只需要略微增加训练资源。因此,作者将GRPO作为作者的强化学习方法。
2.2 高效训练
为了解决由于样本长度不同而导致的训练低效问题,作者将多个短样本合并为一个长样本,从而显著减少了填充 Token 的需求[80]。传统的打包是在样本 Level 进行的,通常在Flash Attention v1的attention_map上实现。在作者的方法中,作者利用了Flash Attention v2中的_cu_seqlens_参数,该参数允许无填充的变长序列。这一特性有效地隔离了不同样本之间的注意力,防止了它们之间的上下文污染,并实现了即插即用的等效训练。实验表明,这种打包方法将batch内的有效 Token 利用率提高了从10%到98%,在提高效率的同时没有损失性能。
多层梯度预训练权重化
传统实用的梯度预训练权重化方法通常为每个解码层设置一个预训练权重,用于大规模语言模型(LLMs)。然而,在层数非常多的模型(如超过80层且参数超过700亿)中,这种设置在内存效率上远非最佳。梯度预训练权重化本质上是一种时间与内存的权衡。理想情况下,配置应允许GPU内存能够容纳充分利用计算能力的序列长度,从而成为最具成本效益的设置。在实际中,这个参数需要实验调整。因此,作者使用多层梯度预训练权重化,将多个解码层合并以实现更好的内存控制。
假设模型在正向传播过程中,每个解码层有个激活,那么在反向传播过程中,用于梯度预训练权重化的存储需求为。如果在预训练权重之前合并层,那么所需的存储需求变为。
这意味着,当时,内存使用最小化。值得注意的是,的值以及最佳的计算可能因具体架构而有所不同。在作者的实践中,这种优化可以将训练具有16K序列长度的超过700亿参数的模型的最小GPU数量从128GPU减少到40GPU。
遵循DeepSpeed-Ulysses的序列并行方法,作者将序列并行主义方法适应到训练框架中,实现了在大规模语言模型上进行高效、可扩展的训练,这些模型的序列长度极长。这使得它们更适合高频实验和资源有限的情景。
2.3 Prompt 增强
大语言模型需要针对不同的应用场景定制响应模式。对于专业咨询,模型应采用权威和信息丰富的语气,而在消费者互动中,它应力求表现出同理心和吸引力。在这两种情况下,模型适应上下文风格的能力都至关重要。模型在调整沟通风格方面的灵活性是满足不同用户群体多样化需求的关键。然而,训练数据中不一致的响应风格可能会对模型的性能产生负面影响。如果训练数据缺乏一致性,模型可能难以制定出连贯有效的沟通策略。一个可行的方法是将模型的能力与其响应风格的要求进行解耦。这使得在优化和微调模型功能的同时,还可以根据不同的需求或场景定制其响应风格。
大语言模型在各种应用中的有效性很大程度上取决于 Prompt 的质量。已经有许多设计好的 Prompt 可以显著提高LLM的表现。然而,这些依赖手动 Prompt 工程的方法在可扩展性方面远远不足,并且学习曲线陡峭,对消费者端用户的时间投入也很大。因此,探索自动 Prompt 工程机制的发展是至关重要的,这可以显著提高AI交互的效率和有效性。
作者设计了一个即插即用的系统,名为 Prompt 增强系统(PAS),用于自动生成与用户 Prompt 相匹配的补充内容。该 Pipeline 通常根据用户的 Prompt 生成相应的补充内容,然后将补充内容与 Prompt 一起输入到主模型中。PAS通常补充以下方面的内容:
-
产品应用场景响应的要求。
-
根据用户意图的扩展内容,这些内容并非强制性的。
-
响应格式限制,如“内容应逻辑清晰、组织有序,易于用户理解。
”对于LLM的检索增强生成(RAG),扩展 Prompt 内容需要处于搜索结果的范围内;因此,在生成补充 Prompt 时,应使用搜索关键词作为新的约束。
2.4 Model 融合
模型融合是一种人工智能领域的崭新技术,它涉及将多个针对不同任务优化的模型的参数相结合,以创建一个更灵活和通用的模型。尽管这是一个相对较新的研究领域,但模型融合正在迅速发展,并在各个领域已经展示了其实用性。这种技术的显著应用之一就是增强基础模型。通过将针对不同下游任务进行微调的模型进行融合,大语言模型的能力可以显著增强。关于模型融合的深入探讨,作者建议读者参考关于合并算法的综合调查。
模型训练面临的一个挑战是细调预训练权重的激增,这些预训练权重源于不同的训练数据更新、超参数设置和正则化技术。这些差异通常会导致不同领域间性能结果的脱节,这种现象通常被称为“跷跷板效应”,即一个领域的改进会导致另一个领域的恶化。模型合并提供了一个有前景的解决方案,通过在各种任务间平衡性能来减轻这种效应。
在实际应用中,作者从不同领域选择了表现最好的模型,并应用了各种合并算法,包括线性、任务算术和模型库存,使用了模型合并工具包,合并工具包。实验结果表明,合并后的模型在评估的领域通常实现了更平衡的表现。在测试的算法中,模型库存始终提供了最佳的整体性能。
3 Data
alignment数据已被广泛验证为对LLM最终性能至关重要的关键因素,包括 Prompt 响应对和偏好数据。
图4详细描绘了构建Baichuan对齐数据集的完整流程。首先,作者开发了一个 Prompt 系统和一个分类模型,这构成了数据飞轮的基础。然后,详细阐述了数据构建过程中的关键步骤,重点关注 Prompt 多样性和 Prompt 质量。此外,还详细介绍了生成响应的各种技术和最佳实践。此外,还从构建偏好数据的过程中提供了见解。
3.1 Prompt选择
3.1.1 Prompt系统与分类
Prompt 系统在数据管理中发挥着重要作用,可以扩充和保持数据的广度和均衡性,并引导模型的可靠性和迭代方向。在分类和统计分析的指导下,并结合人类专业知识,作者通过多次迭代和优化,开发了一套多维、多粒度的 Prompt 标注系统。随后,一个自动化的标注分类模型在数据生产的各个领域进行训练和部署。
作者整理了一个多元化的初始 Prompt 池,其中包括来自人类 Prompt 和各种开源数据集的真实请求。利用通用模型,对这些 Prompt 进行了初步的标签分配。随后,通过技术如同义词合并、长尾修剪和层次关联,开发出了一个初始 Prompt Token 系统。通过人类标注员的迭代改进和扩展,最终确定了 Token 系统和丰富的标签数据集。
值得注意的是,作者的系统精心设计为六个主要维度:能力、属性、领域、语言、难度和 Prompt 约束。这些维度,具有交织和分层结构,可以创建成千种组合类型。能力包括LLM完成任务所需的技能,包括知识型问答、文本生成、代码编程和逻辑推理。属性提供与能力相关的独特上下文信息,例如文学写作和文本生成的实际写作。领域将现实世界与LLM联系起来,赋予其相关性和活力,包括IT、历史和人文等领域。
语言定义了表达的中介,分为中文、外语和编程语言,还有进一步的子分类,如简体中文、繁体中文、经典中文、英语、法语、Python和C++。难度表示 Prompt 的复杂性,分为容易、 intermediate 和困难三个 Level 。 Prompt 约束突显了 Prompt 内约束的重要性,分为无约束、简单约束和强约束。这个集成框架确保了一个全面和适应性强的系统,能够应对各种教学场景。
在上述 Prompt 系统的指导下,作者最初利用先进的LLM对 Prompt 进行分类。这一过程通过投票和手动验证低置信样本进行了优化,最终构建了一个包含数万示例的训练集。随后,作者基于Baichuan-13B 和标签数据,使用基于 Prompt 的技术微调了一个专门的自动 Prompt 标签模型,使其在评估集上达到了90%的准确率。
相比之下,微调后的BERT模型仅达到了81%的准确率。 Prompt 系统与自动分类模型的集成使得 Prompt 集的有效管理和迭代变得高效。这包括评估 Prompt 的多样性和覆盖率,分组进行挖掘和优化,以及自动将 Prompt 与专业的人工标注员匹配。训练集中添加的任何新数据点都经过这个系统化的过程,以确保对所有与 Prompt 相关的任务进行一致和全面的处理,如图4左下角所示。
3.1.2 Prompt多样性
许多研究已经表明,类似的和重复的 Prompt 可能会对模型性能产生负面影响,这强调了在对齐阶段时 Prompt 多样性的重要性。在实际应用中, Prompt 通常包括指令和输入,通常以任务模板的形式与上下文信息结合。当前基于语义的密集嵌入方法通常能捕获整体语义,但无法充分捕捉特定任务信息的重叠表示。为了解决这一挑战,作者提出了一种任务 Aware 的嵌入模型,该模型能更精确地捕获指令之间的细微差别,从而有助于选择更具有多样性的 Prompt 。
如图4右上部分所示,作者的主要创新在于通过多粒度聚类方法提取高质量的面向任务训练数据。作者从粗粒度聚类开始,然后在每个类别内进行细粒度聚类。利用最长公共子序列(LCS)算法和启发式规则,从不同的细粒度聚类中,将具有相似任务模板的样本识别为硬正样本,而没有相似任务模板的样本识别为硬负样本。然后,这些样本用于对比学习(Triplet Loss)中训练高质量的嵌入模型。
此外,作者通过设置一个逐步的阈值序列来实现分层聚类,从而增强了算法的鲁棒性、效率和稳定性。这种结合方法使作者仅使用原始数据体积的50%就能实现比原始算法显著更好的结果。
3.1.3 Prompt质量
高质量 Prompt 对于更高效地训练模型以实现卓越性能至关重要。然而,现有的 Prompt 质量评分方法存在某些缺陷,要么在通用数据集上缺乏稳健性,要么在特定上下文中无法满足个性化指令筛选的要求。为了解决这些问题,作者开发了一个利用大语言模型(LLMs)的灵活可扩展的自动化 Prompt 质量评估框架。
借鉴 ArenaHard 评估系统的思想,作者利用基于对偶的 LLM 判断机制构建训练数据集。具体来说,作者首先采用 3.1.1 节中描述的分类模型将指令分为 20 个不同的桶。从每个桶中,作者随机选择 30 个数据点作为 Anchor 点。然后,桶中的其他数据与这些 Anchor 点配对,并使用多个 LLM 作为评估者。评估过程考虑了四个维度:清晰度、实用性、复杂性和创新性,使用三等级评分系统进行成对比较。多个 Anchor 点的汇总评分结果最终用于为每个示例分配最终的质量标签。
性能与有效性
考虑到性能和效率,作者使用上述训练数据对Baichuan2-7B基础模型进行微调,以开发最终的 Prompt 评分模型Quality-7B。与强大的LLM(如GPT-4)相比,该模型在效率和成本方面具有显著优势。此外,通过在200个评估样本上进行测试,作者证明了Quality-7B模型的评分准确性显著超过了GPT-4。
3.2 响应构建
人类标注作者采用各种规模的模型和不同的生成策略,为同一 Prompt 采样多个回答。这些回答根据类型标签进行偏好排序,自动分配给专门的标注员,从而极大地提高了标注效率和质量,从而显著提高了数据的上限。通常,作者使用奖励模型或LLM-as-Judge进行预过滤,形成具有分级质量区别的回答集,以收集足够丰富的偏好顺序。当最佳回答未能达到设立的标准时,作者要求标注员修改答案,从而构建高质量SFT和偏好数据集。
人类-机器协作标注大规模标注示范数据集受到成本、时间和人力资源的限制。因此,作者采用人类-机器协作的方法以提高效率。例如,作者使用LLM的批评作为辅助信息以提高响应修改的速度和质量。有时,作者要求评估者根据抽样数据子集编写一组质量缺陷,然后使用LLM进行缺陷挖掘和自动重写。在实践中,标注过程中已经积累了许多有用的技术,任何尝试或方法,利用LLM提高标注效率都将受到高度赞赏。
针对需要专业知识或创造力的任务,期望 annotator 始终产生高质量回答是不现实的,也不经济。为了解决这个问题,作者借鉴了 [49] 中的方法,使用文本质量模型从各个领域的公共来源中筛选出高质量文本,并合成高质量 Prompt -响应对。作者已经收集了一组高质量的文章撰写、典型论文和受到高度赞扬的帖子,然后进行反向翻译以生成相应的创意指令。
在针对同一 Prompt 给出多个正确回答的情况下,个人可能会表现出不同的偏好:有些人更喜欢简洁而直接的答案,而另一些人则更喜欢详细而结构化的回答。通过将对应不同回答风格的风格描述纳入 Prompt 中,作者可以减少风格偏好冲突,并提高模型在不同风格之间切换的适应性。此外,答案通常会因为与价值观相关的限制和错觉而拒绝。关于安全性、及时性和模型功能的 Prompt 很容易导致过多的拒绝,这会显著降低可用性并损害用户体验。为解决这个问题,作者严格控制拒绝的比例,并将拒绝约束集成到系统消息和 Prompt 中。
3.3 偏好数据
高质量且数据多样性较高的数据集对于SFT数据集和RLHF偏好数据集都非常重要。作者执行类似于第3.1节的数据过滤 Pipeline ,以获取具有标签的高质量和高多样性偏好数据集的 Prompt 集合。此外,作者使用分类标签过滤 Prompt ,这些 Prompt 具有简单的、时间敏感的毫无意义或超出能力任务。作者还因为作者的标注员语言限制,只保留具有中文或英文语言的 Prompt 。
对于数据标注,作者参考并改进了Llama 2 的过程 Pipeline 。作者使用作者最先进的Top 3模型为每个 Prompt 采样5个响应。每个模型的生成设置为,,。为了进一步提高数据多样性并过滤出模型已良好回答的 Prompt ,作者使用基于Rouge[54]规则的过滤器进行大致过滤相似的响应。对于不同的任务集,作者开发了几个LLM-as-Judge[102] Prompt ,名为AutoRator,以评估响应的判断分数。
总之,在判断 Pipeline 中使用了三种AutoRator:
-
绝对分数:对于具有开放响应(如写作、开放问答等)的任务,判断任务绝对评估分数。
-
成对比较:判断两个响应是否具有相似的思想链和相同的结果。对于具有特定答案(如数学、推理)的任务。
-
黄金答案:对于具有黄金答案的数据集,判断与黄金答案的绝对评估分数。
在AutoRator评估之后,删除所有得分最高的响应或非常相似的评分响应,并将剩余数据发送给标注者。对于一些具有黄金答案的数学和推理数据,作者发现LLM-as-Judge分数足够好,可以直接使用。
在进行标注时,作者不仅要求标注员对每组回复的优先顺序进行评分,还要求他们对回复的有用性、写作流畅性和安全性的绝对评分。为了确保标注质量并为可能的未来使用做准备,作者要求标注员在回复有事实错误或逻辑错误时,标出错误部分并添加错误说明。如果一个 Prompt 的所有回复都获得了低绝对评分,将按照第3.2节描述的回复修改过程进行处理。
由于作者的大部分标注数据是中文,为了增强多语言能力,作者引入了其他语言的开放源数据集。这些数据集包括 hh-rlhf, Helpsteer2, UltraFeedback 和 SHP。
4 关键能力
4.1 指令遵循
任何高级大语言模型(LLM)的关键能力之一就是能够遵循指令,特别是在面临现实世界应用的复杂性时。Baichuan对齐已经实现了一系列关键改进,以增强这一关键能力,如图5所示。这些改进主要包括构建复杂的系统消息、扩大指令约束、反应反转和教科书学习。
系统消息
系统消息是一系列位于多轮对话开头的特殊指令,预先设定模型的角色、背景、方法或输出格式,以与用户定义的目标相匹配。作者通过收集和构建一个大规模、高质量的数据集来增强LLM的理解和遵循能力(参见图5(a)以获取详细信息)。
首先,作者收集了大量初步的系统消息组件。一方面,作者从真实的用户日志和开源数据中收集直接系统消息,进一步分解为任务描述、工作流程、输出规范、约束和初始声明。另一方面,作者从广泛的多轮对话中提取具有复杂约束和要求样本,并利用LLM提取和合成类似的组件。
然后,作者使用聚类和过滤技术来获取一系列约束描述和其他组件池。作者无缝地将原始 Prompt 与适当的约束相结合,创建约束丰富的 Prompt 。同时,作者精心选择系统消息的其他组件,并将约束 Prompt 嵌入到合适的位置,伴随着进化学习和约束合理化步骤。
此过程经过多次迭代,最终进行一次过滤步骤,以消除不合理系统消息,形成全面系统 Prompt 数据库。通过这些步骤,作者确保系统消息涵盖各种任务类型,如角色扮演、函数调用和安全等。作者还确保约束描述与任务描述的紧密集成,以及数据的整体高质。
约束指令扩展
通过添加约束来构建复杂的指令被认为是提高指令遵循能力的关键。为确保基于约束的指令数据质量和覆盖面,作者采用了一系列步骤和方法,包括开发一个复杂的约束系统,与多个 LLM 协作迭代,以及独立验证,如图5(b)所示。参考先前的工作,使用 LLM 将大量 Prompt 中的 30 多种约束进行分解、聚类和合成。通过抽样,作者验证了随机指令中约束类型的覆盖率达到了 90%,并获得了对应每种类型的约束的丰富描述。
随后,作者使用多个 LLM 在选定的原始 Prompt 中增加约束的复杂性。这一过程涉及详细的 Prompt 工程指导,以确保 LLM 选择符合 Prompt 的约束描述,重点关注约束类型的合理性、约束表达的灵活性以及根据 Prompt 质量分数进行过滤。最后,作者使用一个单独的 LLM 作为验证者,选择高质量、约束丰富的指令。
响应反转
复杂的指令对AI提出了两个关键挑战:
-
高质量 Prompt (包含多个约束)的稀缺性和多样性不足;
-
生成精确符合这些 Prompt 的响应的难度和成本很高。
然而,作者可以利用这些文本固有的属性作为约束,生成相应的指令,从而利用大量高质量的自然语言文本。这种方法便于大规模创建丰富且高质量的 Prompt -响应对。为了解决这个问题,作者开发了一个响应反转 Pipeline ,如图5(c)所示。详细过程如下:
-
首先,作者使用质量评分模型从网络文本中的知识丰富段落中提取高质量文本。
-
然后,将此高质量文本作为响应,将LLM(语言模型)任务生成相应的 Prompt ,将响应的固有属性作为 Prompt 的约束。
-
最后,LLM检查员评估生成的 Prompt 的质量,分配分数,并提供改进建议。这个过程会迭代,直到响应中的所有约束都被完全包含在 Prompt 中。
教材虽然简单模仿学习可以高效地获取相对简单的指令,但在应用于复杂指令时,往往只能获得肤浅的理解。为了解决模型可能知道结果但缺乏对潜在推理理解的问题,作者提出了一种教学模仿的方法。通过明确关注学习指令的意图、思维过程、类比推理和对齐原则,作者可以显著提高指令学习的效率,并提高模型的泛化和对齐能力。
具体来说,对于复杂指令,作者利用LLM生成与 Prompt 高度对齐的响应,如图5(d)所示。例如,当任务是理解一个指令时,模型可能会被 Prompt “解释如何理解指令,分析其细节和从多个维度(如专业性、复杂性和输出限制)面临的挑战。” 另一种情况是,LLM可以被指导来阐述解决方案背后的思维过程,例如“详细阐述解决方案背后的推理过程,包括相关领域知识、推理方法以及常见的陷阱,尤其关注错误的推理路径和容易被忽视的输出限制(如格式、风格、语气、长度和字数限制)。”
此外,可以将 Prompt 如“你需要从给出的示例中学习推理技术和背景知识挖掘。例如:xx”输入到LLM,使其具有泛化和适应不同任务场景的能力。还教授了一些对齐原则,如“尽可能避免使用技术术语或复杂表达式”和“考虑用户的情感状态”,这是常见的响应技巧。这种方法确保了对复杂指令的深入理解,并增强了模型泛化和适应不同教学需求的整体能力。
4.2 Math
在 Prompt 选择阶段,作者采用多层次平衡的方法来保持问题多样性。具体而言,问题在小学、中学和大学 Level 上均匀分布。此外,作者使用更细粒度的标准,称为“知识要点”,在每个 Level 内,问题被选择以覆盖超过1000个不同的知识要点。优先选择解答问题,因为这些问题通常包括更全面的过程步骤。
在许多数学问题解决的数据集上,提供的答案往往缺乏详细的步骤。手动标注是一种常见的方法,但是,一些中间步骤可能会被忽略。然而,这些步骤对于模型训练非常重要。通过结合大语言模型、 Prompt 和标准答案,作者可以生成详细解决方案,这些解决方案基于参考答案保持一致的风格。这种方法将大量数学对齐数据与详细步骤相结合,显著提高了模型的数学能力。
直接生成的答案往往难以匹配正确答案,因此提供参考答案和步骤有助于模型将它们丰富为连贯的推理链。作者发现,参考答案显著提高了生成回答的质量。然而,由于参考答案可能包含错误,作者指示模型将其视为具有95%的正确性。这种方法减少了基于可能存在错误的参考的错误推理。
此外,作者进行后处理以控制生成回答的质量,例如,确保它们不明确提到参考答案的存在。最后,数学数据的比例占用于监督微调的总数据的约20%。
4.3 Reasoning
作者收集基于以下类别的推理数据:
常识推理:涉及时间转换、时区计算、排序、路线规划、日期推理、几何和空间推理以及家庭关系判断。
命题假设:包括演绎推理、归纳推理和逆否语句;
关系判断:涵盖包含/蕴含关系,因果关系,反对关系,中立关系和类比推理。
多步推理:包括并行推理、串行推理、链式和树状推理以及推理链攻击。
博弈论:包括经典问题如囚犯困境和 Hawk-Dove 游戏;
破坏性问题:涉及引入破坏性条件以测试推理能力;
反事实推理:涉及具有相同行人的场景,将无关行人联系起来,颠倒因果关系,将具有字面相关但因果无关的事件联系起来,以及探索科学上不可信的情况。
数据收集从开源材料中获取参考答案可以显著提高数据质量。逻辑推理任务对数据质量特别敏感,需要手动检查回答风格和准确性。例如,复杂数字序列问题对当前大型模型来说是个很大的挑战,这些任务通常需要探索各种解题方法。如果手动标注的数据只提供正确答案而没有包括不同解题方法的探索,这可能会对模型的表现产生负面影响。
为了提高作者的模型的推理能力,作者通过加入Chain of Thought Prompt来增强指令调优数据。这种技术鼓励模型将复杂问题分解成逐步推理过程。通过这样做,作者希望提高模型回答的推理能力,尤其是在数学和逻辑推理任务中。
反思推理过程中,有时LLM会由于推理错误和自纠能力有限而产生错误的答案。为了提高这些模型自我反思和纠正错误的能力,实施了一种策略,即识别错误回答、提供参考答案,并使用LLM重写这些数据,以提高自我反思和错误纠正能力。
数据分布
许多逻辑推理训练集采用统一的采样比例,但数据的难度显著不同,这可能不是最优的。在作者的探索中,作者进行了实验来评估不同数据分布如何影响模型性能。这些实验为作者构建这样的数据集提供了有价值的洞察和建议。例如,减少简单数据的比例可以提高模型性能,但如果减少过多,可能会产生负面影响。
除了干净的传统推理数据,作者还考虑涉及误导性信息、错误前提和故意歧义的问题。现有研究显示,现有的逻辑推理数据集并不能充分覆盖这类长尾问题,这表明Ruozhiba数据可以增强模型的逻辑推理能力。然而,开源的Ruozhiba数据揭示了质量和回应风格上的缺陷,往往无法有效地捕捉到Ruozhiba数据中固有的问题意图。因此,通过收集互联网上的更广泛的Ruozhiba用户问题,并进行仔细的选择和 Token ,作者可以创建一个高质量的有标注数据集。这个数据集可以作为逻辑推理的有价值的训练集。
4.4 Code
类别编码相关的 Prompt 按照类别和难度进行分类。类别包括:
-
代码生成,其中 Query 以自然语言形式出现,而响应包括代码。
-
代码补全,包括带有空格的代码片段;
-
代码调试,涉及在提供的代码中识别和纠正错误。
-
代码解释,需要概括给定代码的功能或过程。
-
代码知识问答,涉及常见的编程知识。
困难等级如下:
-
简单,用于解决基本知识可解决的小型代码问题;
-
中等,对于需要高级知识和分析时间的问题。
-
对于大型、复杂的代码,需要深入理解算法并广泛进行调试。
-
非常困难,需要专业知识和大量投入,甚至可能需要深入研究。
代码知识问答实际上是一种常识性问题,并不能提升编程技能,因此被下采样了80%。被归类为非常困难的题目往往需要超出模型能力的知识或者 Prompt 中的广泛上下文才能解决,容易产生幻觉,且难以在人工监督下准确验证,因此这种类型的数据被剔除。此外,作者还平衡了不同编程语言的数据。
初始的与代码相关的 Prompt 来源于各种地方,包括代码相关的网站和开源数据集。对于包含响应的 Prompt ,作者根据几个标准来验证这些响应:
-
一致性,它检查代码块和公式的格式,以确保正确的缩进和包含必要的标注。
-
正确性,这意味着回答与 Prompt 的要求一致,例如使用指定的编程语言并提供所需的示例,同时评估解决方案的准确性和完整性,包括考虑边缘情况。
-
质量,该评估响应是否提供了详细的问题背景描述,明确解释了解决方法,并在代码之后提供进一步的解释或总结。
多轮对话大部分与代码相关数据是单轮的,可能无法反映用户的真实使用模式。受WizardCoder方法启发,该方法通过根据原始问题进行多轮深入跟进问题,有助于挖掘更多信息和细节,从而产生更全面的 Prompt -响应对。
因此,作者使用LLM根据现有单轮Q&A生成新的问题。新的问题应:
-
在原有问题基础上,增加难度和深度;
-
确保是实际场景中可能遇到的具体、实际问题,并与第一轮Q&A相关。
获得新问题后,LLM用于提供答案。有趣的是,人类对第二轮Q&A的评估表明,这些跟进对往往比原有人工提供的答案更有用,这表明创建动态和迭代对话,而不是依赖单轮交流,能更好地模拟真实世界的问题解决场景,带来更丰富的洞察和更有效的解决方案。
4.5 工具使用
在本节中,作者概述了在大语言模型中增强一般工具使用和代码解释能力的方法。
对于通用工具使用,作者模拟了多种工具使用场景,从单工具、一次性交互到多工具、多轮交互,并利用这些合成数据来提高语言模型的工具使用技能。在单工具场景中,重点在于识别何时调用工具以及正确地结构化参数,通过理解上下文和为预期结果格式化输入。
在更复杂的多工具场景中,模型必须为用户的 Query 选择最佳工具,管理顺序和并行工具调用,以及协调多个工具以获得一致的结果。这需要了解工具的依赖性和功能,根据中间结果动态调整策略,并在输出不符合预期时诊断问题。为了提高模型区分相似工具的能力,作者生成现有工具的变体,使模型可以学习细微的差异并改进在不同上下文中选择和使用工具的决策。
代码解释器在开发其能力时,作者主要关注编程技能和解释能力。为了提高编程熟练度,作者主要利用来自Jupyter Notebooks和开源Python代码仓库的数据。Jupyter Notebooks中的结构化数据,包括文本、代码和执行结果,与涉及多轮提问、编程响应和执行结果的代码解释器场景相匹配。作者还发现,在预训练阶段增加Jupyter Notebook数据的比重可以提高模型在Python编程、代码解释和工具使用方面的熟练度。
对于开源Python数据,作者建立了一个Python Jupyter Notebook沙箱环境来执行LLM生成的代码,选择运行无错误的输出。为了构建调试功能,作者将执行沙箱中的错误进行分类,以识别真正由于编程问题导致的错误。然后,作者 Prompt LLM反思完整的错误消息并相应地修改代码,从而使模型学习调试技能。
为了提高解释能力,作者主要关注数据分析和文件读取的能力。为了应对涉及Excel、CSV、JSON和Markdown文件上传的场景,作者使用了一个LLM来模拟用户、问题解决者和验证者的角色。作者使用Pandas和Scikit-learn等库对主要任务进行了分类,如总结、统计、图表生成和机器学习。任务随机组合并由LLM作为用户组织成连贯的请求。
然后,问题解决者将这些请求分解为子任务,并用Python代码在Jupyter Notebook沙箱中逐个解决。验证者检查每个执行步骤,如有需要则返回到之前的步骤,采用深度优先搜索方法直到完成。每个数据集都由人工验证。任务种类的多样性导致了广泛的结果,对话平均12轮,超过2000个 Token 。
4.6 提示增强系统
作者使用一个经过筛选的数据集对330亿参数的聊天模型进行后训练,用于生成 Prompt 增强系统的内容。作者收集了大约9000个示例的 Prompt 补充数据集。PAS模型在4096个 Token 长度的序列上进行两轮后训练。
作者的数据集构建流程包括三个步骤:
-
定义不同场景下的回答风格,并收集一小部分由人类编写的种子。
-
为数据合成进行少样本训练一个LLM。
-
使用LLM进行自我校正以提高数据质量。
5 评估
在本节中,将提供百川对齐评估系统的详细概述,该系统通过结合用户感知、开源基准和专门构建的关键功能评估集,有效地展示了评估的全面性和充分性,以及对齐技术的优越性。评估了目前可用的主要模型,包括 GPT、Claude、Qwen、ERNIE、Moonshot、Yi-Large、DeepSeek-V2、GLM、mixtral和 Llama。
5.1 用户体验评估
5.1.1 评估标准
已经为作者的对话助手开发了一个全面的评估系统,该系统与产品的定位和用户需求进行了精心对齐。该系统针对指令进行了多方位的评估,基于模型的能力、场景、难度和格式。场景定义了模型解决问题和满足用户需求的范围和上下文。在这些场景内,能力得到了进一步的详细描述,概述了模型所具备的有效解决实际问题的技能。难度衡量了解决问题的挑战程度,而格式则区分了指令类型,如零样本、一样本、少样本和复杂指令。
为了确保对模型响应进行全面而精确的评估,作者在四个关键维度上对它们进行评估和打分:意图理解、结果准确性、语言质量和安全性。每个维度都经过仔细评估,以贡献整体质量评分,该评分反映了用户的期望。值得注意的是,上述响应的质量评分是由第三方产品专家评估的。作者的主要评估指标是通过率,它衡量了满足所有评估标准的样本占总样本数的百分比,从而与用户的感知相符。此外,作者还利用更详细的指标,如GSB(好、相同、差)和满意度率,作为指导产品迭代和比较分析的关键指标,因为它们具有特定的适用性。通过率定义如下:
5.1.2 结果与讨论
表1展示了本文中提到的优化措施在Baichuan产品迭代中所实现的对通过率的比较改进,覆盖了几乎所有关键任务和能力。值得注意的是,Δ表示绝对百分比的变化。总体而言,早期讨论的各种优化策略导致了所有任务上的显著改进,其中最明显的增加出现在数学(28%)、KQA(25%)和推理(23%)上。
这些改进主要源于第4.2节、第4.3节和第4.1节中讨论的优化。值得注意的是,数学能力的提升显著归因于涉及“全面覆盖知识要点和更详细的解题步骤”的数据优化,而响应质量的提高主要归因于实现“推理CoT”。改进的指令遵循度,特别是约束扩展和响应反转工程,如相关部分所讨论的,在很大程度上得到了改善。函数调用的增长似乎最为平缓,主要是由于其固有的复杂性和挑战。
然而,涉及精炼高质量标注数据的策略带来了明显的优势,如第4.5节所述。角色扮演主要通过构建个性化数据和偏好对齐来提高性能,如第3.2节、第2.1节和第3.3节中所阐述的那样。值得注意的是,PAS(4.6)以及偏好对齐,再加上数据多样性和质量的提高,共同促进了多个核心能力的显著改进。
5.2 开源基准
作者在Qwen2-72B和Llama-3-70B基础模型上进行了对齐,得到了相应的Nova模型,即Qwen2-Nova-72B和Llama3-PBM-Nova-70B。在开源基准测试上的卓越性能有力地验证和展示了作者调整技术的复杂性。
5.2.1 基准
作者精选了广泛认可的开源基准测试,涵盖了许多能力,以进行全面深入的评估。基准测试BBH,MixEval-Hard,和Alpaca-Eval 2.0主要用于评估通用能力。使用IFEval和FollowBench评估指令遵循能力,通过ArenaHard和MTBench评估会话熟练程度。人类评估,MATH,和GPQA分别专注于评估编程、数学和知识基础能力。
5.2.2 主要结果与讨论
表2对比了Qwen2-Nova-72B在其他模型在多个权威开源基准上的表现。显然,Qwen2-Nova-72B在所有评估集上显著优于从Qwen2-72B基础模型派生的官方指令版本Qwen2-72B-Instruct。最显著的改进出现在ArenaHard上,性能从48.1提高到75.1。在BBH和Math上也取得了显著的收益。此外,与目前可用的最先进LLM相比,Qwen2-Nova-72B在ArenaHard、MTBench、HumanEval、BBH、Math和FollowBench上取得了领先的排名。
表3展示了在Baichuan Alignment之后,Llama3-PBM-Nova-70B模型的性能。与基于相同基础模型的Llama3-70B-Instruct模型相比,Llama3-PBM-Nova-70B在ArenaHard、MixEval、AlpacaEval2.0和GPQA上的性能优势显著(分别为74.5、58.1、56.9和34)。在与最先进LLM的比较中,它在AlpacaEval2.0和ArenaHard上分别排名第二和第三。
总体而言,在两个不同的开源基础模型上通过Baichuan Alignment获得的指令模型在多个开源基准上始终优于其官方指令版本。这明显展示了Baichuan Alignment在增强基础模型方面的灵活性以及其提高各种基准性能的全面能力。
5.3 关键能力评估
结合模型应用和产品场景,作者专门开发了高质量基准,针对约束遵循、系统消息遵循和多轮对话能力进行评估,以便对相应的模型能力进行优化和迭代。为了明确起见,在随后的评估结果中,粗体、下划线和波浪号分别表示第一、第二和第三名。
5.3.1 CFBench
背景与评估
语言模型(LLMs)理解并遵循自然语言指令的能力对于其在复杂实际应用中的使用至关重要。
作者推出了CFBench,这是一个大规模的综合约束遵循基准测试,旨在评估LLM的约束遵守能力。CFBench包括1000个精心挑选的样本,覆盖了200多个真实世界场景和50多个NLP任务。它系统地从真实指令和构建中收集约束,并构建了一个创新框架,包括10个主要类别和25个子类别,以确保每个约束在指令中的无缝集成。
图6中部分展示了这10个主要类别:内容、数值、风格、格式、语言、情境、示例、逆向、矛盾和规则约束。为确保LLM输出的评估与用户感知一致,作者提出了一种先进的方法,该方法将多维评估指标与需求优先级相结合。这种方法涵盖了约束、指令和需求满足的各个方面,分别对应CSR、ISR和PSR指标。
性能与讨论
表4展示了CFBench及其子集在顶级模型上的全面评估结果,采用三个关键指标进行评估。总体而言,GPT-40在所有分拆和指标上均表现出色,Claude-3.5-Sonnet紧随其后。即使在表现优秀的模型中,也有不同程度的差异,突显了CFBench区分LLM约束遵循能力的强大能力。
值得注意的是,Baichuan-Instruct展示了出色的整体性能,在同类模型中表现出强大的竞争力,尤其是在Hard Set上表现突出。这一成功很大程度上归因于第4.1节中详细描述的约束扩展方法,即约束指令构建。
5.3.2 SysBench
背景与评估系统消息(System message)是自然语言处理模型(LLMs)的基本组成部分,它包含经过精心设计的指令,以指导模型行为,以实现预期目标。
作者提出了SysBench,这是一个用于系统消息后续能力系统性分析的基准测试。SysBench从三个具有挑战性的方面对系统消息的后续能力进行分析:约束复杂性、指令错位和多轮稳定性。为了实现有效的评估,SysBench构建了多轮用户对话,覆盖了各种交互关系,这些对话基于现实场景中的系统消息的六种常见约束类型构建。作者的数据集包含来自不同领域的500条系统消息,每条消息都与5轮用户对话配对,这些对话都是人工编写的并经过检查,以确保高质量。
约束满足率(CSR,Constraint Satisfaction Rate)是粒度最细的衡量标准,定义为满足约束的平均准确性。它评估模型在单个指令内遵循特定约束的能力,重点关注详细的约束遵循能力,如图7所示。
表5显示了在SysBench中,几种领先的LLM的CSR指标评价结果。GPT-4o和Claude 3.5在总分中分别排名第一和第二。在具体约束类型方面,角色和格式约束通常较容易让LLM满足,而动作和风格约束对所有模型来说更具挑战性。除了GPT-4o和Claude 3.5之外,其他模型在不同约束类型中表现轮流领先,突显了SysBench区分模型性能变化的能力。不出所料,Baichuan-Instruct在角色约束中排名第一,在总分和其他多种约束类型中排名第三,这证明了Baichuan Alignment的先进性。
5.3.3 FB-Bench
背景与评估
在多轮与消费者的对话中,LLM 通常需要根据用户反馈来修正回答和纠正错误。不同模型在应对人类反馈方面的能力存在差异,作者希望以定量方式评估这些能力。许多现有的基准测试,在评估大语言模型时,通常关注模型直接满意度,这并不能准确反映 LLM 的人机协作能力。作者引入了 FB-Bench,这是一个针对评估 LLM 对人类反馈的响应能力的细粒度多任务基准测试。
为了保持数据的平衡分布,作者实现了一个分类系统,将数据分为两个主要类别:错误校正和响应维护。这个分类系统使得可以对模型的性能指标进行深入且细微的定量分析。FB-Bench的独特之处在于能够比较模型在两个维度上的性能,并指导其优化的方向。图8展示了在FB-Bench上的评估结果。
性能与讨论
表6中展示了FB-Bench中领先LLM的子集评估结果。大多数LLM在错误校正方面优于响应维护。这表明大多数LLM在区分有效和误导性指令方面缺乏强大的能力。这种缺陷可能源于优化LLM的指令遵循能力相对简单;然而,过于遵循指令可能导致LLM扭曲现实。对于错误校正,Claude-3.5-Sonnet显著优于其他LLM。相反,在响应维护场景中,ERNIE-4-8K、Qwen2-72B-Instruct和Baichuan-Instruct在同行中表现竞争力。
如何学习大模型 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 的正确特征了。