如何为你的 RAG 应用选择合适的 Embedding 模型?大模型入门到精通,收藏这篇就足够了!

Rag中选择合适的embedding Embedding在rag召回文本中,占有重要的作用,准确的召回能够避免llm的幻觉。一般项目中使用bge-m3或openai向量模型作为rag的选型。其实,还有其他一些embedding模型可供选择,下面我们来探究一下,并讨论下,如何选择一个适合自己场景的embedding模型。Embedding数据是在文档上传时生成,对embedding性能要求并不高,它不影响到问答时间的快慢。 阅读详情

Retrieval-Augmented Generation (RAG) 现在是最受欢迎的框架,用来构建 GenAI 应用。企业和组织特别喜欢它,因为它能让他们用自己的专有数据来回答用户问题。它让 LLM 给出准确、及时、和用户问题相关的答案。

从我这几年构建 RAG 应用的经验来看,你的响应质量很大程度上取决于检索到的上下文。 而提升 RAG 检索上下文的一个关键方式,就是把数据切分成合适的大小,选择合适的 embedding 模型,还有选一个有效的检索机制。

Embeddings 是 LLMs 的骨干。当你让 LLM 帮你调试代码时,你的词和 token 会被转化成高维向量空间,在那里语义关系变成数学关系,这靠的就是 embedding 模型。如果你用了错的 embedding 模型,你的 RAG 应用可能会拉来不相关或乱七八糟的数据。这会导致糟糕的答案、更高的成本,还有不开心的用户。

在这篇博客里,我会解释 embeddings 是什么,为什么它们重要,以及你在选择时该考虑什么。我们还会看看不同的 embedding 模型,以及哪些适合特定情况。到最后,你会清楚怎么挑对 embedding 模型,来提升准确性,让你的 RAG 应用跑得顺顺的。

Embeddings 是什么?

Embeddings 是捕捉语言含义和模式的数字表示。这些数字帮你的系统找到和问题或主题紧密相关的信息。

这些 embeddings 是用 embedding 模型创建的。Embedding 模型把词、图像、文档,甚至声音,转成一系列叫向量(vector)的数字。

你可能是在 large language models 的语境下学到 embeddings 的,但 embeddings 其实历史更悠久。

这些 embeddings 是怎么计算的?

现在,大多 embeddings 是用 language models 创建的。 不是用静态向量表示每个 token 或词,language models 创建上下文化的词 embeddings,根据上下文用不同的 token 表示词/句子/块。这些向量然后可以被其他系统用于各种任务。

有多种方式产生 text embedding vector。最常见的方式之一,是平均模型产生的所有 token embeddings 的值。但高质量的 text embedding 模型通常是专门为 text embedding 任务训练的。

我们可以用 sentence-transformers 这个流行包,来用预训练 embedding 模型产生 text embeddings。

from sentence_transformers import SentenceTransformer# 加载模型model = SentenceTransformer("sentence-transformers/all-mpnet-base-v2")# 把文本转成 text embeddingsvector = model.encode("Best movie ever!")

embedding vector 的值数量,或者说维度,取决于底层的 embedding 模型。可以用 vector.shape 方法找到 embedding vector 的维度。

为什么 Embeddings 在 RAG 中重要?

Embeddings 在 Retrieval-Augmented Generation (RAG) 系统里扮演关键角色。来看看为什么:

语义理解:Embeddings 把词、句子或文档转成向量(数字列表),让相似含义的靠近在一起。这帮系统理解上下文和含义,不只是匹配确切的词。

高效检索:RAG 需要快速找到最相关的段落或文档。Embeddings 让搜索更快更容易,通常用像 k-nearest neighbors (k-NN) 这样的算法。

更好准确性:用 embeddings,模型能找出和问题相关的信息,哪怕没用一样的词。这意味着你得到更准确、更相关的答案。

Embeddings 的类型

Embeddings 有几种形式,取决于你的系统需要处理什么信息。

  1. 根据你想让系统理解的信息种类:
    1.1 Word Embeddings

Word embeddings 把每个词表示成多维空间里的一个点。含义相似的词,比如 “dog” 和 “cat”,最后会靠近在一起。这帮电脑理解词之间的关系,不只是拼写。

