聊聊ChatGPT是如何组织对话的

为什么要组织对话?

总所周知,ChatGPT的训练大致可分为下图中展示的几个阶段,其中,在Pretraining阶段,模型的训练数据是纯文本,目标是根据上文预测下一个token,而在后面的几个阶段中,为了让模型具备对话的能力,相应的就需要使用对话数据进行训练。而对话数据一般包含多个角色的文本,如何将这些文本有效地组织、拼接起来(openAI将其称之为Chat Markup Language,简称ChatML),是本文要聊的内容。

from Microsoft Build 2023 《State of GPT》

ChatGPT的ChatML

根据openAI的介绍[1],ChatML v0会将每个角色(systemuserassistant)的文本进行如下拼接:

<|im_start|>system
You are ChatGPT, a large language model trained by OpenAI. Answer as concisely as possible.
Knowledge cutoff: 2021-09-01
Current date: 2023-03-01<|im_end|>
<|im_start|>user
How are you<|im_end|>
<|im_start|>assistant
I am doing well!<|im_end|>
<|im_start|>user
How are you now?<|im_end|>

其中<|im_start|><|im_end|>是special token,进行tokenizer encode的时候他们会被编码成对应的单个token id,他们专门用来表示一个角色说话的startend

那么,如果对话文本中包含了<|im_end|>岂不是会造成模型的困扰?为了防止这种类型的注入攻击,似乎openAI会将对话文本中的<|im_start|><|im_end|>过滤掉。

可能是过滤了<|im_start|>,ChatGPT的回复中没有提到<|im_start|>

将<|im_start|>改成<im_start>,ChatGPT能够完整输出用户刚刚的问题

另外,值得注意的是system prompt中的小trick,其中包含了Current date的信息,在响应用户提问的时候进行动态的修改,使模型能够回复一些和当前日期相关的问题。

当这只是ChatML v0的格式,是3月份时候的版本了,最新版的gpt-3.5-turbo-0613中角色增加了function,目前ChatGPT的ChatML演进到了什么格式还是未知,一些眼尖的开发者也发现了当前的ChatML已经不是v0了[2]。

StarChat的ChatML

ChatML的格式不止openAI一种,StarChat提供了另一种思路[3]:

<|system|>
Below is a dialogue between a human and AI assistant called StarChat.
<|end|>
<|user|>
Is it possible to imagine a society without law?<|end|>
<|assistant|>
It is difficult to imagine ...<|end|>
<|user|>
It seems like you ...<|end|>
<|assistant|>
You are correct ...<|end|>
<|user|>
Yeah, but laws are complicated ...<|end|>

其中<|system|><|assistant|><|user|><|end|>是special token,[3]中很贴心地提供详细的代码,感兴趣的读者可以进一步了解。

将角色信息用special token表示,可以更好的避免注入攻击,但由于这些special token对应的embedding在预训练阶段是未经过训练的,在SFT过程中需要充分的训练才能有好的表现。

总结

ChatML是训练对话大模型的一个小细节,本文介绍的两种方式都是利用了special token来显式表示对话的边界,同时还能节约上下文的空间,相比于直接使用###user xxx ###assistant xxx是要更好的。

The devil is in the detail.

Reference

[1] openai-python/chatml.md

[2] ChatML update for th gpt-3.5-turbo-0613 and gpt-4

[3] 使用 StarCoder 创建一个编程助手

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

和ChatGPT的一番对话

试用了一下ChatGPT&#xff0c;问了几个问题&#xff0c;虽然对人工智能充满信心&#xff0c;但是ChatGPT给我的感觉还没有形成气候。TA的很多回答是基于一些网络信息进行的糅合&#xff0c;甚至只是简单的复制。不过&#xff0c;毕竟还是处在发展的初级阶段&#xff0c;存在一…

如何与ChatGPT愉快地聊天

