Mô tả biến thể vượt ra ngoài số bit của nó
Hãy nêu tên phương pháp, cách triển khai, phiên bản và đúng bản sửa đổi của artefact. Hai biến thể bốn bit có thể dùng các cách biểu diễn, nhóm, siêu dữ liệu và kernel khác nhau. Hãy tách định dạng lưu trữ trọng số khỏi định dạng của các phép tính toán. Cũng cần ghi chú các mô-đun được giữ ở độ chính xác khác và mọi phần chuyển sang CPU.
Trong bitsandbytes, các lớp tuyến tính đã lượng tử hóa thay thế một số lớp thông thường; các mô-đun khác tuân theo dtype đã cấu hình của chúng. Do đó, hành vi này tự nó không mô tả đỉnh của tiến trình. Hãy đọc cấu hình thực tế sau khi tải, rồi kiểm tra xem biến thể có thực sự thực hiện xử lý như mong đợi hay không, thay vì một phương án dự phòng phần mềm khác.
| Trường | Điều cần giữ lại | Nhầm lẫn cần tránh |
|---|---|---|
| Nguồn gốc | Mô hình, bản sửa đổi, tokenizer, phương pháp và các phiên bản | So sánh hai mô hình khác nhau dưới cùng một tên |
| Trọng số | Định dạng, số bit, nhóm và các mô-đun bị loại trừ | Đồng nhất bốn bit với một công thức duy nhất |
| Tính toán | Dtype, kernel và thiết bị thực sự được dùng | Nhầm lẫn giữa lưu trữ và thực thi |
| Sinh | Bộ nhớ đệm, ngữ cảnh, giới hạn đầu ra và mức đồng thời | Gán cho trọng số một hiệu ứng đến từ bộ nhớ đệm |
| Chế tạo | Hiệu chuẩn có thể có và bản sửa đổi của dữ liệu | Quên mất cách artefact đã được tạo ra |
Nguồn kỹ thuật: Hugging Face Transformers 5.17 — các lớp lượng tử hóa và các dtype khác
Tách biệt hiệu chuẩn và đánh giá
Một số phương pháp dùng ví dụ để chuẩn bị lượng tử hóa. Quy trình GPTQ được tài liệu hóa trong Transformers đặc biệt yêu cầu một tập hiệu chuẩn và một tokenizer. Tập này tham gia vào việc chế tạo artefact: nó không tạo thành một bằng chứng độc lập về chất lượng. Các phương pháp khác đi theo con đường khác; đừng giả định rằng cùng một giao thức hiệu chuẩn áp dụng cho mọi định dạng.
Hãy dành các ví dụ hiệu chuẩn trong dữ liệu được phép để chuẩn bị mô hình, rồi ghi lại mã định danh, nguồn gốc, độ dài và phép biến đổi đã áp dụng. Giữ tập kiểm định để chọn cấu hình, và tập kiểm tra cuối cùng để xác nhận. Nếu bạn chọn nhiều tập hiệu chuẩn sau khi so sánh điểm số của chúng, việc tìm kiếm này thuộc về quá trình phát triển và phải được ghi vào báo cáo.
Nguồn kỹ thuật: Hugging Face Transformers 5.17 — hiệu chuẩn một phép lượng tử hóa GPTQ · Xây dựng các phân vùng theo vai trò của chúng
Tính một cận trên của trọng số mà không bán nó như một đỉnh
Lấy một mô hình giả định ba tỷ tham số, tất cả đều được lưu ở cùng số bit. Dung lượng thô được tính bằng tham số × bit / 8. Ở 16 bit, ta được 6 tỷ byte; ở 8 bit, 3 tỷ; ở 4 bit, 1,5 tỷ. Những con số này là số học minh họa, không phải kích thước quan sát được của một artefact cũng không phải nhu cầu của một mô hình đang chạy.
Chênh lệch thô giữa 16 và 4 bit là 4,5 GB, tức khoảng 4,191 GiB. Nó loại trừ các tỷ lệ, siêu dữ liệu, mô-đun không lượng tử hóa, bộ nhớ đệm và các tệp tạm. Nó cho phép đặt ra một giả thuyết về bộ nhớ cần kiểm chứng, mà không dự đoán mức giảm bốn lần của đỉnh. Hồ sơ bộ nhớ giải thích cách tách các pha và diễn giải các bộ đếm.
| Định dạng giả định | Byte thô | GB thập phân | GiB gần đúng |
|---|---|---|---|
| 16 bit | 6 000 000 000 | 6 | 5,588 |
| 8 bit | 3 000 000 000 | 3 | 2,794 |
| 4 bit | 1 500 000 000 | 1,5 | 1,397 |
Nguồn kỹ thuật: NIST — tiền tố nhị phân và thập phân · IteraGPU — ước tính và đỉnh bộ nhớ
Thay đổi trọng số trước khi thay đổi bộ nhớ đệm
Hãy bắt đầu bằng một mốc tham chiếu mà bạn biết rõ hành vi. Sau đó so sánh các biến thể trọng số với cùng bộ nhớ đệm, cùng độ dài, cùng batch hoặc cùng mức đồng thời. Nếu bạn cũng thay đổi các tham số này, bạn đang so sánh các cấu hình hoàn chỉnh: hãy nói rõ điều đó và đừng quy toàn bộ chênh lệch cho việc lượng tử hóa trọng số.
Bộ nhớ đệm KV cũng có thể được lượng tử hóa khi mô hình và engine cho phép. Đây là một lựa chọn riêng biệt. Tài liệu Transformers đặc biệt lưu ý rằng bộ nhớ đệm lượng tử hóa có thể làm tăng độ trễ đối với các ngữ cảnh ngắn khi vẫn còn đủ bộ nhớ. Hãy kiểm tra thay đổi thứ hai này trong một loạt thử nghiệm riêng; tiết kiệm nhiều bộ nhớ hơn không đảm bảo độ trễ tốt hơn.
Nguồn kỹ thuật: Hugging Face Transformers 5.17 — bộ nhớ đệm KV lượng tử hóa và đánh đổi về độ trễ
Ví dụ về quy tắc chất lượng: một mức giảm nhỏ vẫn có thể không thể chấp nhận
Đây là một minh họa cho việc ra quyết định, không chạy mô hình. Một dự án đánh giá 200 tài liệu và xác định trước khi thử nghiệm mức mất mát tối đa là một điểm phần trăm so với mốc tham chiếu. Dự án cũng yêu cầu tối thiểu 90 % thành công trên 20 tài liệu quan trọng nằm trong số 200 tài liệu đó. Một tài liệu chỉ được chấp nhận khi tất cả các trường bắt buộc của nó đều đúng.
Các giá trị giả định dưới đây khiến A được chấp nhận theo cả hai quy tắc: 94 % thay vì 95 %, và 18/20 trên nhóm quan trọng. B thất bại ở cả hai. Ta chưa thể tuyên bố A là người thắng: cả mức đỉnh bộ nhớ lẫn thời lượng đều không được đưa ra. Hơn nữa, các tổng số không cho thấy những tài liệu nào đã thay đổi; hãy xem xét các lỗi được ghép cặp để phát hiện những suy giảm nghiêm trọng mới.
| Biến thể | Tài liệu được chấp nhận | Tỷ lệ tổng thể | Các trường hợp quan trọng được chấp nhận | Kết luận theo các quy tắc này |
|---|---|---|---|---|
| Tham chiếu | 190 / 200 | 95 % | 19 / 20 = 95 % | Điểm so sánh |
| A | 188 / 200 | 94 % | 18 / 20 = 90 % | Đạt yêu cầu về chất lượng |
| B | 184 / 200 | 92 % | 16 / 20 = 80 % | Bị từ chối |
Nguồn kỹ thuật: Xem xét các lỗi thay vì chỉ nhìn vào tổng số
Thực hiện một so sánh mà các chênh lệch đều có thể giải thích được
Trước tiên hãy chuẩn bị hợp đồng so sánh, sau đó là các tệp kết quả. Quy trình sau đây phải được thực hiện trên khối lượng công việc của bạn; các con số trước đó không thay thế được nó. Nếu một biến thể không tải được hoặc không có các toán tử cần thiết, hãy giữ lại thất bại đó như một thông tin về khả năng tương thích.
- Cố định tập dữ liệu, các tham chiếu, mô hình, tokenizer, prompt và quy tắc đầu ra; giữ cho các trường hợp dài và khó có thể nhận diện được.
- Ghi lại quá trình hiệu chỉnh, artefact đã xuất và cấu hình thực tế. Kiểm tra các thiết bị được sử dụng và các trường hợp truyền CPU/GPU nếu có.
- Tách biệt giai đoạn tạo, tải, khởi động làm nóng và xử lý đã ổn định. Dùng cùng các mốc đo lường và giữ lại các lần lặp thô.
- Ghi nhận mức đỉnh theo từng thiết bị và từng giai đoạn; giữ allocated và reserved tách biệt. Không cộng các bộ đếm này và không trừ các giá trị cực đại độc lập của chúng.
- Đánh giá định dạng, nội dung và các nhóm con đã thống nhất, sau đó đối chiếu các lỗi theo định danh.
- Tải lại artefact đã chọn trong một tiến trình mới và thực hiện lại một kiểm tra đã định. Một kết quả thu được trước khi xuất không tự động xác nhận việc tải lại.
Nguồn kỹ thuật: Đo lường bộ nhớ một cách chính xác · Xác định số lần lặp lại và cách đo thời gian
Liên hệ đánh đổi với chi phí đã bỏ ra
Tiết kiệm bộ nhớ có thể mở rộng các cấu hình khả thi, cho phép chạy nhiều tiến trình song song hơn hoặc đơn giản là để lại dư địa. Nó không tự động giảm chi phí. Nếu khoảng thời gian, các lô đã đặt trước và các sản phẩm bàn giao được chấp nhận vẫn giữ nguyên, thì chi phí của gói vẫn giữ nguyên, ngay cả khi một lượt chạy nhanh hơn.
Hãy đưa vào lịch trình cả phần hiệu chỉnh nếu có, lượng tử hóa, đánh giá, những lần thử bị loại bỏ và việc nạp lại. Sau đó so sánh các gói trọn vẹn 3, 7 hoặc 30 ngày giữa những lựa chọn đáp ứng tiêu chí của bạn. Tỷ lệ trên mỗi tập dữ liệu hữu ích chỉ được tính với những tập dữ liệu thực sự hoàn thành và được chấp nhận; các lần lặp lại để đo thời gian không tạo ra sản phẩm bàn giao mới.
Nếu chỉ một lượt thuê được dùng để so sánh nhiều biến thể, thì số tiền đó là chi phí chung của cả chiến dịch. Đừng tính nhẩm toàn bộ gói cho từng biến thể rồi cộng các khoản đó lại như những khoản chi thực tế riêng biệt. Để phân bổ một phần mang tính phân tích, hãy công bố một quy ước; nó không làm thay đổi tổng chi phí đã bỏ ra.
Nguồn kỹ thuật: IteraGPU — toàn bộ gói và chi phí của một thí nghiệm
Kết luận bằng một cấu hình và những giới hạn của nó
Quyết định cuối cùng nêu rõ tên artifact, môi trường, khối lượng công việc được bao phủ, tiêu chí chất lượng đã đạt được và ràng buộc đã được cải thiện. Nếu các biến thể gần như tương đương, hãy giữ nguyên sự không chắc chắn đó và ưu tiên lựa chọn mà bạn biết cách tải lại và giải thích. Số bit tự nó không phải là một thứ tự ưu tiên.
Một kết luận trên một tập dữ liệu ngắn không tự động mở rộng sang các ngữ cảnh dài, sang một ngôn ngữ khác hay nhiều truy vấn đồng thời hơn. Một phương pháp lượng tử hóa được chọn cho suy luận cũng không định nghĩa các tham số có thể huấn luyện của một lần fine-tuning. Hãy giữ các câu hỏi này tách biệt và xác nhận biến thể đã chọn trên tập kiểm tra giữ riêng.
Câu hỏi thực tế
Bốn bit có luôn tiêu tốn ít bộ nhớ hơn bốn lần so với mười sáu bit không?
Khối lượng thô của các trọng số được lưu trữ đồng nhất tuân theo tỷ lệ đó. Mức đỉnh tổng cộng còn bao gồm siêu dữ liệu, các mô-đun ở định dạng khác, bộ nhớ đệm và các tệp tạm. Hãy đo lường quá trình chạy thực tế trước khi công bố một mức tiết kiệm tổng thể.
Tôi có thể hiệu chỉnh lượng tử hóa bằng tập kiểm tra cuối cùng của mình không?
Khi đó tập kiểm tra này sẽ tham gia vào việc tạo ra sản phẩm và không còn là một đánh giá độc lập nữa. Hãy chuẩn bị hiệu chỉnh bằng một tập được phép dùng cho phát triển, rồi giữ lại một phần xác nhận tách riêng.
Một biến thể nhỏ hơn có nhất thiết rẻ hơn để vận hành không?
Không. Ngân sách phụ thuộc vào khoảng thời gian và các lô được huy động, vào khâu chuẩn bị và các kết quả hữu ích được chấp nhận. Một sự giảm bộ nhớ mà không thay đổi những yếu tố này có thể cải thiện biên lợi nhuận mà không giảm số tiền thuê.