news 2026/9/16 16:20:25

Xinference 中运行 Baichuan2 开源大模型:baichuan-2 内置模型的启动配置与源码解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Xinference 中运行 Baichuan2 开源大模型:baichuan-2 内置模型的启动配置与源码解析

Xinference 中运行 Baichuan2 开源大模型:baichuan-2 内置模型的启动配置与源码解析

【免费下载链接】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 内置的baichuan-2(Baichuan2 基座模型)展开,系统讲解其内置模型规格、xinference launch启动命令、底层llm_family.json家族定义与平台限制。读者将掌握如何在本地或服务器上以 Transformers 引擎启动 7B/13B 的 Baichuan2-Base 模型,理解内置模型注册表的工作机制,并能在遇到 Darwin(macOS)平台报错时快速定位原因。

模型概览:一个中英文双语的开源基座 LLM

依据 Xinference 内置模型文档 baichuan-2.rst 与内置模型注册表 llm_family.json 中的定义,baichuan-2的核心元数据如下:

属性
Model Namebaichuan-2
Context Length4096
Languagesen, zh
Abilitiesgenerate
Model Typebaichuan
ArchitecturesBaichuanForCausalLM
DescriptionBaichuan2 是一个基于 Transformer 的开源 LLM,使用中英文数据训练

其中architecturesBaichuanForCausalLM,这是模型在前向推理时使用的因果语言模型架构;model_typebaichuan,与 Transformers 库中 Baichuan 模型类型的命名保持一致。需要特别留意的是,baichuan-2Abilities 只有generate(补全/生成能力),这是 Baichuan2 的 Base 版本,不包含对话模板;如需开箱即用的对话体验,应选择同家族的另一内置模型baichuan-2-chat(详见下文"与 Chat 版本的选型对比")。

内置模型规格(Model Spec)详解

baichuan-2家族在 Xinference 内置了两档规格,均采用pytorch模型格式、仅支持none(即不做量化):

Model Spec 1:7B(pytorch)

属性
Model Formatpytorch
Model Size (in billions)7
Quantizationsnone
EnginesTransformers
Model IDbaichuan-inc/Baichuan2-7B-Base

Model Spec 2:13B(pytorch)

属性
Model Formatpytorch
Model Size (in billions)13
Quantizationsnone
EnginesTransformers
Model IDbaichuan-inc/Baichuan2-13B-Base

在 llm_family.json 中,两档规格的model_src均同时登记了 Hugging Face、ModelScope 与 OpenMind Hub 三个模型源的 ID 与 revision:

  • 7B-Base:Hugging Face 源 revision 为f2cc3a689c5eba7dc7fd3757d0175d312d167604,ModelScope 源 revision 为v1.0.2,OpenMind Hub 源 ID 为PyTorch-NPU/baichuan2_7b_base
  • 13B-Base:Hugging Face 源 revision 为fa88072fee36e36282287410e00897df2f59e09b,ModelScope 源 revision 为v1.0.3,OpenMind Hub 源 ID 为Baichuan/Baichuan2_13b_base_pt

这意味着 Xinference 启动时会依据你配置的模型源(Hugging Face / ModelScope / OpenMind Hub)自动解析到对应仓库及精确 revision,保证下载的权重与内置定义一致。

启动命令与参数说明

文档中给出的启动命令模板如下(${quantization}需替换为上方列表中你选择的量化方式,${engine}替换为对应引擎):

# 7B Base xinference launch --model-engine ${engine} --model-name baichuan-2 --size-in-billions 7 --model-format pytorch --quantization ${quantization} # 13B Base xinference launch --model-engine ${engine} --model-name baichuan-2 --size-in-billions 13 --model-format pytorch --quantization ${quantization}

由于baichuan-2两档规格都只声明了quantizations: none与引擎Transformers,实际可直接使用的完整命令为:

xinference launch --model-engine Transformers --model-name baichuan-2 --size-in-billions 7 --model-format pytorch --quantization none xinference launch --model-engine Transformers --model-name baichuan-2 --size-in-billions 13 --model-format pytorch --quantization none

各关键参数的作用如下:

参数含义对 baichuan-2 的取值
--model-engine推理引擎Transformers(base 版本唯一引擎)
--model-name内置模型族名称baichuan-2
--size-in-billions模型参数量级713
--model-format模型权重格式pytorch
--quantization量化方式none(内置规格未提供量化变体)

--model-name--size-in-billions--model-format--quantization的组合即模型家族匹配(family matching)的输入。在 llm_family.py 中,match_llm函数会遍历内置家族BUILTIN_LLM_FAMILIES与用户自定义家族,按模型名、格式与规模精确匹配到唯一规格;命中后即按 llm_family.py 附近的逻辑完成规格解析。对应的单元测试可在 test_llm_family.py 中看到,例如对baichuan-2-chat执行match_llm("baichuan-2-chat", model_format="pytorch")并断言家族名匹配成功。

关于模型的更多启动选项(如 GPU 数量分配、虚拟环境、模型 UID 等),可查阅 启动指南 与 后端引擎说明;环境与安装准备请参考 安装指南。

源码级解析:内置注册表与依赖管理