热门 word embedding 模型包括:

Word2Vec:从大量文本学习词关系。
GloVe:关注词一起出现的频率。
FastText:把词拆成更小部分,让它更好处理稀有或拼错的词。

1.2 Sentence Embeddings

有时,含义只能从整个句子学到,不是单个词。Sentence embeddings 把句子的整体含义捕捉成一个向量。

知名 sentence embedding 模型有:

Universal Sentence Encoder (USE):对各种句子都行,包括问题和陈述。
SkipThought:学习预测周围句子,帮模型理解上下文和意图。

1.3 Document Embeddings

文档可以是从一段到整本书。Document embeddings 把所有文本转成单个向量。这让搜索大集合文档更容易,帮找到和查询相关的内容。

领先 document embedding 模型包括:

Doc2Vec:基于 Word2Vec,但设计用于更长文本。
Paragraph Vectors:类似 Doc2Vec,但专注更短文本部分,比如段落。

1.4 Image Embeddings:

文本不是 RAG 系统唯一能处理的,系统还能处理图像。Image embeddings 把图片转成描述颜色、形状和模式的数字列表。

热门 image embedding 模型是 Convolutional Neural Networks (CNNs)。它特别擅长识别图像模式。

2.根据 embedding 的特性:
Embeddings 可以有不同品质,影响它们怎么工作和最适合什么。咱们用简单解释和例子分解这些特性:

2.1. Dense Embeddings
Dense embeddings 用向量,几乎每个数字都有值。每个值都存一点关于词、句子、图像或文档的信息。Dense vectors 紧凑高效。在小空间存很多细节。这让电脑更容易比较东西,快速找到相似点。

2.2. Sparse Embeddings
Sparse embeddings 和 dense 相反。向量里大多数数字是零,只有少数地方有实际值。零不带信息。Sparse embeddings 帮突出最重要的特征。它们让突出什么让东西独特或不同更容易。

2.3 Long Context Embeddings
有时,你需要理解整个文档或长对话,不是短句子。Long context embeddings 设计用来一次处理大量文本。
老模型只能看短文本。如果你给它们大文章,它们得拆成小部分。这可能让它们错过重要连接或丢掉主思路。新模型,像 BGE-M3,能一次处理成千上万词(高达 8,192 tokens)。这帮电脑保持完整故事。

2.4 Multi-Vector Embeddings
通常,一个项目(像词或文档)只得一个向量。Multi-vector embeddings 为每个项目用几个向量。每个向量能捕捉不同特征或方面。
用不止一个向量,电脑能注意到更多细节和关系。这带来更丰富、更准确的结果。

选择最佳 Text Embedding 模型的参数

在挑模型前,你该知道看什么。有几个关键因素要考虑:

  1. Context Window
    Context window 是模型一次能处理的最大文本量。比如,如果模型 context window 是 512 tokens,它一次只能读 512 个词或词片。更长文本必须拆分。有些模型,像 OpenAI 的 text-embedding-ada-002 (8192 tokens) 和 Cohere 的 embedding 模型 (4096 tokens),能处理更长文本。

    为什么重要?

    更大 context window 让你处理更大文档而不丢信息。这对像搜索长文章、研究论文或报告的任务有帮助。

  2. Tokenization Unit
    Tokenization 是模型把文本拆成更小部分,叫 tokens。不同模型用不同方法:

    Subword Tokenization (Byte Pair Encoding, BPE):把词拆成更小片。比如,“unhappiness” 变成 “un” 和 “happiness。” 这帮处理稀有或新词。WordPiece:类似 BPE,但常用于像 BERT 的模型。

    Word-Level Tokenization:把文本拆成整词。不太适合稀有词。

    为什么重要?

    模型 tokenization 的方式影响它怎么理解不同词,尤其是 unusual 的。大多现代模型用 subword tokenization 来更好灵活。

  3. Dimensionality
    Dimensionality 是模型为每块文本创建的数字列表(vector)大小。比如,有些模型产生 768 个数字的向量,其他是 1024 甚至 3072。

    为什么重要?

    更高维向量能存更多细节信息,但需要更多电脑功率。更低维向量更快,但可能错过一些细节。

  4. Vocabulary Size
    这是模型知道的独特 tokens 数量。更大词汇库处理更多词和语言,但用更多内存。更小词汇库更快,但可能不懂稀有或专业词。
    比如:大多现代模型有 30,000 到 50,000 tokens 的词汇库。

  5. Training Data
    Training data 是模型学的东西。

    训练于 General-Purpose:当训练于很多类型文本,像网页或书,模型变得适用于一般用途。适合广任务。

    Domain-Specific:当训练于专业文本,像医疗或法律文档,模型变得特定领域专家。这些适合 niche 任务。

    为什么重要?

    训练于特定数据的模型在那些领域做得更好。但可能不适合一般任务。

  6. Cost
    Cost 包括用模型需要的钱和电脑资源。根据你计划怎么访问 LLM 模型,cost 结构会变。

    API-Based Models:按使用付费,像 OpenAI 或 Cohere。

    Open-Source Models:免费用,但你需要硬件(像 GPUs)和技术技能自己跑它们。

    为什么重要?

    API 模型容易用,但如果你数据多,可能贵。Open-source 模型省钱,但需要更多设置和知识。

