揭秘ChatGPT,如何打造自己的自定义指令

这篇具有很好参考价值的文章主要介绍了揭秘ChatGPT,如何打造自己的自定义指令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、ChatGPT-0720更新

又在深夜,正要打开ChatGPT官网测试下pdf对话功能,发现ChatGPT又有更新。本次更新总结有2点:

1.对于Plus用户,GPT-4的使用限额从25条/3h提升至50条(整整提升1倍~ $20的订阅费又更超值了)

2.新增 Custom instructions (个性化指令),简单可以理解为个人角色和期望回答定义

Why instructions?

Custom instructions中文翻译过来叫 个性化指令 会比较准确,为什么是instruction这个单词?在大语言模型的训练中,经常会看到 Instruct Tuning(指令微调)这个单词,GPT家族中也有一个 InstructGPT的模型(指令微调后的GPT),通过指令微调的LLM会更按照我们期望的方式输出。一些LLM的训练语料中也会采用instruction的形式:

{
"instruction": "将不同颜色混合后的结果",
"input": "红色、黄色",
"output": "橙色"
}


对比指令和提示词,指令更像是引导指示命令的意思,提示词更像是可参考可引用的意思,这种语义上的细微差别,还是相当有意思的~

二、体验个性化指令

1、开启

ChatGPT的plus用户,在Beta features开启后,个人面板中会新增Custom instructions 菜单。

2、配置

然后打开Custom instructions 进行自定义指令的输入。指令的输入分为2部分:

配置项:个人简介

官网的提示信息如下,简单来说就是一些关于个人信息的关键提取:

  • Where are you based? — 所在地点
  • What do you do for work? — 工作内容
  • What are your hobbies and interests? — 兴趣爱好
  • What subjects can you talk about for hours? — 最近交谈关注的事项
  • What are some goals you have? — 目标与计划

配置项:如何回答

官网的提示信息如下,主要是关于GPT输出格式和风格的定义:

  • How formal or casual should ChatGPT be? -- 聊天语气
  • How long or short should responses generally be? -- 回答的长短
  • How do you want to be addressed? — 你希望被如何称呼
  • Should ChatGPT have opinions on topics or remain neutral? — 对话题持有观点还是保持中立

3、对比

接下来简单测试下ChatGPT开启 Custom instructions 前后的变化

对比效果(未开启)

提问在项目中集成单元测试,GPT不知道我的工作领域(前端),在输出时也没有针对性得给到解决方案,而是在做整体介绍:

对比效果(开启个性化指令)

