GPU cho nghiên cứu ML · Thanh toán crypto không KYC
IteraGPU
Phương pháp / Độ chính xác và đánh đổi

Chọn một phép lượng tử hóa dựa trên kết quả, không phải dựa trên số bit.

Một phép lượng tử hóa chỉ hữu ích nếu nó tôn trọng chất lượng của bạn đồng thời cải thiện một ràng buộc thực tế: bộ nhớ, độ trễ hay ngân sách đã cam kết. Hãy so sánh nó với một mốc tham chiếu dùng cùng đầu vào, rồi ghi nhận riêng định dạng trọng số, độ chính xác tính toán và bộ nhớ đệm. Một tệp được quảng cáo là bốn bit không có nghĩa là toàn bộ quá trình thực thi dùng bốn bit, cũng không có nghĩa là nó sẽ nhanh hơn. Quyết định phải luôn gắn với một khối lượng công việc đã đo lường.

01 /

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.

Bản kê tối thiểu để so sánh hai artefact đã lượng tử hóa
TrườngĐiều cần giữ lạiNhầm lẫn cần tránh
Nguồn gốcMô hình, bản sửa đổi, tokenizer, phương pháp và các phiên bảnSo 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ánDtype, kernel và thiết bị thực sự được dùngNhầm lẫn giữa lưu trữ và thực thi
SinhBộ nhớ đệm, ngữ cảnh, giới hạn đầu ra và mức đồng thờiGán cho trọng số một hiệu ứng đến từ bộ nhớ đệm
Chế tạoHiệu chuẩn có thể có và bản sửa đổi của dữ liệuQuê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

02 /

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

03 /

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.

Dung lượng thô tính bằng byte = tham số × bit / 8. Dung lượng tính bằng GiB = byte / 2³⁰.
Tính toán minh họa cho 3 tỷ tham số được lưu đồng nhất — chưa kể các chi phí phụ trội
Định dạng giả địnhByte thôGB thập phânGiB gần đúng
16 bit6 000 000 00065,588
8 bit3 000 000 00032,794
4 bit1 500 000 0001,51,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ớ

04 /

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ễ

05 /

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.

Mức giảm của A = 95 − 94 = 1 điểm; mức giảm của B = 95 − 92 = 3 điểm. Một điểm phần trăm không phải là mức giảm tương đối 1%.
Chất lượng giả định để giải thích các ngưỡng; không có hiệu năng GPU nào được đo
Biến thểTài liệu được chấp nhậnTỷ lệ tổng thểCác trường hợp quan trọng được chấp nhậnKết luận theo các quy tắc này
Tham chiếu190 / 20095 %19 / 20 = 95 %Điểm so sánh
A188 / 20094 %18 / 20 = 90 %Đạt yêu cầu về chất lượng
B184 / 20092 %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ố

06 /

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

07 /

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

08 /

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ê.