【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系统。