当前位置: 首页 > article >正文

向量数据库原理:Embedding、相似度检索、索引结构一次讲透

很多同学搭 RAG 系统时第一反应是装个向量数据库、调个 API 就完了。结果上线后发现检索结果不相关、速度越来越慢、换个 Embedding 模型全部数据要重导……这些坑的根源都是没搞懂向量数据库底层到底在干什么。今天这篇我们从 Embedding 原理到相似度计算再到索引结构和数据库选型一次性讲透。读完这篇你再去用 Milvus、Pinecone 这些工具就是知其所以然了。01 Embedding 是什么文本到向量的桥梁Embedding 的本质是把人类语言映射到高维数学空间让语义相近的文本在空间中距离相近。你可以这样理解每个文本经过 Embedding 模型处理后会变成一个固定长度的浮点数数组向量。比如一段话经过 OpenAI 的text-embedding-3-small模型处理后会变成一个 1536 维的向量。LangChain 是一个 AI 应用开发框架 ↓ Embedding 模型 [0.0123, -0.0456, 0.0789, ..., 0.0321] // 1536 个浮点数为什么这玩意能做语义检索因为 Embedding 模型在训练时见过海量的文本对——它学会了意思相近的句子应该映射到相近的位置。所以如何做饭和烹饪教程的向量会很接近而如何做饭和量子力学的向量就会差很远。在 LangChain.js 中生成 Embedding 只需要几行代码importOpenAIEmbeddingsfromlangchain/openaiconstnewOpenAIEmbeddingsmodeltext-embedding-3-smalldimensions1536// 可选控制输出维度// 单条文本 EmbeddingconstawaitembedQueryLangChain 是一个 AI 应用开发框架consoleloglength// 1536consolelogslice05// [0.0123, -0.0456, 0.0789, ...]// 批量 Embedding存储时用constawaitembedDocumentsLangChain 是一个 AI 应用开发框架向量数据库用于存储和检索向量RAG 是检索增强生成的缩写consoleloglength// 3这里有个关键区别embedQuery用于查询时的单条文本embedDocuments用于批量存储文本。某些模型对查询和文档会做不同处理比如加前缀所以不要混用。✅ 正确查询用embedQuery存储用embedDocuments❌ 错误为了省事全用embedDocuments某些模型下检索效果会明显变差02 Embedding 模型选型钱、效果、速度的三角博弈没有最好的 Embedding 模型只有最适合你场景的。目前主流的 Embedding 模型分两大阵营商业模型模型维度最大 Token特点text-embedding-3-small1536可调8191性价比最高适合大多数场景text-embedding-3-large3072可调8191精度更高成本翻倍text-embedding-ada-00215368191上一代不推荐新项目用开源模型模型维度特点BGE-large-zh-v1.51024中文场景最强开源之一BGE-m31024多语言、多粒度、多功能E5-large-v21024英文场景表现优秀GTE-large1024通义千问团队出品选型建议场景判断流程 你的数据主要是中文 ├── 是 → 预算充足 │ ├── 是 → text-embedding-3-small简单省心 │ └── 否 → BGE-large-zh-v1.5 / BGE-m3本地部署 └── 否 → 多语言混合 ├── 是 → BGE-m3 / text-embedding-3-small └── 否纯英文→ E5-large-v2 / text-embedding-3-small在 LangChain.js 中使用开源模型通过 HuggingFace 或本地部署的 OllamaimportOllamaEmbeddingsfromlangchain/ollama// 使用本地 Ollama 部署的 BGE 模型constnewOllamaEmbeddingsmodelbge-large-zh-v1.5baseUrlhttp://localhost:11434constawaitembedQuery向量数据库原理consoleloglength// 1024✅ 正确根据数据语言和预算选模型先在小数据集上对比效果再做决定❌ 错误无脑选最贵的 large 模型——维度越高存储成本和检索延迟都会增加03 相似度计算三种距离度量的本质区别把文本变成向量之后“找最相关的内容就变成了找距离最近的向量”。但距离有好几种算法用错了效果天差地别。余弦相似度Cosine Similarity衡量两个向量方向的夹角不关心长度。值域 [-1, 1]1 表示完全同方向0 表示正交-1 表示完全反向。余弦相似度 (A · B) / (|A| × |B|) 向量 A [1, 2, 3] 向量 B [2, 4, 6] 余弦相似度 1.0 方向完全相同虽然长度不同最常用。绝大多数 Embedding 模型输出的向量已经做了归一化长度为 1这时候余弦相似度等价于内积。欧氏距离Euclidean Distance / L2衡量两个向量在空间中的直线距离。值越小越相似。欧氏距离 √(Σ(Ai - Bi)²) 向量 A [1, 0] 向量 B [0, 1] 欧氏距离 √2 ≈ 1.414对向量长度敏感。如果你的 Embedding 没有归一化同样语义的文本可能因为长度不同而被判为不相似。内积Inner Product / Dot Product内积 Σ(Ai × Bi) 向量 A [1, 2, 3] 向量 B [4, 5, 6] 内积 1×4 2×5 3×6 32当向量已归一化时内积 余弦相似度。速度最快因为不需要额外计算模长。怎么选你的 Embedding 模型输出已归一化 ├── 是OpenAI、BGE 等大多数模型 │ → 用内积IP速度最快效果等于余弦相似度 ├── 不确定 │ → 用余弦相似度COSINE最稳妥 └── 否原始向量未归一化 → 用余弦相似度COSINE或先手动归一化再用内积用 TypeScript 手动实现看一下直觉// 余弦相似度functioncosineSimilaritya: number[], b: number[]numberlet000forlet0lengthreturnMathsqrtMathsqrt// 欧氏距离functioneuclideanDistancea: number[], b: number[]numberlet0forlet0length2returnMathsqrt// 内积functioninnerProducta: number[], b: number[]numberlet0forlet0lengthreturn// 验证归一化向量下 cosine ≈ inner productconst0.60.8// 长度 1const0.80.6// 长度 1consolelogcosineSimilarity// 0.96consoleloginnerProduct// 0.96 完全一致✅ 正确搞清楚模型输出是否归一化再选距离度量❌ 错误用欧氏距离搜索未归一化的向量结果一团糟04 向量索引结构从暴力搜索到毫秒级检索向量多了以后逐一对比暴力搜索不现实——100 万条 1536 维向量暴力搜一次要几秒。索引结构就是加速检索的核心。暴力搜索Flat / Brute Force查询向量 Q ↓ 依次计算与每个向量的距离 [V1] → distance 0.85 [V2] → distance 0.32 [V3] → distance 0.91 ← 最相似 ... [Vn] → distance 0.67精度100%一定能找到最近的速度O(n)数据量一大就完蛋适用数据量 10 万或需要精确结果的场景IVFInverted File Index把向量空间划分成多个区域簇查询时只搜索最近的几个簇大幅减少计算量。训练阶段K-Means 聚类把 N 个向量分到 K 个簇中 簇 1 簇 2 簇 3 [V1,V5,V8] [V2,V3,V9] [V4,V6,V7] C1 C2 C3 (质心) (质心) (质心) 查询阶段 1. 计算 Q 与所有质心的距离 2. 选 nprobe 个最近的簇比如 nprobe2 3. 只在这些簇内暴力搜索 Q → 最近质心: C2, C3 → 只搜索 [V2,V3,V9,V4,V6,V7] // 搜索量减少了 1/3精度近似可能错过在其他簇中的好结果速度O(K nprobe × n/K)适用百万级数据对召回率要求不是极致的场景HNSWHierarchical Navigable Small World目前最受欢迎的索引算法。构建多层级的图结构上层是高速公路快速定位大致区域下层是小路精确查找。Layer 2最稀疏: V1 ──────── V7 \ / Layer 1: V1 ── V3 ── V7 ── V9 | × | | × | Layer 0最稠密: V1-V2-V3-V4-V5-V6-V7-V8-V9 查询流程 1. 从最高层的入口节点出发 2. 在当前层贪心搜索最近邻 3. 找不到更近的了下沉一层 4. 重复直到最底层返回结果精度非常高通常 95% 召回率速度O(log n)毫秒级内存需要额外存储图结构内存占用较大适用对检索质量要求高、数据量百万到千万级PQProduct Quantization乘积量化把高维向量压缩成低精度编码用空间换时间。原始向量1536维 [0.12, 0.34, ..., 0.56, 0.78] ↓ 切分成 M 个子空间比如 M8 [子空间1: 192维] [子空间2: 192维] ... [子空间8: 192维] ↓ 每个子空间用 K-Means 聚类用质心编号代替 [ 编号: 42 ] [ 编号: 15 ] ... [ 编号: 78 ] ↓ 压缩后 [42, 15, ..., 78] // 8 个 uint8只需 8 字节原来 1536 维 float32 需要 6144 字节压缩后只需 8 字节压缩比高达 768 倍。精度有损压缩精度最低速度超快内存极省适用亿级数据对精度要求不高但需要控制成本各索引对比总览┌──────────┬─────────┬─────────┬──────────┬──────────────────┐ │ 索引 │ 精度 │ 速度 │ 内存 │ 适用数据量 │ ├──────────┼─────────┼─────────┼──────────┼──────────────────┤ │ Flat │ ★★★★★ │ ★☆☆☆☆ │ ★★★☆☆ │ 10万 │ │ IVF │ ★★★★☆ │ ★★★☆☆ │ ★★★☆☆ │ 10万 - 500万 │ │ HNSW │ ★★★★★ │ ★★★★★ │ ★★☆☆☆ │ 10万 - 5000万 │ │ PQ │ ★★★☆☆ │ ★★★★☆ │ ★★★★★ │ 1000万 │ │ IVFPQ │ ★★★★☆ │ ★★★★☆ │ ★★★★☆ │ 1000万 │ └──────────┴─────────┴─────────┴──────────┴──────────────────┘✅ 正确数据量 10 万用 Flat10 万-千万用 HNSW亿级用 IVFPQ❌ 错误不管数据量多少都用 HNSW——10 亿条数据 HNSW 内存直接爆炸05 向量数据库选型一张表搞清楚向量数据库 向量索引 元数据存储 过滤 CRUD 分布式可选。光有 FAISS 这样的索引库还不够生产环境你需要一个完整的数据库。┌─────────────────────────────────────────────────────────┐ │ 向量数据库 │ │ ┌─────────────┐ ┌──────────────┐ ┌───────────────┐ │ │ │ 向量索引引擎 │ │ 元数据存储 │ │ 过滤/查询引擎 │ │ │ │ HNSW/IVF/PQ │ │ key-value │ │ WHERE color │ │ │ │ │ │ 文档原文/标签 │ │ red AND ... │ │ │ └──────┬──────┘ └──────┬───────┘ └──────┬────────┘ │ │ └────────────────┼─────────────────┘ │ │ ┌──────┴───────┐ │ │ │ API 层 │ │ │ │ CRUD/搜索 │ │ │ └──────────────┘ │ └─────────────────────────────────────────────────────────┘主流选型对比特性MilvusPineconeChromaFAISSWeaviate类型开源/自部署全托管 SaaS开源/轻量索引库开源/自部署分布式✅✅❌❌✅元数据过滤✅ 强✅ 强✅ 基础❌✅ 强最大数据量百亿级十亿级百万级十亿级十亿级上手难度中等极低极低低中等适合场景大规模生产快速上线原型/小项目离线实验生产语义搜索LangChain.js 支持✅✅✅✅✅选型决策流程你在做什么 ├── 快速原型 / 个人项目 / 数据量 100 万 │ → Chroma内存模式秒启动 ├── 生产环境不想运维 │ → Pinecone全托管按量付费 ├── 生产环境数据量大需要自控 │ → Milvus功能最全社区最活跃 ├── 纯做实验不需要持久化 │ → FAISS纯索引库最灵活 └── 需要混合搜索向量 关键词 → Weaviate / Milvus✅ 正确先用 Chroma 跑通流程验证可行再迁移到 Milvus/Pinecone❌ 错误一上来就搭 Milvus 集群结果发现你只有 1000 条数据06 LangChain.js 向量存储实战LangChain.js 提供了统一的VectorStore接口切换不同数据库只需要换一行初始化代码。用 Chroma 快速上手importOpenAIEmbeddingsfromlangchain/openaiimportChromafromlangchain/community/vectorstores/chromaimportDocumentfromlangchain/core/documentsconstnewOpenAIEmbeddingsmodeltext-embedding-3-small// 准备文档constnewDocumentpageContentLangChain 是一个用于构建 AI 应用的开发框架metadatasourcedocscategoryframeworknewDocumentpageContent向量数据库可以存储和检索高维向量数据metadatasourcedocscategorydatabasenewDocumentpageContentRAG 通过检索外部知识来增强大模型的回答质量metadatasourceblogcategoryragnewDocumentpageContentEmbedding 模型将文本转换为稠密向量表示metadatasourcedocscategoryembedding// 创建向量存储并插入文档自动调用 embedDocumentsconstawaitChromafromDocumentscollectionNamemy-collectionurlhttp://localhost:8000// Chroma 服务地址// 相似度搜索constawaitsimilaritySearch什么是向量数据库2// 返回 top 2consolelog// [// Document { pageContent: 向量数据库可以存储和检索高维向量数据, metadata: {...} },// Document { pageContent: Embedding 模型将文本转换为稠密向量表示, metadata: {...} }// ]带元数据过滤的搜索// 只在 sourcedocs 的文档中搜索constawaitsimilaritySearch什么是向量数据库2sourcedocs// 元数据过滤// 带相似度分数的搜索constawaitsimilaritySearchWithScore什么是向量数据库3forconstofconsolelog[${score.toFixed(4)}] ${doc.pageContent}// [0.9234] 向量数据库可以存储和检索高维向量数据// [0.8567] Embedding 模型将文本转换为稠密向量表示// [0.7891] RAG 通过检索外部知识来增强大模型的回答质量✅ 正确用similaritySearchWithScore获取分数设置阈值过滤低质量结果❌ 错误只用similaritySearch取 top-K不关心分数——可能把完全不相关的也返回了用 FAISS 做本地实验importOpenAIEmbeddingsfromlangchain/openaiimportFaissStorefromlangchain/community/vectorstores/faissimportDocumentfromlangchain/core/documentsconstnewOpenAIEmbeddingsmodeltext-embedding-3-smallconstnewDocumentpageContentTypeScript 是 JavaScript 的超集newDocumentpageContentPython 是一门动态类型语言newDocumentpageContentRust 以内存安全著称// 创建 FAISS 向量存储constawaitFaissStorefromDocuments// 搜索constawaitsimilaritySearch静态类型语言2consolelog0pageContent// TypeScript 是 JavaScript 的超集// 保存到磁盘下次可以直接加载不用重新 Embeddingawaitsave./faiss-index// 从磁盘加载constawaitFaissStoreload./faiss-index用 Milvus 对接生产环境importOpenAIEmbeddingsfromlangchain/openaiimportMilvusfromlangchain/community/vectorstores/milvusimportDocumentfromlangchain/core/documentsconstnewOpenAIEmbeddingsmodeltext-embedding-3-smallconstnewDocumentpageContentHNSW 是目前最流行的向量索引算法metadatatopicindexleveladvancednewDocumentpageContentIVF 通过聚类减少搜索范围metadatatopicindexlevelintermediate// 连接 Milvus 并创建 CollectionconstawaitMilvusfromDocumentscollectionNamelangchain_demourlhttp://localhost:19530// Milvus 支持指定索引类型indexCreateParamsindex_typeHNSWmetric_typeIP// 内积向量已归一化paramsJSONstringifyM16efConstruction256searchParamsef128// 搜索时的精度参数constawaitsimilaritySearch向量索引算法2consolelog✅ 正确Milvus 中指定index_type和metric_type根据数据量调整参数❌ 错误全用默认参数——10 万条和 1000 万条数据的最优配置差别很大07 完整 RAG 检索流程把所有东西串起来到这里我们已经理解了所有核心组件。来看一个完整的 RAG 检索流程从文档到回答┌─────────────────── 离线索引阶段 ───────────────────────┐ │ │ │ 原始文档 │ │ ↓ TextSplitter上一篇的内容 │ │ 文本块 [chunk1, chunk2, ..., chunkN] │ │ ↓ Embedding ModelembedDocuments │ │ 向量 [[0.1, 0.2, ...], [0.3, 0.4, ...], ...] │ │ ↓ 写入向量数据库 │ │ VectorStore带索引 元数据 │ │ │ └────────────────────────────────────────────────────────┘ ┌─────────────────── 在线查询阶段 ───────────────────────┐ │ │ │ 用户问题: HNSW 算法的优缺点 │ │ ↓ Embedding ModelembedQuery │ │ 查询向量 [0.5, 0.6, ...] │ │ ↓ 向量数据库检索ANN 近似最近邻 │ │ Top-K 相关文档块 │ │ ↓ 拼接到 Prompt 中 │ │ LLM 生成回答 │ │ ↓ │ │ HNSW 的优点是检索速度快O(logN) │ │ 精度高95%召回率缺点是内存占用大... │ │ │ └────────────────────────────────────────────────────────┘这个流程中每一步都可能出问题Splitter 切得不好、Embedding 模型选错、索引类型不对、top-K 设太小……所以理解每个环节的原理非常重要。08 常见坑坑 1维度不匹配换了 Embedding 模型但没有重新生成向量老数据 1536 维、新查询 1024 维直接报错。// ❌ 存储时用 text-embedding-3-small1536维// 查询时换成了 BGE1024维// 结果维度不匹配检索直接报错// ✅ 换模型 全量重新 Embedding 重建索引没有捷径坑 2归一化问题用欧氏距离但向量没归一化长文本和短文本的向量模长差异大检索偏向长文本。// 手动归一化functionnormalizevec: number[]numberconstMathsqrtreduce(sum, v) 0returnmapv // ✅ 用余弦相似度就不用管归一化// ✅ 或者存入前统一归一化然后用内积坑 3索引没重建持续往向量数据库插数据但 IVF 的聚类中心还是最初训练时的新数据分布和旧的差异很大检索质量下降。解决定期重建索引。Milvus 提供compact和createIndex接口。坑 4Top-K 设得不合理Top-K 太小比如 1可能漏掉关键信息太大比如 20塞太多无关内容给 LLM反而干扰回答质量还浪费 Token。建议先取 Top-10用分数阈值过滤比如余弦相似度 0.7 的扔掉再取前 3-5 条给 LLM。坑 5没做元数据过滤就全库搜索你的知识库混了产品文档、内部周报、技术博客用户问产品问题却搜出了周报。加元数据过滤先缩小范围再做向量搜索。// ✅ 先过滤再搜索又快又准constawaitsimilaritySearch产品定价策略5categoryproduct-docs// 只搜产品文档总结Embedding 是 RAG 的地基把文本变成向量让机器能用数学方式衡量语义相似度模型选型要看场景OpenAI embedding 简单省心开源 BGE/E5 适合本地部署和定制化需求别无脑选最贵的距离度量决定检索质量向量已归一化就用内积最快不确定就用余弦相似度最稳索引结构决定检索速度小数据量用 Flat百万级用 HNSW精度和速度最平衡亿级用 IVFPQ向量数据库 ≠ 向量索引生产环境需要元数据过滤、持久化、CRUD、分布式能力不能只靠 FAISSLangChain.js 的 VectorStore 接口统一了上层调用换数据库只需改初始化代码业务逻辑不用动下一篇我们进入 Milvus 实战——从安装部署到百万级数据的索引构建与检索优化手把手带你跑通生产级向量数据库。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

