
在 Xinference 中部署与调用 bce-embedding-base_v1内置双语 Embedding 模型实战指南【免费下载链接】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本文围绕 Xinference 内置的bce-embedding-base_v1文本向量模型系统讲解它的模型规格、内置注册信息、支持的推理引擎、启动方式以及如何通过 OpenAI 兼容的 Embeddings API 完成文本向量化调用。读完本文你将掌握在 Xinference 中一键启动该模型、按需切换引擎、处理超长输入截断并借助源码理解其底层实现原理。模型概览与核心规格bce-embedding-base_v1是 Xinference 内置的文本嵌入Embedding模型之一其文档定义于 doc/source/models/builtin/embedding/bce-embedding-base_v1.rst并在 doc/source/models/builtin/embedding/index.rst 的内置模型清单中列出。其核心规格如下属性值模型名称Model Namebce-embedding-base_v1支持语言Languages中文zh、英文en能力Abilitiesembed文本嵌入向量维度Dimensions768最大输入 Token 数Max Tokens512模型 IDModel IDmaidalun1020/bce-embedding-base_v1模型格式Model Formatpytorch量化方式Quantizationnone仅全精度无量化变体该模型为中英双语场景设计输出 768 维稠密向量适合用于语义检索、文本聚类、推荐、分类与相关性计算等任务。文本嵌入的核心思想是向量之间的空间距离反映文本语义相似度——距离越近相关性越高距离越远相关性越低详见 doc/source/models/model_abilities/embed.rst 的 Introduction 部分。内置注册信息从 model_spec.json 看模型来源与模型文档相对应Xinference 将bce-embedding-base_v1以 V2 规格形式内置注册于 xinference/model/embedding/model_spec.json第 981–1021 行。该注册记录包含文档中未展开的额外细节模型源model_src支持两个主流模型仓库来源优先级为 Hugging FaceHugging Facemaidalun1020/bce-embedding-base_v1并固定了精确的model_revision提交哈希236d9024fc1b4046f03848723f934521a66a9323保证每次拉取的权重一致ModelScopemaidalun/bce-embedding-base_v1。量化配置quantizations仅为[none]即该模型只以全精度pytorch 格式提供服务无 GGUF 等量化变体。虚拟环境依赖virtualenv按引擎区分安装依赖——sentence_transformers引擎需要sentence-transformers及系统级torch、torchvisionvllm引擎需要#vllm_dependencies#与#system_numpy#。这些依赖标记由 Xinference 在启用虚拟环境功能XINFERENCE_ENABLE_VIRTUAL_ENV时按需解析相关加载逻辑位于 xinference/model/embedding/init.py 的generate_engine_config_by_model_name与_install中。在 Xinference 中启动模型依据模型文档使用命令行一行即可启动该模型xinference launch --model-name bce-embedding-base_v1 --model-type embedding执行后 Xinference 会依据 model_spec.json 的注册信息自动选择模型来源下载权重、加载模型并分配一个模型 UIDModel UID。后续所有 Embeddings API 调用都以该 UID 作为model参数。选择服务引擎启动 Embedding 模型时可通过--model-engine参数指定服务引擎对应 API 中的model_engine参数。根据 doc/source/models/model_abilities/embed.rst 的 Embedding engines 一节Xinference 提供四类引擎sentence_transformers默认引擎对所有内置 Embedding 模型可用vllm面向bge、gte、text2vec、m3e、Qwen3、WeMM、bce等前缀模型家族的高吞吐服务引擎bce-embedding-base_v1恰在其中flag基于 FlagEmbedding 的引擎额外支持稠密 稀疏混合向量输出llama.cpp服务 GGUF 格式的 Embedding 模型bce-embedding-base_v1为 pytorch 格式不适用。例如显式指定 vLLM 引擎启动xinference launch --model-name bce-embedding-base_v1 --model-type embedding --model-engine vllmvLLM 引擎对bce前缀的支持可以在 xinference/model/embedding/vllm/core.py 中得到源码级印证其SUPPORTED_MODELS_PREFIXES列表包含bce且match_json校验要求模型格式必须为pytorch、模型名前缀必须命中支持列表bce-embedding-base_v1完全满足这些条件。对应的自动化测试 xinference/model/embedding/tests/test_embedding_models.py 中的test_bce_embedding_vllm_engine_params_with_virtualenv验证了在启用虚拟环境的场景下系统能为该模型正确收集 vLLM 引擎标记并生成包含model_format pytorch、quantization none的 vLLM 启动参数。通过 Embeddings API 调用模型启动成功后即可通过 OpenAI 兼容的 Embeddings API 调用。Xinference 的 Embeddings API 与 OpenAI 的/v1/embeddings接口对齐端点对应关系为Xinference 能力OpenAI 兼容端点Embeddings API/v1/embeddings三种主流调用方式如下。方式一cURLcurl -X POST \ http://XINFERENCE_HOST:XINFERENCE_PORT/v1/embeddings \ -H accept: application/json \ -H Content-Type: application/json \ -d { model: MODEL_UID, input: What is the capital of China? }方式二OpenAI Python Clientimport openai client openai.Client( api_keycannot be empty, base_urlhttp://XINFERENCE_HOST:XINFERENCE_PORT/v1 ) client.embeddings.create( modelMODEL_UID, input[What is the capital of China?] )方式三Xinference Python Clientfrom xinference.client import Client client Client(http://XINFERENCE_HOST:XINFERENCE_PORT) model client.get_model(MODEL_UID) input What is the capital of China? model.create_embedding(input)响应结构三种方式返回统一的 OpenAI 风格响应包含向量数据与 token 用量统计{ object: list, model: MODEL_UID, data: [{ index: 0, object: embedding, embedding: [ -0.014207549393177032, -0.01832585781812668, ... -0.03009396605193615, 0.05420297756791115 ] }], usage: { prompt_tokens: 37, total_tokens: 37 } }其中data[].embedding即为 768 维向量bce-embedding-base_v1的维度可直接用于相似度计算或写入向量数据库。超长输入与截断控制bce-embedding-base_v1的最大输入长度为 512 tokens超出部分将影响向量质量。Xinference 的 Embeddings API 提供了可选的truncate_prompt_tokens参数用于显式控制截断策略见 doc/source/models/model_abilities/embed.rst 的 Truncating input 一节不传 /null不截断正整数N将每条输入截断至最多N个 token-1按模型自身的最大输入长度截断。curl -X POST \ http://XINFERENCE_HOST:XINFERENCE_PORT/v1/embeddings \ -H Content-Type: application/json \ -d { model: MODEL_UID, input: A very long document ..., truncate_prompt_tokens: 512 }从源码看vLLM 引擎在加载完成后还会通过_set_context_length见 xinference/model/embedding/vllm/core.py尝试读取max_model_len作为上下文长度并在_create_embedding中对超长输入基于分词器按 token 级别截断额外预留一个 token 防止溢出这为超长文档提供了第二道保护。常见问题Xinference 中的 LLM 支持 Embeddings API 吗不支持。出于性能考虑Xinference 不为 LLM 提供 embed 接口文本向量服务仅由专门的 Embedding 模型承担。能否集成 LangChain可以LangChain 官方提供了针对 Xinference 的 Text Embedding 集成。能否获得混合向量稀疏 稠密可以。若使用flag引擎部署模型并在调用 Embeddings API 时设置额外参数return_parseTrue即可同时返回稀疏向量。小结bce-embedding-base_v1是 Xinference 内置模型中面向中英双语检索场景的开箱即用选项768 维输出、512 token 上限、默认sentence_transformers引擎且支持 vLLM 高吞吐引擎配合 OpenAI 兼容的/v1/embeddings接口可用一行命令完成部署、三行代码完成调用。其内置规格记录model_spec.json、引擎匹配逻辑vllm/core.py与自动化测试test_embedding_models.py均为可验证的工程依据适合作为语义检索与 RAG 场景的落地起点。【免费下载链接】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),仅供参考