Demo: từ FP32 tới INT4 tới silicon

Thuộc loạt AI cho kỹ sư nhúng. Số lấy từ chính firmware/model/model.bin đã commit, sinh bằng src/trace_quant.py.

Câu "INT4 tiết kiệm bộ nhớ" ai cũng nói được. Trang này cho bạn nhìn thấy nó lấy đi cái gì, trên đúng hàng weight của token cat trong model đang chạy.

Chỗ đáng dừng lại

Nhìn cột sai số ở bảng 2, và để ý những dòng tô đỏ.

Weight -0.00033 bị nén thành 0. Không phải vì nó quá nhỏ so với chính nó, mà vì nó nằm chung nhóm với một weight lớn hơn 500 lần. Scale của cả nhóm do giá trị lớn nhất quyết định, và INT4 chỉ có 15 mức để chia. Mọi thứ dưới nửa bước lượng tử biến mất.

Đó là toàn bộ lý do kích thước nhóm tồn tại như một tham số. Nhóm nhỏ thì mỗi scale phục vụ ít weight hơn nên bám sát hơn, nhưng phải lưu nhiều scale hơn. Bảng 3 cho bạn đo cái đánh đổi đó bằng số thay vì đoán.

Sinh lại

cd src && uv run python trace_quant.py \
    --run ../runs/ple-jetson-s0.pt --bin ../firmware/model/model.bin \
    --out ../trace_quant.json

Script thoát mã 1 nếu bản giải nén không khớp model.bin, nên trang này không thể hiển thị một model khác với model đang chạy.


Bài viết thuộc loạt AI cho kỹ sư nhúng. Góp ý: mở issue tại github.com/ninhnn2/machineai.