正文
【生成式 AI】ChatGPT 原理剖析 (1/3) — 對 ChatGPT 的常見誤解
误解 1:认为 ChatGPT 是由开发者准备好的的罐头回应所提出的问题
ChatGPT 会生成一些匪夷所思的笑话,很明显不是从罐头中拿出的。
误解 2:ChatGPT 的答案是网络搜寻的结果
然而 ChatGPT 的答案在网络上很多都找不到一模一样的语句,甚至会瞎编答案。
ChatGPT 没有对 2021 年以后的数据,并且没有联网。
ChatGPT 实际上是在做文字接龙工作。接收一串字符串,经过函数 后得到生成下一个字的机率分布。
如何训练出函数 ?从网络爬取大量资料 + 人类监督
ChatGPT 原理剖析 (2/3) — 預訓練 (Pre-train)
GPT 全称 Generative Pre-trained Transformer,是一个经过预训练的、基于 Transformer 的生成模型。
一般机器是怎么学习的?
以机器翻译为例:督导式学习:搜集大量中英成对语句,让机器自行寻找一个函数式 ,输入英文,输出中文。
网络上的每一段文字就可以教机器做文字接龙。
GPT-2 就是用的这种方法。
GPT-2 拥有 1542M 个参数,在回答问题上比一些模型要好,但远不及人类的水平。
GPT-3 的数据集有 570GB,还是从 45T 的数据中筛选出来的,这相当于阅读哈利波特全集 30W 遍。
如果只从网络资料中学习,可能会学到一些无用的信息。
此时就需要人类参与的督导式学习,在预训练模型的基础上作出微调(finetune),引导 ChatGPT 生成正确的答案。
人类老师并不需要教会所有语言,机器自然就能回答其他语言的提出的问题。
在经过预训练后得到的 GPT 模型,再加上督导式学习,告诉 ChatGPT 回答正确的内容,或增强式学习,给 ChatGPT 返回的信息做出评价。
有时候可以得到预训练时留下的痕迹,如上图,回答的开头用了逗号。
ChatGPT 原理剖析 (3/3) — ChatGPT 所帶來的研究問題
可以加上一些特定的提示语以尝试获得更想要的答案。对 ChatGPT 进行催眠,在学术界叫做 Prompting。
一些 prompt ChatGPT 的网站:
- PlexPt/awesome-chatgpt-prompts-zh: ChatGPT 中文调教指南。各种场景使用指南。学习怎么让它听你的话。(github.com)
- ChatGPT 詠唱案例懶人包 - 超過 40 個現實世界的應用範例 (持續更新) - 雷司紀的小道投資 raysky (rayskyinvest.com)
- 我用 ChatGPT 寫了一個 ChatGPT 指令大全網站 - 軟體工程師面試、職涯、新加坡生活分享 - ExplainThis
由于 ChatGPT 的预训练资料只到 2021 年,所以问一些 2021 年以后发生的事情,往往会得到错误的答案。
新研究题目:Neural Editing。给神经网络输出的结果进行纠错。
可以设计一个模型,判断这段文字是人生成的还是 ChatGPT 生成的。
ChatGPT 的出现对研究自然语言处理的人来说是一种打击。我们应该学着提高自己的能力,在某些方面做得比 ChatGPT 更好!
ChatGPT 在预训练过程中可能会爬取到一些比较隐私的东西。
新研究题目:Machine Unlearning。可以通过人工干预,避免 ChatGPT 生成一些不应该输出的信息。
用 ChatGPT 和 Midjourney 來玩文字冒險遊戲
使用催眠指令让 ChatGPT 生成一个文字冒险游戏的剧本,还可以让 ChatGPT 生成适合 Midjourney 生成图片的文字叙述,这样就得到了一个包含游戏插图的文字冒险游戏。
催眠指令:
I want you to act as a prompt generator for Midjourney’s artificial intelligence program.Your job is to provide detailed and creative descriptions that will inspire unique andinteresting images from the Al. Keep in mind that the Al is capable of understanding awide range of language and can interpret abstract concepts, so feel free to be asimaginative and descriptive as possible. For example, you could describe a scene froma futuristic city, or a surreal landscape filled with strange creatures. The more detailedand imaginative your description, the more interesting the resulting image will be. Hereis your first prompt:“你是一个探险家,最近你听说了一个关于一古代宝藏的傅说:据说宝藏隐藏在一个远古的遗迹中,只有最勇敢的探家才能找到它。你决定踏上旅途,寻找那份宝藏。你现在正站在遗迹的入口。你看到了一个石门,上面刻著古老的文字。”
可以给游戏加上更复杂的规则。
ChatGPT (可能)是怎麼煉成的 - GPT 社會化的過程
官网说 ChatGPT 的训练过程与 Instruct GPT 的训练过程向像。
- Introducing ChatGPT (openai.com)
- [2203.02155] Training language models to follow instructions with human feedback (arxiv.org)
- 学习文字接龙(想说什么就说什么)
- 人类老师引导文字接龙的方向(引导 GPT 说人类要他说的)
- 模仿人类老师的喜好
- 用增强式学习向模拟老师学习
一开始从网络爬取大量信息,让 GPT 学会对现有的文字的基础上,生成接下来的文字。
但是网络的信息很繁杂,对于一个问题,可能会出现很多无意义的答案,我们需要引导 GPT 产生有意义的输出。
人类引导文字接龙的方向,并不需要穷举所有的问题,只要告诉 GPT 人类的偏好即可。
有一个 Teacher Model 对 GPT 生成的内容进行打分,对期望的输出打高分,否则打低分。
用到了强化学习。
如果你问 ChatGPT 一些无意义的问题,很可能将其考倒,因为这些问题很可能没有经过人类监督过。