基于自定义知识库回答问题的ChatGPT-

news2024/9/21 10:49:06

前言

ChatGPT是一个强大的语言模型,利用大规模的自然语言处理和机器学习算法,可以进行自然而流畅的对话,理解自然语言问题和回答,相信在座各位,尤其是程序员的你,肯定不可能还没使用过ChatGPT。

ChatGPT能做的事包括但不限于:

  • 学术论文
  • 生成代码
  • 创意写作
  • 翻译
  • 简历和求职信

它能够生成类似于人类写作的文本。您只需要给出提示或提出问题,它就可以生成你想要的东西。但其实你用过ChatGPT就会知道,在我们想要得到准确、具体的回答时,我们的prompt是十分重要的。

什么是 Prompt(提示)?

简单的理解它是给 AI 模型的指令。

它可以是一个问题、一段文字描述,甚至可以是带有一堆参数的文字描述。AI 模型会基于 prompt 所提供的信息,生成对应的文本,亦或者图片。
在这里插入图片描述

例如这里prompt就是指我的问题“什么是csv文件”

好的prompt能够更好地发挥 AI 的能力。例如如果你想要AI帮你生成一篇文章,那你不如试试这么跟他说:

我想让你做一个AI写作导师。我将为您提供一名需要帮助改进其写作的学生,您的任务是使用人工智能工具(例如自然语言处理)向学生提供有关如何改进其作文的反馈。您还应该利用您在有效写作技巧方面的修辞知识和经验来建议学生可以更好地以书面形式表达他们的想法和想法的方法。我的第一个请求是“我需要有人帮我修改我的硕士论文”。

当然在这里我不是来介绍prompt的,如果你对这个感兴趣可以参考github的一个高星项目。

在该项目上提供了很多的有用的Prompts
https://github.com/f/awesome-chatgpt-prompts

至于为什么要了解prompt,待会你们就知道了。

Context(上下文)

ChatGPT最核心的功能之一,就是可以结合你之前的内容来回答你的问题,也就是具有上下文关联的能力。这也是ChatGPT拥有和用户多轮对话能力的基础。

chatgpt是不联网的,也就是他的数据是一直持续在一段时间之前的。如果你问到了ChatGPT的知识盲区,它大多时候并不会坦率的跟你说它不知道,而是开始自己胡编乱造,导致了你不知道这个ChatGPT什么时候会开始胡说。

当然我接下来并不是要介绍怎么让ChatGPT去联网接入网络获取信息,而是如果我有一个这样的需求,需要ChatGPT回答他的数据库里面没有的内容,该怎么做?

很多人会第一时间想到,在问问题之前通过上下文告诉他,让chatGPT可以结合上下文来回答我们的问题。

例如:我问蔡徐坤是谁?
在这里插入图片描述
这是ChatGPT的回答,其他的内容我不清楚,但是我家哥哥的真正的出生地是 浙江省温州市,户籍湖南吉首。很明显GPT的回答是错误的。

但是如果在问蔡徐坤是谁之前,先提供给他蔡徐坤的百度百科资料,像这样:

在这里插入图片描述

可以看见有了上下文的支持,chatGPT可以从上文得知我家咯咯的具体信息,但是这个方法有一个很大的局限性。目前 ChatGPT 有个非常大的限制,它限制了最大的 token 数是 4096,注意这个是(请求+响应)<4096,就是你的问题加上ChatGPT的回答不能超过一定的字符。

在这里插入图片描述
具体的token计算比较复杂,这里可以简单的认为2 token约等于1个中文字符。

可想而知,随便一个长点的前置内容都会让tokens超过限制。

于是官网给出了2个相对的解决方案。

  1. 词嵌入(embedding)
  2. 微调模型(Fine-tuning)

1.微调模型(Fine-tuning)

官网的描述是这样的:
在这里插入图片描述

简单来说,微调模型更适合去处理一些分类相关的工作,根据你提供的大量的数据集,来对prompt进行一个分类。并不是能很好的满足我们的需求,并且微调模型需要提供大量数据集。

2.词嵌入(Embedding)

什么是词嵌入?其实我也不是很懂,简单来说就是可以把一段话抽象成为矢量数据。

