人工智能
机器学习
早期,人工智能研究分成两个阵营:
- 第一个阵营是规则式(rule-based)方法,又称专家系统(expert systems),指的是人类写好一系列逻辑规则,来教导计算机如何思考。
- 第二个阵营是机器学习(machine learning),指的是没有预置的规则,只是把材料提供给计算机,让机器通过自我学习,自己发现规则,给出结果。
机器学习的三个要素:模型、训练数据、学习方式。
模型简单理解就是一个数学函数,这个函数的参数非常多,多达几千万、几亿个。训练模型就是利用大量的训练数据来调整这个数学函数的参数。“训练”一词是以人为主体的表示,如果以“机器”为主体,则称之为“学习”。通过训练集的调教,让这几亿个参数达到较为理想的状态,使得在测试集中输入指定的数据就能得到预期的输出。
在讨论机器学习的模型时,"B" 通常指的是 "Billion"(十亿),用于表示模型的参数数量。例如,如果一个模型被描述为 "175B",这意味着该模型有 1750 亿个参数。
机器学习的方式主要分为三种:分别是有监督学习 (Supervised Learning)、无监督学习 (Unsupervised Learning) 和强化学习 (Reinforcement Learning)。
- 有监督学习:指的是我们在给机器提供训练数据时,提供的数据是带有标签或类别信息的,这样机器才能够学习输入和输出之间的映射关系,从而对新的输入进行预测。有监督学习的应用场景非常广泛,如图像识别、股价预测等。
- 无监督学习:即提供给机器训练的数据是未被标记的数据,由机器自己通过某些算法发现数据之间的潜在结构与规律。无监督学习的应用场景有异常检测、推荐系统等。
- 强化学习:是一种让机器自己学习如何做出正确决策的方式。就像人类玩《飞机大战》这个游戏一样,不同的操作会得到环境的不同反馈(扣分或加分),基于环境反馈,机器会不断调整、优化自己的操作,最终达到获取最高分的目的。强化学习适用于那些目标不确定、环境动态变化、需要长期规划的问题,如自动驾驶、机器人控制、游戏 AI 等。
深度学习 (Deep Learning, DL) 是机器学习的一个特定分支。它专门使用“深度”的神经网络(即层数非常多的神经网络)来进行学习。
实际应用中模型是由非常多的数学函数以网状或更加复杂的形状形成的一个拓扑结构,由于这种拓扑结构与人的神经网络结构非常相似,我们称之为人工神经网络(Artificial Neural Network,ANN)。人工神经网络根据实际应用场景的不同发展出多种形态,应用最广泛的神经网络有:前馈神经网络(Feedforward Neural Network, FNN)、卷积神经网络(Convolutional Neural Network,CNN)和循环神经网络(Recurrent Neural Network,RNN)。Transformer 是 2017 年由 Google 提出的新型神经网络架构。
Transformer 是神经网络发展史上的一个重要里程碑,其核心创新是"自注意力机制",但整体仍是标准的神经网络架构,现代大语言模型几乎都基于 Transformer 架构。可以说,Transformer 是神经网络家族中最成功的成员,就像 iPhone 重新定义了手机一样。
GPT
GPT 即 Generative Pre-trained Transformer,是由 OpenAI 团队基于 Transformer 架构开发的生成式预训练大语言模型,只用到了 Transformer 的“解码器”部分(Decoder-only)。
“大语言模型”这个词并没有一个严格的、精确到参数量的定义,但它通常指具备以下特征的模型:
- 参数量巨大:通常在数亿到数千亿级别。
- 在海量数据上预训练:使用了 TB 级别的文本数据进行无监督学习。
- 具备强大的通用语言能力:能够作为基础模型,通过微调适应各种下游任务。
判别式模型关注如何将输入数据映射到标签或类别,例如分类、回归等问题;而生成式模型则关注如何学习数据的分布,以便生成新的数据。ChatGPT 能够从大量的语料库中学习到复杂的语言结构和上下文信息,从而生成新的符合语言规则和语境的文本。
预训练模型是指该模型预先从大规模的语料库中通过无监督的方式学习语言的内在规律和模式,其能够学习到数据集的统计规律并提取出数据中的特征。这样,在进行具体任务的时候,GPT 可以直接使用已经学习到的知识,从而提高效率和准确性。
大模型指的是具有非常庞大的参数量和计算量的机器学习模型。这些模型通常需要在大规模的数据集上进行训练,以便能够学习到数据中的复杂模式和规律,并在各种任务中取得优秀的性能表现。ChatGPT 由于其拥有 1750 亿个参数和超过 45TB 的训练数据所以被称之为大模型。
语言模型区别与图像模型、语音模型等,是一种用来预测自然语言文本序列的概率分布的计算模型。简单来说,它就是一个能够根据前面的文本内容预测下一个可能出现的词或字的模型。
GPT-3(2020 年): GPT-3 是 GPT 系列的一个重大突破,发表在论文《Language Models are Few-Shot Learners》中。GPT-3 的参数量达到了 1750 亿,使用了超过 45TB 的文本数据进行训练。
ChatGPT
虽然 GPT-3 在语言生成方面非常强大,但它在实际应用中存在一些问题,例如:缺乏对指令的精准理解、可能会生成有冒犯性或不道德的内容,为了解决这些问题,OpenAI 在 2022 年 推出了 InstructGPT,发表在论文《Training language models to follow instructions with human feedback》中。InstructGPT 是对 GPT 模型的一次重要改进,它引入了 基于人类反馈的强化学习(Reinforcement Learning from Human Feedback, RLHF)。
InstructGPT 的训练过程:
- 监督微调(Supervised Fine-tuning):使用 GPT-3(1750 亿参数)作为基础模型,然后在指令数据集上进行监督微调。这个指令数据集是由人类标注员编写的,包含各种任务的指令和相应的正确响应。例如,用户输入一个问题或指令,标注员提供一个合适的回答。
- 奖励模型(Reward Model):接下来,训练一个奖励模型,用于评估模型生成的响应质量。这个奖励模型也是通过人类反馈来训练的。标注员会对同一个指令的多个响应进行排名,奖励模型学习如何预测人类更喜欢的响应。
- RLHF(Reinforcement Learning from Human Feedback):
ChatGPT 是专门针对“对话”场景优化和微调的聊天机器人。ChatGPT 基于 GPT-3.5 架构(GPT-3 的改进版本),结合了 InstructGPT 的训练方法,特别是 RLHF(基于人类反馈的强化学习)。经过大量对话数据的微调,更擅长多轮对话和人机交互。能理解上下文,保持对话连贯,回答问题更贴近人类风格。
GPT-4
OpenAI 于 2023 年 3 月 推出了 GPT-4,GPT-4 不仅支持文本,还支持图像输入,参数量可能达到了万亿级别,具体数字 OpenAI 没有公开。
MoE 是 Mixture of Experts 的缩写,中文一般称为“专家混合”或“专家网络”。它是一种在大模型中常用的架构,用于提升模型的参数规模和表达能力,同时控制计算成本。MOE 是一种可以嵌入到 Transformer 中的结构。比如,GPT-4 的一些大规模版本就采用了 MOE 架构。目的是让 GPT 模型在参数量极大时,依 然能高效训练和推理。大模型的总参数量可能高达数万亿,但处理每个 Token 时实际动用的参数量却少得多。这被称为稀疏激活 (Sparse Activation)。
BERT
BERT 和 GPT 都是大语言模型(Large Language Models, LLMs)领域的里程碑,它们就像是同门师兄弟。BERT 和 GPT 的诞生都离不开 2017 年 Google 提出的那篇革命性论文《Attention Is All You Need》,这篇论文首次提出了 Transformer 架构。
Transformer 有两个核心部件:
- 编码器 (Encoder): 擅长理解。它的任务是接收一段完整的文本,然后通过上下文分析,输出每个词的深度表示。它天生就是做“阅读理解题”的好手。
- 解码器 (Decoder): 擅长生成。它的任务是根据已经生成的内容和给定的提示,预测下一个最可能的词。它天生就是做“造句”、“写作”的好手。
BERT (Bidirectional Encoder Representations from Transformers) 像一个分析家,它对已有文本的深度剖析能力很强,非常适合做分类、标注、抽取等“判别式”任务。我们之前讨论的“提取音乐关键词”任务,就是 BERT 的绝对强项。
GPT 像一个创造者,它基于已有信息生成新信息的能力很强,非常适合做对话、写作等“生成式”任务。我们现在使用的 ChatGPT 就是 GPT 系列模型的杰出代表。
近年来,生成式模型(以 GPT 为代表)的发展势头更为迅猛,并且人们发现,一个足够强大的生成式模型,通过巧妙的指令(Prompting),也能很好地完成很多传统的理解类任务。这使得像 ChatGPT 这样的模型变得更加通用。
但我们不能忘记,BERT 开创了“双向理解”和“预训练+微调”的范式,是 NLP 发展史上不可磨 灭的丰碑,并且在许多企业级的分析和理解任务中,BERT 及其变体至今仍然是最高效、最可靠的选择。
ICL
什么是 In-context Learning (ICL,上下文学习)?ICL 是指大型语言模型(如 GPT)在不进行任何模型参数更新(即不重新训练)的情况下,仅通过在提示(Prompt)中提供几个示例(Examples),就能学会并执行一个新任务的能力。
在单字接龙的小模型中,并没有觉醒出“理解”和“推理”的能力,但在超大模型中,却突然展现。因此专家用“涌现”这个词来描述这些能力的出现。人脑中单个神经元的工作方式特别简单,就是向下一个神经元放电,但是通过大力出奇迹的方式堆砌几百亿的神经元以后,意识就出现了。
ICL 是 GPT 的“涌现能力”(Emergent Ability)。“涌现”是指当模型规模(参数量、数据量)达到一定阈值后,突然出现的一些在小模型上不存在或不明显的能力。ICL 就是最典型的涌现能力。小型的语言模型即使给了示例,也无法很好地举一反三,而 GPT-3、GPT-4 这样的大模型则表现出色。
我们现在使用的所有提示工程(Prompt Engineering)技巧,其底层逻辑几乎都建立在 ICL 之上。无论是简单的 Zero-shot 指令,还是复杂的 Few-shot 示例,甚至思维链(CoT),都是在利用 ICL。CoT 其实是 ICL 的一种高级应用。
COT
CoT (Chain-of-Thought,思维链) 不是一个模型,也不是对 GPT 模型的修改,而是一种与模型交互的方式,属于**提示工程(Prompt Engineering)**的范畴。COT 提示会让模型像人类一样,先写出思考和推理的中间步骤,再给出最终答案。这种方式可以显著提升模型在复杂推理、数学、逻辑等任务上的表现。
RAG
检索增强生成(RAG, Retrieval Augmented Generation)是指对大型语言模型输出进行优化,使其能够在生成响应之前引用训练数据来源之外的权威知识库。在 LLM 本就强大的功能基础上,RAG 将其扩展为能访问特定领域或组织的内部知识库,所有这些都无需重新训练模型。这是一种经济高效地改进 LLM 输出的方法,让它在各种情境下都能保持相关性、准确性和实用性。
在生成响应之前,RAG 首先会从一个大型文档库或知识库中检索与输入查询相关的信息。这一过程通常使用信息检索技术,如基于向量的相似性搜索或传统的关键词匹配。一旦检索到相关信息,RAG 会将这些信息与输入查询一起传递给生成模型,以生成最终的响应。生成模型利用检索到的信息来提供更准确和上下文相关的答案。
Function Call
Function Calling(函数调用)是大语言模型的关键技术。RAG 技术是为了解决模型无法和外接数据交互的问题,但是 RAG 的局限在于只赋予了模型检索数据的能力,而 Function Calling 允许模型理解用户请求中的潜在意图,并自动生成结构化参数来调用外部任何函数/工具,从而突破纯文本生成的限制,实现与真实世界的交互,比如可以调用查天气、发邮件、数学计算等工具。
Function Call 模型最早由 OpenAI 在 2023 年 6 月 13 日正式提出并发布,首次在 GPT-4 模型上实现了 Function Calling 能力。
Agent
Agent(智能体)是指能够感知环境、做出决策并采取行动的自主实体。一个自动驾驶汽车就是一个 Agent:它用摄像头感知路况,决策如何驾驶,并控制车辆行动。一个聊天机器人(如 GPT)也是 Agent:它感知用户输入,生成回复。
Multi-Agent(多智能体)系统,就是由多个 Agent 组成的系统,这些 Agent 可以相互协作、竞争或独立行动。可以解决单个 Agent 难以完成的复杂任务。例如自动驾驶车队、工厂多机器人协作。
随着多智能体技术的兴起,市场上出现了多个相关框架,其中 MetaGPT 和 AutoGen 是与 OpenAI Agents SDK 并驾齐驱的重要框架。各框架在不同应用场景中的适用性:
- OpenAI Agents SDK:最适合企业级服务应用,如客户服务、数据分析、内容生成等需要严格控制和可观测性的场景。
- MetaGPT:特别适合软件开发和团队协作场景,如需求分析、设计、编码、测试等全流程软件开发。
- AutoGen:最适合需要复杂对话和人机协作的场景,如个人助手、教育辅导、研究辅助等交互式应用。
MCP
MCP(Model Context Protocol,模型上下文协议)是由人工智能公司 Anthropic 于 2024 年 11 月 24 日正式发布并开源的协议标准。Anthropic 公司是由前 OpenAI 核心人员成立的人工智能公司,其发布的 Claude 系列模型是为数较少的可以和 GPT 系列抗衡的模型。
在 MCP 协议没有推出之前,智能体开发平 台需要适配不同工具之间的协议差异,提供统一的接口给 Agent 使用;开发者如果要增加自定义的工具,需要按照平台规定的协议实现工具,并且不同的平台之间的协议可能不同。MCP 协议旨在解决大型语言模型(LLM)与外部数据源、工具间的集成难题,被比喻为“AI 应用的 USB 接口“。通过标准化通信协议,将传统的“M×N 集成问题”(即多个模型与多个数据源的点对点连接)转化为“M+N 模式”,大幅降低开发成本。
TOPS
TOPS (Tera Operations Per Second) 即每秒万亿次操作。TOPS 用于表示一个处理器(如 GPU、TPU 或其他专用加速器)在执行计算任务时的性能。更高的 TOPS 值意味着该处理器能够在单位时间内执行更多的操作,从而提高模型的推理速度和训练效率。
NLP 发展史
1990s - 2010:统计语言模型 (Statistical Language Models, SLM)
在这之前,NLP 由语言学家主导,充满了复杂的、手写的语法规则(符号主义)。但这些规则脆弱且覆盖面窄。统计语言模型的思想是:放弃复杂的规则,用概率说话!通过统计海量文本中词语搭配的频率,机器第一次能够生成看起来比较通顺的句子,并被广泛用于机器翻译、语音识别和输入法。
2013 - 至今:词向量/词嵌入 (Word Embeddings)
词向量的思想是:一个词的含义,由它周围的上下文决定。我们可以用一个多维度的数字向量来表示一个词,并且让意思相近的词在向量空间中的距离也相近。代表技术 Word2Vec (2013), GloVe (2014)。它最神奇的成果是,这些向量竟然可以进行代数运算!比如 vector('国王') - vector('男') + vector('女') ≈ vector('女王')
。它第一次让机器能够捕捉和量化词语之间的语义关系。这是从“统计模式”到“理解含义”的巨大飞跃。高质量的词向量成为了后续所有深度学习 NLP 模型的标准“输入”。
2017:注意力机制 (Attention Mechanism) 与 Transformer
论文《Attention Is All You Need》中做了一个极为大胆的宣言:我们不再需要 RNN(如 LSTM)那种耗时的串行结构了,只用注意力机制就足够了!Transformer 使用“自注意力机制 (Self-Attention)”,让句子中的每个词都能直接看到其他所有词,并计算它们之间的关联强度,从而高效地捕捉全局上下文。
2018 - 至今:大规模预训练语言模型 (Large-scale Pre-trained Models)
在这之前,每个 NLP 任务(情感分析、命名实体识别等)都需要从零开始训练一个模型,耗时耗力且依赖大量标注数据。预训练模型的思想是:先让模型在海量的、无标签的文本上进行“通识教育”(预训练),让它学会通用的语言知识,然后再针对具体任务,用少量标注数据进行“专业培养”(微调)。
- GPT (2018): 证明了在生成任务上,“预训练+微调”范式的巨大潜力。
- BERT (2018): 引入了双向理解和 Masked Language Model 的训练方式,在理解类任务上取得了历史性的突破,横扫了几乎所有的 NLP 基准测试。
- GPT-3 (2020) / ChatGPT (2022): 将模型规模推向了前所未有的高度(千亿参数),并展示了上下文学习 (In-context Learning) 的惊人能力。