首页 > 其他分享 >【Preference Learning】Chain of Preference Optimization: Improving Chain-of-Thought Reasoning in LLMs

【Preference Learning】Chain of Preference Optimization: Improving Chain-of-Thought Reasoning in LLMs

时间:2024-09-13 18:52:42浏览次数:10  
标签:Chain CPO LLMs 数据 TOT 偏好 Preference 步骤 推理

问题背景

在推理过程中使用TOT方式可以增加推理性能,但由于增加了推理次数,导致耗时过大。目前待解决的问题是如何能在推理时既保持很好的推理能力,又保持推理耗时不会过大。

本文方法

  • 文章提出CPO(Chain of Preference Optimization)方式。该方法使用TOT方式来探索推理路径得到一批数据集,并结合DPO方式进行微调训练,从而让模型在推理时候能直接输出与采用TOT相近的效果的推理能力。
  • 采用CPO获取数据的大致过程:
    • 生成思考。对于每个推理步骤,生成多个思考内容。
    • 状态评价。让LLM去进行二分类评估这个思考是否有助于回答问题:可能或者不可能。并对结果进行从1—10的打分评价。
    • 搜索和收集。使用BFS来选择路径,保留评价分数最高的n个思考并进行下一步思考,当生成的内容包含“最终答案是:”这个字样时候,结束搜索并返回路径。
    • 实现细节:为减少随机性和偏差影响,会将prompt中的示例顺序打乱,并对生成的内容和结果进行多次采样,最终计算平均分。评价分数只决定是否进行下一步探索,最终链路里是否包含正确结果,决定是否被作为偏好数据。

在这里插入图片描述

本文的创新点

  • 采用CPO方式构建数据集时,将选择的步骤数据和未选择的步骤数据都保留了下来。之前的工作是只保留了正确的步骤数据,然后进行SFT的微调训练。但本文认为未选择的步骤数据也是一种信息,和选择的步骤数据一起构成偏好数据集对增强推理能力可能会更有效果。

实验效果

  • 本文方法在QA、事实验证、算数推理三类推理任务进行了测试。对比了COT、TOT、TS-SFT(只使用正确步骤的SFT微调)方法。

  • CPO提升了推理能力,相比于COT方法平均提高了4.3%,最大提高了9.7%。相比于TOT性能相近,在事实验证中平均性能还高于TOT,但CPO要在推理阶段的速度要比TOT平均快57.5倍。相比于TS-LLM,CPO的性能平均超过TS-LLM,说明CPO充分利用了TOT的推理数据,在微调模型过程中添加未选择的思想来进行偏好学习训练,性能更好。
    在这里插入图片描述

  • 本文还分析了增加非偏好数据的数量对于性能的影响。0%是不加入非偏好数据,只使用偏好数据,就相当于是基线SFT训练,逐渐增加,当到达100%时候为CPO。发现增加不受欢迎的数据包含的百分比可以持续提高模型性能。这表明,在优化过程中,不受欢迎的想法是有益的,突出了利用偏好和不受欢迎的想法来增强模型推理能力的重要性。
    在这里插入图片描述

  • 针对优化目标,本文分析了使用步骤级数据和一整个链路数据优化训练时的区别,得出的结论是采用一整个链路进行训练,会存在梯度抵消问题,在偏好数据和非偏好数据中可能存在公共子序列,这一部分梯度数值会被抵消,导致最终自己算最后的不同部分。因此,需要使用步骤级数据进行训练,可保证每个步骤的推理过程的梯度被更新。示例:y_w = [5, +, 4, =, 9, and, 9, +, 2, =, 11]、y_l = [5, +, 4, =, 9, and, 9, +, 2, =, 15]
    在这里插入图片描述

标签:Chain,CPO,LLMs,数据,TOT,偏好,Preference,步骤,推理
From: https://blog.csdn.net/qq_41094332/article/details/142217922

