今天分享《ChatGPT 初探》这门课程分为四个部分:ChatGPT 的简介、原理、技巧和 API 。
第一部分,首先说下 ChatGPT 的含义,ChatGPT 是 Chat Generative Pretrained Transformer 的缩写,中文名是聊天生成式预训练转换器。其是由 OpenAI 在 2022 年 11 月发布的大规模语言模型(LLM, Large Language Model),采用了监督和增强学习(Supervised and Reinforcement Learning)方法进行微调(fine-tuned)。
【资料图】
由于 ChatGPT 相对于之前的产品效果有巨大的提升,因此在其面世以来大受欢迎,并引发了新一轮大规模语言模型的热潮。ChatGPT 可以对自然语言输入,也就是提示(prompt),进行理解并作出回应。由于提示的质量(Quality of Prompt)是 ChatGPT 会话成功的关键因素,从而衍生出了 Prompt 工程。其实,Prompt 工程已经是一门成熟的技术,虽然 ChatGPT 是 2022 年底提出来的,但 Prompt工程技术早已存在,在网上还存在着售卖 Prompt 网站(如 PromptBase),也有 Prompt 综述论文(如 Pengfei Liu, Weizhe Yuan et al. Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing. 2021)。
这里重点介绍下 AI hallucination,也就是人工智能幻觉。与人类幻觉(human hallucination)相比,人类幻觉更多的是一种错觉,比如把筷子放在水里,发现筷子弯了,这是迷惑眼睛的一种现象,实际上,筷子没有弯曲。而 AI 幻觉(Artificial Intelligence hallucination)可以说是,AI 在一本正经的胡诌。这里,我举两个比较著名的例子,一个是 OpenAI ChatGPT 例子,据纽约时报(New York Times)报道,这事情发生在今年 5 月份,纽约两个律师使用 ChatGPT 生成相关案例文件,并把这些案例提交到法院,而这些由 ChatGPT 生成的案例都虚构的,后果也是很严重的,这两个律师会受到法律制裁,甚至可能会吊销其律师执照;另一个是 Google AI chatbot - Bard 例子,据 The Verge 新闻报道,在 Google 在 2023 年 2 月发布的 AI 聊天机器人 Bard 的 demo 中出现了事实性错误(factual error),这个错误最早是由天文学家发现并提出的。具体的 demo,如下图所示
从上图中,可以看到,对 "What new discoveries from the James Webb Space Telescope can I tell my 9 year old about?" 问题的回应中,第 3 条 "JWST took the very first pictures of a planet outside of our own solar system." 是一个事实性错误,詹姆斯韦伯太空望远镜(James Webb Space Telescope, JWST)并没有首次拍摄到太阳系外的星球,JWST 是在 2021 年发射升空的,而早在 2004 年美国航空局(National Aeronautics and Space Administration, NASA)网站就发布太阳系外的星球照片。而 Google 作为有史以来最伟大的公司之一,对此事的应对是值得赞赏的。Google 保留了原始的 Bard 发布演示 demo,直面问题,其发言人 Jane Park 向 The Verge 声明,“这凸显了严格测试过程的重要性,本周我们将通过受信任的测试人员计划启动这个过程。我们将外部反馈和我们自己的内部测试相结合,确保 Bard 的回答在质量、安全性和真实信息的基础性方面达到高标准。”(“This highlights the importance of a rigorous testing process, something that we’re kicking off this week with our Trusted Tester program. We’ll combine external feedback with our own internal testing to make sure Bard’s responses meet a high bar for quality, safety and groundedness in real-world information.”)
OpenAI ChatGPT 目前已经应用到各行各业,如客户服务(Customer service)、教育(Education)、信息提供(Information provision)、私人助理(Personal assistant)、社交(Social interaction),尤其是娱乐产业(Entertainment industry)。
第二部分,介绍下 ChatGPT 的原理,也就是如何得到 ChatGPT 的。具体过程,如下图所示,该图来自 OpenAI 研究员 Andrej Karpathy 在微软 Build 2023 大会 PPT。
从图中可以看出,ChatGPT 的训练过程分为 4 个阶段:预训练(Pretraining)、监督微调(Supervised Finetuning)、奖励建模(Reward Modeling)和增强学习(Reinforcement Learning)。由于预训练的数据量达到万亿级别,所以需要的 GPU 较多,超过一千,花费数月时间,占了训练时间的大半部分。
第三部分,介绍 Prompt 技巧,以此创建有效的 ChatGPT prompts ,推动吸引人的且信息丰富的会话。下面介绍一些有效的 prompts 的关键原则(key principles),这些原则的前提是你希望从 ChatGPT 获取有用信息。如果你只是想要闲聊、侃侃大山,就没有必要使用这些原则。Good Prompts 的关键原则如下:
下图所展示的是,一些有效的 Prompt 和无效的 Prompt 例子。
有效的 prompts,如对文章要点的总结、巴黎最好的素食餐厅、中国的首都在哪里,等等;
无效的prompts,如告诉我关于整个世界的一些事情、 可以帮我做作业吗、你怎么样了,等等;
有些 prompts,可能是无效的,也可能是有效的,关键看你与 ChatGPT 对话的目的是什么。比如询问天气,如果你只是想知道具体的天气情况,那么这个 prompt 就是有效的;如果你只是把其当做一个开场白的话,那就是无效的,你没有从中获取到有效信息。
提示技巧(Prompt Tips)
总而言之,制作清晰的、简洁的 prompts 以提供 ChatGPT 必要的上下文信息(context)、指令(instructions)和限制(constraints)。
更多例子,如下图所示
下面看看 ChatGPT 的回答
最后一部分,介绍 OpenAI API的申请和测试。OpenAI 平台提供 API 用于构建应用或者 ChatGPT 插件。申请 OpenAI API 需要准备三件套:VPN(Virtual Private Network, 虚拟专用网)、Google GMail 邮箱账号和国外手机(接收验证码,可用接码平台代替)。测试 OpenAI API 可以采用两种方式:curl 命令和 Python 代码。这里的测试希望完成一个简单的任务,让OpenAI ChatGPT 输出 "This is a test!"。
具体的 curl 命令,如下所示:
curl --http1.1 https://api.openai.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d "{ "model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": "Say this is a test!"}] }"
具体的 Python 代码,如下所示:
import osimport openaiopenai.api_key = os.getenv("OPENAI_API_KEY")completion = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[ {"role":"user", "content":"Say \ this is a test!"} ] )print(completion.choices[0].message.content)
更多解释说明,参见我的博文 “OpenAI API keys 申请和测试小结”。
[1]The Art of ChatGPT Prompting: A Guide to Crafting Clear and Effective Prompts.https://wethinkapp.medium.com/the-art-of-chatgpt-prompting-a-guide-to-crafting-clear-and-effective-prompts-1dfc2589295b[2]盘点8大网络新文体:生活体、甄嬛体等流行.http://www.xinhuanet.com/politics/2012-12/20/c_124121991.htm