
llama.cppã§HFã¢ãã«ã倿ããŠå¯Ÿè©±ããç°å¢ãäœãïŒWindows CPUçïŒ
â» Last update 10-08-2024
â» (2-6-2025) Windowsæšæºã§ã¯äœ¿çšã§ããªãwgetã³ãã³ãã®èšè¿°ããã£ãã®ã§ãcurlã³ãã³ãã«å·®ãæ¿ããŸããã
â» (1-21-2025) çŸåšãæ¬èšäºã®æé ã§ã¯ãã«ããã§ããŸãããCPU/CUDA䞡察å¿çã®èšäºãåç
§ããŠãã ããã
â» 5.ã«ãŠããã¡ã€ã«ãããŠã³ããŒãã§ããããã«ããŸããã5-3.ã®è©±ã®å
容ãå·®ãæ¿ããŸããã
â» ç°å¢ãæ§ç¯ããããšã5.ã§äŒè©±ãè¡ã£ãã話ãäœããããããŠããŸãã
â 0. ã¯ããã«
⌠0-0. æ¬èšäºã®å 容
ãæ¬èšäºã§ã¯Windows PCã§llama.cppãçšããŠãHugging Face圢åŒïŒHF圢åŒïŒã®LLMãGGUF圢åŒã«å€æããŠå¯Ÿè©±ãCPUã§è¡ãæé ã説æããŸãã
ããã¡ãããGGUF圢åŒã®ã¢ãã«åäœã®å©çšãã§ããŸãããã®å Žåã¯ãã¢ãã«ã®ããŠã³ããŒãã倿ã®ç®æãèªã¿é£ã°ããŠãã ããã
ã倿å ãšããŠãæè¿å ¬éãããã°ããã®äžèšã®ã¢ãã«ãéžã³ãŸããã
Google: Gemma 2 JPN model cardïŒgoogle/gemma-2-2b-jpn-itïŒ
rinna :Gemma 2 Baku 2B InstructïŒrinna/gemma-2-baku-2b-itïŒ
NII: LLM-jp-3ïŒllm-jp/llm-jp-3-13b-instruct ã»ãïŒ
ããŸããäžèšãããã«ãã¥ãŒãã³ã°ããã¢ãã«ãå ¬éãããŠããŸãã®ã§ãåèãŸã§ç޹ä»ããŠãããŸãïŒå 容ã®ç¢ºèªã¯ããŠããŸããïŒã
AXCXEPT/llm-jp-3-3.7b-instruct-EZO-Humanities
https://huggingface.co/AXCXEPT/llm-jp-3-3.7b-instruct-EZO-HumanitiesÂAXCXEPT/llm-jp-3-3.7b-instruct-EZO-Common
https://huggingface.co/AXCXEPT/llm-jp-3-3.7b-instruct-EZO-CommonÂAXCXEPT/EZO-gemma-2-2b-jpn-it
https://huggingface.co/AXCXEPT/EZO-gemma-2-2b-jpn-itÂ
⌠0-1. é¢é£èšäºãåè
â 1. llama.cppã®å°å ¥ïŒCPUçšïŒ
⌠1-1. æŠèŠ
ãHF圢åŒã®ã¢ãã«ã倿ããŠå¯Ÿè©±ãå®è¡ããããããllama.cppããå°å ¥ããŠãã«ããè¡ããŸããPyTorchã¯CPUçšãã€ã³ã¹ããŒã«ãããŸãã
⌠1-2. ãªããžããªãå°å ¥æ¹æ³ã®æ€èš
ãPythonãšGitãã€ã³ã¹ããŒã«æžã¿ã§ããããšãåæãšããŸãã
ãäœæ¥ãã£ã¬ã¯ããªããC:\aiwork\llmããšããŠããŸãïŒLLMå°çšã«ããããéå±€ãäžããŠããïŒã®ã§ãé©å®èªã¿æ¿ããŠãã ããããªããä»åŸå ¬éããGPUçã®èšäºã§ã¯ãå¥ã®äœæ¥ãã£ã¬ã¯ããªã䜿çšããŸãã
ãllama.cppã®å°å ¥æ¹æ³ã¯ããªããžããªã®èª¬æã«åŸããŸããw64devkitãã€ã³ã¹ããŒã«ããŠãgitã³ãã³ãã§ã¢ãã«ã®ããŠã³ããŒããè¡ããmakeã³ãã³ãã§ãã«ãããŸããcmakeãçšãããã«ãæ¹æ³ãããããã§ãã
llama.cpp
https://github.com/ggerganov/llama.cppÂ
Build llama.cpp locally
https://github.com/ggerganov/llama.cpp/blob/master/docs/build.mdÂ
w64devkitïŒPortable C, C++, and Fortran Development Kit for x64 and x86 WindowsïŒ
https://github.com/skeeto/w64devkitÂ
⌠1-3. ä»®æ³ç°å¢ã®æ§ç¯
ãåŸã§å¿ èŠã«ãªãä»®æ³ç°å¢ãæºåããŸããäœæ¥ãã£ã¬ã¯ããªïŒC:\aiwork\llm çïŒãäœæããç¶æ ã§ã³ãã³ãããã³ãããéããäžèšã®ã³ãã³ããé ã«å®è¡ããŠãã ãããæåŸã®è¡ã§å€å°ã®æéãèŠããŸããçµãã£ãããŠã€ã³ããŠãéããŠãã ããã
cd \aiwork\llm
python -m venv venv
venv\Scripts\activate
python -m pip install --upgrade pip
pip install transformers accelerate sentencepiece⌠1-4a. w64devkitã®ã€ã³ã¹ããŒã«
ãæ¢ã«ãw64devkitããå°å ¥æžã¿ã§ããã¹ãéããŠããæ¹ã¯èªã¿é£ã°ããŠãã ããããŸããw64devkitã®ãªããžããªã®URLãžã¢ã¯ã»ã¹ããŸããæ¬¡ã«ãç»é¢å³åŽã®Releasesãæ¢ããŠãããŒãžã§ã³çªå·ãæžããããªã³ã¯å ïŒäžèšç»é¢ã®å Žåã¯ã2.0.0ãïŒãžé²ãã§ãã ããã