原文链接&#xff1a;https://mp.weixin.qq.com/s/ui-O4CnT_W51_zqW4krtcQ 人工智能的发展已经走到了一个新的阶段&#xff0c;在这个阶段&#xff0c;人工智能可以像人一样与我们进行深度的文本交互。其中&#xff0c;OpenAI的ChatGPT是一个具有代表性的模型。然而&#xff0…

实现chatgpt自然对话

1.概述 ChatGPT是当前自然语言处理领域的重要进展之一&#xff0c;通过预训练和微调的方式&#xff0c;ChatGPT可以生成高质量的文本&#xff0c;可应用于多种场景&#xff0c;如智能客服、聊天机器人、语音助手等。本文将详细介绍ChatGPT的原理、实战演练和流程图&#xff0c…

【ChatGPT实战】12.一键免费部署你的私人-ChatGPT-网页

正常来说搭建一个私人ChatGPT网页需要一定的网页开发技术和费用。幸运的是&#xff0c;现在有一种简便的方法可以一键免费部署你的私人ChatGPT网页。 本文将教大家如何实现&#xff0c;按照我的教程免费部署你自己的私人 ChatGPT 网页&#xff0c;让你的小伙伴们通过访问你的C…

免费无需魔法会语音聊天的ChatGPT

今天发现了一个很好的ChatGPT&#xff0c;可以语音聊天&#xff0c;而且免费无需魔法 角色目前包括夏洛克、雷电影等等&#xff0c;对话的声调完全模拟了原角色&#xff01; 目前只有英文和日语两种对话&#xff0c;我们可以文字输入或者语音输入&#xff0c;中文即可&#xff…

详解ChatGPT的免费总结插件Glarity

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,科大讯飞比赛第三名,CCF比赛第四名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

如何免费使用ChatGPT进行学术润色?你需要这些指令...

目录 1 ChatGPT4.0上线2 中科院ChatGPT学术版3 学术润色Prompts 1 ChatGPT4.0上线 2023年3月14日&#xff0c;OpenAI发布ChatGPT4.0。ChatGPT4.0比3.5更大&#xff0c;拥有更多的参数。这意味着它可以更好地捕捉和理解语言的复杂性和细微差别&#xff0c;而且ChatGPT4.0是多模…

让你的ChatGPT更加强大——200+小白用来解锁ChatGPT高级功能的提示(Prompts)——即开即用-开源纯免费-实时更新

让你的ChatGPT更加强大——200小白用来解锁ChatGPT高级功能的提示&#xff08;Prompts&#xff09; 使用说明标签筛选关键词搜索展示区复制语言切换常见问题为什么提示词用英文&#xff1f;中文搜索出错输出虚假信息提示词不好用为什么执着于 ChatGPT&#xff1f;最后 参考博客…

chatgpt没有免费版的吗?如何使用ChatGPT?

ChatGPT是基于GPT模型的聊天机器人&#xff0c;目前没有免费版。ChatGPT是由OpenAI开发的&#xff0c;OpenAI的GPT模型需要大量的计算资源和技术支持&#xff0c;因此需要付费才能使用。 目前&#xff0c;OpenAI提供了两种方式来使用GPT模型&#xff1a; 1. OpenAI API OpenA…

免费试用CharGPT的几种方法

很多朋友因为各种限制无法开通#ChatGPT Plus&#xff0c;而申请OpenAI的GPT-4 API也要慢慢排队&#xff08;我的也还没下来&#xff09;。于是在这里我搜集了X个可以免费使用的方法。注&#xff1a;哪有什么真正免费&#xff0c;只不过有人在替你付钱。因此下述的方法都有限制&…

ChatGPT 免费: 无需付费,即可享受高品质的聊天体验

现如今&#xff0c;在快节奏的生活中&#xff0c;人们需要与亲朋好友做好联系。这时候&#xff0c;聊天软件成为我们一种必不可少的工具。而ChatGPT免费作为一款非常高质量的聊天平台&#xff0c;无需付费即可享受到完美的聊天体验。 ChatGPT免费是一款十分方便和易用的聊天应…

