当前位置: 首页 > news >正文

【生成式人工智能-三-promote 神奇咒语RL增强式学习RAG】

如何激发模型的能力

  • 提示词 promot
    • CoT
    • RL 增强式学习Reforcement learning
    • 提供更多的资料
      • 提供一些范例Incontext- learning
  • 任务拆解
  • 让模型自己检查错误
  • 让模型多次生成答案
  • Tree of Thoughts
  • 让模型使用其他工具
    • RAG
    • 写程序POT
    • 其他工具
  • 让多个模型合作
  • 参考

在模型不变的情况下,我们可以做什么事情来增强模型的能力呢?

提示词 promot

上文也讲过,有一些神奇的咒语,在不改变模型的情况下,只要在跟模型对话的时候,加上这些提示词,可以让模型的能力得到增强。
具体的方法有如下:

CoT

chain of Thought的缩写,就是让模型思考一下的意思,22年曾经专门有人总结了一些神奇的咒语,下面是一个论文中举出的这些提示词:
这是在GPT3.5之前的一个模型上跑的结果
其中Zero-shot的意思是,不加任何提示词,这时候得分只有17.7分,但是如果你告诉把问题加上lets think step by step ,那得分就忽然猛增到78.7。

所以激发模型的一个好的做法就是:告诉模型解释一下这个答案。
那有人会怀疑,这些个神奇咒语会不会是个例呢?答案是:并不是。https://arxiv.org/pdf/2307.11760 这篇论文专门研究了大型语言模型的情绪勒索问题,就是对话的时候,告诉模型,这个问题对我很重要,结果不同的大型模型的准确率直线上升。
举个例子,帮我写一篇论文,…(具体要求),这篇论文对我很重要。
不同模型正确率的提升
此外也有人专门为大语言模型做了一些总结:

  • 对模型客气是没有用的
  • 要明确告诉模型需要做什么,不要跟它说不要做什么
  • 跟它说如果做不好,你就会受到惩罚。
    等等,https://arxiv.org/abs/2312.16171 上有专门的总结

但是要说明的是,上面这些提示词也并不是所有模型都有用,比方说GPT-4不需要跟它说step by step,它也会一步步的思索。加上以后正确性也不会提升。

那这些神奇咒语有没有自动化学习的方法呢?那就是RL增强式学习

RL 增强式学习Reforcement learning

在这里插入图片描述
训练一个模型产生咒语,然后输入模型,评估结果好坏。根据评估的结果又来调整咒语,最终会获取那些有用的咒语。最终出来的很多有用的咒语,确实是神奇的,人类无法理解的。比如GPT3上一个神奇的咒语是ways ways ways…

提供更多的资料

上面这些都有失效的时候,所以要给前提 给额外的资料 提供一些范例

提供一些范例Incontext- learning

比如你要做情感分析,你可以举个例子:
今天电影好看 正面 。今天天气不好 负面。然后再给他资料看,他就可以做出正确的回答。
但是这件事情背后,有些需要思考的问题。模型不是仅仅是文字接龙的么,模型是真的能看懂这些范例么?
答案是不一定。
有专门的论文来实验过。把那些举例的答案写反了,比如正面的写负面,一些小型的语言模型还是答对了。这就说明了他们其实是不能理解这些范例。当然再后来也有人在更大的模型上实验,发现给他错误的范例,大模型确实能够输出错误的答案

在这里插入图片描述

任务拆解

今天我们在用CHAT-GPT写一篇长篇小说的时候,他往往还是写不好,但是可以把他拆解成更小的任务,比如先告诉他列出提纲,然后再把每一步详细列示。很可能写着写着GPT会忘记以前的背景,所以我们写完之前的,就可以把前面的抽取摘要作为输入继续生成。
在这里插入图片描述

让模型自己检查错误

在这里插入图片描述
这可能么?
答案是可能的,对于模型来说,产生答案困难,但是验证答案反而是更简单的,对于大型的一些模型来说是可以检查出来的。
总体来说让模型自己检查错误,也是可以增强模型的能力。

让模型多次生成答案

由于模型是确定的,针对模型的输入,模型输出词库中每个神经元的输出是固定的,但是为什么每次我们拿到的模型的输出都是不一样的呢?因为生成是固定的,但是每次要把哪个输出出来,确不一定,比方说我们输入:中国最, 那输出高、远、深。。一堆字的概率都是50%以上,那选择哪一个就是随机的了。
既然每次答案都不一样,那还有一种可能就是让模型多次输出,然后取出现频率最高的那个答案。

