
Xinference 中部署与使用 bge-large-zh-v1.5 中文文本向量模型【免费下载链接】inferenceSwap GPT for any LLM by changing a single line of code. Xinference lets you run open-source, speech, and multimodal models on cloud, on-prem, or your laptop — all through one unified, production-ready inference API.项目地址: https://gitcode.com/GitHub_Trending/in/inferencebge-large-zh-v1.5 是 BAAI北京智源人工智能研究院推出的面向中文场景的文本向量Embedding模型在 Xinference 中以内置模型形式开箱即用。本文以 doc/source/models/builtin/embedding/bge-large-zh-v1.5.rst 为核心结合仓库中的模型规范、引擎实现与客户端代码完整讲解该模型的规格参数、启动命令、引擎选型、API 调用方式与底层实现原理帮助你快速搭建中文语义检索、RAG 知识库等应用。一、模型规格总览bge-large-zh-v1.5 在内置 Embedding 模型列表中属于中文专用模型其核心规格如下表所示属性值Model Namebge-large-zh-v1.5语言Languageszh能力Abilitiesembed输出向量维度Dimensions1024最大输入 TokenMax Tokens512Model IDHugging FaceBAAI/bge-large-zh-v1.5Model IDModelScopeXorbits/bge-large-zh-v1.5在 Xinference 中内置模型的元信息统一维护在 xinference/model/embedding/model_spec.json第 456–497 行。该模型对应的条目还包含以下补充细节模型格式model_formatpytorch即原生 PyTorch 权重无量化变体quantizations仅含none固定版本号model_revisionHugging Face 侧锁定为029c4bfff6b0c5cfcd20b40c17ed52ec55202748ModelScope 侧为v0.0.1确保每次启动拉取的都是可复现的同一份权重虚拟环境依赖virtualenv.packages字段声明了不同引擎所需的依赖例如#sentence_transformers_dependencies#、#system_torch#、#system_torchvision#用于 sentence_transformers 引擎FlagEmbedding用于 flag 引擎#vllm_dependencies#、#system_numpy#用于 vllm 引擎。这些元数据在 Xinference 启动时通过_install()注册流程加载进BUILTIN_EMBEDDING_MODELS注册表参见 xinference/model/embedding/init.py供后续匹配引擎与下发启动任务使用。二、启动模型2.1 命令行启动内置模型只需一条命令即可启动xinference launch --model-name bge-large-zh-v1.5 --model-type embedding其中--model-name指定内置模型名这里为bge-large-zh-v1.5--model-type指定模型类型Embedding 模型必须显式声明为embedding默认值是 LLM。根据 xinference/deploy/cmdline.py 中 launch 命令的参数定义还可以补充以下常用选项--model-engine / -en指定推理引擎见下文第三节不传时系统会自动选择--model-format / -f指定模型格式本模型固定为pytorch一般无需填写--model-uid自定义模型唯一标识便于后续 API 调用时引用--device指定运行设备如cuda、cpu--n-gpu使用的 GPU 数量--download-hub指定从huggingface还是modelscope下载权重。提示在中国大陆网络环境下可通过--download-hub modelscope从 ModelScope 拉取权重以提升下载速度若未显式指定Xinference 会依据环境判断默认下载源参见 xinference/model/embedding/embed_family.py 中match_embedding对download_hub的处理。2.2 查看可用内置模型启动前可以通过注册表命令确认该模型已被识别xinference registrations -t embedding输出将列出全部内置 Embedding 模型其中包含bge-large-zh-v1.5及其语言、向量维度、是否内置等信息该命令的展示逻辑同样位于 xinference/deploy/cmdline.py。三、推理引擎选择与底层实现bge-large-zh-v1.5 为pytorch格式Xinference 的 Embedding 模块在 xinference/model/embedding/init.py 中注册了四类引擎引擎依赖库说明sentence_transformerssentence-transformers、torch默认引擎通用性最强flagFlagEmbedding官方 BGE 生态支持稀疏向量等扩展能力vllmvllm 相关依赖面向大规模高并发场景llama.cppllama.cpp 相关依赖仅支持 GGUF 格式本模型无 GGUF 变体不适用在 xinference/model/embedding/core.py 的create_embedding_model_instance中可以看到当调用方未显式指定引擎时所有内置 Embedding 模型默认使用sentence_transformers随后通过match_embedding匹配模型族、再由check_engine_by_model_name_and_engine或开启虚拟环境时的..._with_virtual_env变体解析出具体的引擎实现类并完成实例化。如果希望显式使用某类引擎可以这样启动xinference launch --model-name bge-large-zh-v1.5 --model-type embedding --model-engine flag3.1 sentence_transformers 引擎该引擎由SentenceTransformerEmbeddingModel实现xinference/model/embedding/sentence_transformers/core.py加载时通过SentenceTransformer读取本地缓存的权重目录。其_create_embedding流程与官方 sentence-transformers 对齐按文本长度降序排序、分 batch默认batch_size32编码避免长文本集中造成显存波动默认开启normalize_embeddingsTrue输出的 1024 维向量会被 L2 归一化可直接用点积替代余弦相似度进行检索排序通过truncate_dim支持输出维度截断本模型无 Matryoshka 能力保持 1024 维每次调用会累加attention_mask统计真实 token 数写入响应的usage字段。3.2 flag 引擎若选择 flag 引擎则由FlagEmbeddingModelxinference/model/embedding/flag/core.py驱动底层使用BGEM3FlagModel加载模型支持torch_dtype参数指定float16/float32/bfloat16其中 fp16 会映射为use_fp16True支持return_sparse参数返回稀疏向量lexical_weights为 BM25 式检索提供补充信号注意flag 引擎当前不支持dimensions参数源码中会直接抛出NotImplementedError。四、通过客户端与 OpenAI 兼容 API 调用4.1 使用 Xinference Python Client启动后可通过 Python Client 加载模型句柄并生成向量from xinference.client import Client client Client(http://localhost:9997) # 启动模型embedding 模型必须显式指定 model_type model_uid client.launch_model( model_namebge-large-zh-v1.5, model_typeembedding ) model client.get_model(model_uid) input_text 什么是知识蒸馏 result model.create_embedding(input_text) # result[data][0][embedding] 即为 1024 维向量RESTfulEmbeddingModelHandle.create_embeddingxinference/client/restful/restful_client.py与异步版xinference/client/restful/async_restful_client.py均封装了对POST /v1/embeddings的请求请求体结构为{model: model_uid, input: ...}与 OpenAI Embeddings 接口保持一致。也支持一次传入多条文本List[str]进行批量向量化。4.2 使用 OpenAI SDK由于 Xinference 提供 OpenAI 兼容接口任何支持 OpenAI Embeddings API 的客户端都可以直接复用from openai import OpenAI # api_key 不能为空任意字符串即可 client OpenAI(api_keynot empty, base_urlhttp://localhost:9997/v1) resp client.embeddings.create( modelmodel_uid, input[什么是知识蒸馏, 向量检索如何工作] ) for item in resp.data: print(len(item.embedding)) # 10244.3 关于输入截断Embedding 模型的max_tokens512意味着超出上限的输入会被截断。Xinference 在 xinference/model/embedding/core.py 的create_embedding入口支持truncate_prompt_tokens参数语义与 vLLM LLM 保持一致None不截断正整数截断到指定 token 数0显式空输入负值按模型自身max_tokens即 512截断。截断基于 tokenizer 实现优先以模型 tokenizer 分 token 后截断异常时回退到按字符数粗切并且能保持多模态 dict 输入的结构完整性。批量请求时还会先按参数哈希分组、再合并编码最后按原始调用顺序切分返回保证批处理场景下每个调用方拿到的index从 0 起正确编号。五、资源管理与缓存针对 Embedding 服务的长时运行场景Xinference 在基类中内置了显存缓存清理机制xinference/model/embedding/core.py默认每处理 10 次调用EMBEDDING_EMPTY_CACHE_COUNT触发一次gc.collect()与显存释放或当单批累计 token 数达到 8192EMBEDDING_EMPTY_CACHE_TOKENS时提前触发两个阈值均支持通过环境变量XINFERENCE_EMBEDDING_EMPTY_CACHE_COUNT、XINFERENCE_EMBEDDING_EMPTY_CACHE_TOKENS调整。此外模型权重首次启动时会下载到本地缓存目录由EmbeddingCacheManager管理见 xinference/model/embedding/cache_manager.py后续启动直接复用本地副本无需重复下载。六、典型应用场景bge-large-zh-v1.5 输出 1024 维、已 L2 归一化的中文语义向量可直接落地以下场景RAG / 知识库问答将文档切片批量向量化存入向量数据库查询时对 query 编码后做向量相似度检索语义搜索 / 相似文本匹配利用点积或余弦相似度对候选文本排序文本聚类与分类将文本向量作为下游 ML 模型的特征输入。结合 Xinference 的 OpenAI 兼容接口这些能力可以无缝接入 LangChain、LlamaIndex 等生态与同服务内的 LLM 模型配合形成完整的向量召回 生成链路。七、参考资源模型文档doc/source/models/builtin/embedding/bge-large-zh-v1.5.rst内置模型注册表doc/source/models/builtin/embedding/index.rst模型元信息xinference/model/embedding/model_spec.json引擎注册与匹配xinference/model/embedding/init.py、xinference/model/embedding/embed_family.py模型基类实现xinference/model/embedding/core.pysentence_transformers 引擎xinference/model/embedding/sentence_transformers/core.pyflag 引擎xinference/model/embedding/flag/core.py客户端 API 示例doc/source/user_guide/client_api.rst【免费下载链接】inferenceSwap GPT for any LLM by changing a single line of code. Xinference lets you run open-source, speech, and multimodal models on cloud, on-prem, or your laptop — all through one unified, production-ready inference API.项目地址: https://gitcode.com/GitHub_Trending/in/inference创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考