相关文章:

向量数据库原理:Embedding、相似度检索、索引结构一次讲透

很多同学搭 RAG 系统时,第一反应是"装个向量数据库、调个 API 就完了"。结果上线后发现:检索结果不相关、速度越来越慢、换个 Embedding 模型全部数据要重导……这些坑的根源,都是没搞懂向量数据库底层到底在干什么。 今天这篇&am…...

保姆级教程:手把手教你用C++实现格雷码+相移的三维重建(附完整代码与补码处理)

从零实现结构光三维重建:格雷码与相移的C实战指南 开篇:为什么选择格雷码相移方案? 在工业检测、逆向工程和医疗成像领域,结构光三维重建技术因其非接触、高精度的特性成为首选方案。而格雷码结合相移的方法,尤其适合需…...

为什么 AI 推理一定要有 /metrics 和 /health?一篇讲清可观测性接口的工程意义

一、引言 很多人在做 AI 推理服务时,第一反应通常是: 模型能跑起来就行API 能返回结果就行页面能看到输出就行 于是整个系统上线后,对外可能只有一个接口: POST /generate 或者: POST /chat 表面上看&#xff0…...

浙大提出 GAM:层次图记忆驱动的长程 Agent 推理

📌 一句话总结: 本工作提出 GAM,一个基于层次图结构的 Agentic Memory 框架,通过“事件缓冲—语义整合”解耦机制,实现长时对话中的稳定记忆与高效推理。 🔍 背景问题: 当前 LLM Agent 的长期…...

