【AI大模型】腾讯屠榜MTEB,嵌入模型告别BERT,拥抱LLM

前言

  • 训练一个好的向量模型的重点在于最大限度地利用了更多、更高质量的负样本,来训练模型。
  • 腾讯提出的Conan-embedding,采用了动态硬负样本挖掘方法,以便在整个训练过程中向模型展示更多具有挑战性的负样本。
  • 最近发布Conan-embedding-V2版本,在MTEB榜单上已经超越了BGE等一众传统豪强。

图片

  • 支持中、英双语,

图片

图片

一、Conan-embedding-V2

  • V1版本主要基于通用预训练的双向Bert模型进行Embedding任务的训练。
  • V2版本从头训练了原创词表和模型结构的大模型基座——Conan-1.4B,在此基础上进行了中、英、多语言的Embedding任务的训练。
  • 上下文长度从v1版本的512,提升到了32k

图片

训练的4个阶段

  • 第1和第2阶段,大语言模型(LLM)训练阶段

    • 加入嵌入数据,以更好地使LLM与嵌入任务对齐
    • 设计了Conan-1.4B,包含8层Attention Layers,Hidden Size为3584,最长上下文32k。
    • 参数量是1.4B,能够在较少的参数下提供更大的Embedding维度。
    • 从基础的字母、符号上,在约40万条多语言语料上训练了Conan的BBPE分词器,目标词表大小15万,完成了词表训练。
  • 第3阶段,弱监督训练阶段

    • 使用与LLM监督微调(SFT)相同的配对数据,并应用软掩码来弥合LLM与嵌入模型之间的差距。
    • 使用gte-Qwen2-7B-instruct模型进行评分,并丢弃得分低于0.4的数据
    • 训练中采用了InfoNCE损失函数,并结合In-Batch Negative采样
  • 第4阶段,监督训练阶段

    • 引入了跨语言检索数据集和动态硬负例挖掘方法,以提高数据的多样性和价值
    • 针对不同的下游任务进行任务特定的微调。
    • 将任务分为四类:检索、跨语言检索、分类和语义文本相似度(STS)。
    • 前三类任务:包括一个查询、一个正例文本和一些负例文本,使用经典的InfoNCE损失函数。
    • STS任务涉及区分两个文本之间的相似度,采用CoSENT损失来优化。

为了更好的对比Conan-embedding提升了哪些内容,下面也简单介绍一下Conan-embeddingV1,尤其注意一下难例数据挖掘的方法,v2版本也是用同样的方法

二、Conan-embeddingV1

图片

总共分为:预训练和微调两个阶段

2.1 预训练阶段

  • 筛选数据:bge-large-zh-v1.5模型评分,丢弃所有得分低于 0.4 的数据。
  • 使用带批内负样本的 InfoNCE 损失进行训练,它利用小批量内的其他样本作为负样本优化模型。
  • 即,在每个小批量中,除了目标样本的正样本对之外的所有样本都被视为负样本。
  • 通过最大化正样本对的相似性并最小化负样本对的相似性,批内负样本 InfoNCE 损失可以有效地提高模型的判别能力和表示学习性能。
  • 此方法通过充分利用小批量内的样本,提高了训练效率,减少了生成额外负样本的需求。

图片

其中,是正样本的查询, 是正样本的段落,是同一批次中其他样本的段落,被视为负样本。

2.2 监督微调

监督微调时对不同的下游任务执行特定的微调任务。将任务分为两类:

  • 检索任务:

    • 包括查询、正文本和负文本,经典的损失函数是 InfoNCE 损失。
  • STS 任务:

    • 涉及区分两个文本之间的相似性,经典的损失函数是交叉熵损失。

CoSENT 损失略优于交叉熵损失,因此采用 CoSENT 损失来优化 STS 任务。

图片

  • 其中,是尺度温度, 是余弦相似度函数,是和 之间的相似度。

三、难例数据挖掘

一种动态难样本挖掘方法介绍:

  • 对于每个数据点,记录当前相对于查询的难样本的平均分数。
  • 每 100 次迭代,如果分数乘以 1.15 小于初始分数,并且分数的绝对值小于 0.8,将认为负样本不再困难,并进行新一轮的难样本挖掘。
  • 在每次动态困难负例挖掘过程中,如果需要替换困难负例,使用 (i-1)\times n + 10到i\times n +10 的案例作为负例,其中 i表示第 i次替换,而 n表示每次使用的困难负例数量。

图片

  • 上图展示了动态困难负例挖掘与标准困难负例挖掘中正例和负例的得分-步数曲线
  • 随着步骤的增加,标准困难负例挖掘中负例的得分停止下降并开始振荡,表明模型已经完成了从该批负例中学习。
  • 相反,动态困难负例挖掘一旦检测到负例不再对模型构成挑战,就会替换这些困难负例。

最后的最后

感谢你们的阅读和喜欢,作为一位在一线互联网行业奋斗多年的老兵,我深知在这个瞬息万变的技术领域中,持续学习和进步的重要性。

为了帮助更多热爱技术、渴望成长的朋友,我特别整理了一份涵盖大模型领域的宝贵资料集。

这些资料不仅是我多年积累的心血结晶,也是我在行业一线实战经验的总结。

这些学习资料不仅深入浅出,而且非常实用,让大家系统而高效地掌握AI大模型的各个知识点。如果你愿意花时间沉下心来学习,相信它们一定能为你提供实质性的帮助。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

大模型知识脑图

为了成为更好的 AI大模型 开发者,这里为大家提供了总的路线图。它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

经典书籍阅读

阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。

在这里插入图片描述

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

面试资料

我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下