ChatGPT应用——充当 Linux 终端

我想让你充当 Linux 终端。我将输入命令&#xff0c;您将回复终端应显示的内容。我希望您只在一个唯一的代码块内回复终端输出&#xff0c;而不是其他任何内容。不要写解释。除非我指示您这样做&#xff0c;否则不要键入命令。当我需要用英语告诉你一些事情时&#xff0c;我会把…

【分享】Github上有趣的ChatGPT应用源码与好用的ChatGPT插件

哈喽&#xff0c;大家好&#xff0c;我是木易巷&#xff01; 今天给大家分享几个Github上有趣的ChatGPT应用源码与好用的ChatGPT插件&#xff0c;一起来看看吧&#xff01; 一、Github上有趣的ChatGPT应用源码 1. ChatGPT 源码地址&#xff1a;https://github.com/lencx/Ch…

ChatGPT应用于软件测试中的切入口(干货!)

以上均为本人原创&#xff0c;转载请说明出处&#xff0c;谢谢&#xff01; 如果您觉得这篇文章还不错的话&#xff0c;请点击关注&#xff0c;转发&#xff0c;再看&#xff1b; 全是干货&#xff0c;话不多说 开搞&#xff01; 1. 测试想法生成器 可以使用ChatGPT技术&…

ChatGPT应用场景: 基于对话生成的智能客服系统

关于ChatGPT&#xff0c;今天小编简单说下用在客服服务的要点。 ChatGPT可以用于开发基于对话生成的智能客服系统&#xff0c;帮助企业提供高效、便捷、满意的在线客服服务&#xff0c;从而提升客户体验和满意度。 以下是ChatGPT应用于智能客服系统的一些场景&#xff1a; 1.…

Edge加载weTab扩展,实现ChatGPT应用

1、找开Edge浏览器&#xff0c;点右上角三个点儿&#xff0c;如下图&#xff0c;再点【扩展】 2、在弹出的窗口中点【管理扩展】 我上这个中&#xff0c;上面已经存在【WeTab-免费ChatGPT新标签页】&#xff0c;说明我已经加载这个扩展项啦 3、再在弹出的扩展页中&#xff0c;…

ChatGPT-计算机应用新起点

ChatGPT是一款由OpenAI公司开发的大型语言模型&#xff0c;采用了GPT-3.5的架构&#xff0c;是目前最为先进的自然语言处理技术之一。该模型可以生成各种类型的自然语言文本&#xff0c;例如文章、对话、摘要等等&#xff0c;并可以理解语义和上下文&#xff0c;生成高质量的语…

ChatGPT 应用汇总及操作手册

汇总手册地址&#xff1a;https://www.mojidoc.com/05dbc-uvhdkr22fjazlowmiihngdoxvq-00b?continueFlag8f75ea3c60f02d7aee7fc531bc0ee944 GPT-3 相关 AI 工具汇总&#xff1a;共615 个 AI 技术落地的工具&#xff0c;包含了共 179 个使用场景&#xff0c;点击这里直接访问 h…

ChatGPT应用实践

运用ExcelPowerBIChatGPT&#xff0c;先让报表有形状&#x1f4b9;&#xff0c;再到“会说话”。全套方案在我的一亩三分地落地了。&#x1f60b;支持私有化部署且近乎零成本(非商用)。

ChatGPT应用与Python实战开发

最近什么最火一定是ChatGPT的AI技术&#xff0c;那什么语言最火呢&#xff0c;那一定是Python语言。这两个最火的语言在一起能擦出什么样的火花呢&#xff0c;来蚂蚁老师课堂学习新鲜出炉的课程吧&#xff0c;帮你解决一大部分的疑惑&#xff0c;感兴趣的小伙伴&#xff0c;查看…