我在North Bay Python做了一个演讲,我试图总结过去几年LLM领域的发展——大型语言模型,这是ChatGPT,Google Bard和Llama 2等工具背后的技术。
我的目标是帮助那些没有完全沉浸在这个空间的人赶上正在发生的事情。我涵盖了很多方面:它们是什么,你可以使用它们做什么,你可以在它们的基础上构建什么,如何训练它们以及安全、有效和合乎道德地使用它们所涉及的许多挑战中的一些。

29122729-2023-08-29T04:27:26.png

什么是 LLM

  • 一个生动的比喻:LLM 可以理解为3年前外星人遗落地球的一个U盘,人类一直用棍子戳来戳去试图了解它是什么、如何工作
  • LLM 本质上是一个文件 (例如 Vicuna 7B模型是一个 4.2GB的文件)
  • LLM 也可以看作是一个函数,可以完成文本生成,并且回答给定的问题

29123203-2023-08-29T04:32:02.png

LLM是如何工作的

  • LLM 的工作原理是预测句子的下一个词,就像手机键盘会根据前文预测下一个词一样
  • 大型 LLM 模型需要训练海量数据,需要大量计算资源
  • LLM预计的不仅是词,而是 1-30000 整数表示的词符,这可能带来语言偏见

29123233-2023-08-29T04:32:33.png
LLM 发展的简要时间线

  • 简要介绍了LLM发展历史,从2015年OpenAI成立,到2017年Transformer架构问世,以及后续GPT-1/2/3等模型的发布
  • 2022年5月有论文发现了 GPT-3 的新功能,2022年11月ChatGPT推出则是一个分水岭

29123259-2023-08-29T04:32:58.png
当前最优秀的 LLM 工具

  • 推荐了ChatGPT (速度快)、GPT-4 (功能强)、Claude 2 (文本长度长)、Bard (基于PaLM) 和Llama 2 (领先的开源模型) 等当前较好的LLM
  • ……

使用 LLM 的技巧

  • 提供了一些使用技巧,比如注意模型的训练截止时间 (2021年9月)、注意输入文本长度限制、避免 hallucination 等
  • 要建立正确的心理模型,理解其良莠不齐的输出

使用 LLM 进行编程

  • 讨论了 LLM 在编程方面的应用,包括解释术语、命名 (提供多个选项)、API设计等
  • 作者通过 LLM 提高了4-5倍的编程效率,并且展示了通过 LLM 生成测量文件大小脚本的示例

基于 LLM 我们可以构建什么

  • Giving them access to tools:基于ReAct模式,可以给 LLM 提供外部工具 (如Wikipedia) 的访问权限;作者展示了通过英文指令来「编程」控制 LLM 的示例
  • Retrieval augmented generation:使用搜索引擎为 LLM 提供额外上下文信息,辅助 LLM 生成答案;作者基于该方法构建了问答demo
  • Embeddings and vector search:词向量可表示文本语义,用于相似文本的向量空间搜索;作者介绍了词向量相关技术

ChatGPT Plugins

  • ChatGPT插件可以访问外部API,提供额外能力
  • 作者构建了一个访问 Datasette API 的插件 Demo,并讨论了可能的陷阱

ChatGPT Code Interpreter

  • 该工具让ChatGPT可以运行代码,解决 hallucination问题
  • 作者通过它生成了Mandelbrot分形动画

LLM 的训练方式

  • LLaMA training data:LLaMA使用了大量爬虫、GitHub等数据,其中4.5%是Books3的数据集,包含大量侵权书籍内容
  • Reinforcement learning from human feedback:介绍了该训练方法对提高 LLM 质量的重要性

Openly licensed models

  • 讨论了 Llama2 等开源 LLM 模型的情况,大多数模型发布时的许可并不是「开源」的,往往带有一大堆额外的限制
  • 作者也介绍了开源社区无视许可证限制进行fine-tuning的现状

My LLM utility

Prompt injection

  • 探讨了该安全问题, LLM 是易受攻击的
  • 作者提出了该攻击的例子并链接了相关文章

原文:https://simonwillison.net/2023/Aug/3/weird-world-of-llms/