那我们要做基于自定义知识库回答问题的ChatGPT应该要怎么做呢?

首先我们将我们要构建成自定义知识库的文本,先通过词嵌入转化为一大堆的矢量数据,然后同时再将我们问题通过一样的方法转化为矢量,通过计算每个文章的词向量与问题词向量之间的相关性,我们将相关性最高的 一部分自定义知识库的文本加上你的问题,构成的prompt来去提问ChatGPT获得回答。

这里是官网的一个demo

https://platform.openai.com/docs/tutorials/web-qa-embeddings

我们根据官网给出的代码来讲解。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/536271.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

属于开发者的交流,openGauss SIG版本规划工作会议来啦!

想参与SIG组未来半年的规划与工作&#xff1f; 想与开发者们近距离探讨需求与解决方案&#xff1f; 想将您的需求合入到openGauss的下个版本&#xff1f; 想在社区年度Summit上展现成果&#xff1f; 那就不能错过这个属于开发者的交流盛会&#xff01; 社区年度开发者大会…

取用水监测计量标准化建设,加强流量在线监测

方案背景 根据《关于强化取水口取水监测计量的意见》、《十四五”节水型社会建设规划》以及《2022年水资源管理工作要点》等政策要求&#xff0c;为强化水资源管理&#xff0c;做好水资源税改革&#xff0c;构建节水型社会&#xff0c;要全面加强取水计量监测设施建设&#xff…

计算机网络实验(ensp)-​实验2:PP协议及PAP认证

目录 实验报告&#xff1a; 实验操作 1.建立网络拓扑图并开启设备 2.修改路由器名字 1.输入命名&#xff1a;sys 从用户视图切换到系统视图 2.输入命名&#xff1a;sysname 姓名 修改路由器名字 3.重复步骤1和2配置每台路由器 3.抓包 1.点击菜单栏的“数…

计算机图形学-GAMES101-6

一、前情提要 在观察和投影变换的基础上提出了视口变换&#xff0c;最终我们会将【-1,1】^ 3 立方体转换到屏幕空间中去。 当所有图像都在屏幕空间中时&#xff0c;我们就要将所有的图像画在屏幕上&#xff0c;这个过程就是光栅化&#xff0c;光栅化就是简单的在屏幕空间的采样…

独家公布!985/211高校毕业生源数量统计Top10揭晓……

2023&#xff0c;985/211高校硕博毕业生总数约达49W。 这是在各大高校官网、官方公众号统计/整理后得到的数据。可能不完全&#xff0c;但数量已经足够庞大&#xff0c;就业竞争也更为激烈。 为了帮助大家更好地了解这些大学的毕业生源情况&#xff0c;本文将为大家揭晓&#x…

Live800:新消费浪潮涌起,在线客服系统如何“升级”?

时代在发展&#xff0c;舞台下的观众已经逐渐成长。 伴随着时代的快速发展&#xff0c;一方面&#xff0c;消费者的行为习惯和消费决策模式变迁&#xff0c;消费者的心理、兴趣及年龄层发生了巨大变化。另一方面&#xff0c;互联网信息透明化打破行业边界&#xff0c;让消费者…

赛效:如何在线变声改变产品宣传片配音

1&#xff1a;打开网页版腾讯智影并登录账号&#xff0c;点击智能小工具里的“智能变声”。 2&#xff1a;我们页面左侧上传音频。 3&#xff1a;试听变声模板后&#xff0c;选择一个模板&#xff0c;点击右下角“制作变声音频并下载”。 4&#xff1a;变声视频声音生成后&…

FastDeploy之hello world(C++)

文章目录 环境准备获取模型和测试图像准备CMakeList.txt准备C推理代码编译可执行程序运行可执行程序可能遇到的问题参考 环境准备 CUDA > 11.2cuDNN > 8.0python > 3.6Linux(x64) 下载FastDeploy C SDK wget https://bj.bcebos.com/fastdeploy/release/cpp/fastdep…

Unity 判断物体是否在阴影中

文章目录 前言效果视频原理步骤源码总结&#x1f4a2;&#x1f4a2;版权声明 前言 如题所示&#xff0c;今天接到的需求是&#xff1a;Unity 判断物体是否在阴影中 效果视频 链接&#xff1a;https://www.bilibili.com/video/BV1wc411N7KF/?vd_source75bbe3d71b926e90fdfca6…

