---
title: ChatGPT是如何被训练出来的
date: 2022-12-1 14:41:30
tags:
- ChatGPT
category: AI
---

![ChatGPT](https://cdn.openai.com/chatgpt/draft-20221129c/ChatGPT_Diagram.svg)

ChatGPT是OpenAI在2022年11月推出的新一代由人工智能技术推动的自然语言处理模型。ChatGPT公布没多久，各大搜索引擎厂商都宣布正在开发自己的新版NPL模型，也是因为他们感受到了来自ChatGPT的压力。它能够理解并生成人类语言，能够回答问题，撰写文案，写诗歌，编故事，写代码，做Excel表格，它拥有上下文对话能力，在典型的使用场景下难以分辨是真人还是机器。ChatGPT被认为是下一代的搜索引，将会引起新一轮的技术革新浪潮。

本文介绍ChatGPT背后的工作原理和训练过程。

<!--more-->

## 罗马不是一天建成的

ChatGPT脱胎于InstructGPT，而InstructGPT的前身是GPT-3，GPT-3的诞生就已经引起了业界的轰动，它的模型参数达到了1750亿，这比谷歌的BERT模型3.7亿参数大了400多倍。并且GPT-3可以使用很小的数据集来训练。

GPT-3的缺陷：由于GPT-3使用使用互联网上巨大的数据集训练来预测下一个词，而不是去符合用户的期待，所以它难免会输出不可信的，或者有害的信息，负面的情绪等。

InstructGPT的改进：通过基于人类反馈的强化学习（RLHF - reinforcement learning from human feedback），通过人类对模型的输出进行评分反馈来优化模型的行为。这使得模型更倾向于听人话而不是胡说八道。

## InstructGPT的训练过程

1. 使用人工生成的示例 + 监督学习 + GPT-3训练一个模型出来
2. 然后不同模型生成多种输出 + 人工标记 训练一个奖励模型
3. 通过奖励模型 + 强化学习 + PPO算法 训练一开始的模型

由于步骤2要使用人工标记，这与预训练的模型数据量相比还不到2%，尽管对比GPT-3已经有了很大改进，InstructGPT也并不是完全安全的，它仍然会生成有偏见的输出，撒谎，输出有毒的内容。

OpenAI也提到，目前训练的数据基于讲英语的社会价值观，最终需要更负责任和包容的选择。

## ChatGPT更进一步

- ChatGPT的基础模型来自于训练GPT-3.5, 这个GPT-3.5是由一个代码补全模型，经InstructGPT优化而来。
- 训练人员通过扮演用户和AI助手来生成模板对话，并将这些数据混合到InstructGPT的数据集中，然后将模型变成了一种对话的格式。
- 和InstructGPT一样地，通过对模型的输出进行随机采样和人工评分。然后用得到的奖励模型，使用强化学习对初始模型进行训练。并对这个过程进行数次迭代。

## 持续进化

ChatGPT也不是完美的，但是它在持续进化，OpenAI做了一个网页聊天室<https://chat.openai.com/>，让ChatGPT接受来自更多用户的测试和评价。
此外集成了ChatGPT的新版Bing在公测中。
OpenAI肯定会基于收集的大量测试数据和用户反馈来升级和更新模型。

真正的通用人工智能，或是有自由意识的人工智能还有多远，我们拭目以待。