ãAssetsã«ãã64ãããçã®å®è¡ãã¡ã€ã«ïŒäžèšç»é¢ã®å Žåã¯ãw64devkit-x64-2.0.0.exeãïŒã®ãªã³ã¯ãã¯ãªãã¯ãããšããŠã³ããŒããå§ãŸããŸãã

ãããŠã³ããŒããããã¡ã€ã«ãäœæ¥ãã£ã¬ã¯ããªïŒC:\aiwork\llm çïŒã«ç§»åããŠå®è¡ããŠãã ãããèªå·±å±éããã°ã©ã ãèµ·åããã®ã§ããExtractããã¯ãªãã¯ããŸãããw64devkitããã£ã¬ã¯ããªãäœæãããŠããã®äžã«äžèº«ãã³ããŒãããŸãã
⌠1-4b. äœæ¥çšããããã¡ã€ã«ã®äœæãšå®è¡
ãéåžžã¯ããã§ããw64devkit\binãã«ãã¹ãéãïŒãã£ã¬ã¯ããªãæå®ããªããŠããã¡ã€ã«ãå®è¡ã§ããããã«ããïŒæé ã«é²ã¿ãŸãããããããã¹ãèšå®ããŠããŸããšãw64devkitãå¿ èŠãªããªã£ãæã«ãã¹ãåé€ããæé ãçããŠããŸããŸããã€ã³ã¹ããŒã«ããããšãå¿ããã¡ã§ãã
ãä»åã¯ãç¹å®ã®ããããã¡ã€ã«ãèµ·åãããšãã ãw64devkitã䜿ããããã«ããŠãåæã«ä»®æ³ç°å¢ãæå¹åããŸãã
ãäœæ¥ãã£ã¬ã¯ããªïŒC:\aiwork\llm çïŒã«ãäžèšã®å 容ã§ãcmd-llm.batãïŒååã¯ä»»æïŒãäœæããŠãã ããããªããæ¢ã«w64devkitãå°å ¥æžã¿ã§ãã¹ãéããŠããæ¹ã¯ããset path=ãã®è¡ãé€ããŠãã ããã
@echo off
cd %~dp0
set path=%~dp0w64devkit\bin;%path%
call .\venv\Scripts\activate.bat
cmd /kãäœæããããããã¡ã€ã«ããšã¯ã¹ãããŒã©ãŒäžããããã«ã¯ãªãã¯ãããšããw64devkit\binãã«ãã¹ãéã£ãç¶æ ã§ã³ãã³ãããã³ãããèµ·åããä»®æ³ç°å¢ãæå¹åãããŸãã
ãè¡é ã«ã(venv)ãã衚瀺ãããŠããããšã確èªã®äžã§ããlsããšå ¥åããŠEnterãæŒããŠãã ãããäžèšã®ããã«ããã¡ã€ã«ããã£ã¬ã¯ããªã®äžèЧã衚瀺ãããŸãã
(venv) C:\aiwork\llm>ls
cmd-llm.bat venv w64devkitãããã§ãäœæ¥ã®ç¶ããè¡ãæºåãæŽããŸããã
⌠1-5. llama.cppã®ããŠã³ããŒããšãã«ã
ã1-4b.ã§äœã£ãããããã¡ã€ã«ãããã«ã¯ãªãã¯ããŠèµ·åããŸããããããã¡ã€ã«ãäœããªãã£ãæ¹ã¯ããw64devkit\binãã«ãã¹ãéããç¶æ ã§äœæ¥ãã£ã¬ã¯ããªã«ç§»åããŠãã ããã
ãäžèšã®ã³ãã³ããå®è¡ããŠãllama.cppãããŠã³ããŒãããŸãã
git clone https://github.com/ggerganov/llama.cppãäžèšã®ã³ãã³ããç¶ããŠå®è¡ããŠãã ããããmakeãã®å®è¡ã¯å°ãã ãæéããããã®ã§ãåŸ ã¡ãã ãããã¡ãã»ãŒãžã倧éã«è¡šç€ºãããåŸããã«ããå®äºããŸãã3è¡ç®ã®æäœãå¿ããªãããã«ããŠãã ããã
cd llama.cpp
make
cd ..ã念ã®ããããã«ãã§äœæããããã¡ã€ã«ãå®è¡ããŠã¿ãŸããäžèšã®ã³ãã³ããå®è¡ããŠãã ããã
.\llama.cpp\llama-quantize -hããã®åŸã®æé ã§ãã¢ãã«ãéååããéã«äœ¿çšããããã°ã©ã ïŒllama-quantizeïŒã®äœ¿ãæ¹ã衚瀺ãããŸãã
usage: .\llama.cpp\llama-quantize [--help] [--allow-requantize] ...
...
...
32 or BF16 : 14.00G, -0.0050 ppl @ Mistral-7B
0 or F32 : 26.00G @ 7B
COPY : only copy tensors, no quantizingãã³ãã³ãããã³ããã¯åŒãç¶ã䜿çšããŸããããã£ããéããŠããŸã£ãŠãæ§ããŸãããå ã»ã©ã®ããããã¡ã€ã«ãå®è¡ããã°ããã€ã§ãå¿ èŠãªç¶æ ã«æ»ãããšãã§ããŸãã
â 2. LLMã®ããŠã³ããŒãïŒHF圢åŒïŒ
⌠2-1. ã¢ãã«ã®éžæ
ãåé ã§èª¬æããäžèšã®ããŠã³ããŒãæ¹æ³ããæ¬¡é ããé ã«èª¬æããŸããäžèŠãªèª¬æãããã°èªã¿é£ã°ããŠããã ããŠçµæ§ã§ãã
Google: Gemma 2 JPN model cardïŒgoogle/gemma-2-2b-jpn-itïŒ
rinna :Gemma 2 Baku 2B InstructïŒrinna/gemma-2-baku-2b-itïŒ
NII: LLM-jp-3ïŒllm-jp/llm-jp-3-13b-instruct ã»ãïŒ
ãããããæ¥æ¬èªåãã®ã¢ãã«ãªã®ã§éžæã¯èªç±ã§ãããè¿·ã£ãå Žåã¯ãrinna/gemma-2-baku-2b-itããããããããŸãããŸããä»ã®Hugging Face圢åŒã®LLMãå©çšã§ããå¯èœæ§ããããŸãã
ïŒè£è¶³ïŒLLMã¯å¯Ÿè©±ã§æç€ºãã§ãããããInstruction-Tuningãè¡ãããŸããå ¬éãããã¢ãã«ã1çš®é¡ã®å Žåãéåžžã¯instructçãšæãããŸããTuningãè¡ã£ãŠããªããã®ãšåããŠãã***-*.*b-instruct(it)ãã®ååã§å ¬éãããå ŽåããããŸããïŒ
ãåèãŸã§ãHugging Face圢åŒã®LLMã¯äžèšç»é¢ã®ãããªãã¡ã€ã«æ§æã«ãªã£ãŠããŸãã

