从一窍不通到构建出 RAG 应用

我昨天花了时间阅读了 31 页我自己的 NLP 笔记。

我什么也没看懂。

我以为问题出在我身上。其实不然。问题在于我的方法。阅读笔记并不等于学习。我的笔记是为专家准备的,而不是为初学者准备的。

我改变了方法。我停止了死记硬背,转而开始提问。我使用简单的例子,并且在理解概念之前,拒绝使用任何技术术语。

到了一天结束时,我构建出了一个 RAG 应用。以下是我学习 NLP 四大支柱的过程。

  1. 词袋模型 (Bag of Words) 计算机只理解数学。要处理文本,你必须将单词转换为数字。

想象一下,你想把电子邮件分类为垃圾邮件或非垃圾邮件。你列出邮件中的每一个单词,并统计每个单词出现的次数。这样,一封邮件就变成了一行数字。

缺陷在哪里?它忽略了词序。“Dog bites man”(狗咬人)和“man bites dog”(人咬狗)在这种方法看来是完全一样的。

  1. TF-IDF 词袋模型对每个单词一视同仁。但“the”显然没有“viagra”那么重要。

TF-IDF 使用两条规则:

这种数学方法可以降低像“the”这类填充词的影响,并突出重要的稀有词汇。

  1. 嵌入 (Embeddings) 词袋模型认为“money”和“cash”之间没有关系。Embeddings 解决了这个问题。

想象一张巨大的地图。每个单词都是地图上的一个点。意思相近的单词会靠在一起。“Money”和“cash”是邻居,而“Banana”则离得很远。

计算机通过观察单词的“社交圈”来学习这些位置。如果“money”和“cash”都经常出现在“bank”和“pay”附近,计算机就会把它们放在彼此靠近的位置。

  1. RAG (检索增强生成) 这就是所有知识汇聚的地方。

如果你文件中的每一条笔记都是地图上的一个点,你就可以通过寻找最近的点来找到答案。

RAG 的流程:

这可以防止 AI 进行猜测或胡编乱造。它强制 AI 使用你的实际数据。

我利用这些步骤构建了我的应用 Synapse。我仅用一天时间就实现了从零到构建出一个可用系统的跨越。

心得:停止阅读。开始提问。如果你无法用一个简单的类比来解释一个概念,说明你还没有真正掌握它。动手构建一些东西来证明你已经理解了。

来源:https://dev.to/sabimantock/from-i-understood-nothing-to-building-a-rag-app-4033

可选学习社区:https://t.me/GyaanSetuAi