ARTI

ARTI 指南

接入你的模型

在合适的张量边界加入配置好的程序,同时保留应用目标与输入语义。

本页内容

从宿主边界开始

选择需要程序参与的模块输出位置。先配置程序,再执行挂载,并确保终端张量满足宿主边界声明的 shape。Discovery 与 preview 可以在修改宿主之前检查所选路径。

python
import arti

# program is a configured FederatedProgram.
layer = arti.ARTILayer(program)
model = arti.ARTI.attach(model, layer, layers="model.layers.*")
print(model.arti.summary())

  • 保留宿主预处理、mask 与原生损失行为。
  • 明确选择参数归属,包括骨干是否保持冻结。
  • 程序内部 shape 与挂载边界要求的 shape 分别管理。

使用共享训练会话

挂载宿主通过 model.arti.trainer 进入训练会话,原生模型通过 arti.trainer 进入。可以使用宿主的 model_loss,或明确提供目标 callable。张量对齐是主动选择的替代目标,不替换应用原始目标。

python
session = model.arti.trainer(
    engine="accelerate",
    objective="model_loss",
)
result = session.fit(loader, checkpoint_path="run.arti.st")

用 TrainingBinding 表达归属

有些应用执行一个对象,优化另一个对象拥有的参数,并保存不同的受支持状态闭包。TrainingBinding 在共享会话内表达这些关系。TaskRecipe 默认使用标准 arti.st checkpoint 路径。显式 binding save/load hook 有自己的支持范围;任务不会自动采用任意外部或 provider checkpoint codec。

恢复同一配置程序

适配资产保存受支持的程序状态与来源,冻结基础权重保持独立。加载挂载资产需要兼容程序和重建代码,仅凭相同 shape 或 Python 类名不能恢复任意实现。

也可以直接构建模型

独立应用可以直接组合 Formula 程序与普通模块,无需挂载外壳。将目标和数据交给相同任务工作流。原生 JAX 与可选 Flax 使用各自声明的原生接入路径。

保存与重载配置好的挂载

挂载产物保存其拥有的张量状态。重建固定宿主,再次提供配置好的 layer,由 ARTI 在加载权重之前校验 Federal 契约。骨干权重保持为独立依赖。

python
model.arti.save("assistant.arti.st")

fresh_model = load_base_model()
fresh_model = arti.ARTI.load(
    fresh_model, "assistant.arti.st",
    layer=layer, map_location="cpu",
)