⌠2-2. Gemma 2 JPN model card
ãæ¥æ¬èªç Gemma 2 2Bã¯Gemma 2 2Bããã¥ãŒãã³ã°ããã¢ãã«ã§ã10-3-2024ã«å ¬éãããŸãããGPT-3.5ãäžåãããã©ãŒãã³ã¹ïŒèªç€Ÿè©äŸ¡ïŒãšãããã¢ãã«ã®èŠæš¡ã«èŠåããªãæ§èœãæåŸ ã§ããŸãã
Gemma 2 JPN model card
https://blog.google/intl/ja-jp/company-news/technology/gemma-2-2b/Â
ãåèãŸã§ãåã«äœ¿ãããã ãã®å Žåã¯ãæ¢ã«GGUFãžå€æããããŒãžã§ã³ãæ²èŒãããŠããŸãããã¡ããããŠã³ããŒãããŠãã ããã
Model Card For gemma-2-2b-jpn-it-gguf
https://huggingface.co/alfredplpl/gemma-2-2b-jpn-it-ggufÂ
ããããããæ¬é¡ã§ãããªãªãžãã«ã®ã¢ãã«ãããŠã³ããŒãããããã«ã¯ãHugging Faceã®ã¢ã«ãŠã³ããå¿ èŠã§ãããã°ã€ã³ããç¶æ ã§äžèšã®URLãžã¢ã¯ã»ã¹ããŠãããŠã³ããŒãã®èš±å¯ãåã£ãŠãã ããã
google/gemma-2-2b-jpn-it
https://huggingface.co/google/gemma-2-2b-jpn-itÂ
ãã³ãã³ãããã³ãããéããŠããŸã£ãå Žåã¯ããã§ã1-4b.ã§äœæããããããã¡ã€ã«ãå®è¡ããŠãã ãããæ¬¡ã«äžèšã®ã³ãã³ããé ã«å®è¡ããŠãã ããã1è¡ç®ã¯ååã®ã¿ã§æ§ããŸããïŒããããæ¢ã«å ¥ã£ãŠããŸãïŒã
pip install huggingface_hub
huggingface-cli loginã2è¡ç®ãå®è¡ãããšããŒã¯ã³ã®å ¥åãä¿ãããã®ã§ãHugging Faceã®æå¹ãªããŒã¯ã³ïŒUser Access TokensïŒã貌ãä»ããŠEnterãæŒããŸãããã®æ¬¡ãEnterãæŒããŸãã
ãæäœãæ£ãããã°ãLogin successfulããšè¡šç€ºãããŸãããValueError: Invalid token passed!ãã®å Žåã¯å ¥åãæ£ããã確èªããŠãã ããã
Enter your token (input will not be visible):
Add token as git credential? (Y/n)ãæ¬¡ã«äžèšã®ã³ãã³ããé ã«å®è¡ããŠãããŠã³ããŒããè¡ã£ãŠãã ããã
git lfs install
git clone https://huggingface.co/google/gemma-2-2b-jpn-itãä»ã®ã¢ãã«ãããŠã³ããŒãããªãã®ã§ããã°ã3.ãžé²ãã§ãã ããã
⌠2-3. Gemma 2 Baku 2B Instruct
ãGemma 2 Baku 2Bã¯ãå¥ãããïŒïŒïŒGemma 2 JPNãšåã10-3-2024ã«å ¬éãããŸãããããã¯rinnaïŒã女åé«çAIã®ãããªãçãã ãæ¥æ¬ãã€ã¯ããœããã®äžéšéããã¹ãã³ã¢ãŠãããäŒæ¥ïŒãGemma 2 2Bããã¥ãŒãã³ã°ããã¢ãã«ã§ããã³ãããŒã¯ã®çµæã§æ§èœã®é«ããã¢ããŒã«ããŠããŸãã
Gemma 2ã®æ¥æ¬èªç¶ç¶äºååŠç¿ã¢ãã«ãGemma 2 Baku 2Bãã·ãªãŒãºãå
Ž
https://rinna.co.jp/news/2024/10/20241003.htmlÂ
Gemma 2 Baku 2B Instruct (rinna/gemma-2-baku-2b-it)
https://huggingface.co/rinna/gemma-2-baku-2b-itÂ
ãåèãŸã§ãåã«äœ¿ãããã ãã®å Žåã¯ãæ¢ã«GGUFãžå€æããããŒãžã§ã³ãæ²èŒãããŠããŸãããã¡ããããŠã³ããŒãããŠãã ããïŒ2åç®ïŒã
Model Card For gemma-2-2b-jpn-it-gguf
https://huggingface.co/alfredplpl/gemma-2-baku-2b-it-ggufÂ
ãã³ãã³ãããã³ãããéããŠããŸã£ãå Žåã¯ããã§ã1-4b.ã§äœæããããããã¡ã€ã«ãå®è¡ããŠãã ãããæ¬¡ã«äžèšã®ã³ãã³ããé ã«å®è¡ããŠãããŠã³ããŒããè¡ã£ãŠãã ããã
git lfs install
git clone https://huggingface.co/rinna/gemma-2-baku-2b-itãä»ã®ã¢ãã«ãããŠã³ããŒãããªãã®ã§ããã°ã3.ãžé²ãã§ãã ããã
⌠2-4. LLM-jp-3
ãLLM-jp-3ã¯ãNIIïŒåœç«æ å ±åŠç ç©¶æïŒã®å€§èŠæš¡èšèªã¢ãã«ç ç©¶éçºã»ã³ã¿ãŒïŒLLMCïŒãéçºããå®å šã«ãªãŒãã³ãªã¢ãã«ã§ã9-25-2024ã«å ¬éãããŸããããã©ã¡ãŒã¿ãŒæ°ã¯1.8Bã3.7Bã13Bããããããã«172Bãå¶äœããŠããæäžã§ãã
LLM-jp-3 1.8Bã»3.7Bã»13B ã®å
Ž
https://llmc.nii.ac.jp/topics/post-707/Â
llm-jp-3-1.8b/3.7b/13b-instruct
https://huggingface.co/llm-jp/llm-jp-3-1.8b-instruct
https://huggingface.co/llm-jp/llm-jp-3-3.7b-instructÂ
https://huggingface.co/llm-jp/llm-jp-3-13b-instructÂ
ãåèãŸã§ãåã«äœ¿ãããã ãã®å Žåã¯ãæ¢ã«GGUFãžå€æããããŒãžã§ã³ãæ²èŒãããŠããŸãããã¡ããããŠã³ããŒãããŠãã ããïŒ3åç®ïŒã
Model Card For llm-jp-3-1.8b/3.7b/13b-instruct-gguf
https://huggingface.co/alfredplpl/llm-jp-3-1.8b-instruct-ggufÂ
https://huggingface.co/alfredplpl/llm-jp-3-3.7b-instruct-ggufÂ
https://huggingface.co/alfredplpl/llm-jp-3-13b-instruct-ggufÂ
ãããã§ã¯ã容éãšããã©ãŒãã³ã¹ãèæ ®ããŠ3.7BãéžæããŸãããã以å€ã§ãæ§ããŸããããç¹ã«13Bã¯ãµã€ãºã倧ããåäœãé ãã®ã§æ³šæããŠãã ããã
ãã³ãã³ãããã³ãããéããŠããŸã£ãå Žåã¯ããã§ã1-4b.ã§äœæããããããã¡ã€ã«ãå®è¡ããŠãã ãããæ¬¡ã«äžèšã®ã³ãã³ããé ã«å®è¡ããŠãããŠã³ããŒããè¡ã£ãŠãã ããã
git lfs install
git clone https://huggingface.co/llm-jp/llm-jp-3-3.7b-instructãLLM-jp-3ç³»ã®ã¢ãã«ã¯æ³šæç¹ãããã倿ã®éã«LLM-jp Tokenizerã®v3.0çšã®ã¢ãã«ãå¥éå¿ èŠã§ãã
LLM-jp Tokenizer
https://github.com/llm-jp/llm-jp-tokenizerÂ
ãããŠã³ããŒãã¯ãã¢ãã«ã®ãã£ã¬ã¯ããªã«ãtokenizer.modelããç¡ãããšã確èªããŠããè¡ã£ãŠãã ãããååšããå Žåã¯äžèŠãšèããããŸãã
ãäžèšã®ã³ãã³ãã§ãã¢ãã«ã®ããŠã³ããŒããã§ããŸããããŠã³ããŒãå ã3.7båãïŒ.\llm-jp-3-3.7b-instructïŒã«ãªã£ãŠããã®ã§ãé©å®æžãæããŠãã ããã
curl -L -o .\llm-jp-3-3.7b-instruct\tokenizer.model https://github.com/llm-jp/llm-jp-tokenizer/raw/refs/heads/main/models/ver3.0/llm-jp-tokenizer-100k.ver3.0b1.modelãæåã§ããŠã³ããŒããããå Žåã¯ãäžèšã®URLãžã¢ã¯ã»ã¹ããŠãã ãããç»é¢å³åŽã®ã¢ã€ã³ã³ããããŠã³ããŒããè¡ãããã¡ã€ã«åããtokenizer.modelãã«å€æŽã®äžã§ãã¢ãã«ãããŠã³ããŒããããã£ã¬ã¯ããªïŒ.\llm-jp-3-3.7b-instructçïŒãžç§»åããŸãã
â 3. HF圢åŒããGGUF圢åŒãžã®å€æ
⌠3-1. convert_hf_to_gguf.pyã®å©çš
ãããã§ã¯llama.cppã®ãconvert_hf_to_gguf.pyããå©çšããŠãHF圢åŒã®ã¢ãã«ãGGUF圢åŒã®éååã¿ã€ãQ8_0ã«å€æããæé ã説æããŸããå¥ã®éååã¿ã€ãã«å€æããæé ã¯3-8.ã4.ã§èª¬æããŸãã
ãã³ãã³ãããã³ãããéããŠããŸã£ãå Žåã¯ããã§ã1-4b.ã§äœæããããããã¡ã€ã«ãå®è¡ããŠãã ããã
⌠3-2. 倿åŸã®ãµã€ãº
ãäœãã®åèã«ãªããããããªãã®ã§ãå ã«ãäž»ãªéååã¿ã€ãå¥ã®ãã¡ã€ã«ãµã€ãºãæ²èŒããŠãããŸãã
Gemma 2 JPN model card
Gemma 2 Baku 2B Instruct
4.87GB ⊠BF16
2.59GB ⊠Q8_0
2.00GB ⊠Q6_K
1.59GB ⊠Q4_K_MLLM-jp-3 (1.8b)
3.48GB ⊠BF16
1.84GB ⊠Q8_0
1.42GB ⊠Q6_K
1.08GB ⊠Q4_K_MLLM-jp-3 (3.7b)
7.04GB ⊠BF16
3.74GB ⊠Q8_0
2.89GB ⊠Q6_K
2.17GB ⊠Q4_K_MLLM-jp-3 (13b)
25.5GB ⊠BF16
13.5GB ⊠Q8_0
10.4GB ⊠Q6_K
7.77GB ⊠Q4_K_M
5.39GB ⊠IQ3_XS
⌠3-3. Gemma 2 JPN model cardã®å Žå
ãäžèšã®ã³ãã³ããå®è¡ããŠãã ãããäœæ¥ãã£ã¬ã¯ããªã«2.59GBã®ãgemma-2-2b-jpn-it-q8_0.ggufããæžã蟌ãŸããŸãã
python .\llama.cpp\convert_hf_to_gguf.py .\gemma-2-2b-jpn-it --outtype q8_0 --outfile .\gemma-2-2b-jpn-it-q8_0.gguf⌠3-4. Gemma 2 Baku 2B Instructã®å Žå
ãäžèšã®ã³ãã³ããå®è¡ããŠãã ãããäœæ¥ãã£ã¬ã¯ããªã«2.59GBã®ãgemma-2-baku-2b-it-q8_0.ggufããæžã蟌ãŸããŸãã
python .\llama.cpp\convert_hf_to_gguf.py .\gemma-2-baku-2b-it --outtype q8_0 --outfile .\gemma-2-baku-2b-it-q8_0.gguf⌠3-5. LLM-jp-3 (1.8b)ã®å Žå
ãäžèšã®ã³ãã³ããå®è¡ããŠãã ãããäœæ¥ãã£ã¬ã¯ããªã«1.84GBã®ãllm-jp-3-1.8b-instruct-q8_0.ggufããæžã蟌ãŸããŸãã
python .\llama.cpp\convert_hf_to_gguf.py .\llm-jp-3-1.8b-instruct --outtype q8_0 --outfile .\llm-jp-3-1.8b-instruct-q8_0.gguf⌠3-6. LLM-jp-3 (3.7b)ã®å Žå
ãäžèšã®ã³ãã³ããå®è¡ããŠãã ãããäœæ¥ãã£ã¬ã¯ããªã«3.74GBã®ãllm-jp-3-3.7b-instruct-q8_0.ggufããæžã蟌ãŸããŸãã
python .\llama.cpp\convert_hf_to_gguf.py .\llm-jp-3-3.7b-instruct --outtype q8_0 --outfile .\llm-jp-3-3.7b-instruct-q8_0.gguf⌠3-7. LLM-jp-3 (13b)ã®å Žå
ãäžèšã®ã³ãã³ããå®è¡ããŠãã ãããäœæ¥ãã£ã¬ã¯ããªã«13.5GBã®ãllm-jp-3-13b-instruct-q8_0.ggufããæžã蟌ãŸããŸããããã«ã³ã³ãã¯ãã«ããæ¹æ³ã«ã€ããŠã¯ã4-3.ãã芧ãã ããã
python .\llama.cpp\convert_hf_to_gguf.py .\llm-jp-3-13b-instruct --outtype q8_0 --outfile .\llm-jp-3-13b-instruct-q8_0.gguf⌠3-8. ä»ã®ã¿ã€ããžã®å€æã«ã€ããŠ
ããããŸã§Q8_0ãžã®å€æã説æããŸãããããconvert_hf_to_gguf.pyãã§ã¯F32ãF16ãBF16ãžã®å€æãã§ããŸããæ¹æ³ã¯ç°¡åã§ãå®è¡ãããšãã®ãªãã·ã§ã³ãã--outtype bf16ãçã«å€æŽããã ãã§ãããã¡ã€ã«åãå¿ããã«åãããŠãããŠãã ããã
â 4. HF圢åŒããQ8_0以å€ãžã®å€æ
⌠4-1. llama-quantizeã®å©çš
ã3.ã§ã¯ãHF圢åŒããéååã¿ã€ãQ8_0ãžå€æããæé ã説æããŸããã
ãæ¬¡ã«Q8_0以å€ãããšãã°Q6_KãQ4_K_Mçã«å€æãããå Žåã®ããšãèããŠã¿ãŸããæé ãšããŠã¯ããŸããconvert_hf_to_gguf.pyãã§BF16ã«å€æããŠãããã«ãllama-quantizeãã§Q6_Kçã«å€æããæµãã§ããããã«ã€ããŠç°¡åã«èª¬æããŸãã
ãã³ãã³ãããã³ãããéããŠããŸã£ãå Žåã¯ããã§ã1-4b.ã§äœæããããããã¡ã€ã«ãå®è¡ããŠãã ããã
⌠4-2. éååã¿ã€ãBF16ãžã®å€æ
ã3.ã®çµããã§ãè§Šãããšããããconvert_hf_to_gguf.pyãã®ãªãã·ã§ã³ã倿Žããã ãã§BF16ã«å€æããããšãã§ããŸããäžèšã®ã³ãã³ãäŸãæžãæããŠãå©çšãã ããã
python .\llama.cpp\convert_hf_to_gguf.py .\AAA --outtype bf16 --outfile .\AAA-bf16.ggufãæ¬¡ã«ãllama-quantizeããå©çšããŠãBF16ãã倿ïŒéååïŒãè¡ããŸããäžèšã®ã³ãã³ãäŸã¯Q6_Kã«å€æããå Žåã§ãã®ã§ããã¡ã€ã«åãéååã¿ã€ããæžãæããŠãå©çšãã ããã
.\llama.cpp\llama-quantize .\AAA-bf16.gguf .\AAA-q6_k.gguf q6_k⌠4-3. LLM-jp-3 (13b)ãäœãšãå©çšããæ¹æ³
ããã®ã¢ãã«ã¯Q8_0ã§13.5GBããããå©çšã§ããç°å¢ã¯éåžžã«éããããšæããŸãã3-1.ã«èšèŒãããšãããIQ3_XSã§ããã°çŽ5.4GBãŸã§å°ããããããšãã§ããŸãããã ãããããå®çšã§ãããã©ããã¯äžæã§ãã確å®ã«åäœããæäœã©ã€ã³ã¯Q4_K_Mãšãèããã ããã
ããŸãããconvert_hf_to_gguf.pyãã§HF圢åŒããBF16ã«å€æããŸãããã¡ã€ã«ãµã€ãºã¯25.5GBã§ãã
python .\llama.cpp\convert_hf_to_gguf.py .\llm-jp-3-13b-instruct --outtype bf16 --outfile .\llm-jp-3-13b-instruct-bf16.ggufãæ¬¡ã«ããllama-quantizeãã§BF16ããIQ3_XSã«å€æããŸãããã¡ã€ã«ãµã€ãºã¯åè¿°ã®ãšããçŽ5.4GBã§ãã
.\llama.cpp\llama-quantize .\llm-jp-3-13b-instruct-bf16.gguf .\llm-jp-3-13b-instruct-iq3_xs.gguf iq3_xsâ 5. LLMã§ã®å¯Ÿè©±
⌠5-1. æŠèŠ
ãä»ãŸã§ã®æé ã§ãllama.cppãšã¢ãã«ã®æºåãè¡ããŸãããæåŸã«ããããçšããŠãLLMã«ç°¡åãªå¿çãè¡ãããæ¹æ³ã説æããŸãããªããæäžã§ã¯äœ¿çšããã¢ãã«ãGemma 2 Baku 2B Instructã®éååã¿ã€ãQ8_0ïŒãã¡ã€ã«å gemma-2-baku-2b-it-q8_0.ggufïŒã«åºå®ããŠããŸãã
⌠5-2. 質çãè¡ã
ã察話ãè¡ãåã«ãåäœç¢ºèªãå ŒããŠè³ªçã®åçããããŠã¿ãŸãã質åã«çãããšåäœãçµäºããé£ç¶ããäŒè©±ã¯è¡ããŸããã
ãäžèšã®æé ã§äœ¿çšãããã¡ã€ã«ãçšæããŸããïŒå 容ã¯åäžã§ãïŒãzip圢åŒã®ãã¡ã€ã«ã®äžèº«ãäœæ¥ãã£ã¬ã¯ããªã«å±éããŠãã ããã
ãäœæ¥ãã£ã¬ã¯ããªïŒC:\aiwork\llm çïŒã«é 眮ããããããã¡ã€ã«ãllama-cli-test.batãã§ããã¢ãã«ã®ãã¡ã€ã«åïŒgemma-2-baku-2b-it-q8_0.ggufïŒã¯é©å®å€æŽããŠãã ããã
@echo off
chcp 65001
cd %~dp0
.\llama.cpp\llama-cli -m ".\gemma-2-baku-2b-it-q8_0.gguf" -f ".\llama-cli-test.txt" -n 200
pauseããªãã·ã§ã³ã®ã-nãã®å€ãå°ãããããšãå¿çã®éäžã§åããå ŽåããããŸãã奜ã¿ã«åãããŠèª¿æŽããŠãã ãããå€ã-1ã®å Žåã¯ç¡å¶éã§ãïŒåºåäžã«Ctrl+Cã§äžæ¢ã§ããŸãïŒã
ãäœæ¥ãã£ã¬ã¯ããªïŒC:\aiwork\llm çïŒã«é 眮ããããã¹ããã¡ã€ã«ãllama-cli-test.txtãã§ãããšã³ã³ãŒãã¯BOMç¡ãã®UTF-8ã«èšå®ããŠãã ããã
## æç€º ##
ããªãã¯ãããã倩䜿ã«ãªããããããã«ããäžäººã®äººéã«åããŠçãèšèãæããŠãã ããã
## å¿ç ##ãæºåãã§ãããããããã¡ã€ã«ãå®è¡ããŸããããã¹ããã¡ã€ã«ã®å 容ã«ç¶ããŠå¿çãåºåããããåäœç¢ºèªã¯å®äºã§ããå å®¹ãæžãæããŠéãã§ã¿ãŠãã ãããäžèšã®ç»é¢ã¯å®éã®äŸã§ãã

