中文项目简介 | Documentation | 中文文档
InfiniLM-ModelHub 是 InfiniLM 的 out-of-tree 模型定义仓库。它把模型适配、配置转换、processor 选择、权重重映射规则和可选 C++ backend 插件放在 InfiniLM 主仓之外,避免推理引擎仓库随着模型数量增长而不断膨胀。
插件模块只依赖 InfiniLM 暴露的 infinilm.plugins API。Python 插件逻辑只在模型加载阶段运行,用于适配 config、选择 processor、转换 checkpoint key 或声明 backend plugin;逐 token 推理热路径仍由 InfiniLM C++ backend 执行。
- 让用户可以在 InfiniLM 主仓之外定义新模型配置。
- 对能复用已有 backend 的模型,用几十行 Python 完成 config 适配和权重映射。
- 对不能复用已有 backend 的模型,提供 out-of-tree C++ backend 和模型专用算子的实现路径。
- 用小型 config fixture 快速验证模型注册、config 适配和 backend 选择,不需要下载大模型权重。
- 提供模型配置矩阵和插件冒烟测试,用于验证如何与 InfiniLM 配置连接。
cpp_backends/ out-of-tree C++ backend 示例
docs/ 设计说明和兼容性文档
examples/ 小型 config fixture 和插件冒烟测试
src/infinilm_model_hub/ Python 插件模块和复用工具
tests/ 脚本式验证入口
tools/ 构建、验证和检查工具
先安装 InfiniLM,再安装 ModelHub:
cd InfiniLM-ModelHub
python -m pip install -e . --no-build-isolation运行基础插件验证:
python tests/verify_plugin_repo.py运行模型矩阵 config 验证:
python tests/verify_model_matrix.py构建 out-of-tree C++ backend 插件:
python tools/build_backend_plugins.py \
--infinilm-root <path-to-InfiniLM> \
--infini-root <path-to-InfiniCore-install>如果模型可以复用已有 InfiniLM backend,通常只需要定义一个 ModelSpec:
from infinilm.plugins import ModelSpec, register_model
def adapt_config(config):
config = dict(config)
config["head_dim"] = config["hidden_size"] // config["num_attention_heads"]
return config
register_model(
ModelSpec(
model_type="my_llama_family",
backend_model_type="llama",
config_adapter=adapt_config,
processor="llama",
)
)如果 checkpoint 的权重命名或布局不同,可以组合 src/infinilm_model_hub/weights.py 中的复用规则,例如 rename() 和 split_fused()。
- 英文 README:README.md
- 模型配置说明:docs/model_configuration.md
- 完整 out-of-tree backend 说明:docs/out_of_tree_backend.md
- 中文使用文档:docs/zh/README.md
- 示例说明:examples/README.md