メむンコンテンツぞスキップ
芋出し画像

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圢匏のモデル単䜓の利甚もできたす。その堎合は、モデルのダりンロヌドや倉換の箇所を読み飛ばしおください。

     倉換元ずしお、最近公開されたばかりの䞋蚘のモデルを遞びたした。

     たた、䞊蚘をさらにチュヌニングしたモデルも公開されおいたすので、参考たで玹介しおおきたす内容の確認はしおいたせん。

    â–Œ 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」ぞ進んでください。

    画像
    ReleasesにあるLatestバヌゞョンのリンク先ぞ進む

     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. モデルの遞択

     冒頭で説明した䞋蚘のダりンロヌド方法を、次項より順に説明したす。䞍芁な説明があれば読み飛ばしおいただいお結構です。

     いずれも日本語向けのモデルなので遞択は自由ですが、迷った堎合は「rinna/gemma-2-baku-2b-it」をおすすめしたす。たた、他のHugging Face圢匏のLLMも利甚できる可胜性がありたす。

    補足LLMは察話で指瀺ができるよう、Instruction-Tuningが行われたす。公開されたモデルが1皮類の堎合、通垞はinstruct版ず思われたす。Tuningを行っおいないものず分けお、「***-*.*b-instruct(it)」の名前で公開される堎合もありたす。

     参考たで、Hugging Face圢匏のLLMは䞋蚘画面のようなファむル構成になっおいたす。

    画像
    Hugging Face圢匏のLLMの構成rinna/gemma-2-baku-2b-itの堎合

    â–Œ 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等ぞ移動したす。

    https://github.com/llm-jp/llm-jp-tokenizer/blob/main/models/ver3.0/llm-jp-tokenizer-100k.ver3.0b1.model 



    ■ 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_M

    • LLM-jp-3 (1.8b)
      3.48GB 
 BF16
      1.84GB 
 Q8_0
      1.42GB 
 Q6_K
      1.08GB 
 Q4_K_M

    • LLM-jp-3 (3.7b)
      7.04GB 
 BF16
      3.74GB 
 Q8_0
      2.89GB 
 Q6_K
      2.17GB 
 Q4_K_M

    • LLM-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たでお願いしたす。



     
     
    5060Ti (16GB) ず 3060 (12GB) を所持。蚘茉が無い限り文章は手曞きです。蚘事に関するこずは X の riddi0908 たでお願いしたす。質問箱は気たぐれにお返事したす。

    あなたぞのおすすめ