Qwen3-Embedding 本地部署

Qwen3 Embedding是阿里巴巴通义千问团队于2025年6月发布的最新文本嵌入和重排序模型系列,基于Qwen3基础大模型构建,专注于提升文本表征、信息检索和排序的核心能力。该系列模型覆盖0.6B、4B和8B三种参数规模,具备强大的多语言、多任务和跨语言能力,支持超过100种自然语言及多种编程语言,广泛适用于语义搜索、代码检索、文本分类、聚类和双语文本挖掘等场景。

核心优势与特点

  • 性能:Qwen3-Embedding-8B模型在2025年MTEB多语言排行榜以70.58分排名第一,性能领先于Google Gemini、OpenAI、微软等主流商业及开源模型,重排序模型(Qwen3-Reranker)在多个基准测试中也表现优异。
  • 灵活多样的模型尺寸:从轻量级0.6B适合端侧部署,到高性能8B满足复杂任务需求,开发者可根据资源和应用场景灵活选择。
  • 创新架构设计:嵌入模型采用双编码器结构,分别处理查询和文档,重排序模型采用交叉编码器结构,提升语义理解和相关性判断能力。
  • 任务指令感知:支持在输入中融合任务指令,增强模型对不同任务、语言和场景的适应性,提升下游效果。
  • 自定义向量维度:支持用户根据需求调整输出嵌入向量维度(32至1024维),实现效率与效果的动态平衡。
  • 创新训练方法:结合大规模弱监督对比学习、高质量标注数据微调及模型融合技术,显著提升模型泛化能力和鲁棒性。
  • 全面多语言支持:支持超过100种语言及多种编程语言,具备强大的跨语言和代码检索能力,适合全球化和多模态应用。

部署方式

Qwen3-Embedding模型已开源,现在可在Huggingface和ModelScope上查看或下载。本地部署的方式有很多,可以使用Huggingface、Ollama、LM Studio等。

方式一:直接使用python库

可以直接使用Sentence Transformers库调用Qwen3-Embedding

# Requires transformers>=4.51.0
# Requires sentence-transformers>=2.7.0