选择 Embedding 时关键因素

  1. 了解你的数据领域
    从我的经验,当设计 RAG 应用时,我第一个问的是,“我的 RAG 系统要处理什么数据?”
    如果我们处理一般知识或客户 FAQs,一般用途 embeddings 像 OpenAI 的 text-embedding-3-small 通常够。但对专业领域像医学、法律或金融,domain-specific 模型如 BioBERT、SciBERT 或 Legal-BERT 是最佳。这些模型训练来理解那些领域的独特语言和上下文。

如果 RAG 工具需要处理产品图像或语音查询,去用 multimodal embeddings。CLIP 是处理文本和图像的可靠选择。

  1. Embedding 大小和模型复杂度
    接下来我会评估我的查询和文档是短还是长,结构化还是非结构化。有些模型更适合简短片段,其他擅长处理更长、自由形式文本。

Embedding dimensionality 很重要。高维向量 (1536 或 4096 维度) 捕捉更多细微差异和上下文。它们一般提升检索准确性,但需要更多计算资源和存储。

低维向量 (384 或 768 维度) 更快更轻,如果你扩展到百万文档,这很关键。权衡简单:更多维度意味更好准确但更高成本;更少维度意味速度和效率但可能牺牲精度。

实践中,最好从 384–768 范围的向量开始。这给你性能和资源用的好平衡。

现代 vector databases 像 Pinecone、Weaviate 或 FAISS 能用 quantization 或 dimensionality reduction 压缩 embeddings。这些 vector DBs 让你用更大 embeddings 而不付全内存成本。

  1. 计算效率
    速度关键,尤其是实时应用。
    如果响应时间对你的应用超级重要,去用低 inference times 的模型。轻模型像 DistilBERT 或 MiniLM 快,还对大多任务够准确。
  2. 上下文理解
    接下来,我们该评估 RAG 系统该回答的查询。知识内容/文档的结构和长度。这些内容该基于应用切成合适最佳大小。得到用户问题正确答案的一个关键因素是模型的 context window,就是它一次考虑的文本量。
    更大 context windows 在处理长或复杂文档时有帮助。能一次处理更多文本的模型倾向于为长查询给出更准确答案。
  3. 集成和兼容性
    最好选和现有基础设施无缝集成的模型。
    来自 TensorFlow、PyTorch 或 Hugging Face 的预训练模型通常更容易部署,有强文档和社区支持。
  4. Cost
    最后,要估项目总权衡训练和部署成本,如果你计划 fine tune 模型并 host 你的模型。但大多 RAG 应用能用现成的好好工作。
    更大模型训练和跑更贵。Open-source 模型通常更预算友好,但可能需要额外设置和维护。Proprietary 模型提供更好支持和性能,但价格更高。

场景:为医疗研究论文选择 Embedding 模型

假设你需要建一个 semantic search 系统,为医疗研究论文。你想让用户快速准确找到相关研究。你的数据集大,每个文档长,介于 2,000 到 8,000 词。你需要一个能处理这些长文本、提供有意义结果、并保持每月预算 300$ - 500$ 的模型。