baichuan-2之所以能在 Xinference 中以"一行命令"启动,得益于内置模型注册表 llm_family.json 中的完整声明,除规格与模型源外,还包括:

  • virtualenv依赖baichuan-2声明了条件化依赖——当引擎为Transformers时安装#transformers_dependencies#sentencepiecetransformers_stream_generatorsentencepiece用于 Baichuan2 的分词(SentencePiece 词表),transformers_stream_generator则用于流式生成。这意味着 Xinference 会自动为 baichuan-2 创建或复用隔离的虚拟环境并安装上述依赖,无需手工 pip 安装。
  • featured标记baichuan-2featuredfalse,说明它在内置模型列表中不作为置顶推荐项展示。

平台限制:Darwin 系统无法以 pytorch 格式运行

在 worker.py 的_check_model_is_valid中,Xinference 对 baichuan 家族模型做了明确校验:

def _check_model_is_valid(self, model_name: str, model_format: Optional[str]): # baichuan-base and baichuan-chat depend on `cpm_kernels` module, # but `cpm_kernels` cannot run on Darwin system. if platform.system() == "Darwin" and model_format == "pytorch": if "baichuan" in model_name: raise ValueError(f"{model_name} model can't run on Darwin system.")

原因是 Baichuan 基座与对话模型在 pytorch 格式下依赖cpm_kernels模块,而该模块无法在 Darwin(macOS)系统上运行。因此在 macOS 上直接执行上述xinference launch命令会抛出baichuan-2 model can't run on Darwin system.的 ValueError。若你在 Darwin 环境部署,需要避开该内置 pytorch 规格,或改用其他不依赖cpm_kernels的引擎/格式变体。

与 Chat 版本的选型对比:baichuan-2 vs baichuan-2-chat

Xinference 内置了同一 Baichuan2 家族的另一模型 baichuan-2-chat,两者在模型 ID 与能力上互补:

维度baichuan-2baichuan-2-chat
权重Baichuan2-7B/13B-BaseBaichuan2-7B/13B-Chat
Abilitiesgeneratechat
定位基座模型,用于续写/补全/二次训练指令微调对话模型,开箱即聊
引擎TransformersvLLM、Transformers

若你的场景是文本续写、模型评测或作为下游微调基础,选择baichuan-2;若需要直接与模型对话,应启动baichuan-2-chat(其启动命令形态与本文完全一致,仅--model-name与权重 ID 不同)。两档规格的 context length 均为 4096,中文与英文能力对等。

启动后的使用方式

模型启动成功后,会以唯一的 model UID 注册到 Xinference 服务。你可以:

  • 通过 RESTful API 以 OpenAI 兼容协议调用generate能力,请求参数与返回结构见 客户端 API 文档;
  • 使用 Python 客户端(xinference/client)按 model UID 创建句柄并发起补全请求;
  • 在 Web 界面的"运行中模型"页面查看 baichuan-2 的运行时状态、地址与日志。

小结

baichuan-2是 Xinference 内置模型中面向中英文开源基座场景的重要成员:4096 上下文、generate能力、7B/13B 双规格、Transformers 引擎驱动。通过本文你可以直接复制启动命令完成部署,并理解其背后的内置注册表声明、虚拟环境依赖与 Darwin 平台限制。如需对话能力,请切换至baichuan-2-chat家族。

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/16 16:19:57

开源商业化转型:机遇、挑战与实战策略

1. 开源商业化的时代机遇开源软件正在经历从"社区共建"到"商业共赢"的关键转型期。根据Linux基金会最新报告,2024年企业级开源软件采用率已达82%,但其中实现商业转化的项目不足35%。这种供需落差恰恰构成了开源商业化的黄金窗口——…

作者头像 李华
网站建设 2026/9/16 16:19:06

肇庆30米DEM与shp边界数据:从裁剪到地形因子提取全流程

简介:《广东省肇庆市DEM数字高程30m》是一份面向地理信息学习与研究者的实用数据集,包含肇庆市行政边界范围文件,适合用于地形分析、地表水资源模拟、城市规划辅助、环境研究与灾害风险评估等场景。压缩包内共12个文件,核心是30米…

作者头像 李华
网站建设 2026/9/16 16:19:05

Trippy 权限指南:raw socket 特权要求与 macOS 无特权模式全解析

Trippy 权限指南:raw socket 特权要求与 macOS 无特权模式全解析 【免费下载链接】trippy A network diagnostic tool 项目地址: https://gitcode.com/GitHub_Trending/tr/trippy Trippy 是一款基于 raw socket 的网络诊断工具,其核心探测机制决…

作者头像 李华
网站建设 2026/9/16 16:16:02

C++智能充电桩调度系统:从优先级队列到并发架构实战

简介:C智能充电桩调度系统源码包,面向需要掌握系统级C开发的初中级程序员,围绕充电桩监控、资源调度、并发请求等典型业务场景,展示面向对象设计与工程化组织方式。包内共12个文件,含5个cpp实现文件、4个h头文件及3个m…

作者头像 李华
网站建设 2026/9/16 16:15:09

微信小程序狼人杀项目实战:状态机与实时同步全解析

简介:面向微信小程序初学者的狼人杀游戏完整项目,覆盖从基础架构到核心玩法的全流程开发,适合课程设计或实战练手。项目基于JavaScript、WXML和WXSS实现,包含七大模块:UI设计(房间创建、加入与角色选择页面…

作者头像 李华