搜索引擎中的大型语言模型
Source: Dev.to
请提供需要翻译的正文内容,我将为您翻译成简体中文。
基于自适应权重的 A* 算法
A* 算法使用启发式 + 到节点 n 的累计成本。
它在普通图上表现良好,但当搜索空间是 网格 时会出现一些缺陷。
在基于网格的搜索空间中,图是一个 n × n 的单元格数组,每个单元格都是一个节点。
从一个单元格移动到相邻单元格的代价在整个网格中是恒定的。
下面列出了传统 A* 算法在网格上存在的两个主要问题以及提出的解决方案。
问题 1 – 考虑的邻居过多
在 n × n 网格上运行传统 A* 时,通常会考虑 8 个邻居(8‑连通邻域)。
在每次迭代中探索所有八个邻居会浪费计算资源,因为会扩展不必要的节点。
提出的解决方案: 只考虑 5 个最有用的邻居。
问题是:我们如何挑选这 5 个邻居?
步骤 1 – 计算 Δx 和 Δy
[ \Delta x = |x_{\text{goal}} - x_{\text{current}}|,\qquad \Delta y = |y_{\text{goal}} - y_{\text{current}}| ]

步骤 2 – 选择合适的条件
将两个值与下面的条件进行比较:

步骤 3 – 选取邻居集合
满足任一条件时,取对应的邻居集合。
邻居集合的格式如图所示(蓝色单元格为 代理)。

问题 2 – 危险路径
危险路径 是指直接穿过障碍物边缘的路径(见下图)。
当传统 A* 算法扩展此类路径时,代理可能会撞到障碍物的锐利边缘。

提出的解决方案: 根据 障碍物的方向 从邻居集合中移除两个邻居。
下表展示了针对每种障碍方向必须排除的子节点。

算法检查障碍物的方向,然后决定哪些子节点 不 被考虑。
个人感想
我最近在课堂上学习了 A* 以及其他路径寻找算法,觉得它们非常有趣。
阅读论文 “A Algorithm Based on Adaptive Weights”* 为我提供了在实际场景中实现这些概念的具体思路。
参考论文:
A* algorithm Based on Adaptive Weights
大型语言模型在搜索引擎中的应用
现代搜索引擎已经变得高度自治,使日常任务更加高效。
早期的搜索引擎依赖预先编写的关键词匹配和传统的自然语言处理(NLP)技术。
旧问题
像下面这样的复杂查询
“How to know if and A* algorithm has given optimal path should we compare it with ucs traversal?”
会让传统引擎感到困惑,因为:
- 句子中包含语法错误(例如多余的 “and”)。
- “ucs” 等模糊术语无法被理解。
现代解决方案
我们现在将 大型语言模型(LLMs)(如 ChatGPT、Claude、Opus)与网页技术相结合。
- LLM 在使用最新的 NLP 进展理解人类语言方面表现出色。
- 但它们缺乏最新的事实知识。
通过将 LLM 与实时网页检索(RAG – 检索增强生成)集成,我们得到一种能够:
- 准确解释复杂、噪声较大的查询。
- 从网络上检索最新信息的搜索引擎。
搜索引擎的演进
| 代际 | 主要特征 |
|---|---|
| 1 – 传统 | 对已索引网页进行关键词匹配;返回前 N 条结果。 |
| 2 – AI 增强 | 引入 RAG(检索增强生成);将检索与语言生成相结合。 |
| 3 – LLM 驱动(当前) | 完全整合 LLM 与实时网页数据;处理模糊、对话式以及最新的查询。 |
第3节:深度搜索
现在出现了迄今为止最新、最强大的方法:THE DEEP SEARCH。
在这种方法中,代理不再遵循固定的逐步流程,而是被允许独立思考。代理自行决定搜索什么,并在理解用户的复杂查询后确定最佳内容进行交付。机器学习也被用于这项前沿技术。
个人感想
在阅读本文之前,我对搜索引擎的历史一无所知。通过本文,我学到了搜索引擎的工作原理以及它们在数十年间的演变过程。