生成式人工智能 (GenAI[1]) 和大语言模型 (LLM[2]),这两个词汇想必已在大家的耳边萦绕多时。它们如惊涛骇浪般席卷了整个科技界,登上了各大新闻头条。ChatGPT,这个神奇的对话助手,也许已成为你形影不离的良师益友。

然而,在这场方兴未艾的 GenAI 革命背后,有一个谜题久久萦绕在人们心头:这些模型的智能究竟从何而来?本文将为您揭开谜底,解析生成式文本模型的奥秘。我们将抛开晦涩艰深的数学,用通俗易懂的语言,带您走进这个神奇的算法世界。让我们撕下 “魔法” 的面纱,看清其中的计算机科学本质。

LLM 的真面目

首先,我们要破除一个常见的误区。许多人误以为,这些模型是真的能够与人对话,回答人们的各种问题。然而,它们真正的能力远没有想象的那么复杂——它们所做的,不过是根据输入的文本,预测下一个词语 (更准确地说,是下一个 token)。

Token,这个看似简单的概念,却是揭开 LLM 神秘面纱的钥匙。让我们由此出发,步步深入,一探究竟。

Token,这些文本的积木、语言的原子,正是 LLM 理解世界的基石。对我们而言,token 不过是单词、标点、空格的化身,但在 LLM 的眼中,它们是精简而高效的信息编码。有时,一个 token 可能代表一串字符,长短不一;有时,它可能是孤零零的一个标点符号。

LLM 的词汇表,就是这些 token 的集合,啥都有,样样全。这其中的奥秘,要追溯到 BPE 算法[3]。BPE 算法是如何炼制出这些 tokens 的?这个问题,值得我们细细探究。但在此之前,只需记住:GPT-2 模型[4],这个自然语言处理界的明星,它的词汇表中有 50,257 个 token。

在 LLM 的世界里,每个 token 都有一个独一无二的数字身份证。而 Tokenizer,就是文本和 token 之间的 “翻译官”,将人类的语言转化为 LLM 能理解的编码,也将 LLM 的思维解码为人类的文字。如果你熟悉 Python,不妨亲自与 token 打个照面。只需安装 OpenAI 的 tiktoken 包:

$ pip install tiktoken