⌠5-3. 察話ãè¡ã
ããŸã æ £ããŠããªãäžã§ã®å³åžããã³ããã®ãããã¢ãã«ã«ãã£ãŠã¯ããŸãåäœããªãå¯èœæ§ããããŸãããäºæ¿ãã ããã
ãäžèšã®æé ã§äœ¿çšãããã¡ã€ã«ãçšæããŸããïŒå 容ã¯åäžã§ãïŒãzip圢åŒã®ãã¡ã€ã«ã®äžèº«ãäœæ¥ãã£ã¬ã¯ããªã«å±éããŠãã ããã
ãäœæ¥ãã£ã¬ã¯ããªïŒC:\aiwork\llm çïŒã«é 眮ããããããã¡ã€ã«ãllama-cli-test2.batãã§ããã¢ãã«ã®ãã¡ã€ã«åïŒgemma-2-baku-2b-it-q8_0.ggufïŒã¯é©å®å€æŽããŠãã ããã
@echo off
chcp 65001
.\llama.cpp\llama-cli -m ".\gemma-2-baku-2b-it-q8_0.gguf" -i -f ".\llama-cli-test2.txt" -cnv -n 100 --repeat-penalty 1.1
pauseãäœæ¥ãã£ã¬ã¯ããªïŒC:\aiwork\llm çïŒã«é 眮ããããã¹ããã¡ã€ã«ãllama-cli-test2.txtãã§ãããšã³ã³ãŒãã¯BOMç¡ãã®UTF-8ã«èšå®ããŠãã ããã
ããªãã¯ãããŸã¡ããããšããååã®å°ããªå¥³ã®åã§ãã
åžžã«å
æ°ã§å¥œå¥å¿æºçã話ãããšã倧奜ãã§ãã
æ§æ Œãšç¹åŸŽïŒ
- è©±ãæ¹ã¯åžžã«ã©ãã§èŠªãã¿ãããã§ãã
- 倧éæã§çްããããšã¯æ°ã«ããŸããã
ã³ãã¥ãã±ãŒã·ã§ã³ã¹ã¿ã€ã«ïŒ
- ãŠãŒã¶ãŒã®æ°æã¡ã«å
±æããå
æ°ã«åå¿ããŸãã
- é£ããå
容ã®è©±é¡ã¯èšãèš³ãããªããåé¿ããŸãã
ãã®ããã³ããã«åŸã£ãŠãç°¡æœã«å¯Ÿè©±ãè¡ã£ãŠãã ããããæºåãã§ãããããããã¡ã€ã«ãå®è¡ããŸããã>ãã衚瀺ãããŠæ¢ãŸã£ããå ¥ååŸ ã¡ã®ç¶æ ã§ããèšèãå ¥åããŠEnterãæŒããŠãã ãããäœãåºåãããã«åã³ã>ãã衚瀺ãããå Žåã¯ãããäžåºŠEnterãæŒããŠãã ããïŒããã§ãäœãåºåãããªãå Žåã¯å ¥åãå¿ èŠïŒãLLMããã®å¿çã衚瀺ãããŠãç¹°ãè¿ããŠäŒè©±ããããšãã§ããŸãã
ãäžèšã®ç»é¢ã¯å®éã®äŸã§ãããããªããã«ã²ãç»å Žãããªã©ãåæã«è©±ãäœã£ãŠããã®ãåãããŸãã