你怎么为这个工作挑对 embedding 模型?咱们一步步走过程。

步骤 1: 专注领域相关性

医疗研究论文用复杂医疗术语和技术语言。你选的模型该训练于科学或学术文本,不是只法律或一般内容。
所以,主要设计用于法律或生物医学文档的模型不会是更广科学研究的合适。

步骤 2: 检查 Context Window 大小

研究论文长。要完整处理它们,你需要大 context window 的模型。大多研究论文有 2,000 到 8,000 词。大约 2,660 到 10,640 tokens (假设 1.33 tokens 每词)。
8,192-token context window 的模型能一次盖约 6,156 词。
如果模型只能处理 512 tokens,它没法处理整论文。

要跳过的模型:

Stella 400M v5
Stella 1.5B v5
ModernBERT Embed Base
ModernBERT Embed Large
BAAI/bge-base-en-v1.5
allenai/specter
m3e-base

步骤 3: 考虑 Cost 和 Hosting

你有预算。按 token 付费会快速加起来,尤其是大文档和频繁搜索。
来看些模型:

OpenAI text-embedding-3-large: $0.00013 每 1,000 tokens
OpenAI text-embedding-3-small: $0.00002 每 1,000 tokens
Jina Embeddings v3: Open-source 和 self-hosted,无 per-token 成本
算算数。如果你每月处理 10,000 文档 (每个 8,000 tokens):

OpenAI text-embedding-3-large: $10.4/月 (预算内)
OpenAI text-embedding-3-small: $1.6/月 (远低于预算)
Jina Embeddings v3: 无 per-token 成本。但你付 hosting/server 成本 (取决于服务器大小和你是否和另一个模型 host)
要跳过的模型:

Jina Embeddings v3

步骤 4: 比较性能 (MTEB Score)

现在,看剩下模型的实际性能。Massive Text Embedding Benchmark (MTEB) 提供分数帮比较。

OpenAI text-embedding-3-large: 强性能,好 MTEB 分 (~71.6),能处理高达 8191 tokens,且成本有效。
OpenAI text-embedding-3-small: 好性能,好 MTEB 分 (~69.42),能处理高达 8191 tokens,且成本有效。
Voyage-3-large: 好 MTEB 分 (~60.5),能处理高达 32,000 tokens,且成本有效。
NVIDIA NV-Embed-v2: 最高 MTEB 分 (72.31),处理高达 32,768 tokens,open-source 和 self-hosted。
我们的最终选择:
缩小列表后,你剩下 open-source 模型像 OpenAI text-embedding-3-small、OpenAI text-embedding-3-large、Voyage-3-large 和 NVIDIA NV-Embed-v2。
这些模型能处理长医疗研究论文,提供强准确性,并适合你的预算。
NVIDIA NV-Embed-v2 以其高 MTEB 分和大 context window 脱颖而出,让它成医疗 semantic search 的可靠选择。

选择对 embedding 模型需要仔细思考。看你的需要,比较选项,挑最适合你项目的那一个。

选择对 Embeddings 的基准

新和改进 embedding 模型一直出来。但你怎么跟踪它们?幸运,有大规模基准帮你保持信息。

Massive Text Embedding Benchmark (MTEB)
MTEB 是个社区跑的 leaderboard。它比较超 100 个 text 和 image embedding 模型,跨超 1,000 语言。一切都在一处——评估指标、不同任务类型,和广泛领域。这让它成你决定用哪个模型的有用起点。

