2023年3月15日,大模型 GPT-4 一脚踹开 AI 时代的大门。从此,人类步入 AI 新时代。此前,是七十多年的信息时代。此后,可能是持续百年的 AI 时代。在 AI 时代,编程方式发生了根本转变。信息时代是给计算机编程,AI 时代是给大模型编程。
o1
示例:最简单的编程范式
与 GPT 对话过程中,高手会先给 GPT 提供示例,再让 GPT 处理任务。给 GPT 提供示例,是在给 GPT 模型编程。对 GPT 来说,接受示例,学习示例中的模式。对你来说,提供示例,训练GPT,也就是给 GPT 编程。结果 GPT 学会了示例数据中的模式,生成了处理类似任务的程序。
GPT 学习示例
仅仅只需要几个示例,GPT 就可以凭借直觉,判断出你正在执行的任务,并生成合理的结果。NLP 科学家将这个过程称为小样本学习(few-shot learning)。
你可以对模型进行哪些编程?代码生成、代码解读、代码审计、代码转换,这是给 GPT 编写处理代码的程序;摘要、扩展、对话、创意写作、风格转换,这是给 GPT 编写处理文章的程序;识别实体、情感分类,这是给GPT编写分析情感的程序。只要是人脑中的程序,你都可以给 GPT 编写一套。
编写一个高质量的程序,只需要设计几个高质量的示例。如何设计高质量的示例?一个高质量的示例,必须有输入和输出,输入和输出之间必须有清晰的逻辑关系。
o2
微调:依旧简单的编程范式
与小样本学习相比,微调(Fine-tuning)包含了更多的示例数据。小样本学习通常只有三五个示例,而微调则包含几百个示例。除了示例数量上的差别,小样本学习与微调没有其他差别。
如何微调模型呢?只需三步:
- 准备和上传训练示例数据;
- 训练新的微调模型;
- 使用你的微调模型。
与小样本学习相同,微调的训练示例,最重要的也是输入和输出的质量。对模型进行微调的过程,也是对模型进行编程的过程。步骤简单到令人难以置信:仅仅只需要几百个高质量的输入和输出示例。
这几百个例子,最好是人类专家审核通过的例子。示例数量每增加一倍,微调模型的表现就会线性增加。想要提高模型的表现,增加示例数量是最佳、最可靠的方式。
o3
给计算机编程与给大模型编程对比
与给计算机编程不同,给大模型编程,在输入、处理、输出等三个关键要素上,都有根本的不同。
给计算机编程与给大模型编程对比
给计算机编程,面对的精确的输入输出。给大模型编程,输入模糊的训练数据,输出也是模糊的概率结果。什么是概率结果呢?也就是输出结果的准确率是在80-90%,或者更高一点95%,但不会是100%。相比而言,给计算机编程,输出结果是100%确定的。
给计算机编程,是给计算机植入了一个固定处理逻辑的程序。给大模型编程,是让大模型学会一个基于概率的处理逻辑。给大模型编程,类似于训练一个6岁小孩。小孩学会的处理逻辑,难免会有些错误。但是这不要紧,因为这是给人编程,给人工智能编程。
o4
为什么给大模型编程有效
大模型至少学习了几百个学科,成千上万本专业书籍、论文,拥有一个非常好的基础。因此,大模型能很快的学会示例数据中的逻辑。大模型是一个博学者。正是对一个博学者,你通过少量示例进行编程,才会有效。
大模型是孔子眼中,善于举一隅而以三隅反的好学生。
大模型是有能力的多面手,而非狭隘的专家。对这个多面手,稍加训练,就能很快成为领域专家。比如,几百个高质量金融理财行业的训练示例,能将大模型训练成金融理财专家。几百个企业服务的高质量训练示例,能将大模型训练场成为企业服务专家。几百个高质量分类示例,就能让大模型训练成为分类专家。
大模型拥有很强的泛化能力,能通过少量示例习得模式。最神奇的是,科学家至今还没弄明白大模型为何拥有这么强的泛化能力,没有任何一个理论能解释这个现象。只是 OpenAI 用工程的方式,造出了大模型 GPT,证明了大模型的泛化能力。
后记
AI 时代,你与编程之间的距离,仅仅只差一个大模型,三五个示例。你编写的程序,将超越信息时代的程序。简单强大,智能而有趣,越来越值得想象。