【免费下载链接】R3-embedding-0.6b
🎯R3-embedding-0.6b是腾讯开源的 Agent 技能检索(skill retrieval)双塔召回模型。想让 AI Agent 的技能(skill)在海量候选中被准确"检索"出来?关键在于两件事:技能文档怎么写、Instruct 提示怎么配。本文带你零基础上手,搞懂这个模型的技能文档格式name | description | skill_md与内置 Instruct 提示机制。
一、R3-embedding-0.6b 是什么?和文档检索有什么不同
普通向量检索把"文档"当检索对象,而 R3-embedding-0.6b 检索的对象是Agent 技能——一段告诉模型"我能做什么、怎么做"的结构化描述。论文《Skill Is Not Document》的核心观点就是:技能不是文档,两者的最佳匹配方式不同。
它是 R3-Skill 两阶段检索器中的bi-encoder(双塔召回)阶段:
- 查询(query)和每个技能文档独立编码,互不干扰,适合大规模候选初筛
- 按余弦相似度排序召回候选,再交给配套的 R3-Rerank-0.6B 精排
模型规格一览(详见 config.json):
| 属性 | 值 | 说明 |
|---|---|---|
| 底座 | Qwen3-Embedding-0.6B | 基于 0.6B 参数量的 Qwen3 架构 |
| 向量维度 | 1024 | 见 1_Pooling/config.json |
| 最大上下文 | 32768 | max_position_embeddings |
| 分词长度上限 | 4096 | 见 tokenizer_config.json |
二、技能文档格式实战:name | description | skill_md
📌 这是全文最重要的部分。R3-embedding-0.6b 规定技能文档采用三段式文本,用|(空格+竖线+空格)分隔:
music-composer | Composes original music | Creates music for various media formats ...| 字段 | 作用 | 写法建议 |
|---|---|---|
| name | 技能名 | 短横线小写命名,如music-composer,让模型快速抓住主题 |
| description | 一句话说明 | 以动词开头概括能力,如 "Composes original music" |
| skill_md | 技能正文 | 详细说明技能用途、适用场景与产出(通常是完整 skill 文档) |
官方示例来自 README.md:
document_embeddings = model.encode_document([ "music-composer | Composes original music | Creates music for various media formats ...", "music-lyricist | Writes lyrics for songs | Creates lyrics for various music genres ...", "music-editor | Edits and mixes music tracks | Provides audio editing and mixing services ...", ])对新手最实用的三条写作建议:
- name 决定主题锚点:用户说"帮我写首歌",
music-composer与music-lyricist的区别全靠 name 和 description 拉开 - description 写能力而非过程:用 "Creates lyrics for various music genres" 这种结果导向的描述
- skill_md 保留完整上下文:它是区分近义技能的关键信息,不要为了省字数而截断
三、Instruct 提示机制:查询侧自动加提示,文档侧保持纯净
很多 embedding 模型对查询和文档使用不同的"提示模板"(prompt),R3-embedding-0.6b 的配置见 config_sentence_transformers.json:
- 查询侧自动拼接 Instruct 提示:
Instruct: Given a user request, retrieve the agent skill that solves it.\nQuery: - 文档侧提示为空字符串——技能文档按原文编码
- 相似度函数固定为
cosine(余弦相似度)
这意味着你调用encode_query()时无需自己写任何提示,模型会自动补上检索指令;而encode_document()输入的技能三段式文本则原样编码。池化模块还配置了include_prompt: true,保证提示词参与向量计算(见 1_Pooling/config.json)。
模型内部结构为Transformer → Pooling → Normalize三段流水线(见 modules.json):
- Pooling:取last token作为句向量,而非平均池化
- Normalize:对向量做 L2 归一化,使余弦相似度退化为内积,检索更快更稳
四、最快上手:3 行代码完成技能召回
安装sentence_transformers后,加载并检索(完整示例见 README.md):
from sentence_transformers import SentenceTransformer model = SentenceTransformer("tencent/R3-embedding-0.6b") query_embedding = model.encode_query("I need to compose music") document_embeddings = model.encode_document([ "music-composer | Composes original music | Creates music for various media formats ...", "music-lyricist | Writes lyrics for songs | Creates lyrics for various music genres ...", ]) similarities = model.similarity(query_embedding, document_embeddings) # tensor([[0.7410, 0.5510, 0.5028]])可以看到music-composer以 0.741 的最高相似度胜出——这正是"技能文档格式 + Instruct 提示"协同工作的结果。
五、模型文件速查表
| 文件 | 作用 |
|---|---|
| README.md | 使用说明与使用示例 |
| config.json | 模型结构配置(Qwen3,28 层,hidden 1024) |
| config_sentence_transformers.json | Instruct 提示与相似度函数配置 |
| modules.json | 模型流水线模块清单 |
| 1_Pooling/config.json | last-token 池化与 1024 维输出配置 |
| sentence_bert_config.json | 任务类型与输出名配置 |
| tokenizer_config.json | 分词器配置(Qwen2Tokenizer) |
| chat_template.jinja | 聊天模板 |
六、让技能更易被找到的 4 个要点
✅格式别出错:严格使用name | description | skill_md三段式,分隔符是"空格-竖线-空格"
✅description 动词开头:一句话说清"这个技能解决什么问题"
✅信任内置 Instruct:查询侧提示已由模型自动注入,重复拼接反而可能干扰匹配
✅召回 + 精排组合拳:R3-embedding-0.6b 负责快速召回,再配合 R3-Rerank-0.6B 精排,效果最佳
📚 小结:R3-embedding-0.6b 把"技能检索"变成了可复用的标准化流程——规范三段式文档、用好自动 Instruct 提示、结合精排模型,你的 Agent 技能库就能被用户的一句话精准命中。
【免费下载链接】R3-embedding-0.6b
相关推荐
腾讯开源R3-embedding-0.6b:0.6B技能检索嵌入模型完整初探
腾讯开源R3 embedding 0.6b:0.6B技能检索嵌入模型完整初探 🔍 腾讯开源的 R3 embedding 0.6b 是一个专为 Agent 技能
python-oauth2实战教程:5步构建安全的API认证系统
python oauth2实战教程:5步构建安全的API认证系统 python oauth2是一个功能强大的Python OAuth 1.0认证库,为开发者提供
认证鉴权一文搞懂Kneed拐点检测:3步速通算法原理与实战
一文搞懂Kneed拐点检测:3步速通算法原理与实战 做K means聚类选簇数时,你是不是总对着"肘部图"发呆:拐弯到底在哪儿?凭肉眼判断,十个人能给出十种答案
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考