操作マニュアル
このページは、Android アプリ実装に合わせて、LLM tester with llama.cpp の使い方と挙動を整理した公開マニュアルです。
関連文書: 技術仕様 | プライバシーポリシー
【重要】ダウンロード通信について
モデルのダウンロードには数GB単位の通信が必要になる場合があります。モバイルデータ通信を使用すると高額な通信料が発生する可能性があるため、可能な限りWi-Fi環境でのダウンロードを強く推奨します。
1. アプリ概要
- アプリ名: LLM tester with llama.cpp
- Built with: Llama (llama.cpp)
- 本アプリは端末上でLLMを実行し、プロンプトに対する回答を生成します。
- 必要に応じてOllama互換APIサーバーと llama.cpp 標準WebUIを同じポートで起動できます。
2. 初期設定(推奨手順)
- アプリ起動時にAPI/WebUI有効化ポップアップが表示された場合は、必要に応じて有効化するか、「次回以降は表示しない」をチェックすると次回から表示されません。
- 初回起動時のQuick Startで「次回以降は表示しない」をチェックすると、次回起動以降は表示されません。
- メイン画面で「設定」を開きます。
※推論中(Busy)は設定ボタンが無効化されます。処理完了後に自動で再有効化されます。 - モデルURLを入力するか、ローカル端末から
.ggufファイルを取り込み、「モデルを読み込む」を押してモデルを読み込みます。
※ローカル取り込みのファイル選択は Downloads フォルダを既定で開き、必要に応じて端末内の他の場所へ移動して選択できます。HTTP/HTTPS URLを利用でき、HTTPSでは通常のSSL/TLS証明書検証を行います。ローカル取り込み時は設定欄にファイル名のみが保存されます。 - パラメータを調整する場合は各項目を編集し「設定を保存」で保存します。
- 「保存して閉じる」を押すと設定が保存され、モデルに即座に適用されます。
3. メイン画面の各機能
- プロンプト入力: プロンプトを入力します。
- 送信: 生成を開始します。モデル未ロード時は自動でロードを試みます。
- 設定: 推論中(Busy)は自動的に無効化され、処理完了後に再び有効になります。
- モデル再初期化: 実行中でも押せます。進行中の生成を停止して現在のプロファイルを即座に再初期化します。失敗した場合はログを確認するか、設定から再度モデルを読み込んでください。
- ログ表示 / ログを隠す: モデル出力欄にログファイルの最新100行を表示し、もう一度押すと通常の出力表示へ戻ります。
- 更新: ログ表示中の内容を最新100行で再読み込みします。
- ログ消去: ログファイルを空にします。
- API/WebUI開始 / API/WebUI停止: APIサーバーとWebUIを同時に起動または停止します。
- モデル出力: モデル応答を表示します。ログ表示中はログ本文を表示します。
- コピー(モデル出力): モデル出力欄の内容をクリップボードへコピーします。
- 保存: 通常時は表示中の応答を保存し、ログ表示中はログ全文を保存します。応答が空の場合はログ全文を保存します。
- 処理状況/ログ: タイムスタンプ付きの処理ログを表示します。
- コピー(処理状況/ログ): 処理状況/ログ欄の内容をクリップボードへコピーします。
4. 設定画面の操作
- 設定画面: 各項目は種別ごとのセクションに分かれており、見出しをタップすると開閉できます。MCP設定セクションは初期状態で閉じています。
- 設定管理: 設定の保存/削除/読み込みを行います。
- モデル選択: モデルURLでの読み込みに加え、ローカル端末から
.ggufファイルを取り込めます。ファイル選択は Downloads フォルダを既定で開き、必要に応じて端末内の他の場所へ移動できます。取り込んだファイルはアプリ内モデル保存先へコピーされ、設定欄にはファイル名のみを表示します。HTTP/HTTPS URL利用時はHTTPSで通常のSSL/TLS証明書検証を行います。 - モデルパラメータ: 生成パラメータを設定します(GPUオフロード層を含む)。
- 出力設定: ストリーミング出力の有効/無効を切り替えます。
- プロンプトテンプレート: システムプロンプト、Think有効/無効(chat-template-kwargs.enable_thinking)、カスタムテンプレートを設定できます。カスタム未設定時はGGUFのchat_templateメタデータを優先し、必要に応じてモデルファミリーから自動選択されます。Bonsai系の既定テンプレートにも対応しています。
- Llama APIサーバー: サーバーポートを指定します。ローカルURLは
http://localhost:<port>で表示され、Wi-Fi接続中はLAN URLも表示してタップでコピーできます。起動時ポップアップまたはメイン画面で有効化すると、APIとWebUIが同じポートで利用可能になります。 - MCP設定: モデル設定とは別のアプリ共通設定としてMCPコンフィグJSONとFunction Definitions JSONを保存できます。各スイッチをオフにした場合は WebUI でのみ利用され、メイン画面のプロンプト入力や
/api/chat、/api/generate、/v1/chat/completionsでは未設定として扱われます。オンにした場合のみ、それぞれ共有MCP設定と共有 function calling 定義として利用されます。 - 表示言語: 日本語/English の表示言語を切り替えます。初回は端末設定から自動選択され、次回以降は選択が保存されます。
- ログ設定: ログレベルを選択します(初回起動時の既定値: INFO)。
- ライセンス表示: ライセンス文面を表示します。
- ドキュメント: 操作マニュアルとプライバシーポリシーを確認できます。
- 保存して閉じる: 現在の入力値を保存し、モデルに即時適用してメイン画面に戻ります。
- 閉じる: 何も保存せずメイン画面に戻ります。
5. モデルパラメータの詳細説明
基本パラメータ
- コンテキストサイズ (n_ctx): モデルが一度に処理できるトークン数です。大きいほど長い文脈を扱えますが、メモリ消費が増加します。
- スレッド数 (n_threads): 推論に使用するCPUスレッド数です。端末のコア数に合わせて調整してください。
- バッチサイズ (n_batch): 一度に処理するトークン数です。大きくすると高速ですがメモリを多く使用します。
- GPUオフロード層: GPUへオフロードする層数です。0は無効、1〜39は指定層数、-1は利用可能な全層を対象にします。
- 温度 (temp): 出力のランダム性を制御します。0に近いほど決定的、高いほど多様な出力になります。
- Top-p: 累積確率がこの値に達するまでのトークンから選択します(nucleus sampling)。
- Top-k: 確率上位k個のトークンから選択します。
ペナルティパラメータ
- Penalty Last N: ペナルティを適用する直近のトークン数です。
- Penalty Repeat: 繰り返しトークンへのペナルティ倍率です。1.0で無効、高いほど繰り返しを抑制します。
- Penalty Frequency: 出現頻度に応じたペナルティです。
- Penalty Presence: 一度出現したトークンへのペナルティです。
Mirostatパラメータ
- Mirostat: 0=無効、1=Mirostat v1、2=Mirostat v2。出力の一貫性を自動調整するサンプリング手法です。
- Mirostat Tau: 目標のサプライズ値(perplexity)です。低いとより一貫性のある出力になります。
- Mirostat Eta: 学習率です。Mirostatのフィードバック速度を制御します。
追加サンプリングパラメータ
- Min-p: 最低確率閾値です。これ以下の確率のトークンを除外します。
- Typical P: 典型的なサンプリングのパラメータです。
- Dynamic Temperature Range: 動的温度調整の範囲です。0で無効になります。
- Dynamic Temperature Exponent: 動的温度の指数です。
- XTC Probability: XTCサンプリングの確率です。
- XTC Threshold: XTCサンプリングの閾値です。
- Top-N-Sigma: シグマベースのサンプリングです。-1で無効になります。
DRYパラメータ
- DRY Multiplier: Don't Repeat Yourself 繰り返し抑制の強度です。0で無効になります。
- DRY Base: DRYペナルティの基数です。
- DRY Allowed Length: 繰り返しを許容する最小長です。
- DRY Penalty Last N: DRYペナルティを適用するトークン数です。-1で全体に適用します。
- DRY Sequence Breakers: DRYの区切り文字です。
出力設定
- ストリーミングを有効化: 有効にするとトークンが生成されるたびに出力が更新されます。無効にすると生成完了後に一括表示されます。
Think設定
- Thinkを有効化 (chat-template-kwargs.enable_thinking): chat-template-kwargs の enable_thinking を切り替えます。無効時はモデルの思考出力を抑制する形式でプロンプトを生成します。
6. プロンプトテンプレートの自動選択
カスタムテンプレートが設定されていない場合、まずGGUFのchat_templateメタデータからファミリーを推定し、利用できない場合はモデルファイル名から自動選択します。
- 対応ファミリー: Gemma, Qwen, Mistral, LLaMA, Phi, Bonsai, Zephyr, Hermes
- 該当なしの場合: ChatMLをフォールバックとして使用します
- Gemma系: system / user / model の順序を維持します
- ログ記録: 選択結果は処理状況/ログおよびINFOレベルログに記録されます
- API履歴: /api/chatの会話履歴はモデルファミリー別のマルチターンテンプレートに従って構成されます
7. 停止シーケンス
生成時に一般的なチャットテンプレートの区切り文字を検出すると自動的に生成を停止します。
8. API/WebUIサーバー(任意)
- アプリ起動時にローカルAPI/WebUIサーバーを有効化するかどうか確認するポップアップが表示されます。
- 起動すると端末内で以下を提供します:
/api/chat,/api/generate,/api/tags/v1/chat/completions,/v1/models/props,/slots- WebUI の静的ファイル
- WebUIは同じポートの
http://<端末IP>:<ポート>/で利用できます - アプリ設定で保存したMCPコンフィグJSONは共通設定として
/props経由でWebUIにも渡され、WebUIのローカルMCP設定と合わせて利用されます。 - MCP の外部利用スイッチをオンにすると、共有MCP設定は WebUI に加えて、メイン画面のプロンプト入力、
/api/chat、/api/generate、/v1/chat/completionsの内部ツール実行にも利用されます。オフでは WebUI のみで利用されます。 - Function Calling の外部利用スイッチをオンにすると、Function Definitions JSON は共通の function calling 定義としてメイン画面のプロンプト入力、
/api/chat、/api/generate、/v1/chat/completionsに自動で追加されます。オフでは WebUI のみで利用されます。 - 同時生成は1件のみです。ビジー時は最大10件までキューに入り、最大60秒待機します。60秒超過またはキュー満杯時は503を返します。
- Android 13以上では通知権限が必要な場合があります。
9. 🧭 GGUFファイルの探し方
9-1. GGUF対応モデルを探す
- Hugging Face のモデル検索で GGUF タグを使う
https://huggingface.co/models?library=gguf - GGUFモデルはリポジトリ名に
-GGUFが付いていることが多い
例:TheBloke/Mixtral-8x7B-Instruct-v0.1-GGUF - モデルページの Files タブに
*.ggufが並んでいる
9-2. 量子化バリエーションの選び方(概要)
Q2_K:軽量・低メモリQ4_K_M:バランス型(最初に試すならこれが無難)Q8_0:重いが精度高め
10. 📥 ブラウザから直接ダウンロードする手順
10-1. 手動ダウンロード
- モデルページを開く
例:https://huggingface.co/unsloth/Mistral-Small-3.1-24B-Instruct-2503-GGUF - Files タブを開く
- 目的の
*.ggufファイルをクリック - 右上の Download ボタンを押してダウンロード
10-2. GGUFファイルの直接URLを取得する
- Files タブで目的の
*.ggufをクリックしてファイルページを開く - Download ボタンを右クリック → 「リンクのコピー」
- これで 直接アクセス可能なGGUFファイルURL を取得できる
補足
大きなモデルのロードは、アドレス空間の確保失敗またはユーザ操作により中断される場合があります。その場合は次回起動時に一時ファイルを削除して通知を表示します。必要に応じて、より小さいモデルを試すか、設定から再度モデルを読み込んでください。