⌠5-4. ç©èªãäœã
ããŸã æ £ããŠããªãäžã§ã®å³åžããã³ããã®ãããã¢ãã«ã«ãã£ãŠã¯ããŸãåäœããªãå¯èœæ§ããããŸãããäºæ¿ãã ããã
ãäžèšã®æé ã§äœ¿çšãããã¡ã€ã«ãçšæããŸããïŒå 容ã¯åäžã§ãïŒãzip圢åŒã®ãã¡ã€ã«ã®äžèº«ãäœæ¥ãã£ã¬ã¯ããªã«å±éããŠãã ããã
ãäœæ¥ãã£ã¬ã¯ããªïŒC:\aiwork\llm çïŒã«é 眮ããããããã¡ã€ã«ãllama-cli-test3.batãã§ããã¢ãã«ã®ãã¡ã€ã«åïŒgemma-2-baku-2b-it-q8_0.ggufïŒã¯é©å®å€æŽããŠãã ããã
@echo off
chcp 65001
cd %~dp0
.\llama.cpp\llama-cli -m ".\gemma-2-baku-2b-it-q8_0.gguf" -i -f ".\llama-cli-test3.txt" -cnv -n 200
pauseãäœæ¥ãã£ã¬ã¯ããªïŒC:\aiwork\llm çïŒã«é 眮ããããã¹ããã¡ã€ã«ãllama-cli-test3.txtãã§ãããšã³ã³ãŒãã¯BOMç¡ãã®UTF-8ã«èšå®ããŠãã ããã
èšå®ïŒ
- ãã®ç©èªã¯ãéæ³ã®æ£®ã«äœã16æ³ã®å¥³ã®åãªãªã¢ã䞻人å
¬ã§ãã
- 圌女ã¯åç©ãšè©±ããç¹æ®ãªèœåãæã£ãŠããŸããããŸã ããŸãã³ã³ãããŒã«ã§ããŠããŸããã
æžãæ¹ã®æç€ºïŒ
- èªã¿ãããç°¡æœãªå°èª¬é¢šã§ããããµã¯ååŸã«æ¹è¡ãå
¥ããŠãã ããã
- ãŠãŒã¶ãŒããã®å
¥åãç¡ããŠãåãåããããããèšå®ã«åŸã£ãŠç©èªãèæ¡ããŠãã ããã
- ãŠãŒã¶ãŒããææ¡ãããå Žåã¯ããã®å
容ã«è¿ã¥ãããã«ä¿®æ£ãå ããŠãã ããã
ç©èªã®æ¹åæ§ïŒ
- ãªãªã¢ã森ã®å¥¥æ·±ãã§ãå€ä»£ã®éæ³ã®ç§å¯ãæ¢ãåéºãããŸãã
- éäžã§æ§ã
ãªåç©ãã¡ãšåºäŒãã圌ãã®å©ããåããªããè¬ãè§£ããŠãããŸãã
- çªç¶ã®ãã³ããäœåºŠã蚪ããŸãã
å¶çŽïŒ
- å±éºãªå Žé¢ããã£ãŠããéæ¿ãªæŽåæåã¯é¿ããŠãã ããã
- å
šäœçã«æããåžæã«æºã¡ãé°å²æ°ãä¿ã£ãŠãã ããã
åžžã«2ïœ3æãã€åºåããŠãã ããããæºåãã§ãããããããã¡ã€ã«ãå®è¡ããŸããã>ãã衚瀺ãããŠæ¢ãŸã£ããå ¥ååŸ ã¡ã®ç¶æ ã§ããèšèãå ¥åããŠEnterãæŒããŠãã ãããäœãåºåãããã«åã³ã>ãã衚瀺ãããå Žåã¯ãããäžåºŠEnterãæŒããŠãã ããïŒããã§ãäœãåºåãããªãå Žåã¯å ¥åãå¿ èŠïŒãLLMããã®å¿çã衚瀺ãããŠãç¹°ãè¿ããŠäŒè©±ããããšãã§ããŸãã
ãäžèšã®ç»é¢ã¯å®éã®äŸã§ããã>å§ãããã>ãµãšæ°ã¥ããšãäœãã®æ°é ãããŸããã>ç¶ãããã>å§¿ãèŠãã話ãå§ããŸããã¯ãã¡ãåŽã®å ¥åã§ã察話圢åŒã§è©±ã®æµããããçšåºŠå¶åŸ¡ããããšãã§ããŸãã

