Quantcast
Channel: 青蛙的分享 - 小众软件官方论坛
Viewing all articles
Browse latest Browse all 88

为什么你的大脑比 GPT-4 效率高 300 万倍

$
0
0

最近,我必须进入向量数据库世界并为一个特定项目选择一个。令我惊讶的是,向量数据库由于大语言模型(LLMs)的兴起而重新受到关注。虽然它们被认为是“新技术”并不准确,但向量数据库其实已有很长时间的历史,并经过了多年的工程和科学测试。

就像关系数据库一样,向量数据库种类繁多,各有千秋。相比于选择SQL数据库,我对向量数据库完全是新手。所以,我需要四处打听,自己搜集数据,检查并形成对各个数据库的看法,以选择适合特定用例的产品。

在深入了解之前,先澄清一下我并不是AI专家,文章中的看法仅为个人观点,可能有偏见,请读者自行查证。

向量、相似度和我们的大脑

首先,我们要了解一些基本概念。计算机不能理解字词,它们只能处理二进制语言,即0和1。所有计算机操作最终都是数字。自然数、浮点数都可以转化为二进制表达。目前计算机可以通过某些方法,将不同的单词在不同上下文中转化为不同的数字,这就是所谓的上下文化词嵌入。

这种表示缺乏语境,导致理解的局限性。例如,“dust” 在“dust the furniture” (打扫家具)和 “dust on the furniture”(家具上的灰尘)中的意义不同,但在基础情况下,它们在计算机中的表示是相同的。

为了解决缺乏语境的问题,我们开发了上下文化词嵌入技术。该方法根据单词的语境或语义生成不同的唯一数字。

number_representation_of_a_word_and_meaning(“dust”, context=“dust on the floor”) == 42

number_representation_of_a_word_and_meaning(“dust”, context=“dust the floor”) == 24

具有相似语义的单词在不同语境中会被分配接近的数字。这使得计算机能够判断不同的语义差异。

嵌入的定义

嵌入(Embeddings)是根据特定标准(例如语义意义)分配的数字表示方法。在嵌入空间中,语义相似的词汇将会靠近彼此,而语义差异较大的词汇将会距离较远。

例子:

number_representation_of_a_word_and_meaning(“bark”, context=“bark is a noun”) == 12

number_representation_of_a_word_and_meaning(“bark”, context=“bark is a verb”) == 19

“bark”作为名词和动词在不同语境中有不同的数字表示,但同样都与保护有关,因此它们的数字接近。

在高维向量空间中,不同语义和上下文的单词会被分配不同的向量值,而这些向量值之间的距离可以表示语义的相似度。向量空间的维度越高,表示的语义越丰富。然而,计算高维向量相似性的问题也越复杂,这就是所谓的“维度灾难”。为了解决这个问题,引入了像HNSW这样的分层可导航小世界算法。

实际上,LLM只是复杂的算法,它们处理大量数据,将这些数据向量化并嵌入高维空间,然后基于语义上下文进行近似匹配和猜测,并不是在“思考”。

人脑与GPT-4的比较

尽管现代大语言模型(如GPT-4)在模拟自然语言方面表现出色,但它们并不具备真正的“理解”能力。

  • GPT-4 的硬件需巨大的数据中心和约7.5兆瓦每小时的功耗,而人脑仅需24瓦每小时。
  • 计算下来,人脑的效率大约是GPT-4的300万倍,且复杂性至少高出一个量级。

各大向量数据库的使用体验总结

ChromaDB

  • 优点:快速上手,适合概念验证。
  • 缺点:不适应生产级应用,特别是在数据持久化和扩展方面有问题。

最新改进:ChromaDB 进行了架构改革,性能和耐用性得到提升。

Pinecone

  • 缺点:黑盒模式,数据控制不在用户手中,不适合有数据隐私和合规需求的人。

Faiss

  • 缺点:仅是一个库,不是完整的向量数据库,不适合生产环境。

Milvus

  • 优点:支持新功能,适合自托管和云服务。
  • 缺点:实际使用中有很多问题,如数据索引和边缘情况处理。

pgvector

  • 缺点:性能和准确性差,特别是在并发情况下。不被所有Postgres版本支持。

Redis

  • 优点:性能不错,适合作为入门方案。
  • 缺点:不能作为专门的向量数据库使用,核心业务不是向量存储。

Qdrant

  • 优点:开源,自托管和云服务选项,性能优异,社区活跃,易用性高。

Weaviate

  • 优点:功能集丰富。
  • 缺点:性能可能不如Qdrant。

结论

  1. Qdrant: 各方面表现优秀,适合生产级应用。
  2. ChromaDB: 新增功能使其在某些情况下是不错的选择。
  3. Pinecone: 适合快速上手,存在锁定风险。
  4. Redis: 性能不错,但不建议作为专门的向量数据库。
  5. pgvector: 不推荐用于高并发和需要高准确性的环境。
  6. Milvus: 实践中存在太多问题,不推荐使用。
  7. Faiss: 仅适合简单的业余项目,不适合生产环境。

4 个帖子 - 3 位参与者

阅读完整话题


Viewing all articles
Browse latest Browse all 88

Trending Articles