Hub documentation
GGUF
GGUF
Hugging Face Hub์ ๋ชจ๋ ํ์ผ ํ์์ ์ง์ํ์ง๋ง, ๋ชจ๋ธ์ ๋น ๋ฅธ ๋ก๋ฉ๊ณผ ์ ์ฅ์ ์ํด ์ต์ ํ๋ ๋ฐ์ด๋๋ฆฌ ํ์์ธ GGUF ํ์์ ๋ํ ๋ด์ฅ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ ์ถ๋ก ๋ชฉ์ ์ ๋งค์ฐ ํจ์จ์ ์ ๋๋ค. GGUF๋ GGML ๋ฐ ๊ธฐํ ์คํ๊ธฐ์ ํจ๊ป ์ฌ์ฉํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. GGUF๋ ์ธ๊ธฐ ์๋ C/C++ LLM ์ถ๋ก ํ๋ ์์ํฌ์ธ llama.cpp์ ๊ฐ๋ฐ์์ด๊ธฐ๋ ํ @ggerganov์ ์ํด ๊ฐ๋ฐ๋์์ต๋๋ค. PyTorch์ ๊ฐ์ ํ๋ ์์ํฌ์์ ์ฒ์ ๊ฐ๋ฐ๋ ๋ชจ๋ธ์ ํด๋น ์์ง์์ ์ฌ์ฉํ๊ธฐ ์ํด GGUF ํ์์ผ๋ก ๋ณํํ ์ ์์ต๋๋ค.

์ด ๊ทธ๋ํ์์ ๋ณผ ์ ์๋ฏ์ด, safetensors์ ๊ฐ์ด ํ ์๋ง ์ ์ฅํ๋ ํ์ผ ํ์๊ณผ ๋ฌ๋ฆฌ, Hub์์ ๊ถ์ฅํ๋ ๋ชจ๋ธ ํ์์ด๊ธฐ๋ ํ GGUF๋ ํ ์์ ํ์คํ๋ ๋ฉํ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๋ชจ๋ ์ธ์ฝ๋ฉํฉ๋๋ค.
GGUF ํ์ผ ์ฐพ๊ธฐ
GGUF ํ๊ทธ๋ก ํํฐ๋งํ์ฌ GGUF ํ์ผ์ด ํฌํจ๋ ๋ชจ๋ ๋ชจ๋ธ์ ํ์ํ ์ ์์ต๋๋ค: hf.co/models?library=gguf. ๋ํ, ggml-org/gguf-my-repo ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ ๊ฐ์ค์น๋ฅผ GGUF ๊ฐ์ค์น๋ก ๋ณํ/์์ํํ ์ ์์ต๋๋ค.

์๋ฅผ ๋ค์ด, GGUF ํ์ผ์ ์ค์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ํ์ธํ๋ ค๋ฉด TheBloke/Mixtral-8x7B-Instruct-v0.1-GGUF๋ฅผ ์ดํด๋ณผ ์ ์์ต๋๋ค.

๋ฉํ๋ฐ์ดํฐ ๋ฐ ํ ์ ์ ๋ณด ๋ทฐ์ด
Hub์๋ GGUF ํ์ผ ๋ทฐ์ด๊ฐ ์์ด ์ฌ์ฉ์๊ฐ ๋ฉํ๋ฐ์ดํฐ ๋ฐ ํ ์ ์ ๋ณด(์ด๋ฆ, shape, ์ ๋ฐ๋)๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. ๋ทฐ์ด๋ ๋ชจ๋ธ ํ์ด์ง(์์) ๋ฐ ํ์ผ ํ์ด์ง(์์)์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.