相关文章

  • chainLink vrf实验
    目标用vrf写一个随机红包数据结构红包:structEnvelope{Typet;//类型,只是erc20和eth红包ERC20token;//erc20,如果是erc20红包,这里是erc2o的地址addresssender;//发红包的senderuintbalance;//金额boolallowAll;//允许所有人......
  • Chainlit集成Langchain并使用通义千问实现和数据库交互的网页对话应用增强扩展(text2sq
    前言我在上一篇文章中《Chainlit集成Langchain并使用通义千问实现和数据库交互的网页对话应用(text2sql)》利用langchain中create_sql_agent创建一个数据库代理智能体,但是实测中发现,使用create_sql_agent在对话中,响应速度太慢了,数据的表越多,对话响应就越慢,这次本篇文章l......
  • Langchain入门概述
    1. Langchain概述LangChain是一个强大的框架,帮助开发人员使用语言模型构建端到端的应用程序它会提供了一套工具、组件和接口,可简化创建由大型语言模型(LLM)和聊天模型提供支持的应用程序的过程  主要价值在:组件化:为使用语言模型提供抽象层,以及每个抽象层的一组实现。......
  • Langchain.js如何实现RAG
    前面介绍了Langchain的基本使用方法。仅仅是对GPT方法的封装还不足以让它赢得那么多的Start,以及获得融资。它还有另一个强大的功能-RAG(检索增强生成)。RAG是大模型跟企业内部业务落地的基石。是大模型的北斗导航,可以让大模型的结果更加精准。一、RAG的基本概念与实现流程基于大......
  • Chainlit集成Langchain并使用通义千问和智谱AI实现AI知识库检索网页对话应用
    LangChain简介LangChain是一个开源框架,设计用于开发和部署与语言模型(如大型语言模型LLM)交互的应用程序。它提供了一种简便的方法来构建基于自然语言处理(NLP)的系统,这些系统可以执行各种任务,例如问答、文本生成、文档检索等。LangChain的主要目标是简化开发过程,使开发者能......
  • 论文阅读翻译之Deep reinforcement learning from human preferences
    论文阅读翻译之Deepreinforcementlearningfromhumanpreferences关于首次发表日期:2024-09-11论文原文链接:https://arxiv.org/abs/1706.03741论文arxiv首次提交日期:12Jun2017使用KIMI,豆包和ChatGPT等机翻,然后人工润色如有错误,请不吝指出Deepreinforcementlearning......
  • 《使用 LangChain 进行大模型应用开发》学习笔记(二)
    前言本文是HarrisonChase(LangChain创建者)和吴恩达(AndrewNg)的视频课程《LangChainforLLMApplicationDevelopment》(使用LangChain进行大模型应用开发)的学习笔记。由于原课程为全英文视频课程,国内访问较慢,同时我整理和替换了部分内容以便于国内学习。阅读本文可快......
  • 使用ChainLink预言机聚合器合约
    有了使用Hardhatforking功能模拟主网的基础,我们来看一下如何在链上使用预言机聚合器合约来获取某个数字资产当前价格。代码https://solidity-by-example.org/defi/chainlink-price-oracle///SPDX-License-Identifier:MITpragmasolidity^0.8.24;contractChainlinkPrice......
  • C#整合Ollama实现本地LLMs调用
    前言    近两年AIGC发展的非常迅速,从刚开始的只有ChatGPT到现在的很百家争鸣。从开始的大参数模型,再到后来的小参数模型,从一开始单一的文本模型到现在的多模态模型等等。随着一起进步的不仅仅是模型的多样化,还有模型的使用方式。大模型使用的门槛越来越低,甚至现在每个人都可......
  • langchain基础(3)-chain
    1.LLMChain:一个链fromlangchain.chains.llmimportLLMChainfromlangchain_community.llms.openaiimportOpenAIfromlangchain.prompts.promptimportPromptTemplatellm=OpenAI(base_url="http://localhost:1234/v1",api_key="lm-studio")pr......