GPT-OSS sử dụng định lượng MXFP4 (mà MLX hiện đã hỗ trợ). Hiện tại có hai định dạng FP4 đang lưu hành: MXFP4 và NVFP4 (NV cho Nvidia). Khi nhìn vào cách GPT-OSS sử dụng MXFP4, nó có phần không tối ưu. Tôi nghĩ rằng NVFP4 sẽ là định dạng được sử dụng phổ biến hơn trong tương lai. Chi tiết hơn bên dưới: Cả hai định dạng đều định lượng trọng số thành điểm động 4-bit (e2 m1) với một tỷ lệ độc đáo cho mỗi nhóm. Sự khác biệt là kích thước nhóm và cách tỷ lệ cho mỗi nhóm được mã hóa. - MXFP4 sử dụng tỷ lệ e8m0 (điểm cố định, 8-bit) với kích thước nhóm là 32. Nó được nâng lên lũy thừa 2 trước khi nhân với trọng số. - NVFP4 sử dụng tỷ lệ e4m3 (fp8) với kích thước nhóm là 16. Nó được nhân trực tiếp với trọng số. Việc mã hóa tỷ lệ trong MXFP4 khá không tối ưu vì nó không có đại diện cho nhiều giá trị trong khoảng mà chúng ta cần. Thực tế, nếu bạn nhìn vào phân phối tỷ lệ cho GPT-OSS, nó cực kỳ tập trung quanh chỉ một vài giá trị. Ví dụ, đối với lớp MoE thứ hai mà tôi đang xem, chỉ có 8/256 giá trị khả dụng được sử dụng. (Xem biểu đồ).
17,71K