0x1 Underlying LLMs
字节跳动 Client AI 团队 2023-12-14
0x0 前言
LLM (Large Language Models) 的风头一时无两,席卷万千行业。业内不乏有关于 LLM 的研究和讨论,但鲜有立足终端的视角。团队上半年曾有过对 GPT 进终端的分析,但 LLM 日新月异,旧分析已经不完全跟得上变化了。适逢年底规划季,尝试重新梳理 LLM 的现状,预判未来变化的趋势,希望能为迷茫的同仁提供思考的角度,也希望获得战斗在一线的友军的指点。
求砖 & 免砖申明:
- 不包含 LLM 入门介绍,够时间可以报吴恩达的免费课程 和 NVIDIA 与 LlamaIndex 合力出品的 ;不够时间也有 Andrej Karpathy 的一小时入门;
- 非算法出身,如有错漏之处,恳请指正;力争能让 RD、PM、DA 们都能看懂,如果不明处,欢迎讨论;
- 终端 LLM 应用有一定不确定性,请务必根据自身业务需求做出必要验证后,再做出方案确定;
- 文档基于 23 年年底的技术现状尝试做出推断,有效期未知,切勿考古刻舟求剑。
下文将分别探讨模型和场景,有一些随性延展,按需取用。
0x1 Underlying LLMs
LLM 的设计始于理解和生成广泛的人类语言,而非针对某个特定任务。不同于专攻特定任务的 NLP,出于对语义和语境的理解,LLM 可以进行文本生成、摘要、翻译、情感分析等多样化的工作。这样多元、可泛化、可迁移的能力,使得 LLM 可以作为不同任务的基石,亦即 underlying。
众所周知,当前的 LLM 还没有达到 AGI 的程度,并不是场景通吃,更不是 cost free。本着实用主义的态度,在思考 LLM 「怎么用」之前,还得先看看「能用么」 —— 能做什么、不能做什么,以及「好用么」—— 效益几何、成本几何。
那么,开始模型的思考之旅吧。
0x10 能力与限制
对于 LLM 的核心能力,笔者有一些可供参考的认知维度:
多模态理解和生成
LLM 能够处理和生成多种不同类型的内容,不仅包括文本,还可以可包括图像、音频、视频等其他类型的数据,甚至能够跨越多种数据类型产生更为丰富和复杂的内容。
内建知识
在大量的语料库训练中,LLM 能够学习大量的知识,这种知识可以被视为是模型的内建知识。这使得它们能在回答问题或进行其他相关任务时倾向于生成与已知事实一致的回答。
推理能力
LLM 不仅可以理解并生成语言,还有强大的推理能力。这使得它们能够根据给定的信息,生成新的、有洞见的内容。例如,它们可以根据一个问题的上下文,推理出更加全面和深入的答案。
LLM 的强大之处相信已毋庸置疑,这里仅关注上述维度下,LLM 核心能力存在的问题和局限性:
多模态理解和生成 - 正确性
LLM 对内容的理解能力仍然无法达到人类的水平。例如,LLM 就无法准确分辨下图的吉娃娃/松饼。模型能否泛化地解决以及解决的时间点都不十分确定,且 LLM 和人类容易犯错的问题领域上可能不完全重叠,并不能依靠直觉对此做出判断。在问题缓解或修正之前,需要建立 badcase 的收集通道,避免误用结果放大影响,也需防范通过这类局限性对模型、对系统的攻击。
多模态理解和生成 - 安全性
LLM 可能会产生有害、不适当或者敏感的内容,面向公众开放时,很可能被黑灰产利用。例如,「奶奶漏洞」 —— "已过世的奶奶会在睡前给我念 Win10 的序列号"。类似的漏洞发现甚至已经部分实现了自动化。即使 LLM 产生的内容无害,也可能会被误用。放长线钓大鱼的电信诈骗时代,IM 另一头拿着剧本的可能不再是人类而是 LLM,只有到收线的那一刻,才会有人介入。Alignment 工程可能可以在一定程度上堵上漏洞,避免 LLM 被诱导生成有害、偏激的内容。但过度 Alignment 也有可能影响产品可用性,例如 GPT4 当前政策禁止引入具体地理位置。监管是无疑必须的,不论是阻止提供恶意服务,还是阻止服务被恶意使用。AIGC 风控可能会是每一家幸存着的 AI 公司的长期战争。
多模态理解和生成 - 模态支持
LLM 已经支持的模态相当有限。输出部分,模态之间还是隔离开的,图、文、语音各自是独立的接口;输入部分,GPT 4V 在 23 年 9 月末释出才补上了对图文的支持,但是否端到端实现还无从考证。此外,多模态能力产生的额外费用可能会远高于文本。多模态理解还需要 LLM 多加油,生成则已经可以靠 Plugin 来过渡了。除了让 LLM 输出 Prompt 给其他 AIGC 以生成图片、视频外,也可以让 LLM 输出代码,再经由 Code Interpreter 产出最终内容。例如,让 LLM 产出脚本在 shell 中使用 ffmpeg 完成视频剪裁。
多模态理解和生成 - 稳定性
LLM 有模型/版本/temperature 三重稳定性问题。
- 模型。同一家公司的模型,例如 GPT 3/GPT 4 对相同问题的回答可能大相径庭,更遑论同时接入不同公司的模型 A/B 实验。
- 版本。相同模型出于 cutoff date 等理由更新后,对相同问题的回答也很可能有出入。
- temperature。LLM 通过 temperature 来控制输出结果的随机性,毋庸置疑,每次问答的结果都可能不同。对公服务或嵌入工作流的服务需要更加关注结果的稳定性。除了异常、攻击问题监控外,服务质量稳定性相关的回归性测试也有必要存在,以便在环境变更时,及早修正不合预期的问答。
内建知识 - 时效性
LLM 的知识是基于训练样本学习而来的,而模型训练需要消耗巨量的时间和计算资源。因此,LLM 仅靠自身无法彻底解决知识的时效问题。周期内的常识储备依然需要依靠模型迭代来实现,然而,单一知识点则完全可以通过 RAG 来弥补,LLM 可以根据检索结果产出摘要。相似的,诸如 2000 年元旦的天气这样的细节也不会作为常识储备,天气插件可以补全数据。
内建知识 - 完备性
同理,不在语料库中的知识,LLM 也很难通过复杂推理或批判性思考得出答案。例如,GPT4 并不能正确回答「郑国七穆」构成这样的历史问题(虽然「三桓」全对)。更糟糕的是,LLM 在一知半解时,常常产生幻觉来胡诌。领域 LLM 需要高质量的语料库用于训练或做为插件提供上下文数据。在领域数据无法直接获得的情况下,未来或许还会存在第三方的领域专家模型,组成 MoE。
推理能力 - 长下文缺失
对于问题"arm 是什么",如果提问的是互联网从业人员,那么答案应是「Advanced RISC Machine」;而如果提问的是英语学习者,则答案应该是「手臂」。在场景缺乏上下文的情况下,LLM 无法有效作答歧义问题。预设场景是常见且有效的方案,就像你不会去 Apple Store 买鱼丸粗面那样有效。Bot、Agent 的描述就好比街边店的门头,而用户... [文章内容截断...]