Tree of Thoughts

它实际上就是上述所有方式的组合
让模型生成
如图上面的步骤:

  • 让模型拆成多个步骤,每个步骤给出多个答案。
  • 每个答案都让模型检查一下结果是否正确。
  • 如果都不正确,回到上一个步骤,找另外的一个答案的正确的回答

依次类推,直到生成正确的答案

让模型使用其他工具

RAG

Retrieval Augmented Generation,也是不需要训练语言模型,先从自己的资料库搜寻到资料,然后输入加上那些资料内容,那模型的能力会忽然大大加强,得到 与众不同的结果。
在这里插入图片描述
比如你可以可以让模型先去网络搜索一下,然后再继续回答。

写程序POT

Program of Thought,举个例子,GPT不擅长做计算题,但是GPT-4以后可以把输入格式成一个程序,调用现成python库来执行,最后给出正确的答案

其他工具

chat-gpt目前已经有上千种插件了

让多个模型合作

合作的方式可能有多种:

  1. 使用不同能力的模型回答问题
    不同的模型擅长的能力不一样,真正回答问题的可能有多个模型,我们可训练一个模型,来选择使用哪个模型来回答这个问题,FrugalGPT 就可以实现这个功能。
  2. 让多个模型之间讨论
    模型A输出以后,可以再去咨询模型B是否有更好的回答

参考

李宏毅 生成式人工智能导论

相关文章:

【生成式人工智能-三-promote 神奇咒语RL增强式学习RAG】

如何激发模型的能力 提示词 promotCoTRL 增强式学习Reforcement learning提供更多的资料提供一些范例Incontext- learning 任务拆解让模型自己检查错误让模型多次生成答案Tree of Thoughts让模型使用其他工具RAG写程序POT其他工具 让多个模型合作参考 在模型不变的情况下&#…...

C++连接oracle数据库连接字符串

//远程连接,需要安装oracle客户端sprintf(szConnect4, ("Provider OraOLEDB.Oracle.1; Password %s; Persist Security Info True; User ID %s; Data Source \"(DESCRIPTION (ADDRESS_LIST (ADDRESS (PROTOCOL TCP)(HOST %s)(PORT 1521)) )(CONN…...

判断字符串是否接近:深入解析及优化【字符串、哈希表、优化过程】

本文将详细解析解决这个问题的思路,并逐步优化实现方案。 问题描述 给定两个字符串 word1 和 word2,如果通过以下操作可以将 word1 转换为 word2,则认为它们是接近的: 交换任意两个现有字符。将一个现有字符的每次出现转换为另…...

C 和 C++ 中信号处理简单介绍

信号处理是编程中一个重要的主题,特别是在需要处理异步事件和错误情况的系统中。在 C 和 C 语言中,信号处理机制提供了一种优雅的方式来响应特定的系统事件,例如用户中断、异常情况或其他信号。在这里,我将详细介绍 C 和 C 中信号…...

什么是云边协同?

当今信息技术高速发展的时代,"云边协同"(Edge Cloud Collaboration)已经成为一个备受关注的话题。它涉及到云计算和边缘计算的结合,为数据处理、存储和应用提供了全新的可能性。本文将介绍云边协同的概念、优势以及在不…...

YOLOv5改进 | 主干网络 | 将backbone替换为MobileNetV2【小白必备教程+附完整代码】

秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 专栏目录: 《YOLOv5入门 改…...

ARMxy边缘计算网关用于过程控制子系统

在现代工业生产中,过程控制系统的优化对于提高生产效率、保证产品质量、降低能源消耗等方面都具有重要意义。而 ARMxy 工控机作为一种高性能、高可靠性的工业控制设备,正逐渐成为过程控制系统优化的新选择。 ARMxy 工控机采用了先进的 ARM 架构处理器&am…...

Python | TypeError: unsupported operand type(s) for +=: ‘int’ and ‘str’

Python | TypeError: unsupported operand type(s) for : ‘int’ and ‘str’:深度解析 在Python编程中,遇到“TypeError: unsupported operand type(s) for : ‘int’ and ‘str’”这类错误通常意味着你尝试将一个整数(int)和…...

什么是开源什么是闭源?以及它们之间的关系

开源软件(Open Source Software) 定义:开源软件是指其源代码可以被公众访问和使用的软件。用户可以查看、修改和增强软件的源代码。 许可:通常遵循特定的开源许可证,如GNU通用公共许可证(GPL)、…...