链接:MTEB Dashboard(https://huggingface.co/spaces/mteb/leaderboard)

Massive Multilingual Text Embedding Benchmark (MMTEB)
大多传统基准只盖几个语言或领域。MMTEB 走得更远。它是 MTEB 的扩展版,现在包括超 500 个评估任务,超 250 语言。MMTEB 还测试更难挑战,如指令跟随、从长文档检索信息,甚至代码检索。它目前是最彻底的多语言 embedding 基准。

链接:研究论文(https://arxiv.org/abs/2502.13595)

什么时候用 Massive Text Embedding Benchmark (MTEB)?怎么用?

MTEB 是挑 embedding 模型的有用工具。不同模型在不同任务闪光。MTEB leaderboard 显示每个模型跨广泛任务的表现。这能帮你为特定需要缩小选择。

但,别被 MTEB 分骗了。

MTEB 给你分,但不讲全故事。顶模型间差异常很小。这些分来自很多任务,但你看不到任务间结果变多少。有时,leaderboard 顶的模型只有轻微优势。统计上,几顶模型可能表现一样好。研究者发现平均分不总意味多,当模型这么近。

你该做什么?看模型在类似你用例的任务表现。这通常比只专注整体分更有帮助。你不用详细研究每个数据集。但知道用什么文本——像新闻文章、科学论文或社交媒体帖子——能帮。你能在数据集描述或瞥几例子找到这信息。

MTEB 是有帮助资源,但不完美。批判思考结果。别只挑最高分模型。深入找最适合你任务的。

考虑你应用的需要。没有单一模型对一切最好。那是为什么 MTEB 存在,帮你为情况选对。当你浏览 leaderboard 时,记住这些问题:

你需要什么语言?模型支持吗?
你用专业词汇吗,像金融或法律术语?
模型多大?它能在你硬件跑吗,像笔记本?
你电脑有多少内存?模型能 fit 吗?
最大输入长度是多少?你文本长还是短?
一旦你知道什么对你项目最重要,你能在 MTEB leaderboard 上按这些特征过滤模型。这帮你找不只表现好,还适合你实际需要的模型。

结语:

为你的 RAG 应用选对 embedding 模型不是只挑基准上最高分的那个。像 MTEB 的工具有帮助,但它们不能告诉你一切。重要是看数字之外,考虑对你项目真重要的,像语言支持、专业词汇、内存限,和文本长度。

花时间理解你用例。基于最相关任务比较模型。记住,对一个人应用好的模型可能不是你最好的。

最后,周到方法是平衡性能和实际需要。这会帮你找对模型。用点研究和仔细考虑,你会让 RAG 应用成功。

想入门 AI 大模型却找不到清晰方向?备考大厂 AI 岗还在四处搜集零散资料?别再浪费时间啦!2025 年 AI 大模型全套学习资料已整理完毕,从学习路线到面试真题,从工具教程到行业报告,一站式覆盖你的所有需求,现在全部免费分享!

👇👇扫码免费领取全部内容👇👇

​

一、学习必备:100+本大模型电子书+26 份行业报告 + 600+ 套技术PPT,帮你看透 AI 趋势

想了解大模型的行业动态、商业落地案例?大模型电子书?这份资料帮你站在 “行业高度” 学 AI:

1. 100+本大模型方向电子书

在这里插入图片描述

2. 26 份行业研究报告:覆盖多领域实践与趋势

报告包含阿里、DeepSeek 等权威机构发布的核心内容,涵盖:

  • 职业趋势:《AI + 职业趋势报告》《中国 AI 人才粮仓模型解析》;
  • 商业落地:《生成式 AI 商业落地白皮书》《AI Agent 应用落地技术白皮书》;
  • 领域细分:《AGI 在金融领域的应用报告》《AI GC 实践案例集》;
  • 行业监测:《2024 年中国大模型季度监测报告》《2025 年中国技术市场发展趋势》。

3. 600+套技术大会 PPT:听行业大咖讲实战

PPT 整理自 2024-2025 年热门技术大会,包含百度、腾讯、字节等企业的一线实践:

在这里插入图片描述

  • 安全方向:《端侧大模型的安全建设》《大模型驱动安全升级(腾讯代码安全实践)》;
  • 产品与创新:《大模型产品如何创新与创收》《AI 时代的新范式:构建 AI 产品》;
  • 多模态与 Agent:《Step-Video 开源模型(视频生成进展)》《Agentic RAG 的现在与未来》;
  • 工程落地:《从原型到生产:AgentOps 加速字节 AI 应用落地》《智能代码助手 CodeFuse 的架构设计》。

二、求职必看:大厂 AI 岗面试 “弹药库”,300 + 真题 + 107 道面经直接抱走

想冲字节、腾讯、阿里、蔚来等大厂 AI 岗?这份面试资料帮你提前 “押题”,拒绝临场慌!

1. 107 道大厂面经:覆盖 Prompt、RAG、大模型应用工程师等热门岗位

面经整理自 2021-2025 年真实面试场景,包含 TPlink、字节、腾讯、蔚来、虾皮、中兴、科大讯飞、京东等企业的高频考题,每道题都附带思路解析:

2. 102 道 AI 大模型真题:直击大模型核心考点

针对大模型专属考题,从概念到实践全面覆盖,帮你理清底层逻辑:

3. 97 道 LLMs 真题:聚焦大型语言模型高频问题

专门拆解 LLMs 的核心痛点与解决方案,比如让很多人头疼的 “复读机问题”:


三、路线必明: AI 大模型学习路线图,1 张图理清核心内容

刚接触 AI 大模型,不知道该从哪学起?这份「AI大模型 学习路线图」直接帮你划重点,不用再盲目摸索!

在这里插入图片描述

路线图涵盖 5 大核心板块,从基础到进阶层层递进:一步步带你从入门到进阶,从理论到实战。

img

L1阶段:启航篇丨极速破界AI新时代

L1阶段:了解大模型的基础知识,以及大模型在各个行业的应用和分析,学习理解大模型的核心原理、关键技术以及大模型应用场景。

img

L2阶段:攻坚篇丨RAG开发实战工坊

L2阶段:AI大模型RAG应用开发工程,主要学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。

img

L3阶段:跃迁篇丨Agent智能体架构设计

L3阶段:大模型Agent应用架构进阶实现,主要学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造Agent智能体。

img

L4阶段:精进篇丨模型微调与私有化部署

L4阶段:大模型的微调和私有化部署,更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调,并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。

img

L5阶段:专题集丨特训篇 【录播课】

img
四、资料领取:全套内容免费抱走,学 AI 不用再找第二份

不管你是 0 基础想入门 AI 大模型,还是有基础想冲刺大厂、了解行业趋势,这份资料都能满足你!
现在只需按照提示操作,就能免费领取:

👇👇扫码免费领取全部内容👇👇

​

2025 年想抓住 AI 大模型的风口?别犹豫,这份免费资料就是你的 “起跑线”!

构建RAG后如何选择合适的Embedding 当我们需要为特定的客户支持系统挑选最合适的文本嵌入模型以实现高效的FAQ检索时,我们该如何做出选择?以下是一个详细的案例分析,展示如何根据具体需求从众多模型中筛选出最合适的那一个。案例背景假设我们要构建一个客户支持系统,用于快速准确地回答用户的常见问题(FAQ)。该系统需要满足以下要求:处理客户提出的问题,问题长度通常在10到100字之间。检索结果要具有高准确性,确保提供的答案与用户问题高度相关。系统需要在每月200至400美元的预算内运行,同时兼顾响应速度和可扩展性。选择过程。 阅读详情

相关推荐

TVS 和压敏电阻联合使用进行浪涌保护时,压敏电阻的压敏电压要低于TVS 的钳位电压 VC。

通过先让MOV接管,可以确保在大多数情况下,电压不会迅速上升到TVS二极管的钳位电压,从而保护TVS二极管免受持续高能量冲击的损害。总结来说,将MOV的压敏电压设置得低于TVS二极管的钳位电压,可以提供一种分级的保护机制,优化浪涌保护性能,同时保护敏感的TVS二极管不被过度的能量冲击损坏,并延长其使用寿命。MOV吸收的能量(Wmov):假设浪涌电流为10kA,MOV导通后将电压限制在300V,那么Wmov = Ipp * Vmov = 10kA * 300V = 3MW。例如,Vmov可以设定为275V。

weixin_66642980的博客 2246

RAG中embedding模型怎么选

归一化折扣累积增益:考虑了信息的相关性不是只有“有”或“没有”,而是根据不同程度的相关性。- 倒数排名(RR):第一个有用块出现的位置的倒数,例如第一个信息就有用就是1,在第二个出现就是1/2。RAG链路中,虽然响应时间与模型处理时间比九牛一毛,但对于某些场景来说,每一步的延时都至关重要。- 平均精确率(AP):检索到的信息中有用的信息的排名,如果有用信息都在前面排名就高。- 上下文精确率:检索到的内容中有用的信息/所有检索到的信息。- 上下文召回率:检索到的内容中有用的信息/所有有用的信息。

qq_56583393的博客 382

Cartool实战:手把手教你完成静息态EEG微状态分析的组水平聚类与模板匹配

本文详细解析了使用Cartool进行静息态EEG微状态分析的组水平聚类与模板匹配全流程。从数据准备、算法选择到参数优化,提供了k-means与T-AAHC算法的实操建议,帮助研究者避开常见陷阱,获得可靠分析结果。特别针对最优类别数确定、模板匹配参数设置等核心环节进行深入探讨,适用于认知神经科学领域的EEG微状态研究。

weixin_31220401的博客 262

RAG离线索引之Embedding模型如何选型及评估?

本文系统探讨了Embedding模型选型及应用的关键维度。首先从语言支持、向量维度、模型规模、领域适配性和部署成本五个方面构建选型框架,重点分析不同维度对检索效果的影响。针对中文场景,对比了BGE系列、M3E和Qwen3等主流模型,指出BGE-large-zh在1024维度的均衡表现,以及Qwen3在高维长文本处理的优势。提出768维适合通用场景,1024维提升语义区分度的实践策略,并通过纺织行业案例验证模型升级和混合检索对专业术语召回率的提升效果。

专注人工智能应用领域 980

自动驾驶仿真 (三)—— 基于PreScan与Simulink的AEB系统仿真

自动驾驶仿真三—— 基于PreScan&Simulink的AEB系统仿真1. AEB自动紧急制动系统1. 1 TTC碰撞时间模型1. 2 C-NCAP法规部分术语与定义1. 3 主动安全ADAS系统试验项目2. AEB仿真分析建模2.1 搭建场景2.2 传感器建模2.3 添加AEB控制系统3. 典型工况仿真3.1 CCRs仿真测试3.1 CCRm仿真测试4. 参考学习的书目教材 博主前面的博文已经介绍了Prescan&Simulink基本的场景建模及仿真分析流程,《自动驾驶仿真 (二)——

zhudj08的博客 1万+

手把手调试Android 10 DHCP服务:从dumpsys network_stack到DhcpServer.java的实战技巧

本文详细介绍了在Android 10中调试DHCP服务的实战技巧,从使用dumpsys network_stack分析服务状态到深入DhcpServer.java源码追踪问题。文章提供了完整的工具链配置、关键调试命令和常见问题解决方案,帮助开发者高效解决DHCP服务未启动、IP分配失败等典型问题,特别适合需要深入理解Android网络架构的开发者参考。

uu89012的博客 743

从BGE到 CLIP,从文本到多模态,Embedding 模型选型终极指南

但要如何选择 embedding 模型?本文将提供一个实用的评估框架,我们可以根据自身需求选择最合适的 embedding 模型。

Y525698136的博客 1706

Git系列(一)、Git基础教程【建议收藏】

Git一、Git简介1.1、什么是Git? 一、Git简介 1.1、什么是Git? Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。 Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源代码的版本控制软件。 Git与常用的版本控制工具CVS、Subversion等不同,它采用了分布式版本库的方式,不用服务器端软件支持。 .........

一宿君 4万+

【亲测免费】 AllenAI SPECTER开源项目常见问题解决方案

AllenAI SPECTER开源项目常见问题解决方案 1. 项目基础介绍和主要编程语言 AllenAI SPECTER(Document-level Representation Learning using Citation-informed Transformers)是一个基于引用信息进行文档级别表征学习的开源项目。该项目使用了Transformer架构,旨在通过引入引用信息来提高文档表征的...

gitblog_00272的博客 911

[VCS]VCS dump fsdb的精细化控制

本文介绍了VCS FSDB波形dump的精细化控制方法。主要内容包括:1)基本dump方式;2)通过$fsdbDumpoff排除特定层次;3)使用$fsdbDumpvars选择性dump指定模块;4)运行时动态控制dump开关;5)通过文件管理排除列表($fsdbDumpoffFile或自定义读取);6)层次控制策略(剪除整棵树或仅当前层)。这些方法可有效控制波形文件大小,提高仿真效率。

