第二版:Windows 服务器上私有化部署 Qwen/Qwen3-Embedding-0.6B 模型

为什么选择私有化部署嵌入模型?

  1. 数据隐私与合规性:企业敏感数据不能上传至第三方 API。
  2. 低延迟与高可用:本地部署可避免网络波动,提升响应速度。
  3. 定制化与可控性:可自由调整模型版本、缓存策略、批处理逻辑等。
  4. 成本优化:长期使用下,本地部署比调用云 API 更经济。

而 Qwen3-Embedding-0.6B 是通义千问系列中专为中文优化的 轻量级嵌入模型 ,参数量仅 0.6B,适合在普通服务器甚至高性能 PC 上运行,是私有化部署的理想选择。


部署环境准备(Windows 服务器)

  • 操作系统:Windows (开发测试)
  • Python 版本:≥ 3.9,本文使用 Python 3.13.5
  • Conda环境:本文使用 conda 25.11.0
  • 网络环境:国内,无法直连 huggingface.co

由于 Hugging Face 官方站点在国内访问受限,我们将借助 HF-Mirror 这一公益镜像加速下载。


步骤一:安装必要依赖(Conda环境)

首先,安装 Hugging Face 官方工具库:

shell 复制代码
pip install -U huggingface_hub

接着,安装用于加载和推理嵌入模型的 sentence-transformers 库(注意版本要求):

shell 复制代码
# 要求 transformers >= 4.51.0, sentence-transformers >= 2.7.0
pip install sentence_transformers

步骤二:配置 Hugging Face 镜像与缓存目录

为实现高速、稳定的模型下载,需设置两个关键环境变量:

环境变量 作用
HF_ENDPOINT 指定 Hugging Face 的镜像地址
HF_HOME 指定模型缓存根目录

在 Windows 中,可通过以下方式设置

  • 临时方案(以 PowerShell 为例):

    powershell 复制代码
    $env:HF_ENDPOINT = "https://hf-mirror.com"
    $env:HF_HOME = "D:\HuggingFaceRepo"	# 自定义
  • 永久方案:

建议:将上述命令写入系统环境变量,或在启动脚本中自动设置,确保每次运行都生效。

验证环境变量是否配置成功:

python 复制代码
import os
print("HF_ENDPOINT env:", os.environ.get('HF_ENDPOINT'))
print('HF_HOME env :', os.environ.get('HF_HOME'))

预期输出:

复制代码
HF_ENDPOINT env: https://hf-mirror.com
HF_HOME env : D:\HuggingFaceRepo

步骤三:下载并加载 Qwen3-Embedding-0.6B 模型

使用 sentence-transformers 自动从镜像站下载模型:

python 复制代码
from sentence_transformers import SentenceTransformer

# 自动从 hf-mirror.com 下载(因 HF_ENDPOINT 已配置)
qwen3_embedding = SentenceTransformer("Qwen/Qwen3-Embedding-0.6B")

# 测试推理
resp = qwen3_embedding.encode("你好")
print(resp)
print(len(resp))

输出示例:

复制代码
[-0.01935214 -0.00704146 -0.01177389 ...  0.03707496  0.01386148  0.0450698 ]
1024

⚠️ 默认使用 CPU 推理。若服务器配备 NVIDIA GPU 且已安装 CUDA,可添加 device="cuda" 参数加速:

python 复制代码
qwen3_embedding = SentenceTransformer("Qwen/Qwen3-Embedding-0.6B", device="cuda")

模型存储位置说明

下载完成后,模型文件将缓存在:

复制代码
D:\HuggingFaceRepo\Qwen_Qwen3-Embedding-0.6B

该路径结构由 sentence-transformers 自动生成。后续所有对该模型的调用都会直接读取本地缓存,无需重复下载。


在langchain中整合

python 复制代码
from langchain_core.embeddings import Embeddings
from sentence_transformers import SentenceTransformer

class CustomQwen3Embedding(Embeddings):
    """
    自定义Qwen3-Embedding模型
    """

    def __init__(self, model_name="Qwen/Qwen3-Embedding-0.6B"):
        self.model = SentenceTransformer(model_name)

    def embed_documents(self, texts: list[str]) -> list[list[float]]:
        return self.model.encode(texts).tolist()

    def embed_query(self, text: str) -> list[float]:
        return self.embed_documents([text])[0]


if __name__ == '__main__':
    qwen3_embedding = CustomQwen3Embedding()
    resp = qwen3_embedding.embed_query("你好")
    print(resp)
    print(len(resp))

参考资料


自此,本文分享到此结束!!!

相关推荐
律宏阔2 小时前
WSL Docker 端口明明空闲,但就是绑不上端口
linux·windows
律宏阔2 小时前
Windows 禁用联想笔记本所有 Lenovo 后台服务
windows
律宏阔2 小时前
WSL 突然断网,无法 ping 内网或外网
linux·windows
百万蹄蹄向前冲2 小时前
双端同步!云服务器装最新Node.js v26.10全过程追踪
服务器·人工智能·node.js
小羊没烦恼!5 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
rockmelodies5 天前
# Windows Server2008 R2 Standard(SP1镜像U盘)重置本地管理员密码【完整详细步骤】
windows·密码破解
虎头金猫6 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
-梅6 天前
linux(8) 软硬链接
linux·运维·服务器
Wang's Blog6 天前
Java 项目实战: 外卖平台-文件下载与ServletOutputStream回写浏览器
服务器·项目开发
琥珀色糖6 天前
SimlpeHttp
linux·服务器