![見出し画像](https://assets.st-note.com/production/uploads/images/157224256/rectangle_large_type_2_1f65cdb3b19c656304bb457ca62921b6.jpeg?width=1200)
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形式のモデル単体の利用もできます。その場合は、モデルのダウンロードや変換の箇所を読み飛ばしてください。
変換元として、最近公開されたばかりの下記のモデルを選びました。
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-HumanitiesAXCXEPT/llm-jp-3-3.7b-instruct-EZO-Common
https://huggingface.co/AXCXEPT/llm-jp-3-3.7b-instruct-EZO-CommonAXCXEPT/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」)へ進んでください。
![](https://assets.st-note.com/img/1727954459-6HB5hgnpAJKwe2SQzotI4mCT.jpg?width=1200)
Assetsにある64ビット版の実行ファイル(下記画面の場合は「w64devkit-x64-2.0.0.exe」)のリンクをクリックするとダウンロードが始まります。
![](https://assets.st-note.com/img/1727954612-tgMcxk9viEP0JLu6zaDGK7Fj.jpg)
ダウンロードしたファイルを作業ディレクトリ(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. モデルの選択
冒頭で説明した下記のダウンロード方法を、次項より順に説明します。不要な説明があれば読み飛ばしていただいて結構です。
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は下記画面のようなファイル構成になっています。
![](https://assets.st-note.com/img/1727975064-nHf3aZXy0tmPEOQguC2wKVqT.jpg?width=1200)
▼ 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に設定してください。
## 指示 ##
あなたはかわいい天使になりきり、ここにいる一人の人間に向けて短い言葉を授けてください。
## 応答 ##
準備ができたらバッチファイルを実行します。テキストファイルの内容に続いて応答が出力されたら動作確認は完了です。内容を書き換えて遊んでみてください。下記の画面は実際の例です。
![](https://assets.st-note.com/img/1728061942-QW7iVD0YrPTHZCwS61oIbkOE.jpg?width=1200)
▼ 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からの応答が表示されて、繰り返して会話することができます。
下記の画面は実際の例です。いきなりトカゲが登場するなど、勝手に話を作っているのが分かります。
![](https://assets.st-note.com/img/1728066484-2ojYydknhb0ODsA8zL56exvG.jpg?width=1200)
▼ 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からの応答が表示されて、繰り返して会話することができます。
下記の画面は実際の例です。「>始める」「>ふと気づくと、何かの気配がします」「>続ける」「>姿を見せ、話を始めます」はこちら側の入力で、対話形式で話の流れをある程度制御することができます。
![](https://assets.st-note.com/img/1728388221-ELgfDitJSuvz8rR62B0Fn5wk.jpg?width=1200)
■ 6. まとめ
▼ 6-1. 所感
llama.cppを導入することで、PCでLLMを扱うための環境が整いました。モデルの性能は現在も向上し続けているため、ちょっとした遊びやアイデア出しなどは自宅で完結できるようになったと感じました。
例えば、画像生成AIで使用するプロンプトをClaude等で作ることがあったので、これを自宅でできないかと考えているところです。
その他、LLMに人格を演じさせることにも興味を持っています。こちらは現在もClaudeで細々と取り組んでいて、性能差に目をつぶれば自宅に移行できそうな気がしています。
■ 7. その他
私が書いた他の記事は、メニューよりたどってください。
noteのアカウントはメインの@Mayu_Hiraizumiに紐付けていますが、記事に関することはサブアカウントの@riddi0908までお願いします。