开启个性化指令(前端工程师 # 代码 解决方案 Typescript),相同的问题GPT的输出会参考我的身份和我所期望的回答内容,建议采用Jest,并且给出完整的安装配置教程。

4、总结

Custom instructions 技术上就是提前注入一条用户自己定义的提示词,解决的问题是用户每次新建对话不需要重复输入用户身份和期望的回答,OpenAI官方微博也提到:

我们在用户反馈中发现,每次开始ChatGPT对话都需要重新加上固定提示词所带来的不便。通过与22个国家的用户进行交流,我们加深了对角色定义和操作定义在使用LLM时的重要性认识,这些定义指令能够有效反映各种背景和每个人独特需求方面。

三、HiBox如何实现?

通过收藏提示词实现

公司内部同学在使用HiBox中也遇到类似的问题,例如使用HiBox进行IT领域单词的翻译,每次打开都要重新定义,最后给他的解决方案也是使用提前注入Prompt实现:

你是一个同时精通汉语和英语的研发工程师,请将我后续发送的内容翻译成英文


这个提示词其实就是自定义指令

那为什么OpenAI不通过提示词的方式,而是另外做个性化指令来实现呢?我觉得原因有2个:

一方面,用户有些 通用的共性的 信息(例如:性别、年龄、地区、工作领域等),通过配置个性化指令,不需要每次都拼接在提示词里面。

另一方面,个性化指令的方式后续可扩展沉淀,例如系统根据用户最近的问答行为,自动推测用户的信息和喜好,类似打造专属的私人助手。

通过systemMessage实现

systemMessage是什么?

GPT接口的messages是一个消息对象集合,每个消息中都有一个字段 role ,取值有:

1.system(系统)

2.assistant(GPT助手)

3.user(用户)

其中 system 就是用来定义当前对话的系统层面的信息,并且它在GPT的推理过程中,权重高于其它两种消息(Function_calling的实现就用到了systemMessage)。

参考GPT官网的实现(用户个人简介、回答倾向性),通过一般分析总结,我们补充1个对GPT助手的简介,共有3块内容。以面试场景为例:

1.AssistantProfile(助手简介): 京东资深前端工程师、面试官

2.UserProfile(用户简介): 前端实习生,名字叫小方

3.AssistantReplyStyle(助手回复风格): 主动提问、严肃客观、全面考察

将上述内容组装到role=system的message里,理论上就能实现类似官网个性化指令的效果。

一个典型的messages如下:

[
	{
		"role": "system",
		"content": "#AssistantProfile: 京东面试官\\n #Userprofile: 应届前端实习生\\n #AssistantReplyStyle: 主动提问、严肃客观、全面考察"
	},
	{
		"role": "user",
		"content": "你好面试官,我准备好了"
	}
]




关键代码实现如下:

1、插件配置新增GPTProfile

新增指令配置项,支持配置多个,支持用户切换

"HiBox.config.chatgptProfiles": {
  "type": "array",
  "default": [{ "assistantProfile": "由OpenAI训练的大语言模型-ChatGPT", "userProfile": "", "answerStyle": "简洁" }],
  "markdownDescription": "调用ChatGPT时自定义的指令,支持配置多个",
  "items": {
    "type": "object",
    "properties": {
      "assistantProfile": {
        "type": "string",
        "description": "定义ChatGPT的角色/名称等,例如:面试官、名字是小爱同学"
      },
      "userProfile": {
        "type": "string",
        "description": "定义你的个人信息,例如:我叫小明,在京东集团做前端开发"
      },
      "AssistantReplyStyle": {
        "type": "string",
        "description": "定义ChatGPT的回答倾向,例如:详细、中文、尽量用代码回答"
      }
    }
  }
}




2、在调用GPT时读取Profile传给systemMessage

这里需要注意,对于GPT来说英文描述的权重会高于中文描述 ,算是一个小小的Prompt Trick

export function getSystemMessageWithProfile() {
  // 读取用户设置的个性化指令(中文模板,易于用户理解)
  const profileStr = GlobalState.get('chatgptCurrentProfile');
  // 改成英文(英文模板,提升权重)
  return profileStr
    .replace('[系统简介]', '#AssistantProfile')
    .replace(' [个人简介]', '\\n#UserProfile')
    .replace(' [回答风格]', '\\n#AssistantReplyStyle');
}

// 请求GPT的时候
const body = {
		// ...
    systemMessage: getSystemMessageWithProfile() || '你是ChatGPT,由OpenAI训练的大型语言模型,请尽可能简洁地回答。',
};


HiBox中测试一下

本地测试下翻译官和模拟面试场景,效果基本复合预期

HiBox是公司内部自研的VSCode插件,HiBox在 v2.9.1 开始支持用户配置自定义指令,总体使用效果可对齐ChatGPT官网。

作者:京东零售 陈隆德

来源:京东云开发者社区 转载请注明来源文章来源地址https://www.toymoban.com/news/detail-684285.html

到了这里,关于揭秘ChatGPT,如何打造自己的自定义指令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用MidJourney设计自己的专属Logo;哈佛大学教你如何使用GPT-4打造智能程序;ChatGPT精美入门手册;使用ChatGPT开发二次元游戏攻略 | ShowMeAI日报

    👀 日报周刊合集 | 🎡 生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! ⋙ Twitter@indigo11 5月11日凌晨,在一年一度的Google I/O开发者大会上,Google 高管轮番上阵,公布了一系列与生成式AI相关进展,涉及全新大模型、AI聊天机器人、搜索、办公软件、云服务、安卓系统等

    2024年02月09日
    浏览(112)
  • 召唤神龙打造自己的ChatGPT

    在之前的两篇文章中,我介绍了GPT 1和2的模型,并分别用Tensorflow和Pytorch来实现了模型的训练。具体可以见以下文章链接: 1. 基于Tensorflow来重现GPT v1模型_gzroy的博客-CSDN博客 2. 花费7元训练自己的GPT 2模型_gzroy的博客-CSDN博客 有了GPT模型,我们自然会想更进一步来训练自己的

    2024年02月14日
    浏览(35)
  • Java自定义类:打造属于自己的编程世界

    🧑‍💻CSDN主页:夏志121的主页 📋专栏地址:Java核心技术专栏 目录 一、自定义类示例 二、隐式参数与显式参数 三、封装的优点         自定义类是Java中 最基本、也是最重要的 组成部分之一,使用者可以根据需求创建自己的数据类型,从而更加 高效 地构建程序。  

    2024年02月05日
    浏览(31)
  • 轻松打造自己的聊天机器人:JAVA版ChatGPT

    ChatGPT 是一个基于GPT的聊天机器人,能够进行自然语言交流,非常适合科技爱好者和工程师学习和开发。在下面的步骤中,我们将教您如何在JAVA 上搭建一个ChatGPT。 步骤1: 下载和安装JAVA开发环境 JAVA 是一个跨平台的编程语言,可以在不同的操作系统上运行。首先,您需要下载

    2024年02月06日
    浏览(40)
  • 【Blog】记录一下如何让自己的自建网站让百度搜索收录

    前端时间博主自己搭建了一个自己的Blog网站,并且已经部署到服务器上面了,感兴趣的小伙伴可以点击访问一下: 依琴の小站 。本站会长期维护,并且时不时会更新一些新的内容。 我们自己建站,相信很多人也都会遇到过,自己写的一些文章并不能被百度进行收录,导致可

    2024年02月01日
    浏览(89)
  • 福利!打造自己的ChatGPT聊天小程序,前后端代码全开源

    本文分享一个我前几个月实现的一个智能聊天系统小项目,包含了java后端,微信小程序端,web页面端三个子工程。 代码已经全部开源,地址放在了文末。 最近一年,chatGPT的火爆程度,已经不需要我再多说了,但是依旧有很多人想用却用不上,原因大家也都很清楚,因为需要

    2024年02月09日
    浏览(34)
  • ChatGPT新突破:打造自己的智能机器人控制系统

    💖 作者简介:大家好,我是Zeeland,全栈领域优质创作者。 📝 CSDN主页:Zeeland🔥 📣 我的博客:Zeeland 📚 Github主页: Undertone0809 (Zeeland) (github.com) 🎉 支持我:点赞👍+收藏⭐️+留言📝 📣 系列专栏:Python系列专栏 🍁 💬介绍:The mixture of software dev+Iot+ml+anything🔥 【promptu

    2024年02月08日
    浏览(35)
  • 使用ChatGPT加个人微信公众号打造属于自己的AI助手

    相信现在不少人已经体验过ChatGPT,并被它的智能程度所折服。ChatGPT可以高效的完成许多事,但就目前来说使用还是限制不少,如何进一步使用它和如何更加方便使用它是现在许多人的思考问题。在此,给各位介绍一下如何使用微信公众号和ChatGPT打造成一个方便的个人助手。

    2023年04月17日
    浏览(107)
  • DeepSpeed-Chat 打造类ChatGPT全流程 笔记二之监督指令微调

    DeepSpeed-Chat 打造类ChatGPT全流程 笔记一 【DeepSpeed 教程翻译】三,在 DeepSpeed中使用 PyTorch Profiler和Flops Profiler DeepSpeed结合Megatron-LM训练GPT2模型笔记(上) 【DeepSpeed 教程翻译】二,Megatron-LM GPT2,Zero 和 ZeRO-Offload 【DeepSpeed 教程翻译】开始,安装细节和CIFAR-10 Tutorial 在 DeepSpeed-C

    2024年02月12日
    浏览(38)
  • 如何一键展示全平台信息?Python手把手教你搭建自己的自媒体展示平台

    灵感源于之前写过的Github中Readme.md中可以插入自己的js图片和动态api解析模块,在展示方面十分的美观: 这方面原理可以简化为,在Markdown中,你可以使用HTML标签来添加图像,就像这样: 具体来说,你可以使用 img 标签来嵌入图像,并使用 src 属性指定图像的URL。我们可以通

    2024年04月09日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包