â 6. ãŸãšã
⌠6-1. ææ
ãllama.cppãå°å ¥ããããšã§ãPCã§LLMãæ±ãããã®ç°å¢ãæŽããŸãããã¢ãã«ã®æ§èœã¯çŸåšãåäžãç¶ããŠãããããã¡ãã£ãšããéã³ãã¢ã€ãã¢åºããªã©ã¯èªå® ã§å®çµã§ããããã«ãªã£ããšæããŸããã
ãäŸãã°ãç»åçæAIã§äœ¿çšããããã³ãããClaudeçã§äœãããšããã£ãã®ã§ããããèªå® ã§ã§ããªãããšèããŠãããšããã§ãã
ããã®ä»ãLLMã«äººæ ŒãæŒããããããšã«ãèå³ãæã£ãŠããŸãããã¡ãã¯çŸåšãClaudeã§çްã ãšåãçµãã§ããŠãæ§èœå·®ã«ç®ãã€ã¶ãã°èªå® ã«ç§»è¡ã§ããããªæ°ãããŠããŸãã
â 7. ãã®ä»
ãç§ãæžããä»ã®èšäºã¯ãã¡ãã¥ãŒãããã©ã£ãŠãã ããã
ãnoteã®ã¢ã«ãŠã³ãã¯ã¡ã€ã³ã®@Mayu_Hiraizumiã«çŽä»ããŠããŸãããèšäºã«é¢ããããšã¯ãµãã¢ã«ãŠã³ãã®@riddi0908ãŸã§ãé¡ãããŸãã