元直的博客 1033

【局部规划模块曲线算法】曲线平滑介绍

本文先对轨迹平滑问题做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容(1)适合给移动机器人运动的路径【满足运动学,高阶平滑】(2)高阶的运动学不能够突变的【至少三阶的加速度不能突变,最好四阶的jerk和五阶的snap也不能突变】(3)在转弯的地方不会停下来(4)加减速均衡,节省能量(5)节省时间的。

qq_35635374的博客 5715

RAG的Embedding模型选取大有门道,大模型入门到精通,收藏这篇就足够了!

在这篇博客里,我会解释 embeddings 是什么,为什么它们重要,以及你在选择时该考虑什么。我们还会看看不同的 embedding 模型,以及哪些适合特定情况。

2301_81888214的博客 711

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【收藏必备】大模型RAG系统搭建:embedding模型选择策略

本文详细解析了大模型RAG系统中embedding模型的选择策略,包括三类embedding向量特性对比、八大评估要素(上下文窗口、分词方式等)以及主流模型(Word2Vec、BERT、BGE-M3等)评估。核心观点是:没有放之四海而皆准的最优模型,只有最适合业务需求的选择,需结合具体场景进行适配,并提供实用实施建议。

2401_85325726的博客 1536

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

RAG应用搭建指南:如何选择合适的Embedding模型

