Hub documentation
GGUF
GGUF
Hugging Face Hub hỗ trợ tất cả các định dạng tệp, nhưng có các tính năng tích hợp sẵn cho định dạng GGUF, một định dạng nhị phân được tối ưu hóa để tải và lưu trữ mô hình nhanh chóng, giúp hiệu quả cao cho mục đích suy luận. GGUF được thiết kế để sử dụng với GGML và các trình thực thi khác. GGUF do @ggerganov phát triển, người cũng là nhà phát triển của llama.cpp, một framework suy luận LLM bằng C/C++ phổ biến. Các mô hình ban đầu được phát triển trong các framework như PyTorch có thể được chuyển đổi sang định dạng GGUF để sử dụng với các engine đó.

Như chúng ta có thể thấy trong biểu đồ này, khác với các định dạng tệp chỉ chứa tensor như safetensors – vốn cũng là định dạng mô hình được khuyến nghị cho Hub – GGUF mã hóa cả các tensor lẫn một bộ metadata chuẩn hóa.
Tìm tệp GGUF
Bạn có thể xem tất cả các model có tệp GGUF bằng cách lọc theo thẻ GGUF: hf.co/models?library=gguf. Hơn nữa, bạn có thể sử dụng công cụ ggml-org/gguf-my-repo để chuyển đổi/lượng tử hóa trọng số model của bạn thành trọng số GGUF.

Ví dụ, bạn có thể xem TheBloke/Mixtral-8x7B-Instruct-v0.1-GGUF để thấy các tệp GGUF hoạt động như thế nào.

Trình xem thông tin metadata & tensors
Hub có trình xem dành cho các tệp GGUF, cho phép người dùng kiểm tra thông tin metadata & tensors (tên, shape, độ chính xác). Trình xem này có sẵn trên trang mô hình (ví dụ) & trang tệp (ví dụ).

