这篇文章通过一个程序员在80年代初发现新编程语言的比喻,来讨论LLM框架的复杂性和它们在当前不成熟领域中的作用。
作者将LLM框架比作80年代的ORM(对象关系映射),它们都是抽象层,旨在简化数据库操作。但作者认为LLM框架过于复杂,可能会阻碍用户真正理解他们正在使用的领域。
想象一下,80 年代初的程序员刚刚发现一种与其他编程语言略有不同的新编程语言。 你不用 if-else 开关和 for 循环来编写算法。 相反,您只需描述预期输出数据集,底层系统(称为数据库)就会将您的查询改写为算法,并加以执行,从而为您提供所需的结果集。 不过,要想有效地使用它,你最好对关系模型有一个基本的了解,这起初似乎有违直觉,但几天之后,你就会逐渐适应。
然后,有一天,一位来自未来的同事走进来,开始告诉你必须如何使用 ORM! 它们让生活变得更轻松,甚至可以为你生成 SQL 代码。 只有一点需要注意:你必须学习它们的概念,用对象来思考,让它们为你做关系思考。
你开始使用它们几个星期。 它们最初似乎很有帮助,但每次你偏离它们的示例时,它们就不那么有用了。
没过多久,你就会采纳人们(将会)针对 ORM 的所有论点,因为你已经积累了 40 多年的集体数据库知识,而你却还在一个新生时代生活和使用它们。
你越来越沮丧,决定放弃它们,自己编写查询。
LLM框架
- RAG听起来很科学,但实际上逻辑简单直接。它通过提供上下文来引导LLM生成更符合用户需求的响应。
- LLM框架试图为通用模型提供特定的上下文,这在逻辑上存在问题。
LLM中的向量嵌入和相似度评分等概念在数学上并不复杂,但它们的语义在LLM领域中发生了显著变化。如果您掌握了这些语义,您就可以更有效地使用它们。
但问题是什么呢?
天下没有免费的午餐。
框架使得简单的任务变得复杂,就像为了得到一个香蕉而创建整个宇宙一样。