SpringBoot+Mybatis Plus实际开发中的注解

SpringBoot+Mybatis Plus实际开发中的注解 实体类Service层Mapper层Controller层启动类配置类SpringBoot+Mybatis Plus实际开发中的注解 实体类 @Data : 底层实现了getter、setter、toString、hashCode、equals 和无参构造@AllArgsConstructor: 底层实现了有参构造@NoArgsCon…...

【香橙派系列教程】(八)一小时速通Python

【八】一小时速通Python 本章内容服务于香橙派下的开发,用C语言的视角来学习即可,会改就行。 详细说明,请看链接:python全篇教学 Python是一种动态解释型的编程语言,Python可以在Windows、UNIX、MAC等多种操作系统上 使用&…...

了解JavaScript 作用、历史和转变

JavaScript 是一种即时执行的脚本语言,其代码在浏览器环境中通过内置的 JavaScript 引擎被动态地一行接一行地解释执行。这一特性赋予了开发者极高的灵活性和效率,因为代码修改后能立即生效,无需经历编译过程,从而加速了开发周期和…...

遗传算法与深度学习实战——生命模拟与进化论

遗传算法与深度学习实战——生命模拟与进化论 0. 前言1. 模拟进化1.1 代码实现1.2 代码改进 2. 达尔文进化论3. 自然选择和适者生存3.1 适者生存3.2 进化计算中的生物学 小结系列链接 0. 前言 生命模拟通过计算机模拟生物体的基本特征、遗传机制、环境互动等,试图模…...

rt-thread H7 使用fdcan没有外接设备时或发送错误时线程被挂起的解决方案

一、问题查找 使用的开发版是硬石的H7芯片型号STM32H743IIT6,测试时发现如果外面没有连接CAN设备,程序调用CAN发送时会一直等待发送反馈,导致相关线程挂起。 在线仿真时发现是卡在can.c文件的168行_can_int_tx函数:rt_co…...

exptern “C“的作用,在 C 和 CPP 中分别调用 openblas 中的 gemm 为例

openblas提供的sgemm有两种方式&#xff0c;一种是通过cblas&#xff0c;另一种是直接声明并调用 sgemm_ 其中&#xff0c;cblas方式是更正规调用方法&#xff1b; 1&#xff0c;调用openblas的 sgemm 的两种方式 1.1 c语言程序中使用 sgemm hello_sgemm.c #include <st…...

如何提前预防网络威胁

一、引言 随着信息技术的迅猛进步&#xff0c;网络安全议题愈发凸显&#xff0c;成为社会各界不可忽视的重大挑战。近年来&#xff0c;一系列网络安全事件的爆发&#xff0c;如同惊雷般震撼着个人、企业及国家的安全防线&#xff0c;揭示了信息安全保护的紧迫性与复杂性。每一…...

ProviderRpc发送服务二将远程调用来的信息反序列化后调用服务方的方法,并将服务方的结果返回给发送方

在Provider的实现中&#xff0c;OnMessage函数中&#xff0c;处理接收到的连接RPC请求。将接收到的RPC请求&#xff08;包含请求的对象&#xff0c;请求方法和 请求参数&#xff09;&#xff0c;接收到这些信息之后进行反序列化。得到这些参数之后我们即将要做的事情是去调用相…...

Io 35

FIleinputStream字节输入 package File.io;import java.io.*;public class io1 {public static void main(String[] args) throws IOException {// InputStream is new FileInputStream(new File("C:\\Users\\SUI\\Desktop\\Java1\\one\\src\\kaishi"));//简化Input…...

java基础概念11-方法

一、什么是方法 方法&#xff08;method&#xff09;是程序中最小的执行单元。 方法中的程序&#xff0c;要不然就是一起执行&#xff0c;要不然就是一起不执行&#xff01;&#xff01;&#xff01; 二、方法的定义 在Java中&#xff0c;方法定义的一般格式如下&#xff1a;…...

大模型应用中的思维树(Tree of Thought)是什么?

大模型应用中的思维树&#xff08;Tree of Thought&#xff09;是什么&#xff1f; 大模型&#xff0c;特别是基于GPT&#xff08;Generative Pre-trained Transformer&#xff09;架构的模型&#xff0c;在处理复杂任务时&#xff0c;通常需要依赖某种形式的推理和决策机制。…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...