探秘ChatGPT实现上下文连贯的会话原理
2023/11/19 23:02:33
本文主要是介绍探秘ChatGPT实现上下文连贯的会话原理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
深入ChatGPT,揭示其实现上下文连贯会话的原理。从Transformer架构到实现原理,了解如何让ChatGPT在长时间对话中保持连贯性。掌握如何利用历史对话内容调用OpenAI接口,为构建更智能的对话系统奠定理论基础。
期待已久的新教程上线啦!快速具备AI应用能力,先人一步成为移动端领域的AI高手,点我Get!!!
理论基础
ChatGPT 基于 Transformer 架构,而Transformer专为文本等顺序数据而设计。 Transformer 中的自注意力机制允许模型在进行预测时考虑整个输入序列(8000 tokens or more),使其能够更好地捕获上下文并在长时间对话中保持连贯性。因为Transformer的decoder在生成下一个token的时候能看到之前所有的token,而且每一个窗口都是一个单独的context。
实现原理
有些Transformer架构的理论基础之后,那要如何实现上下文连贯的会话呢,对数据是有什么要求吗?
答案是有的:把当前提问+前面的对话内容(最大4000 token限制)一起作为输入,那么输出的内容就自然包含了前面对话的意思。
默认情况下,我们每次调用OpenAI的接口和ChatGPT进行会话的时候,都会产生一个新的Session。而且两次请求的Session是不一样的。那么这就会导致我们在第二次会话时问它上一次会话的内容它会不知道。
那,如何才能在调用OpenAI的接口和ChatGPT进行会话的时候,让ChatGPT知道上一次的会话内容呢?
这需要我们在下一次发送会话请求的时候,需要将之前的会话以下面的格式一并发送给它。
Q: xxx A: xxx Q: xxx
这个
Q
和A
又分布代表什么含义呢?
-
Q:question的缩写,表示提问的内容;
-
A:answer的缩写,表示ChatGPT的回复;
接下来我们就来通过一个例子,来实操下。
实现案例
假如,我们有一组这样的会话历史:
问:讲个笑话 答:为了祝福新婚夫妇,一位老人代表全村去参加了婚礼。他举杯祝福时,满脸认真地说:“愿你们俩一辈子都像我们村的公鸡母鸡一样相敬如宾、恩爱有加!” 结果全场哄堂大笑:公鸡母鸡们虽然关系好,但是婚姻真的维持得不长久啊
然后,我们想让ChatGPT接口接着这个笑话接着讲,该如何做呢?
Q:讲个笑话\nA:为了祝福新婚夫妇,一位老人代表全村去参加了婚礼。他举杯祝福时,满脸认真地说:“愿你们俩一辈子都像我们村的公鸡母鸡一样相敬如宾、恩爱有加!” 结果全场哄堂大笑:公鸡母鸡们虽然关系好,但是婚姻真的维持得不长久啊!\nQ:继续
所以,要做的就是将历史会话和这次的会话内容比如:继续,按照实现原理中的格式拼接起来,中间的用\n
来进行分割即可。
如:
curl https://api.openai.com/v1/chat/completions \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer apiKey' \ -d '{ "model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": "Q:讲个笑话\nA:为了祝福新婚夫妇,一位老人代表全村去参加了婚礼。他举杯祝福时,满脸认真地说:“愿你们俩一辈子都像我们村的公鸡母鸡一样相敬如宾、恩爱有加!” 结果全场哄堂大笑:公鸡母鸡们虽然关系好,但是婚姻真的维持得不长久啊!\nQ:继续"}] }'
实际在运行的时候需要将apiKey
替换为你自己的apiKey
即可。
为什么在使用
https://chat.openai.com/
的时候不需要携带历史对话内容呢?
这是因为https://chat.openai.com/
平台在你每次创建一个新的会话的时候会对当前的会话进行保存,当你每次发出新的问题的时候,平台会带上你的历史对话信息。
参考
- ChatGPT + Flutter快速开发多端聊天机器人App
这篇关于探秘ChatGPT实现上下文连贯的会话原理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2023-11-28每天5分钟复习OpenStack(十一)Ceph部署
- 2023-11-27RocketMQ事务消息的过程和原理
- 2023-11-26TCC涉及的关键技术和作用
- 2023-11-25分布式事务中TCC处理日志的持久化和恢复,保证数据幂等性
- 2023-11-25在TCC中存在死锁或活锁的风险,以及涉及的关键技术
- 2023-11-25决策树C4.5算法的技术深度剖析、实战解读
- 2023-11-25BIRCH算法全解析:从原理到实战
- 2023-11-25深入理解RC4加密算法
- 2023-11-24TCC的核心流程和实例说明
- 2023-11-24CC中的尝试、确认、撤销操作执行中的问题