向量的模长和勾股定理的关系是什么?
知识点一:二维空间中的直接关系在二维笛卡尔坐标系中,一个向量 $\mathbf{a}$ 可以表示为一个有序对 $\mathbf{a} = (x, y)$。 几何表示当我们从原点 $(0, 0)$ 画出向量 $\mathbf{a}$ 到点 $(x, y)$ 时,我们可以构造出一个直角三角形: 直角三角形的两条直角边: 长度分别为向量的两个分量 $x$ 和 $y$。 直角三角形的斜边: 就是向量 $\mathbf{a}$ 本身,其长度即为向量的模长 $|\mathbf{a}|$。 勾股定理的应用勾股定理指出:在一个直角三角形中,两条直角边的平方和等于斜边的平方。 $$\text{直角边}_1^2 + \text{直角边}_2^2 = \text{斜边}^2$$ 将我们的向量分量代入: $$x^2 + y^2 = |\mathbf{a}|^2$$ 向量模长的公式因此,向量 $\mathbf{a}$ 的模长 $|\mathbf{a}|$ 就是斜边的长度,由勾股定理直接得出: $$|\mathbf{a}| = \sqrt{x^2 + y^2}$$...
向量的模长是什么?
什么是向量的模长?定义向量的模长(Magnitude),也称为范数(Norm)或长度,是描述向量“大小”或“强度”的标量值。在几何上,它表示从向量的起点到终点的欧几里得距离。 对于一个 $ n $ 维实数向量 $\mathbf{v} = [v_1, v_2, \dots, v_n]$,其模长定义为: $$|\mathbf{v}| = \sqrt{v_1^2 + v_2^2 + \cdots + v_n^2} = \sqrt{\sum_{i=1}^{n} v_i^2}$$ 该公式来源于欧几里得范数(Euclidean norm),即 $ L^2 $ 范数。 几何解释 在二维空间中,向量 $\mathbf{v} = [x, y]$ 的模长是其在平面上的长度:$$|\mathbf{v}| = \sqrt{x^2 + y^2}$$这等价于直角三角形的斜边长度(勾股定理)。 在三维空间中,向量 $\mathbf{v} = [x, y, z]$ 的模长为:$$|\mathbf{v}| = \sqrt{x^2 ...
向量点积公式在自注意力机制中的应用?
在Transformer架构的自注意力机制(Self-Attention Mechanism)中,向量点积的几何意义——即衡量两个向量之间的相似性——被直接且核心地应用于计算注意力权重。该机制依赖点积来评估输入序列中不同位置之间的相关性,从而实现对上下文信息的动态聚合。 自注意力机制的基本原理自注意力机制的核心目标是:使序列中的每个位置能够根据语义相关性,动态地聚合序列中其他位置的信息。 例如,在句子 “The cat sat on the mat because it was tired” 中,模型需要确定代词 “it” 的指代对象。自注意力通过计算 “it” 与其他词之间的语义匹配程度,增强其与先行词(如 “cat”)的关联,从而实现指代消解。 点积在自注意力中的具体实现自注意力机制涉及三个线性变换后的向量:查询向量(Query, Q)、键向量(Key, K)和值向量(Value, V)。其计算过程如下: 第一步:生成 Query、Key 和 Value 向量对于输入序列中的每个 token,通过可学习的线性变换生成对应的 Q、K、V 向量: Query (Q):表示当前 ...
向量点积为什么越大表示两个向量之间的相似度就越高?
为什么向量点积越大,表示两个向量之间的相似度越高?这是一个非常深刻且重要的问题!理解“为什么向量点积越大,相似度越高”,是掌握现代机器学习(尤其是注意力机制、推荐系统、语义搜索等)的关键基础,我们来一步步拆解。 1. 向量点积的数学定义给定两个向量 a 和 b,它们的点积(Dot Product)定义为: $$\mathbf{a} \cdot \mathbf{b} = \sum_{i=1}^{n} a_i b_i = a_1 b_1 + a_2 b_2 + \cdots + a_n b_n$$ 但还有一个几何定义,它才是理解“相似度”的关键: $$\mathbf{a} \cdot \mathbf{b} = |\mathbf{a}| |\mathbf{b}| \cos \theta$$ 其中: $|\mathbf{a}|$ 是向量 a 的长度(模), $|\mathbf{b}|$ 是向量 b 的长度, $\theta$ 是两个向量之间的夹角。 2. 从夹角 $\theta$ 理解“相似度”我们关心的是方向上的相似性,而不是大小。两个向...
BPE和tiktoken都是什么?
知识串联:BPE 是方法,tiktoken 是工具 名称 类型 核心作用 所属领域 关系 BPE 分词算法 字节对编码(Byte Pair Encoding),一种将文本拆分成**子词(subword)**的方法。 文本预处理、大语言模型 tiktoken 实现了 BPE 及其变体,是使用这种方法的具体工具。 tiktoken 分词工具库 OpenAI 开发的高效分词库,用于将文本转换为其模型(如 GPT-3/4)使用的 Token 序列。 OpenAI 模型、分词计数 tiktoken 是 OpenAI 模型分词的官方标准,其核心算法是 BPE 的优化版本。 BPE(Byte Pair Encoding,字节对编码)BPE 是一种数据压缩技术,但它被引入 NLP 领域并成为目前大语言模型(如 Transformer 架构)中最常用的分词算法之一。 BPE 的核心思想BPE 的目标是解决传统分词方法(如按词分词或按字符分词)的痛点,实现词汇表大小和表示能力的平衡: 初始化: 将文本中的每个字符视作一个初始的“Token”。 合并: 迭代地寻找语料库中...
速通大模型N百词
大模型向量张量表征学习(Embedding)向量数据库微调全量微调高效微调RAGAgentPEFT(LoRA / QLoRA)量化知识灌注ChunkTokensSFT (监督微调) 人类偏好对齐(RLHF/DPO) RLHF:Reinforcenment Learning from Human Feedback 生成多样回答 让人工标注哪个更好 训练奖励模型 (Reward Model) + PRO 优化 DPO :Direct Preference Optimization
RAG的优化手段有哪些?
查询转换:让提问精准匹配知识库多查询重写:针对用户表述模糊思路:将原始输入转化为多个变体的问题查询 假设文档法( HyDE ) :用户问题和知识库差异大思路:先生成一个理想的、假设的答案,然后将这个答案向量化后与知识库匹配,弥补了原始问题和真实答案之间的语义鸿沟 问题与应对:如果生成的假设文档和真实文档的匹配相似度低(比如:<0.7),系统会触发“二次检索”,换一种方式再找一遍。 问题分解和回退:针对复杂问题和无直接答案思路:如果原始查询是一个太复杂或者知识库中没有具体答案的问题,系统不会放弃回答,而是“尝试拆解”大问题到小问题,或者“退一步”找个更宽泛的答案。 “退一步”找个更宽泛的答案,是因为前边的所有的提问都没法命中,一种兜底的策略。 分解策略选择表: 问题类型 策略 案例说明 多步骤推理 串行分解 “RAG流程?” -> 分解成“检索阶段”和“生成阶段” 跨领域问题 并行分解 “AI医疗应用?” -> 分解成 “AI技术”和“医疗应用” 细节查询失败 抽象回退 “特斯拉Q3财报?” -> 回退为“查找新能源企业财报?” ...
搭建一个Agentic的RAG
做向量的RAG肯定找不到工作,不为什么,就是过时了,Agent?那是人工智能编程的事。 如果你能把RAG+Agent结合,那肯定能找到工作! 如何不用向量数据库也能做RAG?而是要用Agentic方法搞定了百万token文档检索…… 这大把公司要的,因为你都能自己出来单干了!!!! 就说我之前调试一个法律文档检索系统。客户的合同有800多页,切记800多页! 传统RAG的向量检索总是找不到关键条款——明明就在第523页的免责条款里,FAISS就是检索不出来。 搞了半天才发现,是文档分块把一个完整的条款切成了三段,向量相似度直接拉胯了。 这让我想起早前OpenAI悄悄更新的一个技术指南——他们居然说可以不用向量数据库做RAG。 刚看到的时候我是懵的,这不是反直觉吗? 但仔细研究后发现,还真别说,这个叫Agentic RAG的方法确实有点东西。 并且现在很多大公司都是追求高质量,Agent+RAG算是个新东西,主要是效果好…… 尤其是专业领域,像法律、医疗、科技等等,全都需要…… RAG为什么不好?去年做一个医疗知识库项目时,光是调试embedding模型就花了两周。你能想象吗?同一...
企业新基建:MCP + LLM + Agent 8大架构,将打通AI Agent的“神经中枢”落地实操!
随着AI智能体技术的快速发展,如何高效构建和管理多Agent系统成为开发者关注的焦点。本文将深入解析8种当前最受欢迎的LLM Agents开发框架,并详细演示如何为每种框架集成MCP Server,让你的智能体拥有强大的外部工具调用能力,本文上一篇文章的实操篇企业新基建:MCP + LLM + Agent架构,将打通AI Agent的“神经中枢”。 什么是MCP Server?MCP(Model Context Protocol)Server是一个标准化的工具接口协议,它允许AI Agent通过统一的方式调用各种外部工具和服务。无论是搜索引擎、数据库查询,还是API调用,MCP Server都能提供标准化的接入方式。MCP Server支持两种主要连接模式: Stdio模式:通过命令行进程通信,适合本地开发 SSE模式:通过HTTP连接,适合生产环境部署 OpenAI Agents SDK - 轻量级多Agent协作OpenAI Agents SDK是官方推出的轻量级框架,特别适合构建多Agent协作系统。 快速开始 123456789101112131415161718...
构建完全本地的MCP客户端:让AI智能体与数据库无缝对话
最近在做一个项目时,我需要让AI智能体能够直接与本地数据库进行交互。经过一番研究,发现Model Context Protocol(MCP)是个非常优雅的解决方案。今天就跟大家分享一下如何构建一个完全本地化的MCP客户端,让AI智能体能够智能地操作SQLite数据库。 什么是MCP?为什么选择它?MCP(Model Context Protocol)是一个标准化协议,专门用于AI应用程序与外部工具和数据源的连接。想象一下,如果AI智能体是一个万能助手,那么MCP就是它的”工具箱接口”,让它能够标准化地使用各种外部工具。 技术栈选择经过多次尝试,我选择了这样的技术栈: LlamaIndex:构建MCP智能体的核心框架 Ollama:本地运行Deepseek-R1模型 LightningAI:开发和托管环境 SQLite:作为演示的数据存储 整体工作流程 整个系统的运行逻辑其实很简单: 用户提交查询 智能体连接MCP服务器,发现可用工具 根据查询内容,智能体选择合适的工具 获取上下文信息并返回智能响应 代码实现详解构建SQLite MCP服务器首先,我们...