Sử dụng với các công cụ mã nguồn mở
Phân tích metadata với @huggingface/gguf
Chúng tôi cũng đã tạo ra một trình phân tích GGUF bằng javascript hoạt động trên các tệp được lưu trữ từ xa (ví dụ: Hugging Face Hub).
npm install @huggingface/gguf
import { gguf } from "@huggingface/gguf";
// remote GGUF file from https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGUF
const URL_LLAMA = "https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGUF/resolve/191239b/llama-2-7b-chat.Q2_K.gguf";
const { metadata, tensorInfos } = await gguf(URL_LLAMA);Tìm thêm thông tin tại đây.
Các loại lượng tử hóa
| type | nguồn | mô tả |
|---|---|---|
| F64 | Wikipedia | Số thực độ chính xác kép chuẩn IEEE 754 64-bit. |
| I64 | GH | Số nguyên có độ rộng cố định 64-bit. |
| F32 | Wikipedia | Số thực động độ chính xác đơn chuẩn IEEE 754 32-bit. |
| I32 | GH | Số nguyên có độ rộng cố định 32-bit. |
| F16 | Wikipedia | Số thực độ chính xác kép (half-precision) chuẩn IEEE 754 16-bit. |
| BF16 | Wikipedia | Phiên bản rút gọn 16-bit của số dấu phẩy động độ chính xác đơn 32-bit theo chuẩn IEEE 754. |
| I16 | GH | Số nguyên có độ rộng cố định 16-bit. |
| Q8_K | GH | Lượng tử hóa 8-bit (q). Mỗi khối có 256 trọng số. Chỉ được sử dụng để lượng tử hóa các kết quả trung gian. Tất cả các tích vô hướng 2-6 bit đều được triển khai cho kiểu lượng tử hóa này. Công thức trọng số: w = q * block_scale. |
| I8 | GH | Số nguyên có độ rộng cố định 8-bit. |
| Q6_K | GH | Lượng tử hóa 6-bit (q). Các siêu khối gồm 16 khối, mỗi khối có 16 trọng số. Công thức trọng số: w = q * block_scale(8-bit), cho ra 6.5625 bit/trọng số. |
| Q5_K | GH | Lượng tử hóa 5-bit (q). Các siêu khối gồm 8 khối, mỗi khối có 32 trọng số. Công thức trọng số: w = q * block_scale(6-bit) + block_min(6-bit), cho kết quả là 5,5 bit trên mỗi trọng số. |
| Q4_K | GH | Lượng tử hóa 4-bit (q). Các siêu khối gồm 8 khối, mỗi khối có 32 trọng số. Công thức trọng số: w = q * block_scale(6-bit) + block_min(6-bit), cho kết quả là 4,5 bit trên mỗi trọng số. |
| Q3_K | GH | Lượng tử hóa 3-bit (q). Các siêu khối gồm 16 khối, mỗi khối có 16 trọng số. Công thức trọng số: w = q * block_scale(6-bit), cho ra 3.4375 bit/trọng số. |
| Q2_K | GH | Lượng tử hóa 2-bit (q). Các siêu khối gồm 16 khối, mỗi khối có 16 trọng số. Công thức trọng số: w = q * block_scale(4-bit) + block_min(4-bit), cho ra 2,625 bit trên mỗi trọng số. |
| IQ4_NL | GH | Lượng tử hóa 4-bit (q). Các siêu khối có 256 trọng số. Trọng số w được lấy bằng cách sử dụng super_block_scale & importance matrix. |
| IQ4_XS | HF | Lượng tử hóa 4-bit (q). Các siêu khối có 256 trọng số. Trọng số w được xác định bằng cách sử dụng super_block_scale & importance matrix, cho kết quả là 4,25 bit trên mỗi trọng số. |
| IQ3_S | HF | Lượng tử hóa 3-bit (q). Các siêu khối có 256 trọng số. Trọng số w được xác định bằng cách sử dụng super_block_scale & importance matrix, cho kết quả là 3,44 bit trên mỗi trọng số. |
| IQ3_XXS | HF | Lượng tử hóa 3-bit (q). Các siêu khối có 256 trọng số. Trọng số w được xác định bằng cách sử dụng super_block_scale & importance matrix, cho kết quả là 3,06 bit trên mỗi trọng số. |
| IQ2_XXS | HF | Lượng tử hóa 2-bit (q). Các siêu khối có 256 trọng số. Trọng số w được lấy bằng cách sử dụng super_block_scale & importance matrix, cho kết quả là 2,06 bit/trọng số. |
| IQ2_S | HF | Lượng tử hóa 2-bit (q). Các siêu khối có 256 trọng số. Trọng số w được lấy bằng cách sử dụng super_block_scale & importance matrix, cho kết quả là 2,5 bit trên mỗi trọng số. |
| IQ2_XS | HF | Lượng tử hóa 2-bit (q). Các siêu khối có 256 trọng số. Trọng số w được lấy bằng cách sử dụng super_block_scale & importance matrix, cho kết quả là 2,31 bit/trọng số. |
| IQ1_S | HF | Lượng tử hóa 1-bit (q). Các siêu khối có 256 trọng số. Trọng số w được xác định bằng cách sử dụng super_block_scale & importance matrix, cho kết quả là 1,56 bit trên mỗi trọng số. |
| IQ1_M | GH | Lượng tử hóa 1-bit (q). Các siêu khối có 256 trọng số. Trọng số w được xác định bằng cách sử dụng super_block_scale & importance matrix, cho kết quả là 1,75 bit trên mỗi trọng số. |
| TQ1_0 | GH | Lượng tử hóa ba trị. |
| TQ2_0 | GH | Lượng tử hóa ba trị. |
| MXFP4 | GH | 4-bit Microscaling Block Floating Point. |
| Các kiểu dữ liệu cũ | ||
| Q8_0 | GH | Lượng tử hóa làm tròn gần nhất 8-bit (q). Mỗi khối có 32 trọng số. Công thức trọng số: w = q * block_scale. Phương pháp lượng tử hóa cũ (không còn được sử dụng phổ biến cho đến nay). |
| Q8_1 | GH | Lượng tử hóa làm tròn gần nhất 8-bit (q). Mỗi khối có 32 trọng số. Công thức trọng số: w = q * block_scale + block_minimum. Phương pháp lượng tử hóa cũ (không còn được sử dụng phổ biến cho đến nay). |
| Q5_0 | GH | Lượng tử hóa làm tròn gần nhất 5-bit (q). Mỗi khối có 32 trọng số. Công thức trọng số: w = q * block_scale. Phương pháp lượng tử hóa cũ (không còn được sử dụng phổ biến cho đến nay). |
| Q5_1 | GH | Lượng tử hóa làm tròn gần nhất 5-bit (q). Mỗi khối có 32 trọng số. Công thức trọng số: w = q * block_scale + block_minimum. Phương pháp lượng tử hóa cũ (không còn được sử dụng phổ biến cho đến nay). |
| Q4_0 | GH | Lượng tử hóa làm tròn gần nhất 4-bit (q). Mỗi khối có 32 trọng số. Công thức trọng số: w = q * block_scale. Phương pháp lượng tử hóa cũ (không còn được sử dụng phổ biến cho đến nay). |
| Q4_1 | GH | Lượng tử hóa làm tròn gần nhất 4-bit (q). Mỗi khối có 32 trọng số. Công thức trọng số: w = q * block_scale + block_minimum. Phương pháp lượng tử hóa cũ (không còn được sử dụng phổ biến cho đến nay). |
nếu có bất kỳ sai sót nào trong bảng trên, vui lòng mở một PR trên tệp này.
Update on GitHub