Skip to main content

LLM 概览

wKevin

我是从 3 月的 ChatGPT 爆发才开始关注大模型的,经过一番手忙脚乱的注册 openai 的 id、使用其 python sdk 后,这才开始转入对 LLM 的观察和学习上来。

2018 年学过 CNN、RNN 后除了在视觉上做了一些产品外,NLP 基本没接触,所以对 Transformer、ViT 都略过了,忽然被 ChatGPT 刺激了一下,才发现 Transformer 除了 NLP,也已经横扫 CV 了,效果超过 NN。那好吧,赶紧补课,把 LLM 学起来。

发展史

谢天谢地,有几篇 paper 已经准备好给我填鸭式教学了:

https://arxiv.org/abs/2303.18223 —— 首先是这篇一众国人联手写的,信息整理全面。挑了一些作为我后续关注的重点(重点关注国产、开源):

  • 2018 OpenAI GPT
  • 202103,THUDM(清华),GLM
  • 202104,PLC(鹏程实验室)+华为,盘古
  • 202105,OpenAI,CodeX
  • 202205,THUNLP(OpenBMB),CPM
  • 202302, Meta, LLaMA(羊驼),已经后续的 Alpaca(小羊驼)、Vicuna(野羊驼)
  • 202303,THUDM(清华),CodeGeeX

后续补充:

  • 202305,MosaicML, MPT
  • 202305, bigcode(Huggingface & ServiceNow),StarCoder

读完 paper,基本了解了 LLM 的发展历程,比如:

  • Transformer 从 2017.12 Google 提出后,经过了 3 年左右的缓慢爬坡,LLM 并没有大量出现,直到 2020 年,因为算力的提升,2020.5 英伟达发布了 A100,单精度达到 19.5TFLOPS,助力了 LLM 开始狂飙。
  • ChatGPT 是 GPT-3 之后的 InstructGPT 改造而来的。
  • THUDM 和 THUNLP 分别是清华计算机学院和 NLP 学院的两个团队,分别打造 LLM。
  • Google 发布的 LLM 可谓是最多,但没能创造风口,有点遗憾。后来读到 2022.02 Google 的《LaMDA: Language models for dialog applications》(http://arxiv.org/abs/2201.08239),可以看到 Google 诉苦良多,为了 Quality、Safety、and Groundedness,让 OpenAI 占了先机,气的很,哈哈。
  • 了解到 LLM 考虑到本地 inference 受限,大多以是所有 WebAPI 作为使用接口(ChatGPT 就是这样)。
  • 了解到各个模型根据语料库的不同,在不同领域表现不同,所以拿 GPT-3 与 AlphaCode 比谁生成的代码好就不厚道了,因为 GPT-3 的数据集里没有 Code。

总之,很感谢作者们的这篇文章,让我有了个全貌的了解。

第 2 篇:https://arxiv.org/abs/2304.13712 —— 这篇文章更学术一些,amazone 一众研究员撰写,开篇一幅图就爱了:

它根据 Encoder、Decoder、Encoder&Decoder 三个分支给 LLM 做了分类,当然这不是什么新分类法,Huggingface 中的文档 The Transformer model family 早就是这么分类的了,但这个图画的确实好,整理的很完整,我甚至打印出来,没遇到一个最近发布的新模型,还要定位、补充进去。

领域视角

最颠覆的我的,就是看到 ViT,看了 An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale,再听了李沐在 Bilibili 上解读 ViT 的视频后,更加对 Transformer 兴趣盎然,后来又进一步了解到凯明大神的 MAE,以及 Diffusion 扩散模型、DiTs……好多东西扑面而来,虽然我无法弄懂里面的所有原理,但尽可能的理解对于开发基于 LLM 的 APP 应该是有益的。

下面分别是 Transformer 模型在 NLP、视觉、Audio、多模态 四个领域的主流模型,图中并不是某某公司发布的 LLM,而是 LLM 的技术架构,分成四幅图很好的展示了四个应用领域(或场景)。

成本

大型语言模型在尺寸和成本上都在不断扩大。2019 年发布的 GPT-2 被认为是第一个大型语言模型,它有 1.5B(15 亿)个参数,训练成本估计为 5 万美元。仅仅三年后,540B 参数,预估花费 800 万美元的 Palm 就出来了。 2022 年末至今,在所有领域,大型语言和多模态模型都在变得更大、更贵。2023 年 4 月斯坦福发布的 《The State of AI in 2023》中显示:

有些 LLM 还会在自己的网站上写明花费,比如清华 THUNLP 的 OpenBMB 社区的 CPM:43w,68 天 —— 你觉得这钱和这碳排放值不值?

Task

LLM 能做什么?怎么分类?

可能很多人和我一样,从 ChatGPT 切入 LLM 后对它聊天之外的能力感觉不明显,但聊天是我们口语话的功能,并不是技术领域的 Task,比如聊天中可能需要总结一段话、预测下一句、填空、回答一个指定问题、翻译……这都是聊天,那专业的分类方式是什么,看这里:

transformers - pipeline

列了 27 个 Task

  • audio
    • "audio-classification"
    • "automatic-speech-recognition"
    • "zero-shot-audio-classification"
  • cv
    • 分类
      • "image-classification"
      • "video-classification"
      • "zero-shot-image-classification"
    • 物体检测
      • "object-detection"
      • "zero-shot-object-detection"
    • 分割
      • "image-segmentation"
    • 深度估算
      • "depth-estimation"
  • nlp
    • 文本分类
      • "text-classification" (alias "sentiment-analysis" available)
      • "zero-shot-classification"
    • token 分类
      • "token-classification"
    • 问答
      • "question-answering"
      • "table-question-answering"
    • 总结
      • "summarization"
    • 翻译
      • "translation"
      • "translation_xx_to_yy"
    • 语言建模(生成)
      • "text2text-generation"
      • "text-generation"
      • "fill-mask"
      • "mask-generation"
      • "conversational"
  • 多模态
    • "document-question-answering"
    • "feature-extraction"
    • "image-to-text"
    • "visual-question-answering"

先建立这些概念,这样当开发 LLM 的 API 时,就可以轻松地使用 SDK 中的各种 API 及其术语、概念。

playground

虽然已经出现了一些笔记本可运行的大模型,甚至浏览器可以运行的 LLM,但主流还是在有 GPU 的电脑、工作站上运行的模式,当然最好是薅一些 Data Center 的羊毛,比如:

  • HuggingFace 上的 space 可以用 hf 的算力,来运行一些 hf 的 model,各个 model 呈现的 UI 不一样,需要仔细挑选一下。
  • OpenAI playground: OpenAI 为 ChatGPT(其实包括了 GPT 多个版本)开发的演练场,可以在里面玩一玩,对应学习 openai 的 python sdk 包是有帮助的。