关于argparse和sys.argv的补充

1: sys.argv参考&#xff1a;(10条消息) Python 中 sys.argv 用法详解_ys.journey的博客-CSDN博客 从命令行输入的参数会被保存到sys.argv 2: argparse: 参考&#xff1a;python命令行解析模块argparse用法小结 - 朴素贝叶斯 - 博客园 (cnblogs.com) 除此以外&#xff1a; …

SpringCloud概述

前言 什么是微服务&#xff1f; ​ 微服务是一种面向服务的架构(SOA)风格&#xff0c;其中&#xff0c;应用程序被构建为多个不同的小型服务的集合而不是单个应用程序。与单个程序不同的是&#xff0c;微服务让你可以同时运行多个独立的应用程序&#xff0c;而这些独立的应用…

js文件上传和下载的进度处理

发起请求的方式有Axios、XMLHttpRequest、Fetch Axios Axios下载进度演示-onDownloadProgress <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEe…

【zmq】zguide和cppzmq及windows测试程序

官方的zguide还是有更新的c++例子zguide构建的工程没更新 官方文档说支持3.2   Updated and revised for ZeroMQ/3.2 (older text for ZeroMQ/2.2 still available).libzmq 本身是c++实现的 我现在的libzmq版本是4.3.4,头文件#include <zmq.hpp>

STM32开发(十九)STM32F103 数据手册 —— 低功耗模式解析

文章目录 低功耗介绍stm32 供电框图低功耗模式睡眠模式停止模式待机模式低功耗模式汇总低功耗介绍 系统复位或上电复位后,微控制器进入运行模式。在运行模式下,CPU通过HCLK提供时钟,并执行程序代码。 系统提供多种低功耗模式,可以在CPU不需要运行时进入低功耗模式节省功耗…

一看就会的React入门

目录 简介 入门案例 直接创建 函数式创建 类实例创建 组件实例三大核心属性 state 代码演示 props refs 简介 1). Facebook开源的一个js库 2). 一个用来动态构建用户界面的js库 3). React的特点 Declarative(声明式编码) Component-Based(组件化编码) Le…

生物医学神经网络的方向感

文章目录 A Sense of Direction in Biomedical Neural Networks摘要本文方法Rotation Mechanism 实验结果 A Sense of Direction in Biomedical Neural Networks 摘要 本文描述了一种使模型不仅知道强度&#xff0c;还知道特征方向和尺度等特性的方法。当分析包含诸如血管或纤…

PID单环控制(位置环)

今天我们来聊一聊pid如果控制轮子转动位置 前期准备调试过程 前期准备 需要准备的几个条件&#xff1a; 1.获取实时编码器的计数值 2.写好pid控制算法的函数 3.设定好时间多久执行一次pid计算&#xff0c;并设置限幅输出。 4.多久执行一次pid输出 接下来我们看看这几个部分的…

Vue(ajax、插槽)

一、ajax请求 1. 实现ajax请求方式&#xff1a; xhr&#xff1a;原生 jquery封装xhr axios&#xff1a;属于promise fetch 2. axios实现步骤&#xff1a; 1.首先安装axios //安装 npm i axios 2. 在本地准备两个服务端 //student const express require(express) const a…

一级缓存和二级缓存问题

介绍 MyBatis 中的缓存&#xff0c;主要分为一级缓存和二级缓存。 一级缓存是 SqlSession 级别的缓存&#xff0c;也叫本地缓存。当执行一个 SqlSession 的查询时&#xff0c;查询到的结果会被保存在 SqlSession 的缓存中。同一个 SqlSession 内执行相同的 SQL 语句&#xff…

C语言CRC-16 CCITT-FALSE格式校验函数

C语言CRC-16 CCITT-FALSE格式校验函数 CRC-16校验产生2个字节长度的数据校验码&#xff0c;通过计算得到的校验码和获得的校验码比较&#xff0c;用于验证获得的数据的正确性。基本的CRC-16校验算法实现&#xff0c;参考&#xff1a; C语言标准CRC-16校验函数。 不同应用规范…