# 068 量化机制最小实验 ## 执行 ```bash python3 -m venv .venv source .venv/bin/activate python3 -m pip install -r code/requirements.txt python3 code/minimal_quantization.py > code/smoke_test.txt python3 code/audit_results.py python3 -m py_compile code/minimal_quantization.py code/audit_results.py ``` 以上从文章目录运行。默认输出在脚本所在 code/,重复运行会更新实验生成的文件。可用 `--out /absolute/new/path` 保留另一次结果;审计脚本默认读取自身目录。环境安装命令为读者准备,本次未运行 pip/venv:使用 Codex 已有 Python 3.12.14、NumPy 2.3.5,CPU smoke test 已执行。系统 Python 无 NumPy、无 torch。 ## 实验定义 - 独立 RNG 680/681/682 生成训练/开发/测试的 256/64/128 条序列,长度34;每条前2个词元只用于上下文,后32个评分。序列无完全重复交叉;短上下文与生成规则跨集合相同,非新任务泛化。 - 词表0–15。90%概率按 `(last + 1 + previous % 2) % 16` 生成,否则均匀随机。没有自然语言数据或分词器。 - E[16,8],两词元拼接16维,tanh隐藏64维,输出16类,2256参数;Adam lr0.01,batch128,800步;初始化/抽样种子68/69/70。仅在200/400/600/800步用开发NLL选模型。 - 所有量化配置预先固定,不看测试集选参数。只量化E/W1/W2,bias保留FP32。权重RTN(round-to-nearest)使用absmax对称尺度,无校准数据、反向量化训练或GPTQ/AWQ误差补偿。 - G32明确表示按C顺序展平后每32个值一组,可能跨原矩阵行,不宣称等同官方按输入通道分组。TENSOR表示整个张量一个尺度。INT4用[-7,7]十五个对称等级;编码q+8,两个4位码打包一字节,码0未使用。INT8用[-127,127]。 - `*.bin` 为原始整数payload,`*.scale` 为little-endian FP32尺度,`*.f32` 为未量化张量。manifest记录形状、位宽和组长。报告payload不含manifest/文件系统块/容器头;总目录还包括评测NLL,不能当作模型体积。 - 实际所有前向计算均FP32。预先反量化缓存路径和每次解包反量化+前向路径分别计时;不从磁盘读入。batch1、context2,预热20次,101次计时,输出中位数/p90及原始样本。它不是完整自回归decode、不是生成token/s,也不是INT4或INT8加速内核。 - 环境默认设置三类CPU线程环境变量为1,并记录实际值;NumPy链接的BLAS后端不保证完全服从这些变量。微秒计时受系统状态影响;不用于设备间排名。 ## 产物与审计 `data.npz` 保存三组序列;`fp32_seed*.npz` 保存开发集所选权重;每个配置子目录保存打包权重、尺度、形状和4096个测试词元的NLL;`results.json` 保存训练轨迹、误差、字节数和计时。`audit_results.py` 从实际磁盘权重重新前向,核对每个NLL、PPL、payload字节和开发集选点,并测试整数所有可用码的往返。 有限差分检查五类参数各一个位置,不是全梯度证明;另有全零组、打包解包、文件回读、数据无整条重复与训练损失改善检查。相同权重MSE而不同输出误差的二维反例为独立构造,不是训练模型结果。 ## 未验证边界 没有GPU、torch、官方CUDA内核或真实语言模型运行。本次不提供GPU速度/峰值显存数字,不声称复现LLM.int8()、GPTQ、AWQ论文benchmark。自然语言PPL、滑窗评测、模型/分词器revision锁定、官方代码commit、CUDA兼容性、量化部署内核和prefill/decode性能均待人工核验。正式迁移应先按论文仓库的模型支持范围选定版本,校准与测试文档分离;先复现浮点PPL,再改变位宽、组长和内核。