# PEFT 可训练词元：给自定义产品标记训练新向量，其余词表保持冻结

已执行作者小词表梯度掩码及越界反例；未加载基础模型或运行PEFT训练，数值表不是模型权重。

## 运行

在本目录使用独立虚拟环境并安装requirements.txt；脚本结果写入results。

```sh
python reference/audit.py
python reference/run_sdk.py
```

fixtures是原创输入与故意失败样本；作者真值、离线合成provider和实际SDK记录各自标明，不是模型正确率。需要真实模型/账号/GPU的步骤按正文另行授权运行。

## 1. 给新增产品标记取得真实token ID

示例词表3/4是作者小词表，生产必须先扩展真实tokenizer并resize embedding，核对新标记是否被切成多个token。

## 2. 审计索引范围与冻结目标

audit.py只允许3/4发生作者数值更新，0/1/2完全不变；9越界负例应在训练前失败。这不是基础模型权重更新实测。

## 3. 设置trainable_token_indices

在支持该选项的PEFT版本配置新增token索引或对应embedding层映射。保存实际LoraConfig与tokenizer，不能只保存token字符串。

## 4. 准备包含新标记的真实训练样本

输入输出都保留新标记业务含义，避免训练集中从未出现目标token。使用自有或授权数据并保留样本来源。

## 5. 训练前后按行检查梯度与差值

目标GPU环境记录可训练参数、目标行梯度和冻结行最大差值；不要因为loss下降就宣称其他词表行冻结成功。

## 6. 保存并重新加载适配器及tokenizer

验证加载后新token ID没有变化、目标embedding仍在，其他adapter配置兼容。包内无假adapter权重。

## 7. 交付索引、掩码与真实训练回执

本包提供数据和冻结审计，未进行PEFT基础模型训练。只有实际行差值、加载和任务结果齐全后才认定训练成功。

## 官方依据

- PEFT 官方文档或源码：https://huggingface.co/docs/peft/developer_guides/lora
