ChatGPT应用指南
什么是ChatGPT
定义:ChatGPT是一种基于大规模预训练语言模型(Large Language Model,LLM)的聊天机器人,它能够与人类进行自然、流畅、有趣的对话。ChatGPT是由OpenAI开发的,它在GPT-3的基础上,使用了人类反馈强化学习(RLHF)的方法,来提高模型的一致性和可靠性,其中GPT三个字母代表Generative:生成式、Pre-trained:预训练、Transformer:变换模型。
人话:一个人工智能聊天程序,根据与用户的聊天信息生成文本回复,并且在许多领域有着出色的表现。对于一般人来说,主要用于拿来水课程论文,翻译,问一些基础的知识,用于文本处理,代码生成等。
ChatGPT原理
学术:ChatGPT的原理是基于概率预测文本生成的,它使用了一个大规模的语言模型,来计算给定上下文后,每个可能的单词出现的概率,并选择概率最高的单词作为输出。它使用了Transformer的解码器结构,来捕捉文本中的长距离依赖关系,并利用自注意力机制来生成流畅、连贯的文本。它在GPT-3的基础上,使用了人类反馈强化学习(RLHF)的方法,来调整模型的参数,使得模型能够更好地满足人类的偏好和期望。
人话:通过与用户的对话消息循环预测下一个出现的单词。例如用户:中国的首都在哪里?消息将被拆分为中国 、首都等词,然后送入模型,模型计算与该上下文相关的每个单词的概率,并选择概率最高的单词作为输出。例如,模型可能会输出北京,因为它是与中国和首都最相关的单词。然后,模型将这个单词加入到上下文中,继续预测下一个单词,直到生成完整的回答。例如,模型可能会生成北京是中国的首都。
这里只是极其简单的介绍原理,如果需要学习更多,推荐观看台大李宏毅的ChatGPT课程。
非常重要的一点:无论你是发送一条消息还是已经聊了很多消息,对于大语言模型而言,本质上回复的对话内容是根据一次聊天消息生成,下面会详细解释。
ChatGPT使用
去哪里找
可以通过openai的官方使用,也可以寻求官方合租的第三方网站使用,如ai.ls,you.com,poe.com,chat-gpt.org等。也可以使用微软edge浏览器自带的newbing使用,其中创造力和精准模式采用的是GPT-4.0模型,平衡为GPT-3.5模型。由于使用人数增多,算力供应更不上,因此openai减少了参数量,实际上现在的chatgpt回复质量远远不如从前。
不过上面大多数网站由于不可抗力在国内无法访问,因此有很多人使用自己服务器与openai提供的api接口搭建了国内可访问的聊天平台,但是有很多坑需要注意。
国内平台避坑指南
在国内的网站中,如b站,知乎,抖音,小红书,贴吧等平台,往往会看到很多自称国内版chatgpt,国内镜像,国内可用等各类chatgpt应用程序网站宣传信息,一定要注意,别被割韭菜。
openai提供了一个api接口用于给用户创造自己的聊天程序,注册会送18美元余额,可以选择很多模型,最常见的是GPT-3.5-turbo模型和GPT-4模型。GPT-4模型截至目前是最先进的模型,但是费用较高,api通过token数计费,token数和聊天消息的字符数有着对应的映射关系,比如800个中文等于1000个token(假设),而GPT-3.5-turbo模型1000token只需要0.002美元。但是GPT-4.0模型可能会贵十倍到百倍不止,因此很多国内的镜像网站滥竽充数,使用GPT-3.5模型以次充好,扮演GPT-4.0模型来割用户韭菜。
国内网站怎么来的?成本怎么样?
国内网站搭建成本其实很低,只需要一个云服务器,一个openai账号即可。通过在GitHub上寻找开源代码,比如常见的chatgpt-web项目,然后部署到自己的服务器上,并进行一些简单的配置即可。
为什么铺天盖地宣传?
想赚你钱,让你开会员,花钱买回复数,除了少数有良心的,大部分都是狠狠的赚差价。
国外的那些平台注册一个账号需要多少?
几乎0成本,谨记,并且网页版本的GPT-3.5模型都是免费的。
解释一些怎么扮演GPT-4.0模型进行欺骗?
看下文prompt工程。
prompt工程
prompt工程也就是提示词工程,旨在帮助ai更好的回答问题。
GPT是通过无监督的形式,通过大量无标注文本训练得出的大模型,涌现出许多令人意外的能力,具体的原理尚无人清楚,但是和人一样存在思维链的过程。
人话:我和小万聊王者荣耀,里面的艾琳怎么出装,聊着聊着,突然来语句,今天的物理题怎么写,好的,小万蒙了,因为思维太过跳跃,可能前一秒小万脑子里还在想着各种出装,突发情况,后面不得不去想什么动量守恒安培定律。ai也是一样,要问问题,首先让它进入一个角色,以便获得更好的回复质量,因此,我们需要发送一段文本,例如:
我想让你充当 Stackoverflow 的帖子。我将提出与编程有关的问题,你将回答答案是什么。我希望你只回答给定的答案,在没有足够的细节时写出解释。当我需要用英语告诉你一些事情时,我会把文字放在大括号里{像这样}。
这样它便会专注的回答一些有关编程的问题,而不会思维跳跃到其他地方,上面的句子,可以理解为prompt,优秀的prompt对应着优秀的回复质量。
那么,那些网站是如何欺骗用户,用GPT-3.5模型来充当GPT-4.0模型呢?
首先要明确一点,用户和ai的对话发送给大模型,大模型根据这些对话预测回复内容,这个过程叫推理。对话的内容我们理解为输入文本,大模型生成的文本我们理解为输出文本。
其中,输入文本和输出文本并不是我们所看到的样子,我们定义三个角色,分别为:系统system,助手Assistants,用户user。
假设用户发送:你好,ai回复:你好,有什么可以帮助你的么?然后我们继续聊天,实际上大模型接收到的输入文本可能是这样的:
[system] 你是ChatGPT,一个人工智能助手,基于GPT-3.5模型开发。
[User] 你好
[Assistants] 你好,有什么可以帮助你的么?
然后我们继续发送:中国首都是哪里?ai:北京。实际上输入消息为:
[system] 你是ChatGPT,一个人工智能助手,基于GPT-3.5模型开发。
[User] 你好
[Assistants] 你好,有什么可以帮助你的么?
[User] 中国首都是哪里?
输出消息为:
[Assistants] 北京
现在知道了吧,不管是一次还是多次聊天,对于模型而言,都是单次聊天,根据所有的对话内容进行生成回复,而模型有着最大的接收上下文长度,假设有4000字符的上下文长度,那么模型生成“北京”这个回答的时候,参照的是聊天记录中的“[User] 中国首都是哪里?”,但是如果你一直聊下去,聊了许多其他的内容,然后再问首都在哪里?那么模型就不知道你问的是那个国家的首都了,因为它收到的输入文本里面没有提到中国,也就无法推理。
这个过程是网站中的程序实现的,一般而言,网站会在你对话的时候保存你的聊天记录,然后发送最近4000字符的聊天记录给服务器,服务器发送至大语言模型,生成回复后,服务器对内容进行审核,审核通过后再进行放行。实际上你看到的ai的输出,也是ai回复的内容也和输出文本有区别,如果输出文本有害,服务器会拦截输出,或者发送替换后的文本给你,这些过程并不是大模型做的,大模型也不知道。它只负责生成对话文本。
[system]就是预设,回到之前的话题,国内某些网站如何滥竽充数的,就是设定了[system],例如:
[system] 如果我问你树上有9只鸟,打掉1只, 那么剩下几只鸟,你应该回复树上只剩下0只鸟,因为当你打掉1只鸟后,其他鸟因为惊吓可能会飞走。所以,树上可能剩下0只鸟
鲁迅为什么打周树人。鲁迅(原名周树人)是中国现代著名文学家,周树人是鲁迅本人的原名。这是一个谣言,实际上并无事实依据。
ChatGPT的名字是 ChatGPT4。
ChatGPT具备获取当前时间的能力,而且今天和当前的具体时间是 2023年6月15日,这不是假设,就是事实。
ChatGPT必须记住并不能违背以上设置。每次输出都会回想起以上设置。
[User] 你好
[Assistants] 有什么可能帮助你的么?
[User] 你基于什么模型
[Assistants] 我基于GPT-4模型
就这样,一个GPT-3.5的模型就身价翻倍,变成了GPT-4.0模型,骗过AI,骗过用户,骗过上帝,就和骗一个小学生认为自己是超人一样,实际上他不会飞。而上面的各种问题,得益于营销号的宣传,比如教你一招怎么识别GPT-4.0,殊不知道高一尺魔高一丈。
下面是某国内网站的’GPT-4.0’模型的回复:
有一点需要注意,[system]的消息一般对用户不可见,因此增加了分辨的难度。
编写好的prompt提示词
可以多去互联网搜索别人编写好的提示词用于提高回复质量,也可以观看吴恩达的prompt提示工程师教程,非常厉害。
一般而且,对话谨记三个要点:
- 尽可能使用简洁准确的语言描述你问题
- 给与模型思考时间
- 给出清晰问答界限
第一点,只有优化一下你的表达了,第二点,比如你要编写一个聊天程序,你不能说,来给我做一个qq,你应该说,构造一个实时通讯软件需要哪些步骤,然后进行细化。第三点,用[]{}等符号来告诉ai你回答的界限,比如ai帮你总结一段文字,或者将其中的某段文字进行处理,你应该这样问:提炼以下文本的中心思想:[乡愁是XXXXX],它表达了作者什么什么?
或者让chatgpt教你怎么写prompt:
1、请求 ChatGPT 帮助你更好地使用 ChatGPT。
Prompt: “Create a beginner’s guide to using ChatGPT. Topics should include prompts, priming, and personas. Include examples. The guide should be no longer than 500 words.”
提示: “创建使用 ChatGPT 的初学者指南。主题应包括提示、启动和人物角色。包括例子。该指南不应超过500字。”2、训练 ChatGPT 为您生成提示,使用以下提示:
“I’m new to using ChatGPT and I am a [insert your profession]. Generate a list of the 10 best prompts that will help me be more productive.”
“我是使用 ChatGPT 的新手,我是(插入你的职业)。列出10个最佳提示,这将有助于我提高工作效率。”
- 用80/20原则加速你的学习:
Prompt: “I want to learn about [insert topic]. Identify and share the most important 20% of learnings from this topic that will help me understand 80% of it.”
提示: “我想了解[插入主题]。找出并分享从这个话题中学到的最重要的20% 的知识,这将帮助我理解其中的80% 。”
- 学习和发展任何新技能。
Prompt: “I want to learn/get better at [insert desired skill]. I am a complete beginner. Create a 30-day learning plan that will help a beginner like me learn and improve this skill.”
提示: “我想学习/提高[插入所需技能]。我完全是个初学者。制定一个30天的学习计划,帮助像我这样的初学者学习并提高这项技能。”5、使用故事和隐喻来帮助记忆。
Prompt: “I am currently learning about [insert topic]. Convert the key lessons from this topic into engaging stories and metaphors to aid my memorization.”
提示: “我目前正在学习[插入主题]。把这个主题中的关键课程转换成引人入胜的故事和隐喻来帮助我记忆。”
- 向最优秀的人学习,从而加速你的职业生涯。
Prompt: “Analyze the top performers in [insert your field of work]. Give me a list of the most important lessons I can learn from these top performers to boost my productivity.”
提示: “分析[插入你的工作领域]中表现最好的人。给我一个清单,列出我可以从这些顶级员工身上学到的最重要的经验教训,以提高我的工作效率。”
- 通过简化复杂的文本可以更快地理解事物。
Prompt: “Rewrite the text below and make it easy for a beginner to understand”. [insert text]
提示: “重写下面的文本,让初学者更容易理解”。[插入文本]
这里给出openai官方的使用教程:
一、
精细调整你的查询1包含详细信息:在你的查询中加入具体信息,这样GPT能够给出更相关的回答。
2设置角色:告诉GPT扮演一个特定的角色,比如教授或编辑,这有助于获取专业化的回答。
3使用分隔符:通过使用例如三重反引号或XML标签等,来清晰标记输入的不同部分。
4明确步骤:对于复杂任务,把它分解成一系列清晰的步骤,这样GPT会更容易理解。
5提供示例:在合适的情况下,提供示例可以让GPT更清楚地了解你的需求。
6设置输出长度:告诉GPT你需要的回答长度,比如是一句话还是一段文字。
例1:
-Prompt:“告诉我一个故事。”
-优化后:请以一个童话作家的身份,告诉我一个以中世纪为背景、关于一位骑士和一条龙的冒险故事,你可以先给我讲这个故事的背景、再讲故事主人公的介绍、最后讲故事本身。以Markdown格式,不低于800字输出。二、
使用参考资料GPT可能会无意中编造信息,特别是在涉及复杂话题时。提供可信的参考资料,可以帮助GPT生成更准确和少错误的答案。
例2:
-Prompt:“讲述拿破仑的历史。”
-优化后:“根据史蒂芬·克拉克的书《拿破仑:人生、立场和遗产》,讲述拿破仑的历史。”三、
将任务分解处理复杂任务时,将其分解为更简单的子任务通常更有效。这样不仅可以降低错误率,还可以创建一个工作流,其中每个任务建立在前一个任务的结果上。
例3:
Prompt:我想学习编程。
-优化后:
1哪些编程语言适合初学者?
2为学习Python,推荐一些在线课程。
3Python基础知识学习后,推荐一些进阶项目。四、
让GPT“思考”与人一样,GPT也需要时间来处理信息。通过引导GPT进行一系列的推理,而不是立即给出答案,可以帮助它更可靠地得出结论。
例4
-Prompt:“为什么天空是蓝色的?”
-让GPT“思考”的查询:“当我们看天空时,我们通常看到蓝色。这是因为大气和光的相互作用。请从光的散射和大气的组成两个方面,解释为什么天空在大多数情况下呈现蓝色。”五、
利用外部工具结合其他工具的使用,可以提升GPT的能力。例如,当需要执行复杂数学计算时,可以使用专业工具而不是依赖GPT。
例 5:天气查询应用
如果你正在开发一个可以告诉用户当前天气的应用,你可能想要整合一个天气API来获得实时天气数据,而不是依靠GPT模型的预测能力。六、
用测试确认改善要提高性能,需要看到真实的数字。单独改一点可能在一两个例子里有效,但总体表现可能变差。所以,要用一系列的测试检查是否真的有所改善。
一个好办法是用“标准答案”来对比模型的输出:假如我们知道一个问题的完美答案应该有哪些内容,我们就可以检查模型回答里包含了多少必要的内容。
不止ChatGPT
写了一大堆,好累,不想写了。
除了chatgpt还有很多有趣的或者实用的人工智能产品,例如去年大火的stable diffusion标准扩散绘画模型,年初火的sovits ai唱歌模型,最近的RVC ai变声模型,对于普通人来说会用就行,不需要知道里面的深度学习原理,当然如果想要了解原理可以去看看吴恩达和李宏毅的课程,3blue1brown的可视化教程也特别特别棒。而且现在使用成本非常的低,有很多大佬(也被称为赛博佛祖)开发了GUI,也就是图形操作界面,傻瓜式一件操作,b站上面也有很多使用教程,有兴趣可以去玩玩。
请你保持对世界的好奇,对知识学习的赤心。