ARTI
← 回到 ARTI

你的第一份程序 / Python · CPU

加一处运算, 留下你的改动。

给熟悉的 LoRA 多加一步 SiLU。用一份小脚本,运行你的新规则,保存声明,再重新加载。

开始这个练习 Python 3.10+ · 无需 GPU 或基座模型

首次准备需要联网下载 Python 依赖。这个练习不进行训练。

01 / 从这里开始

熟悉的公式, 加一步运算。

下载脚本,用文本编辑器打开。把顶部的 my_rule 函数替换为示例中的函数。scalar_map 将你的新规则加入两次投影之间。

下载练习脚本

新建文件夹,例如 arti-first-program,将脚本以 first_program.py 保存进去。修改后保存文件,并在这个文件夹中打开终端。

改动前

base + B(Ax)

改动后 · gain = 1

base + B(SiLU(Ax))

Python / 替换 my_rule
def my_rule(hidden):
    hidden = api.scalar_map(
        hidden, mode="silu")
    return hidden

复制时保留函数缩进。若没有加入 scalar_map,脚本会运行原来的线性计算。

02 / 在你的电脑上

准备一个, 运行它的地方。

先安装 Python 3.10 或更新版本。在练习文件夹里运行这些命令,创建独立环境并安装 CPU 依赖。已有兼容的 ARTI 环境时,也可以直接复用。

这个练习无需阅读上手包,不下载 Qwen 权重。若终端找不到 Python,请先安装它,再重新打开终端。

终端 / 安装一次
python -m venv .venv
.venv\Scripts\python -m pip install "torch==2.11.0" --index-url https://download.pytorch.org/whl/cpu
.venv\Scripts\python -m pip install "arti-fit==3.3.0"

如果安装中断

保留当前文件夹,按下载报错检查网络,然后重新运行失败的 pip 命令。依赖安装完成后,使用下面对应系统的运行命令。

环境要求与支持范围 ↗

03 / 把改动留下

运行一次, 看见留下的东西。

在同一个文件夹运行这条命令。脚本比较原 LoRA 与你的规则,保存 program.json,再在这次运行中使用相同绑定重载它。

终端 / 比较、保存、重载
.venv\Scripts\python first_program.py

成功运行后,终端会打印核对记录,并在 program-change/ 中保存两个文件。

  • program.json改写后的计算声明
  • result.json改动前后与重载的核对记录
仍是四条指令、没有变化?

回到 my_rule,确认 SiLU 那一行在 return hidden 之前,并且已保存文件,然后再运行同一条命令。

program.json保存的声明 · 节选

你加入的运算

SiLU{"mode":"silu"}
同一位置的输出 · y[0,0,0]
0.2635770.212425

固定输入 · 加入 SiLU 前 / 后 · 记录值显示至六位小数

计算声明
4 → 5条指令
绑定的数值
65,536保持不变
数值保持不变
same_bindings: true
计算产生了变化
output_max_abs_change > 0
重载声明复现输出
reload_max_abs_difference: 0

卡片展示已记录的 SiLU 练习,不是在浏览器里计算的结果。你本机生成的 result.json 才是这次运行的记录。

接下来的小想法

下一行, 由你来写。

现在可以试另一种运算:在 my_rule 中,把 mode="silu" 改为 mode="tanh",再运行同一条命令,核对新声明与记录。

这个练习使用四个固定的 1024 维输入和初始化数值,零次训练更新。它保存声明,并使用调用方提供的绑定核对同次运行中的重载;不会把这些绑定数值保存成完整模型,也不代表任务效果。