from sentence_transforme
<think>我们正在处理一个关于在昇腾AI平台上部署Qwen2.5-VL-3B-Instruct模型的问题。 根据引用[2]和引用[3],我们知道昇腾910B上可以运行Qwen2.5系列模型,但目前CANN算子的支持完整度还有不足,只能运行FP16精度、Q8_0和Q4_0量化的模型。而Qwen2.5-VL-3B-Instruct是一个多模态模型(视觉语言模型),引用[3]提到了部署多模态模型Qwen2-VL的尝试。 用户的需求是部署Qwen2.5-VL-3B-Instruct模型,这是一个3B参数的多模态模型,属于Qwen2.5系列。 步骤: 1. 环境准备:昇腾AI平台(如Atlas 800训练服务器或Atlas 300I Pro推理卡),安装CANN(Compute Architecture for Neural Networks)和配套的驱动、固件。确保系统环境满足要求。 2. 获取模型:从ModelScope下载模型。根据引用[3],可以使用modelscope下载命令,例如: mkdir qwen2.5-vl-3b modelscope download --model Qwen/Qwen2.5-VL-3B-Instruct --local_dir ./qwen2.5-vl-3b 3. 由于昇腾平台目前对GGUF格式的支持(引用[2]),我们需要确认模型是否提供GGUF格式。如果没有,可能需要转换模型格式。但引用[2]提到的是GGUF格式的模型,而引用[3]下载的是原始模型(可能是PyTorch格式)。因此,我们需要考虑: - 如果模型是PyTorch格式,需要转换为昇腾支持的格式(如OM模型)。但当前昇腾对Qwen2.5系列的支持可能还在完善中,特别是多模态模型- 或者使用昇腾支持的推理框架(如mindspore、mindie等)来加载模型。 4. 根据引用[3],之前有尝试部署多模态模型Qwen2-VL,我们可以参考其步骤。但注意Qwen2.5-VL是较新的版本,可能步骤类似。 5. 使用昇腾的推理引擎:目前昇腾上运行大模型常用的有: - mindie:一个针对昇腾优化的推理引擎,支持PyTorch模型的直接转换和运行。 - vLLM:昇腾平台也支持vLLM,但需要昇腾版本的vLLM(如mindspore-vllm或通过mindie支持)。 6. 由于Qwen2.5-VL-3B-Instruct是多模态模型,需要同时处理图像和文本,因此部署时需要考虑图像预处理部分(如图像编码器)和文本部分的融合。 7. 具体步骤(参考引用[3]的部署尝试): a. 下载模型本地目录。 b. 可能需要将模型转换为昇腾支持的格式。例如,使用mindie工具将PyTorch模型转换为MindSpore格式(.ckpt)或直接转换为OM模型(离线模型)。 c. 编写推理脚本,使用昇腾的ACL(Ascend Computing Language)接口或通过MindSpore、PyTorch(使用昇腾后端)来加载模型并执行推理。 8. 注意事项: - 目前昇腾平台对Qwen2.5系列的支持可能仅限于FP16精度(引用[2]),因此确保模型以FP16精度运行。 - 多模态模型的输入包括图像和文本,需要分别进行预处理。图像可能需要通过模型的图像处理器(如resize、归一化等),文本通过tokenizer处理。 - 输出处理:模型输出通常是文本,需要后处理(如detokenize)。 9. 由于部署过程可能较为复杂,且昇腾平台对多模态模型的支持可能还在完善中,建议参考昇腾官方文档和ModelSpace上的相关资源。 10. 示例步骤(假设使用mindie进行部署): 步骤1:准备环境,安装MindSpore(昇腾版本)和mindie。 步骤2:下载模型。 步骤3:编写推理代码,使用mindie加载模型,并编写图像和文本的预处理、后处理代码。 步骤4:运行推理。 由于具体部署代码可能较长,这里给出一个概念性的代码框架: ```python # 假设我们使用mindie from mindie import AutoModelForCausalLM from transformers import AutoTokenizer from PIL import Image # 加载模型和tokenizer model_path = "./qwen2.5-vl-3b" model = AutoModelForCausalLM.from_pretrained(model_path, device_map="ascend") # 指定设备为昇腾 tokenizer = AutoTokenizer.from_pretrained(model_path) # 图像和文本输入 image_path = "example.jpg" image = Image.open(image_path) # 使用模型的图像处理器(如果有的话)处理图像,这里假设模型有内置的图像处理器,但需要查看具体模型文档 # 实际上,Qwen-VL模型通常有特定的图像处理流程,可能需要调用模型的processor # 由于是多模态模型,我们可能需要一个processor来处理图像和文本 # 参考:Qwen-VL模型通常使用一个processor来同时处理图像和文本 # 例如:processor = Qwen2.5VLProcessor.from_pretrained(model_path) # 然后:inputs = processor(text_prompt, images=image, return_tensors=&#39;pt&#39;) # 将输入数据转移到昇腾设备 inputs = inputs.to("ascend") # 生成输出 outputs = model.generate(**inputs) # 解码输出 decoded_output = tokenizer.decode(outputs[0], skip_special_tokens=True) print(decoded_output) ``` 但是,请注意,以上代码只是一个概念性示例,实际部署需要根据昇腾平台的支持情况和模型的具体要求进行调整。 由于目前昇腾平台对Qwen2.5-VL-3B-Instruct的支持情况可能还在完善中,建议关注昇腾社区和ModelScope的最新动态。 另外,引用[2]提到目前只能运行FP16精度和某些量化格式的模型,因此确保下载FP16精度的模型。 如果遇到算子不支持的问题,可能需要等待CANN更新或尝试其他量化格式(如Q8_0,Q4_0)的模型(如果模型提供了这些格式)。 最后,由于部署过程可能涉及多个步骤,建议参考昇腾官方提供的模型部署指南和示例代码。 相关问题: 1. 昇腾AI平台支持哪些多模态大模型? 2. 如何将PyTorch模型转换为昇腾平台支持的OM模型3. 在昇腾平台上部署多模态模型时,如何处理图像输入? 4. 昇腾平台上的vLLM支持多模态模型吗? 5. 如何优化在昇腾平台上运行的多模态模型的性能?</think>在昇腾AI平台上部署Qwen2.5-VL-3B-Instruct模型需要遵循以下步骤,结合昇腾平台的硬件特性和模型要求: ### 部署步骤 1. **环境准备** - **硬件要求**:昇腾910B NPU(Atlas 300I Pro推理卡或Atlas 800训练服务器) - **软件栈**: - 安装CANN(Compute Architecture for Neural Networks)7.0+版本 - 配置昇腾驱动和固件 - 安装MindSpore 2.2+(昇腾适配版)或PyTorch(通过CANN适配) - 部署vLLM(昇腾优化版)或MindIE推理引擎[^2][^3] 2. **模型获取与转换** ```bash # 从ModelSpace下载模型(需提前创建目录) mkdir Qwen2.5-VL-3B modelscope download --model Qwen/Qwen2.5-VL-3B-Instruct --local_dir ./Qwen2.5-VL-3B ``` - **格式转换**:由于昇腾当前主要支持**FP16精度**和**GGUF量化格式**(Q8_0/Q4_0),需检查模型格式: - 若原始为PyTorch格式,使用`transformers`库转换为FP16: ```python from transformers import AutoModel model = AutoModel.from_pretrained("./Qwen2.5-VL-3B", torch_dtype=torch.float16) model.save_pretrained("./Qwen2.5-VL-3B-FP16") ``` 3. **多模态处理适配** - **图像输入**:昇腾需单独处理视觉编码器: - 使用`AscendCL`编写图像预处理算子(resize/归一化) - 通过`DVPP`(数字视觉预处理模块)加速图像解码 - **文本输入**:使用昇腾优化的`tokenizers`库分词 4. **推理部署方案** **方案A:vLLM部署(推荐)** ```python # 昇腾适配的vLLM启动示例 from vllm import EngineArgs, LLMEngine engine_args = EngineArgs( model="./Qwen2.5-VL-3B-FP16", tensor_parallel_size=2, # 根据NPU数量调整 dtype="float16", worker_use_ray=True, device="npu" # 指定昇腾设备 ) engine = LLMEngine.from_engine_args(engine_args) ``` **方案B:原生MindSpore部署** ```python import mindspore as ms from qwen_model import QwenVLForInference # 需自定义模型加载类 ms.set_context(device_target="Ascend") model = QwenVLForInference.from_pretrained("./Qwen2.5-VL-3B-FP16") ``` 5. **性能优化** - **算子替换**:使用`CANN-Toolkit`替换不支持的算子 - **量化加速**:尝试Q4_0量化(需验证精度损失): ```bash python -m gguf.quantize ./Qwen2.5-VL-3B-FP16/qwen_model.bin ./Qwen2.5-VL-3B-Q4_0.gguf Q4_0 ``` - **流水线并行**:通过`mindspore.pipeline`模块分割视觉/语言模块 ### 注意事项 1. **当前限制**: - 昇腾910B对BF16支持不完善,**必须使用FP16** - 多模态中的`image_position_embedding`算子需手动实现Ascend版本[^3] 2. **验证方法**: ```python # 简单推理测试 response = model.generate_query( image="path/to/image.jpg", query="描述图片内容", max_new_tokens=50 ) print("输出:", response) ``` ### 故障排查 - **算子缺失错误**:在[CANN算子清单](https://www.hiascend.com/document/detail/zh/canncommercial/70RC1/operatormatrix/opmatrix.html)中检查支持状态 - **内存不足**:减小`max_batch_size`或使用`flash_attention`优化 - 最新部署工具可关注昇腾社区[ModelZoo](https://gitee.com/ascend/modelzoo) > **关键提示**:多模态部署需额外验证视觉-文本对齐,建议使用官方测试集验证精度[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值