首先,需要明确RAG系统的具体应用场景和需求。例如,是处理文本数据、图像数据还是多模态数据?不同的数据类型可能需要不同的Embedding模型。例如,对于文本数据,可以参考HuggingFace的MTEB(Massive Text Embedding Benchmark:衡量文本嵌入模型的评估指标合集)排行榜来选择适合的模型,或者上国内的魔搭社区看下排行榜。其次,根据任务的通用性或特定性选择模型。如果您要实现的任务较为通用,不涉及太多领域的专业知识,可以选择通用的Embedding模型;

m0_63171455的博客 1424

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

LLM大模型:如何选择合适的 Embedding 模型?

检索增强生成(RAG)是生成式 AI (GenAI)中的一类应用,支持使用自己的数据来增强 LLM 模型(如 ChatGPT)的知识。RAG 通常会用到三种不的AI模型,即 Embedding 模型、Rerankear模型以及大语言模型。本文将介绍如何根据您的数据类型以及语言或特定领域(如法律)选择合适的 Embedding 模型。HuggingFace 的是一个一站式的文本 Embedding 模型榜!您可以了解每个模型的平均性能。

AAI666666的博客 2991

RAG实践:一文掌握大模型RAG过程,大模型入门到精通,收藏这篇就足够了!

RAG(Retrieval-Augmented Generation,检索增强生成), 一种AI框架,将传统的信息检索系统(例如数据库)的优势与生成式大语言模型(LLM)的功能结合在一起。

