ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Xinference 部署 deepseek-coder 完整指南:14 种模型规格、启动命令与源码级解析

Xinference 部署 deepseek-coder 完整指南:14 种模型规格、启动命令与源码级解析 Xinference 部署 deepseek-coder 完整指南14 种模型规格、启动命令与源码级解析【免费下载链接】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/inferenceXinference 内置的 deepseek-coder 是一组从 2T tokens87% 代码 13% 中英文自然语言从头训练的代码语言基础模型提供 1.3B / 6.7B / 7B / 33B 四个规格并以 pytorch、ggufv2、gptq、awq 四种模型格式共 14 个 Model Spec 上架。本文完整覆盖其模型规格清单与逐一可复制的xinference launch命令并结合 llm_family.json、llm_family.py 与 cmdline.py 的源码讲清--size-in-billions下划线语义、引擎校验与规格匹配等底层机制帮助你正确选规格、写命令并排查常见启动错误。一、模型概览deepseek-coder 的基础元数据在开始部署前先明确该模型在 Xinference 内置目录中的关键元数据来源doc/source/models/builtin/llm/deepseek-coder.rst 与 llm_family.json属性取值说明Context Length16384模型上下文窗口长度Model Namedeepseek-coder启动命令中--model-name的取值Languagesen, zh支持英文与中文Abilitiesgenerate仅具备生成能力注意这是 base 模型无 chat 模板ArchitecturesLlamaForCausalLM底层为 LLaMA 架构model_type为llama见 llm_family.json模型描述Deepseek Coder is composed of a series of code language models, each trained from scratch on 2T tokens, with a composition of 87% code and 13% natural language in both English and Chinese.每个规格均独立训练非蒸馏小模型从源码结构看model_ability仅标记为generate意味着 API 侧不会为它挂载聊天模板BUILTIN_LLM_PROMPT_STYLE只服务于 chat 家族见 llm_family.py。因此 deepseek-coder 适合作为补全/生成型模型调用若需要指令对话能力应选用仓库中同样内置的deepseek-coder-instruct家族在 llm_family.json 中紧随其后定义描述为initialized from deepseek-coder-base and fine-tuned on 2B tokens of instruction data。二、14 个 Model Spec 完整清单deepseek-coder 的完整规格定义在 llm_family.json 的model_specs数组中。按下表可以一次看清哪种格式 × 哪个规格 × 哪些量化 × 哪些引擎的组合矩阵2.1 pytorch 格式原始权重量化为 noneSpecSizeModel ID支持引擎模型来源Model Spec 11_3deepseek-ai/deepseek-coder-1.3b-basevLLM, Transformers, SGLangHugging Face / ModelScopeModel Spec 26_7deepseek-ai/deepseek-coder-6.7b-basevLLM, Transformers, SGLangHugging Face / ModelScopeModel Spec 37deepseek-ai/deepseek-coder-7b-base-v1.5vLLM, Transformers, SGLangHugging FaceModel Spec 433deepseek-ai/deepseek-coder-33b-basevLLM, Transformers, SGLangHugging Face / ModelScope要点pytorch 格式的quantization只有none一种即全精度原始权重注意大小写与命名差异官方 7B 版本命名为7b-base-v1.5而 1.3B / 6.7B / 33B 为*-base7B 的 v1.5 版本在 llm_family.json 中仅登记了 huggingface 源未登记 modelscope 源。2.2 ggufv2 格式llama.cpp 引擎专用SpecSizeModel ID支持量化Model Spec 51_3TheBloke/deepseek-coder-1.3b-base-GGUFQ2_K, Q3_K_L, Q3_K_M, Q3_K_S, Q4_0, Q4_K_M, Q4_K_S, Q5_0, Q5_K_M, Q5_K_S, Q6_K, Q8_0Model Spec 66_7TheBloke/deepseek-coder-6.7B-base-GGUF同上12 种Model Spec 77dagbs/deepseek-coder-7b-base-v1.5-GGUF11 种无 Q4_0Q2_K, Q3_K_L, Q3_K_M, Q3_K_S, Q4_K_M, Q4_K_S, Q5_0, Q5_K_M, Q5_K_S, Q6_K, Q8_0Model Spec 833TheBloke/deepseek-coder-33B-base-GGUF同 Model Spec 512 种ggufv2 格式只能搭配 llama.cpp 引擎且每条 spec 携带model_file_name_template如 llm_family.json 中的deepseek-coder-1.3b-base.{quantization}.ggufXinference 下载时会将{quantization}占位符替换为你在--quantization中选择的值只下载对应量化文件而非整个 GGUF 仓库。2.3 gptq / awq 格式Int4 权重量化Spec格式SizeModel IDModel Spec 9gptq1_3TheBloke/deepseek-coder-1.3b-base-GPTQModel Spec 10gptq6_7TheBloke/deepseek-coder-6.7B-base-GPTQModel Spec 11gptq33TheBloke/deepseek-coder-33B-base-GPTQModel Spec 12awq1_3TheBloke/deepseek-coder-1.3b-base-AWQModel Spec 13awq6_7TheBloke/deepseek-coder-6.7B-base-AWQModel Spec 14awq33TheBloke/deepseek-coder-33B-base-AWQgptq 与 awq 均只支持Int4一种量化引擎同样是 vLLM、Transformers、SGLang 三选一注意 gptq/awq 均无 7B 规格7B 只出现在 pytorch 与 ggufv2 中。三、启动命令从占位符到可执行每个 Model Spec 对应一条启动命令模板。命令中的两个占位符含义如下参数定义见 cmdline.py${engine}替换为该 spec 的 Engines 列表之一。pytorch/gptq/awq 可选vLLM、Transformers、SGLang大小写不敏感见下文源码分析ggufv2 只能填llama.cpp。${quantization}替换为该 spec 的 Quantizations 列表之一。pytorch 填nonegptq/awq 填Int4ggufv2 填对应 GGUF 量化档位。各格式的代表性完整命令pytorch 全精度以 33B 为例xinference launch --model-engine vLLM --model-name deepseek-coder --size-in-billions 33 --model-format pytorch --quantization none1.3B pytorch注意下划线大小写法xinference launch --model-engine vLLM --model-name deepseek-coder --size-in-billions 1_3 --model-format pytorch --quantization noneggufv2 llama.cpp以 7B Q4_K_M 为例xinference launch --model-engine llama.cpp --model-name deepseek-coder --size-in-billions 7 --model-format ggufv2 --quantization Q4_K_Mgptq / awq Int4以 33B GPTQ 为例xinference launch --model-engine vLLM --model-name deepseek-coder --size-in-billions 33 --model-format gptq --quantization Int4xinference launch --model-engine vLLM --model-name deepseek-coder --size-in-billions 6_7 --model-format awq --quantization Int4--model-name、--model-engine、--size-in-billions、--model-format、--quantization五个核心参数的 CLI 定义位于 cmdline.py其余可选参数如--n-gpu、--n-worker、--replica、--model-uid在同一处定义可按需追加。3.1 为什么--size-in-billions要写1_3而不是1.3这是本文最容易踩的坑。1_3是 Xinference 对1.3B的编码方式CLI 层保留字符串cmdline.py 中只有当取值既不含_也不含.时才转换为 int1_3会原样以字符串传给后端避免int(1_3)被解释成 18规格层保留下划线llm_family.py 的 spec 校验器同样以含_保持字符串、否则转 int的规则处理model_size_in_billions注释明确写道1_8 just returns 1_8, otherwise int(1_8) returns 18匹配时归一化实际匹配由 match_model_size 完成——两侧取值都将_替换为.后再比较整数部分再尝试按 int 相等比较。所以1_3与 JSON 中的1_3、33与33都能正确命中而 convert_model_size_to_float 则在需要浮点语义如显存估算时把1_3转成1.3。因此 1.3B 和 6.7B 两个规格必须使用1_3/6_7的下划线写法7B 与 33B 则直接写整数7/33。3.2 引擎与规格的校验链路启动请求最终会经过两道校验理解它们可以解释绝大多数Model ... cannot be run on engine ...报错LLM 必须显式指定引擎cmdline.py 中--model-type默认为LLM若--model-engine为 None 直接抛出ValueError: --model-engine is required for LLM models.引擎-格式-规格-量化四元组匹配check_engine_by_spec_parameters 按model_name → model_engine → (model_format, model_size_in_billions, quantizations)逐层查找。其中引擎名匹配是大小写不敏感的get_model_engine_from_spell会先做 lowercase 比对所以--model-engine vllm与--model-engine vLLM等效但四元组任一不匹配就会抛出形如Model deepseek-coder cannot be run on engine llama.cpp, with format pytorch, size 33 and quantization none.的错误——例如把 ggufv2 的量化档位填到 pytorch 格式上、或对 7B 使用 gptq 格式都会命中该分支规格解析match_llm 在BUILTIN_LLM_FAMILIES 用户注册家族中按名字、格式、大小、量化大小写不敏感逐一过滤未指定量化时 pytorch 格式默认取none、其他格式取 spec 自带量化并支持通过{quantization}模板展开model_id。另外llm_family.json 中该家族还声明了按引擎区分的 virtualenv 依赖#transformers_dependencies# ; #engine# Transformers、#vllm_dependencies# ; #engine# vllm等配合 check_engine_by_spec_parameters_with_virtual_env 的引擎标记校验保证启用虚拟环境时所选引擎确实登记在该模型的依赖清单中。3.3 本地缓存目录命名模型文件按名称-格式-大小b-量化组织在缓存目录中构造逻辑见 _get_cache_dir_for_model_mem例如 6.7B pytorch 的目录形如deepseek-coder-pytorch-6_7b-none。这也解释了为什么--size-in-billions的下划线必须与 JSON 登记值保持一致它是缓存路径的一部分。四、规格选择建议与常见错误排查结合上文清单与源码行为给出实操性建议有 GPU 且追求吞吐pytorch vLLM/SGLang 全精度小规格或 gptq/awq Int433B 大规格量化后显存占用显著下降引擎支持相同CPU 或无 GPU 环境ggufv2 llama.cpp量化档位按内存预算选择——Q4_K_M是通用折中Q8_0质量上限更高但内存占用接近全精度需要对话/指令能力deepseek-coder 的 ability 仅为generate指令场景请改用内置的 deepseek-coder-instruct常见报错对照缺--model-engine→ 见 3.2 第 1 条CLI 强制要求cannot be run on engine ...→ 四元组不匹配核对--model-format与--quantization是否取自同一 spec 行如 7B 没有 gptq/awq 规格ggufv2 只能用 llama.cpp大小写混用量化与引擎名匹配均不区分大小写见 match_llm 中的_match_quantization但--size-in-billions必须与 JSON 登记值逐字符一致1_3/6_7/7/33。五、延伸阅读家族级原始定义llm_family.json含context_length、model_lang、architectures、virtualenv等字段instruct 版本定义llm_family.json规格匹配与引擎校验实现llm_family.pyCLI 参数定义与 LLM 引擎强校验cmdline.py相关文档入口内置 LLM 模型文档目录以及同系列的 deepseek-coder-instruct 页面如该文件存在于仓库中。以上全部内容以当前仓库中的模型目录与 CLI 源码为准实际可下载的具体量化文件以模型源仓库为准本文不对外部站点作可用性承诺。【免费下载链接】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),仅供参考
返回列表