chagumu's blog
RAG中的Indexing全解析
一、Indexing 到底是什么?Indexing = 给你的知识库做 “超级目录” 你有一堆文档: PDF Word 网页 笔记 表格 书籍 不能直接理解文字 不能快速查找 把 “杂乱无章的文字” → 变成 “计算机能快速检索的结构化向量数据” 它是 RAG 的前置基建,没有 Indexing,就没有检索,就没有准确回答。 二、Indexing 的完整 5 步流程(标准 RAG 架构)所有 RAG 系统的 Indexing 都遵循这 5 步,一步都不能少: 1. 文档加载(Load)作用:把非结构化文件 → 纯文本 2. 文本清洗(Clean)去掉没用的东西: 多余空格、换行 水印、页眉页脚 乱码、符号 表格乱码 作用:让向量更纯净,避免噪声影响语义 3. 文本分块(Chunk) 太长 → 向量无法完整表达语义 太长 → 检索不精准 太长 → 大模型读不完 切分规则(最关键): 按段落 按句子 按固定长度 按语义(最推荐) 保留重叠(避免语义切断) Chunk 质量 = 检索效果 = RAG 回答效果 4. 文本向量化(Embedding)就是你刚才问的:把文字变成 ...
langchain中的chain到底是什么
一、Chain 是什么Chain 是 LangChain 中组件串联执行的核心机制,它将多个独立组件(提示词模板、模型、工具等)按顺序连接,前一个组件的输出自动作为下一个组件的输入,实现复杂任务的流水线化处理。 二、核心特性 链式语法:通过 | 符号快速拼接组件,写法简洁直观 1chain = chat_prompt_template | model # 提示词模板 → 模型 接口约束:参与成链的组件必须是 Runnable 接口的子类(如提示词模板、模型、嵌入模型等) 对象类型:最终形成的链是 RunnableSerializable 对象,本身也实现了 Runnable 接口,可继续参与链式拼接 执行触发:通过 invoke()(一次性执行)或 stream()(流式执行)触发整个链条运行 三、执行流程 输入:传入字典格式参数(如 {"history": "历史对话", "input": "用户问题"}) 组件 1:提示词模板:将输入参数填充到模板中,生成 PromptVal ...
Haspmap扩容原理剖析
一、为什么需要扩容?HashMap 底层是一个 数组 + 链表/红黑树 的结构。数组长度是固定的,随着元素不断插入,哈希冲突概率增大,链表越来越长,查询效率从 O(1) 退化为 O(n)。 为了维持高效的查询性能,HashMap 在元素数量达到一定阈值后会自动进行扩容(resize)。 二、核心参数 参数 默认值 说明 DEFAULT_INITIAL_CAPACITY 16 初始容量,必须是 2 的幂 DEFAULT_LOAD_FACTOR 0.75f 负载因子 MAXIMUM_CAPACITY 2^30 最大容量 threshold capacity × loadFactor 扩容阈值 扩容触发条件: 1当前元素数量(size)> threshold(容量 × 负载因子) 默认情况下:16 × 0.75 = 12,即插入第 13 个元素时触发扩容。 三、扩容策略:容量翻倍编辑 每次扩容,新数组容量 = 旧容量 × 2。 123// JDK 8 源码(resize 方法节选)int newCap = oldCap << 1; // ...
大模型学习基础概念
一、核心原理1. Transformer架构解析为什么使用Transformer架构 并行处理能力:相比RNN/LSTM,Transformer可以并行处理整个序列,大幅提升训练效率 长距离依赖捕获:通过自注意力机制,能够有效捕捉长距离的语义关系 可扩展性强:架构设计使其能够轻松扩展到数十亿、数千亿参数规模 什么是Transformer架构Transformer是一种基于自注意力机制(Self-Attention)的深度学习架构,由Google在2017年提出。其核心特点包括: 编码器-解码器结构:分别负责理解输入和生成输出 多头注意力机制:从多个角度并行计算注意力权重 位置编码:为序列中的每个位置添加位置信息 前馈神经网络:对每个位置的表示进行非线性变换 2. 大模型运行原理探索大模型如何理解和表示单词大模型处理单元 — Token Token是大模型处理文本的基本单位 一个Token可能是: 一个完整的词(如”apple”) 一个词的一部分(如”running” → “run” + “ning”) 一个字符或标点符号 通过分词器(Tokenizer)将文本切 ...
MCP的理解
(Model Context Protocol)简单比喻:MCP就像是给AI装了一套”插件系统” 想象一下,Claude本身就像一个很聪明的大脑,但它被”困”在一个对话框里。MCP就是让Claude能够”伸出手”去操作外部工具的协议。 具体来说: Claude原本只能聊天,不能直接访问你的文件、数据库、API等 有了MCP,你可以给Claude连接各种”服务器”(MCP servers) 比如连接GitHub的MCP服务器后,Claude就能帮你查看代码、创建issue 连接Google Drive后,Claude就能读取、搜索你的文档 连接数据库后,Claude就能查询、分析数据 技术角度:这是Anthropic开发的一个标准化协议,让AI模型能够安全地调用外部工具和数据源。 技术文档:https://juejin.cn/post/7604037348607082534?share_token=2684000a-90a2-44c4-9bdb-22930deaab35 主流支持 MCP 的软件 Claude Code - cursor - Vscode 的roo code插件- t ...
avatar
🐟认真摸鱼中
chagumu's blog
我并不想说
学习路线
最新文章
小站资讯
文章数目 :
5
本站总字数 :
4995
本站访客数 :
本站总访问量 :
最后更新时间 :
空降评论复制本文地址
昼夜切换美化设置切换全屏打印页面