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ằngsrc/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.