์คํ์์ค ๋๊ตฌ์ ํจ๊ป ์ฌ์ฉ
@huggingface/gguf๋ก ๋ฉํ๋ฐ์ดํฐ ํ์ฑ
์๊ฒฉ ํธ์คํ ํ์ผ(์: Hugging Face Hub)์์ ์๋ํ๋ javascript ๊ธฐ๋ฐ GGUF ํ์๋ฅผ ๋ง๋ค์์ต๋๋ค.
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);์์ธํ ๋ด์ฉ์ ์ฌ๊ธฐ์์ ํ์ธํ์ธ์.
์์ํ ์ ํ
| type | source | ์ค๋ช |
|---|---|---|
| F64 | Wikipedia | 64๋นํธ ํ์ค IEEE 754 ์ด์ค ์ ๋ฐ๋ ๋ถ๋ ์์์ ์ซ์. |
| I64 | GH | 64๋นํธ ๊ณ ์ ํญ ์ ์. |
| F32 | Wikipedia | 32๋นํธ ํ์ค IEEE 754 ๋จ์ผ ์ ๋ฐ๋ ๋ถ๋ ์์์ ์ซ์. |
| I32 | GH | 32๋นํธ ๊ณ ์ ํญ ์ ์. |
| F16 | Wikipedia | 16-bit ํ์ค IEEE 754 ๋ฐ์ ๋ฐ ๋ถ๋์์์ ์ซ์. |
| BF16 | Wikipedia | 32๋นํธ IEEE 754 ๋จ์ผ ์ ๋ฐ๋ ๋ถ๋ ์์์ ์ซ์์ 16๋นํธ ์ถ์ ๋ฒ์ ์ ๋๋ค. |
| I16 | GH | 16๋นํธ ๊ณ ์ ํญ ์ ์ |
| Q8_K | GH | 8-bit ์์ํ(q). ๊ฐ ๋ธ๋ก์๋ 256๊ฐ์ ๊ฐ์ค์น๊ฐ ์์ต๋๋ค. ์ค๊ฐ ๊ฒฐ๊ณผ ์์ํ์๋ง ์ฌ์ฉ๋ฉ๋๋ค. ์ด ์์ํ ์ ํ์ ๋ํด 2~6๋นํธ ๋ด์ ์ด ๋ชจ๋ ๊ตฌํ๋์ด ์์ต๋๋ค. ๊ฐ์ค์น ๊ณต์: w = q * block_scale. |
| I8 | GH | 8๋นํธ ๊ณ ์ ํญ ์ ์ |
| Q6_K | GH | 6-bit ์์ํ(q). 16๊ฐ์ ๋ธ๋ก์ผ๋ก ๊ตฌ์ฑ๋ ์ํผ ๋ธ๋ก์ด๋ฉฐ, ๊ฐ ๋ธ๋ก์๋ 16๊ฐ์ ๊ฐ์ค์น๊ฐ ์์ต๋๋ค. ๊ฐ์ค์น ๊ณต์: w = q * block_scale(8-bit)๋ก, ๊ฐ์ค์น๋น 6.5625๋นํธ๊ฐ ๋ฉ๋๋ค. |
| Q5_K | GH | 5-bit ์์ํ(q). 8๊ฐ์ ๋ธ๋ก์ผ๋ก ๊ตฌ์ฑ๋ ์ํผ ๋ธ๋ก์ด๋ฉฐ, ๊ฐ ๋ธ๋ก์๋ 32๊ฐ์ ๊ฐ์ค์น๊ฐ ์์ต๋๋ค. ๊ฐ์ค์น ๊ณต์: w = q * block_scale(6-bit) + block_min(6-bit)๋ก, ๊ฐ์ค์น๋น 5.5๋นํธ๊ฐ ๋ฉ๋๋ค. |
| Q4_K | GH | 4-bit ์์ํ(q). 8๊ฐ์ ๋ธ๋ก์ผ๋ก ๊ตฌ์ฑ๋ ์ํผ๋ธ๋ก์ด๋ฉฐ, ๊ฐ ๋ธ๋ก์๋ 32๊ฐ์ ๊ฐ์ค์น๊ฐ ์์ต๋๋ค. ๊ฐ์ค์น ๊ณต์: w = q * block_scale(6-bit) + block_min(6-bit)๋ก, ๊ฐ์ค์น๋น 4.5๋นํธ๊ฐ ๋ฉ๋๋ค. |
| Q3_K | GH | 3-bit ์์ํ(q). 16๊ฐ์ ๋ธ๋ก์ผ๋ก ๊ตฌ์ฑ๋ ์ํผ ๋ธ๋ก์ด๋ฉฐ, ๊ฐ ๋ธ๋ก์๋ 16๊ฐ์ ๊ฐ์ค์น๊ฐ ์์ต๋๋ค. ๊ฐ์ค์น ๊ณต์: w = q * block_scale(6-bit)๋ก, ๊ฐ์ค์น๋น 3.4375๋นํธ๊ฐ ๋ฉ๋๋ค. |
| Q2_K | GH | 2-bit ์์ํ(q). 16๊ฐ์ ๋ธ๋ก์ผ๋ก ๊ตฌ์ฑ๋ ์ํผ ๋ธ๋ก์ด๋ฉฐ, ๊ฐ ๋ธ๋ก์๋ 16๊ฐ์ ๊ฐ์ค์น๊ฐ ์์ต๋๋ค. ๊ฐ์ค์น ๊ณต์: w = q * block_scale(4-bit) + block_min(4-bit)๋ก, ๊ฐ์ค์น๋น 2.625๋นํธ๊ฐ ๋ฉ๋๋ค. |
| IQ4_NL | GH | 4-bit ์์ํ(q). 256๊ฐ์ ๊ฐ์ค์น๋ฅผ ๊ฐ์ง ์ํผ ๋ธ๋ก. ๊ฐ์ค์น w๋ super_block_scale ๋ฐ importance matrix๋ฅผ ์ฌ์ฉํ์ฌ ์ป์ต๋๋ค. |
| IQ4_XS | HF | 4-bit ์์ํ(q). 256๊ฐ์ ๊ฐ์ค์น๋ฅผ ๊ฐ์ง ์ํผ ๋ธ๋ก. ๊ฐ์ค์น w๋ super_block_scale ๋ฐ importance matrix๋ฅผ ์ฌ์ฉํ์ฌ ์ป์ด์ง๋ฉฐ, ๊ฐ์ค์น๋น 4.25๋นํธ๊ฐ ๋ฉ๋๋ค. |
| IQ3_S | HF | 3-bit ์์ํ(q). 256๊ฐ์ ๊ฐ์ค์น๋ฅผ ๊ฐ์ง ์ํผ๋ธ๋ก. ๊ฐ์ค์น w๋ super_block_scale ๋ฐ importance matrix๋ฅผ ์ฌ์ฉํ์ฌ ์ป์ด์ง๋ฉฐ, ๊ทธ ๊ฒฐ๊ณผ ๊ฐ์ค์น๋น 3.44๋นํธ๊ฐ ๋ฉ๋๋ค. |
| IQ3_XXS | HF | 3-bit ์์ํ(q). 256๊ฐ์ ๊ฐ์ค์น๋ฅผ ๊ฐ์ง ์ํผ๋ธ๋ก. ๊ฐ์ค์น w๋ super_block_scale ๋ฐ importance matrix๋ฅผ ์ฌ์ฉํ์ฌ ์ป์ด์ง๋ฉฐ, ๊ทธ ๊ฒฐ๊ณผ 3.06 bits-per-weight๊ฐ ๋ฉ๋๋ค. |
| IQ2_XXS | HF | 2-bit ์์ํ(q). 256๊ฐ์ ๊ฐ์ค์น๋ฅผ ๊ฐ์ง ์ํผ๋ธ๋ก. ๊ฐ์ค์น w๋ super_block_scale ๋ฐ importance matrix๋ฅผ ์ฌ์ฉํ์ฌ ์ป์ด์ง๋ฉฐ, ๊ทธ ๊ฒฐ๊ณผ 2.06 bits-per-weight๊ฐ ๋ฉ๋๋ค. |
| IQ2_S | HF | 2-bit ์์ํ(q). 256๊ฐ์ ๊ฐ์ค์น๋ฅผ ๊ฐ์ง ์ํผ๋ธ๋ก. ๊ฐ์ค์น w๋ super_block_scale ๋ฐ importance matrix๋ฅผ ์ฌ์ฉํ์ฌ ์ป์ด์ง๋ฉฐ, ๊ฐ์ค์น๋น 2.5๋นํธ๊ฐ ๋ฉ๋๋ค. |
| IQ2_XS | HF | 2-bit ์์ํ(q). 256๊ฐ์ ๊ฐ์ค์น๋ฅผ ๊ฐ์ง ์ํผ๋ธ๋ก. ๊ฐ์ค์น w๋ super_block_scale ๋ฐ importance matrix๋ฅผ ์ฌ์ฉํ์ฌ ์ป์ด์ง๋ฉฐ, ๊ฐ์ค์น๋น 2.31๋นํธ๊ฐ ๋ฉ๋๋ค. |
| IQ1_S | HF | 1-bit ์์ํ(q). 256๊ฐ์ ๊ฐ์ค์น๋ฅผ ๊ฐ์ง ์ํผ๋ธ๋ก. ๊ฐ์ค์น w๋ super_block_scale ๋ฐ importance matrix๋ฅผ ์ฌ์ฉํ์ฌ ์ป์ด์ง๋ฉฐ, ๊ฐ์ค์น๋น 1.56๋นํธ๊ฐ ๋ฉ๋๋ค. |
| IQ1_M | GH | 1-bit ์์ํ(q). 256๊ฐ์ ๊ฐ์ค์น๋ฅผ ๊ฐ์ง ์ํผ๋ธ๋ก. ๊ฐ์ค์น w๋ super_block_scale ๋ฐ importance matrix๋ฅผ ์ฌ์ฉํ์ฌ ์ป์ด์ง๋ฉฐ, ๊ฐ์ค์น๋น 1.75๋นํธ๊ฐ ๋ฉ๋๋ค. |
| TQ1_0 | GH | ์ผ์ ์์ํ. |
| TQ2_0 | GH | ์ผ์ ์์ํ. |
| MXFP4 | GH | 4-bit Microscaling Block Floating Point. |
| ๋ ๊ฑฐ์ ์ ํ | ||
| Q8_0 | GH | 8-bit round-to-nearest ์์ํ(q). ๊ฐ ๋ธ๋ก์๋ 32๊ฐ์ ๊ฐ์ค์น๊ฐ ์์ต๋๋ค. ๊ฐ์ค์น ๊ณต์: w = q * block_scale. ๋ ๊ฑฐ์ ์์ํ ๋ฐฉ๋ฒ(ํ์ฌ ๋๋ฆฌ ์ฌ์ฉ๋์ง ์์). |
| Q8_1 | GH | 8-bit round-to-nearest ์์ํ(q). ๊ฐ ๋ธ๋ก์๋ 32๊ฐ์ ๊ฐ์ค์น๊ฐ ์์ต๋๋ค. ๊ฐ์ค์น ๊ณต์: w = q * block_scale + block_minimum. ๋ ๊ฑฐ์ ์์ํ ๋ฐฉ๋ฒ(ํ์ฌ ๋๋ฆฌ ์ฌ์ฉ๋์ง ์์). |
| Q5_0 | GH | 5-bit round-to-nearest ์์ํ(q). ๊ฐ ๋ธ๋ก์๋ 32๊ฐ์ ๊ฐ์ค์น๊ฐ ์์ต๋๋ค. ๊ฐ์ค์น ๊ณต์: w = q * block_scale. ๋ ๊ฑฐ์ ์์ํ ๋ฐฉ๋ฒ(ํ์ฌ ๋๋ฆฌ ์ฌ์ฉ๋์ง ์์). |
| Q5_1 | GH | 5-bit round-to-nearest ์์ํ(q). ๊ฐ ๋ธ๋ก์๋ 32๊ฐ์ ๊ฐ์ค์น๊ฐ ์์ต๋๋ค. ๊ฐ์ค์น ๊ณต์: w = q * block_scale + block_minimum. ๋ ๊ฑฐ์ ์์ํ ๋ฐฉ๋ฒ(ํ์ฌ ๋๋ฆฌ ์ฌ์ฉ๋์ง ์์). |
| Q4_0 | GH | 4-bit round-to-nearest ์์ํ(q). ๊ฐ ๋ธ๋ก์๋ 32๊ฐ์ ๊ฐ์ค์น๊ฐ ์์ต๋๋ค. ๊ฐ์ค์น ๊ณต์: w = q * block_scale. ๋ ๊ฑฐ์ ์์ํ ๋ฐฉ๋ฒ(ํ์ฌ ๋๋ฆฌ ์ฌ์ฉ๋์ง ์์). |
| Q4_1 | GH | 4-bit round-to-nearest ์์ํ(q). ๊ฐ ๋ธ๋ก์๋ 32๊ฐ์ ๊ฐ์ค์น๊ฐ ์์ต๋๋ค. ๊ฐ์ค์น ๊ณต์: w = q * block_scale + block_minimum. ๋ ๊ฑฐ์ ์์ํ ๋ฐฉ๋ฒ(ํ์ฌ ๋๋ฆฌ ์ฌ์ฉ๋์ง ์์). |
์ ํ์ ๋ถ์ ํํ ๋ถ๋ถ์ด ์๋ค๋ฉด ์ด ํ์ผ์ PR์ ์ด์ด ์ฃผ์ธ์.
Update on GitHub