TellWorldAI 世界档案
问档案English

首页›原理

原理

原理

用通俗的话讲清 AI 怎么工作:从人工神经元到 Transformer、预训练和推理模型。

共 21 · 清除筛选

分词(Tokenization)分词(tokenization)把文本切成语言模型真正处理的词元;今天多数系统用字节对编码(BPE)实现,这一 1994 年的压缩算法在 2015 年被引入机器翻译。注意力机制注意力机制衡量序列中每个元素相对于其他元素的重要程度并给出权重,使模型能直接读取输入的任意位置。它是 transformer 的核心运算。注意力与自注意力注意力机制让神经网络按相关程度为输入各部分分配权重。自注意力(self-attention)将其用于序列内部,是 Transformer 的核心运算。位置编码序列模型(尤其是 Transformer)的组成部分,把每个词元的位置编码成向量,让本身不分先后的注意力感知顺序;形式从原版 Transformer 的正弦编码一直到 RoPE、ALiBi。Transformer 架构Transformer 是2017年提出的神经网络架构,用自注意力取代了循环和卷积结构,今天大多数大语言模型都以它为基础。内容溯源(C2PA)内容溯源是附在文件里的来源与编辑记录,让别人能核查媒体从哪里来、经过了哪些改动。Adobe、Arm、BBC、Intel、Microsoft 和 Truepic 于 2021 年共同发起 C2PA 来制定这一标准。推测解码(Speculative decoding)推测解码是一种加速大模型文本生成的算法:小模型先提出若干候选词,大模型对这些候选并行检查,在输出完全不变的前提下更快地生成。文本水印(Watermarking)文本水印是在语言模型生成的文字里嵌入一种人看不见、但程序能从一小段词元中检测出来的信号,用来判断一段文本是否出自某个模型。提示注入(Prompt injection)提示注入(prompt injection)指模型输入里的文字压过原本的指令和外围控制,让攻击者劫持整个应用;2023 年的研究进一步指出,恶意内容可以藏在应用自己检索到的资料里。测试时计算(Test-time compute)测试时计算指模型答题时额外投入的算力,而非训练阶段已固化在参数中的算力。Snell 等人 2024 年 8 月的研究表明,按题目难度分配这份算力,能让小模型在同等总计算量下胜过大得多的模型。开源人工智能定义(OSAID)开源人工智能定义(OSAID)是开源促进会于 2024 年 10 月发布的 1.0 版标准,规定一个模型要被称为开源,须公开设计与训练数据信息,并允许使用、修改和在此基础上继续开发。多智能体系统多智能体系统由多个相互作用的智能体组成,能解决单个智能体难以完成的问题。近年以大型语言模型为内核的框架,让智能体之间直接对话协作,使这一方向重新受到关注。上下文窗口(Context window)上下文窗口(context window)是模型生成回答时能够参照的全部文本,以 token 计量,回答本身也计入其中。窗口的大小,以及模型能否均匀地用上窗口内容,共同决定了它实际能做什么。长上下文(Long context)长上下文指模型一次能接收并加以利用的大量输入,如今可达数百万词元;但窗口大不等于用得好,能否在长输入中准确定位信息是另一回事。键值缓存(KV cache)键值缓存把模型为先前 token 算出的键和值保存下来,生成新词时直接复用而不重算。它的显存占用是决定一台服务器能同时服务多少请求的关键。合成数据(Synthetic data)合成数据是由模型生成、而非从人或从网上收集的训练材料。phi-1 的实验显示,混入模型生成的「教科书」后,一个小规模代码模型也能在代码基准上取得不错的成绩,说明数据质量本身影响能力。多模态模型(Multimodal models)多模态模型在同一个模型里处理不止一种输入或输出,例如图像和文本。CLIP 与 Flamingo 这两项工作展示了这类模型怎样训练出来,又怎样靠文字提示迁移到新任务。红队测试(Red teaming)红队测试(red teaming)指在模型部署前主动试探它,看它会不会做出有害或不被期望的行为。2022 年 Perez 等人提出用一个语言模型为另一个语言模型自动生成测试用例的方法,把这件事部分自动化了。机制可解释性(Mechanistic interpretability)机制可解释性通过寻找产生行为的内部计算与特征来解释模型,而不是只从外部测试输入输出。关于叠加与稀疏自编码器的研究,展示了少量神经元如何容纳大量特征。越狱(Jailbreak)越狱(jailbreak)是用对抗性提示让经过安全训练的模型做出其训练本应阻止的行为。Wei 等人在 2023 年 7 月的一篇分析中,把这类失败归因于目标冲突与泛化不匹配两种失效模式。