【sglang模型部署】sglang部署embedding模型之gte-Qwen2-7B-instruct,然后接入dify知识库,做RAG系统。

gte-Qwen2-7B-instruct 是 gte(通用文本嵌入)模型家族的最新成员,截至2024年6月16日,该模型在英文和中文的大规模文本嵌入基准测试MTEB(Massive Text Embedding Benchmark)中均位列榜首。

近期,Qwen团队发布了Qwen2系列模型,我们基于Qwen2-7B大语言模型训练了gte-Qwen2-7B-instruct模型。相较于前代gte-Qwen1.5-7B-instruct模型,本模型在微调阶段采用了相同的训练数据和训练策略,主要改进在于将基础模型升级为Qwen2-7B。鉴于Qwen2系列模型较Qwen1.5系列的显著提升,我们有理由预期本嵌入模型也将展现出一致的性能飞跃。

该模型融合了多项关键技术突破:
- 双向注意力机制的整合,显著增强上下文理解能力
- 指令微调仅应用于查询端,实现高效流程优化
- 跨领域多场景的泛化训练,覆盖多语言海量文本语料。训练过程结合弱监督与监督数据,确保模型在多语言环境和多样化下游任务中的卓越适用性

模型信息
参数量:70亿
嵌入维度:3584
最大输入长度:32K tokens

系统要求
transformers>=4.39.2
flash_attn>=2.5.6

该模型大概需要18G 显存。

模型部署命令行:

python -m sglang.launch_server --model-path ./gte-Qwen2-7B-instruct --is-embedding --host 0.0.0.0 --port 8080 --mem-fraction-static 0.701

模型测试代码:

import openai

client = openai.Client(base_url="http://192.168.10.198:8080/v1", api_key="None")

# Text embedding example
response = client.embeddings.create(
    model="./gte-Qwen2-7B-instruct",
    input="中国的首都在哪?",
)

embedding = response.data[0].embedding[:10]
print(embedding)
print(len(response.data[0].embedding))

模型部署完毕后,可以接入dify,开发RAG系统。

### 提升 Dify 知识库泛化能力的方法 为了提升 Dify 知识库的泛化能力,可以从以下几个方面入手: #### 1. 扩展知识库的内容范围 增加知识库的数据量和多样性有助于提高其泛化能力。可以通过以下方式扩展知识库内容: - **调整基础配置**:修改 `.env` 文件以支持更大的存储容量,并通过 `docker-compose` 加载最新的配置设置[^1]。 - **重新上传多样化的知识资源**:确保上传的知识文档涵盖了多个主题和领域,从而帮助模型更好地理解和处理不同类型的查询。 #### 2. 使用高质量的嵌入模型 (Embedding Model) 选择适合的嵌入模型对于知识库的泛化至关重要。以下是具体方法: - **对比不同的嵌入模型**:评估各种嵌入模型的表现,例如 Hugging Face 的预训练模型或其他开源项目提供的大型语言模型[^1]。 - **推荐的嵌入模型**:考虑使用经过指令微调的大规模语言模型,如 gte-Qwen2-7B-instruct,这类模型具备更强的上下文理解能力和跨领域适应性[^3]。 ```bash # 示例命令:安装 mxbai-embed-large 嵌入模型 pip install mxbai-embed-large ``` #### 3. 实现高效的检索增强生成 (RAG) 系统 构建一个基于 RAG 的架构能够有效提升知识库的泛化性能: - **集成外部数据源**:利用 Notion 或其他在线平台作为补充数据来源,动态更新知识库内容[^2]。 - **优化检索逻辑**:改进知识库内的搜索引擎算法,使其更精准地匹配用户的输入请求与已有知识条目之间的关系。 #### 4. 微调特定任务下的表现 针对某些特殊应用场景可能需要进一步定制化开发: - 对于复杂问题解答场景,可以尝试引入更多样式的训练样本进行微调; - 结合实际业务需求定义专属标签体系用于分类管理各类知识点。 ```python from dify import KnowledgeBase, EmbeddingsModel kb = KnowledgeBase() emb_model = EmbeddingsModel(model_name="gte-Qwen2-7B-instruct") def optimize_knowledge_base(): kb.expand_content() # 添加新的材料到数据库中去扩充它所掌握的信息范畴 emb_model.apply_to_kb(kb) # 应用高级别的词向量表示技术给整个资料集合赋予更好的结构特征描述 optimize_knowledge_base() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值