思维链(CoT) 解码的近期发展使得大型语言模型(LLMs)能够为解决复杂问题生成明确的逻辑推理路径。但这些路径并非总是经过深思熟虑且最优的。思维树(ToT) 方法利用树搜索来广泛探索推理空间,并找到思维链解码可能忽略的更好的推理路径。但这种深思熟虑是以大幅增加推理复杂性为代价的。
基于上述内容的考量,《Chain of Preference Optimization: Improving Chain-of-Thought Reasoning in LLMs》利用思维树构建的搜索树对大型语言模型进行微调,能够让思维链实现相近或更优的性能,从而避免了沉重的推理负担。
链式思维提示(Chain-of-Thought Prompting)
链式思维(CoT) 是一种提示LLM在给出最终答案之前生成一系列推理步骤的方法。它引入了一系列中间思维,记为,这些思维将输入 与输出 连接起来,其中 是推理步骤的总数。例如,如果 是演示示例和输入问题的组合, 是最终答案,则每个中间思维 形成一个连贯的语言序列,表示通向最终答案的总体推理路径的一部分。演示示例由一组CoT演示组成,这些演示在提示过程中作为范例。中间推理思维依次从分布 中采样,输出则从 中导出。
树式思维提示(Tree-of-Thought Prompting)
树式思维(ToT) 使LLM在回答给定问题之前探索多条推理路径。该方法将LLM推理任务建模为对树的搜索,其中每个节点表示推理路径中的一个思维步骤。ToT由两个主要组件组成,这两个组件都通过提示LLM来实现:1)思维生成器;2)状态评估器。思维生成器根据当前状态为下一步构建多个新思维。随后,状态评估器为每个新思维生成分数,并选择n个最佳思维以进行进一步搜索。最终结果由搜索算法(例如BFS或DFS)应用于所选思维,直到推理过程得出结论。
直接偏好优化(Direct Preference Optimization)
直接偏好优化(DPO) 是一种直接优化LLM以与偏好数据(例如人类反馈)对齐的方法。强化学习从人类反馈(RLHF)传统上将人类反馈的应用框架化为一个RL问题。然而,DPO将RLHF中的奖励建模和RL微调阶段重新表述为一个单一的优化问题。DPO的目标函数旨在最大化偏好响应的概率比,并优化LLM以模仿人类偏好。
给定输入 条件下的生成结果,这些配对根据特定标准进行评估和排序。偏好数据从这些排序配对中构建,记为,其中 和 分别表示在 和 之间的偏好(获胜)和非偏好(失败)完成。DPO目标函数如下所示:
其中 是逻辑函数,超参数 调节对基准参考模型 的偏差的惩罚。
链式偏好优化(Chain of Preference Optimization, CPO)
合成链式偏好思维
合成和收集偏好思维对的程序紧密遵循ToT的推理过程。整体的方案如上图所示。
-
思维生成,为每个推理步骤生成多个思维;
-
状态评估,评估每个思维;
-
搜索和收集,最终确定偏好思维。
思维生成
给定一个状态,表示包含输入 和迄今为止的思维序列 的部分解决方案,然后为下一步推理步骤采样 个思维:
在初始输入(包含演示示例和要回答的问题)和之前的思维 的条件下,LLM为下一步推理步骤生成多个思维。它遵循演示的格式,从“Step”开始,并采样 个思维。通过设置生成字符串“Step”作为停止标准来控制模型在 结束时暂停。从而得到 个新状态,其中。
状态评估
给定不同的状态,利用LLM对这些状态进行推理并评估它们在解决问题方面的进展,无需外部奖励模型或人工标注。为了评估状态,输入到LLM的内容包括评估过程的特定演示示例、输入问题 以及状态中的所有思维(即)。LLM遵循演示的格式,首先生成口头解释,然后从两个类别(可能和不可能)中生成分类结果。分类结果用于分配分数,可能 = 10,不可能 = 1。
使用的提示模板由两部分组成:(1)一般指南,(2)任务特定的演示示例。为了最小化随机性和偏差的影响,随机打乱演示示例的顺序,并重复采样生成的解释和评估结果。然后,计算状态 的平均分数。评估的一般指南提示如下:
Evaluate whether the thought helps in partially or directly answering the original question (likely/impossible)
搜索和收集
使用带有剪枝的广度优先搜索(BFS)作为搜索算法来选择推理路径。评估后,保留具有最高评估分数的n个最佳思维,并继续进行下一步的生成。当LLM生成包含“so the final answer is:”的思维时,搜索算法结束并返回所选路径。
如上图的右侧部分所示,在最终确定推理路径后,所选路径中的思维被标记为偏好(即获胜)思维。对于第 步的每个偏好思维,构建相应的非偏好(即失败)思维。首先,识别包含所有先前思维的父状态,这些思维导致了。父状态 的每个子思维,如果不是所选路径的一部分,则被选为非偏好思维,与 相比。此过程为状态 生成偏好对。强调的是构建的数据集 包括推理链中每个步骤的偏好数据。这种每步配对偏好监督通常在之前的方法中被忽略。
如何学习大模型 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 的正确特征了。