在这里插入图片描述

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

<think>好的,我现在需要帮助用户解决在RagFlow中加载或嵌入BAAI/bge-large-zh-v1.5模型的问题。首先,我得回顾之前的对话历史和提供的引用资料,确保回答准确。 用户之前询问了如何在Windows终端通过Ollama或RagFlow下载该模型,我之前给出了详细步骤。现在用户的新问题是关于在RagFlow中嵌入这个模型,需要更具体的指导。 首先,我需要确认RagFlow的常规模型加载方式。根据之前的回答,RagFlow可能通过Docker部署,并且可能需要配置文件来指定模型。引用中提到BAAI/bge-large-zh-v1.5在C-MTEB基准测试表现优异,适合中文检索任务,这说明用户可能需要该模型用于文本嵌入,比如语义搜索或问答系统。 接下来,我需要考虑用户可能的操作步骤。在之前的回答中,提到了通过Docker配置和修改环境变量来加载模型。现在需要更详细地说明如何在RagFlow的配置文件中指定模型路径或名称。可能需要编辑docker-compose.yml或者相关配置文件,设置模型参数。 另外,用户可能需要知道如何验证模型是否成功加载。之前的回答里提到使用docker logs命令检查日志,这里需要再次强调这一点。此外,引用[3]提到参数设置的重要性,因此可能需要指导用户调整参数,如上下文长度或批处理大小,以优化性能。 还要考虑用户可能遇到的问题,例如模型下载失败、路径错误或资源不足。需要提供解决方案,比如使用镜像加速、检查文件权限、调整内存配置等。根据引用中的信息,BAAI/bge-large-zh-v1.5需要较多计算资源,可能需要提醒用户分配足够的内存和显存。 此外,用户可能需要了解如何测试嵌入功能,比如输入文本获取向量输出。需要给出具体的示例命令或代码片段,方便用户验证。同时,引用[2]比较了不同模型的区别,用户可能想知道为何选择此模型而非其他版本,因此可以简要说明其优势。 最后,生成相关问题,帮助用户进一步探索,如如何优化性能、处理多语言数据或与其他模型对比。这些问题需要基于引用中的信息,确保相关性。 总结步骤:配置Docker环境、修改模型设置、启动容器、验证加载、测试功能、处理常见问题。需要确保每一步都清晰,并参考之前的回答和引用内容,保持一致性。</think>### 在RagFlow中嵌入BAAI/bge-large-zh-v1.5模型的完整指南 #### 一、基础配置方法 1. **修改docker-compose.yml** 在RagFlow项目目录中找到`docker-compose.yml`,添加模型声明: ```yaml services: ragflow: environment: - EMBED_MODEL_NAME=BAAI/bge-large-zh-v1.5 # 根据引用[1]选择最佳中文嵌入模型 - EMBED_DEVICE=cuda # 启用GPU加速 ``` 2. **自定义模型路径(可选)** 若需使用本地已下载的模型: ```yaml volumes: - C:\Models\bge-large-zh-v1.5:/app/models/embedding # Windows路径需转换为POSIX格式 ``` 3. **启动服务** ```powershell docker-compose down && docker-compose up -d ``` #### 二、高级参数调优 基于引用[3]的参数建议: ```yaml environment: - EMBED_MODEL_ARGS='{"batch_size": 32, "max_length": 512}' # 控制内存占用 - CACHE_DIR=/app/model_cache # 防止重复下载 ``` $$ \text{推理速度} = \frac{\text{处理token数}}{\text{GPU显存占用}} \times \text{批处理效率} $$ #### 三、验证模型加载 1. **查看日志** ```powershell docker logs ragflow_app | Select-String "bge-large-zh" # 应显示模型加载进度 ``` 2. **API测试** ```powershell curl -X POST http://localhost:9380/embed -H "Content-Type: application/json" -d '{"texts": ["北京是中国的首都"]}' ``` *成功响应应包含1024维向量数组*[^1] #### 四、常见问题解决 | 问题现象 | 解决方案 | 技术原理 | |---------|---------|---------| | `OSError: Model file not found` | 检查volume挂载路径权限,运行`docker exec ragflow_app ls /app/models/embedding` | 容器文件系统隔离机制 | | `CUDA out of memory` | 减少`batch_size`参数值(建议从32→16→8逐步尝试) | GPU显存与批处理量的线性关系[^3] | | 下载超时 | 在WSL2中预下载模型:`huggingface-cli download BAAI/bge-large-zh-v1.5 --cache-dir ./models` | HuggingFace镜像加速原理 | #### 五、性能优化建议 1. **混合精度推理** 添加环境变量: ```yaml - FP16_MIXED_CAST=auto # 根据引用[3]推荐自动精度分配 ``` 2. **量化部署** ```powershell docker exec ragflow_app python -c "from transformers import AutoModel; model = AutoModel.from_pretrained('BAAI/bge-large-zh-v1.5', torch_dtype=torch.float16)" ``` #### 六、模型应用验证 ```python # 测试相似度计算 import numpy as np from sklearn.metrics.pairwise import cosine_similarity vec1 = [...] # 获取"人工智能的发展" vec2 = [...] # 获取"AI技术的进步" similarity = cosine_similarity([vec1], [vec2])[0][0] print(f"语义相似度:{similarity:.3f}") # 预期输出>0.85[^1] ``` --相关问题-- 1. 如何为BAAI/bge-large-zh-v1.5配置多GPU并行计算? 2. RagFlow中如何实现该模型与bge-m3的A/B测试? 3. 中文长文本(超过512token)的分块嵌入策略有哪些? 4. 如何监控模型在RagFlow中的实时推理性能?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值