新手别慌!从MISC到REVERSE,一份保姆级的CTF工具包安装与实战避坑指南

从零搭建CTF实战环境:新手避坑指南与工具链深度解析 第一次接触CTF比赛时,面对五花八门的工具和术语,很多新手都会感到无从下手。工具安装报错、环境配置冲突、基础操作不熟悉——这些问题往往比题目本身更让人头疼。本文将带你一步步搭建完整…...

Real Anime Z图像质量评测:SSIM/NIQE指标下真实系风格量化优势

Real Anime Z图像质量评测:SSIM/NIQE指标下真实系风格量化优势 1. 工具介绍 Real Anime Z是一款基于阿里云通义Z-Image底座模型开发的高精度二次元图像生成工具。该工具通过Real Anime Z专属微调权重进行了深度优化,特别针对真实系二次元风格进行了专项…...

认知真空:在亚马逊,品牌升级后若不能清晰定义“我是谁”,将导致客户流失与影响力崩塌

天主教会的困境,是所有经历战略转型的品牌都需警惕的终极陷阱:在放弃了旧有的清晰定位(“律法教师”)后,未能用一个同样简单、有力的新定义来填补消费者心智中产生的“认知真空”。​ 内部(教士&#xff09…...

Arm AArch64寄存器体系与性能优化实战

1. Arm AArch64寄存器体系概览作为现代处理器架构的核心组成部分,寄存器在Armv8/v9架构中扮演着关键角色。AArch64作为Arm的64位执行状态,其寄存器设计体现了从传统嵌入式系统到云计算基础设施的全场景适应能力。与x86等CISC架构不同,Arm采用…...

别再被‘Can not Acquire Images’卡住了!LabVIEW调用海康相机(网口/U口)的7个实战避坑指南

LabVIEW调用海康相机的7个实战避坑指南:从报错诊断到系统优化 当LabVIEW的IMAQdx模块弹出"Can not Acquire Images"的红色报错框时,实验室里传来工程师的叹息声——这可能是每个视觉项目开发者的必经之路。海康威视的工业相机(无论…...

HCPL-553K,密封、晶体管输出光耦合器

简介今天我要向大家介绍的是 Broadcom 的光耦合器——HCPL-553K。这是一款双通道、密封晶体管输出光耦合器,适用于模拟和数字应用。它内部每个通道均包含一个GaAsP发光二极管,并光学耦合至集成光子探测器,通过分离的光电二极管和输出晶体管集…...

RVC模型浏览器插件开发构想:实现网页音频实时变声

RVC模型浏览器插件开发构想:实现网页音频实时变声 你有没有想过,在看直播、开在线会议,或者刷视频的时候,能一键把自己的声音变成另一个人的?比如,用你喜欢的歌手的声音唱歌,或者用某个角色的声…...

别再重装系统了!手把手教你在一台X86电脑上同时拥有UOS和麒麟V10(保姆级分区教程)

国产操作系统双系统实战:UOS与麒麟V10共存指南 每次切换操作系统都要重装系统?对于需要在UOS和麒麟V10之间频繁切换的开发者来说,这简直是噩梦。本文将带你彻底告别这种低效操作,通过详细的分区规划和安装顺序优化,在一…...

收藏!国网四川电力 2026 年度集中采购批次计划发布

国网四川省电力公司公示的《2026 年度集中采购批次计划》,明确全年 108 个采购批次,为供应商精准把握投标节奏、提前布局业务提供清晰指引。本次采购覆盖 2025 年 12 月至 2026 年 11 月,涵盖省公司本级、子公司、战新产业及原集体企业等全主…...

产品经理面试:Axure原型11-20题及答案(一般不会超纲)

亲爱的小伙伴,如有帮助请订阅专栏!跟着老师每课一练,系统学习Axure交互设计课程! Axure原型设计精品课https://edu.csdn.net/course/detail/40420 产品需求分析训练https://edu.csdn.net/course/detail/40465 目录 第十一题&am…...

hehehe

...

RexUniNLU技术解析:Rex架构如何通过共享表征实现多任务泛化

RexUniNLU技术解析:Rex架构如何通过共享表征实现多任务泛化 1. 引言:从“一事一模型”到“一模型万事” 如果你接触过自然语言处理(NLP),可能会发现一个有趣的现象:想识别文本里的人名地名,得…...

AI 应用的状态管理:比 Redux 复杂 10 倍的挑战

AI 应用的状态管理:比 Redux 复杂 10 倍的挑战 本文是【高级前端的 AI 架构升级之路】系列第 04 篇。 上一篇:AI 网关层设计:多模型路由、降级、限流、成本控制 | 下一篇:AI Streaming 架构:从浏览器到服务端的全链路流…...

real-anime-z企业试用报告:广告公司用于KOL虚拟形象快速建模实践

real-anime-z企业试用报告:广告公司用于KOL虚拟形象快速建模实践 1. 项目背景与需求 在数字营销领域,KOL(关键意见领袖)虚拟形象的需求正在快速增长。传统3D建模方式存在成本高、周期长的问题,特别是当需要为不同品牌…...

如何快速配置Foobar2000歌词插件:终极完整指南

如何快速配置Foobar2000歌词插件:终极完整指南 【免费下载链接】ESLyric-LyricsSource Advanced lyrics source for ESLyric in foobar2000 项目地址: https://gitcode.com/gh_mirrors/es/ESLyric-LyricsSource 想要在Foobar2000中享受酷狗、QQ音乐和网易云音…...

Excel中的UNIQUE和SORT函数实战解析

在日常工作中,Excel作为数据处理和分析的利器,经常遇到需要处理重复数据或进行数据排序的需求。最近,我在StackOverflow上看到一个关于使用Excel中的UNIQUE()和SORT()函数的问题,引发了我对这些函数更深入的思考。本文将通过这个实际案例,详细探讨如何使用这些函数来实现数…...

Pixel Aurora Engine开源镜像部署教程:免配置Docker一键启动

Pixel Aurora Engine开源镜像部署教程:免配置Docker一键启动 1. 认识Pixel Aurora Engine Pixel Aurora Engine是一款基于AI扩散模型的高端绘图工作站,它将现代AI技术与复古像素游戏风格完美结合。通过这台"虚拟游戏机",你可以轻…...

别再只调包了!深入理解Acoular库背后:麦克风阵列定位的波束形成与CLEAN-SC算法

从调包到造轮子:Acoular库中的波束形成算法深度解析与工程实践 当你第一次在Python中导入Acoular库,运行demo示例并看到声源定位结果时,那种成就感可能让你误以为已经掌握了麦克风阵列技术的精髓。但当你试图修改参数或更换算法时&#xff0c…...

Go语言如何防SQL注入_Go语言SQL注入防护教程【精选】

...

荣耀“闪电”50分26秒破半马纪录,具身智能技术再突破

4月19日,北京亦庄办了场超有看点的人形机器人马拉松赛事,荣耀“闪电”直接火出圈了!它以50分26秒的净时成绩,跑完了21.0975公里的半马,比人类半马世界纪录还快6分16秒,还一口气包揽了赛事前六名&#xff0c…...

SpringBoot项目里,用Jodconverter+LibreOffice把Word/Excel转PDF,我踩过的那些坑都帮你填平了

SpringBoot整合Jodconverter与LibreOffice实战:文档转换的深度避坑指南 第一次在SpringBoot项目里集成Jodconverter进行文档转换时,我天真地以为这不过是个简单的依赖配置问题。直到凌晨三点还在处理生产环境里那些"找不到Office组件"的报错日…...

亦庄马拉松赛道上,机器人跑赢了人类

4月19日,北京亦庄,有一台机器人把人类的半程马拉松纪录踩在了脚下。净用时50分26秒,完赛,夺冠。人类的半马世界纪录是57分31秒——"闪电"比人类最快的腿脚快了整整7分钟。当时我在刷直播,看到终点画面愣了几…...

Qianfan-OCR实战案例:单模型替代传统OCR+版面分析流水线

Qianfan-OCR实战案例:单模型替代传统OCR版面分析流水线 1. 项目概述 Qianfan-OCR是百度千帆推出的开源端到端文档智能多模态模型,基于4B参数的Qwen3-4B语言模型构建。这个多模态视觉语言模型(VLM)采用Apache 2.0协议开源,支持商用和微调&am…...

从零到生产向量检索,EF Core 10扩展配置避坑手册,微软MVP亲测验证的7项必检清单

第一章:从零到生产向量检索的EF Core 10向量搜索扩展全景概览EF Core 10正式引入原生向量类型支持与向量相似度查询能力,标志着ORM首次在主流.NET生态中深度集成向量检索能力。该扩展并非简单封装SQL向量函数,而是构建了贯穿模型定义、迁移生…...

AI 日报 - 2026年4月20日

🔬 科技类 5 条1. 人形机器人半马北京亦庄夺冠:"闪电"以50分26秒打破人类纪录4月19日,2026北京亦庄人形机器人半程马拉松赛正式开跑,齐天大圣队的"闪电"机器人以50分26秒净用时冲线夺冠,真的跑赢了…...

搜索引擎倒排索引:TF-IDF与BM排序算法实现

搜索引擎倒排索引:TF-IDF与BM25排序算法解析 在信息爆炸的时代,搜索引擎如何从海量数据中快速返回相关结果?其核心依赖于倒排索引和排序算法。倒排索引通过记录词项与文档的映射关系提升检索效率,而TF-IDF和BM25则是两种经典的排…...