程序员应该熟悉的概念(9)向量相似度(vector similarity)
在之前的文章 嵌入和语义检索 中,我们了解了把文本变成向量的方法,由于这些向量相当于将文本做了分类:语义相近的距离越近,所以这些向量就可以很方便的应用于语义检索场景了。 比较向量相似度(vector similarity)的常见算法主要分为两大类: 1️⃣ 基于“角度/方向”的度量 2️⃣ 基于“距离/差异”的度量 下面我们系统的整理一下。 ...
在之前的文章 嵌入和语义检索 中,我们了解了把文本变成向量的方法,由于这些向量相当于将文本做了分类:语义相近的距离越近,所以这些向量就可以很方便的应用于语义检索场景了。 比较向量相似度(vector similarity)的常见算法主要分为两大类: 1️⃣ 基于“角度/方向”的度量 2️⃣ 基于“距离/差异”的度量 下面我们系统的整理一下。 ...
语义检索是指系统能够理解用户查询的深层含义(语义),而不仅仅是匹配字面关键词。它通过分析上下文、同义词、相关概念等,查找与查询意图最相关的信息,即使文档中没有完全相同的词语。 与关键词检索的区别: 关键词检索:基于字面匹配,查找包含用户输入的特定词语的文档。它不理解词语的含义,因此可能遗漏意思相关但用词不同的内容,或返回用词相同但意思不符的结果。 语义检索:基于意义匹配,理解查询和文档的“意思”。它能找到表达方式不同但含义相近的内容,返回更符合用户真实意图的结果。 简单来说:关键词检索是“找词”,语义检索是“懂意”。 例如:如果用关键词检索“苹果”,那么可能找到我们吃的苹果以及苹果公司的相关信息;而语义检索会考虑检索内容的上下文,它能断定这个苹果是“苹果公司”,所以只会检索“苹果公司”的相关内容出来。 ...
vLLM(Virtual Large Language Model) 和 Ollama 都是用于运行大语言模型 大语言模型/LLM 的工具,旨在降低本地部署和使用大模型的门槛。应用程序可以通过它们的统一接口,使用不同大模型。 ...
大语言模型/LLM 通常是由海量通用知识(如语法、常识、逻辑)训练的,在面对具体场景(如医疗问诊、法律文书生成)时,能力往往不足。 Fine-tuning/微调 正是为解决这一问题而生的核心技术,其本质是在预训练模型的基础上,用特定领域 / 任务的小数据集进一步训练,让模型 适配具体需求,最终输出更精准、更贴合场景的结果。 ...
MoE(Mixture of Experts,专家混合模型))是当前大模型(尤其是 GPT-4、Gemini、Mixtral、DeepSeek 等)架构中非常核心的一个概念。 MoE 的思想非常直白:不同的 专家/Expert 只负责处理自己擅长的那一类输入,而不是让整个模型的所有参数都去处理所有任务。 也就是说: 一个 MoE 模型内部其实包含了很多个“子网络”(这些子网络叫做 专家/Expert); 每次输入一句话或一段文本时,模型不会激活所有 专家/Expert,而是通过一个 路由/Router来挑选 最合适的几个专家; 只有被选中的那几个 专家/Expert 会参与这次计算,从而节省大量算力。 ...