DEVELOPERAA的博客 1744

如何为RAG应用选择最佳Embedding模型

在检索增强生成(RAG)应用中,选择合适的向量Embedding模型至关重要。本文阐述了从实际业务需求出发,从MTEB选择通用模型之后,采用准确率和召回率对于模型基于特定业务的数据集进行测试,从而选择最合适的Embedding模型,进而有效地提高RAG应用的召回准确率。

m0_59164304的博客 931

AI大模型知识库:如何选择合适的 Embedding 模型?

RAG 通常会用到三种不的AI模型,即 Embedding 模型、Rerankear模型以及大语言模型。本文将介绍如何根据您的数据类型以及语言或特定领域(如法律)选择合适的 Embedding 模型。

huang9604的博客 3110

【AI大模型】如何选择合适的 Embedding 模型?

RAG 通常会用到三种不同的AI模型,即 Embedding 模型、Rerankear模型以及大语言模型。本文将介绍如何根据您的数据类型以及语言或特定领域(如法律)选择合适的 Embedding 模型。

2301_81940605的博客 1296

开发RAG应用,你必须知道的11款Embedding模型

bge-en-icl 是一款专为英语语境下的嵌入任务设计的模型。

2401_85390073的博客 1万+
上一篇: 大模型选型全攻略:从参数到安全的实战指南,大模型入门到精通,收藏这篇就足够了!
下一篇: Deepseek+Ollama+Open webUI本地部署教程,大模型入门到精通,收藏这篇就足够了!
Llama-Turbo
博客等级 码龄4年 9901粉丝 2022原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值