気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

tmux の基本操作と Claude での活用方法

概要

tmux(Terminal Multiplexer)は、一つのターミナル画面を複数のパネルに分割したり、バックグラウンドでプログラムを実行し続けたりできる強力なツールである。Claude などの AI と対話しながら開発を進める際、文脈を切り替えずに作業できるため非常に相性が良い。

1. 基本コンセプト:プレフィックスキー

tmux のすべての操作は、プレフィックスキーと呼ばれるショートカットを起点とする。デフォルトでは Ctrl + b に設定されている。 (以下、Ctrl + b を [Prefix] と表記する)

2. 画面分割(ペイン)の操作

一つのウィンドウを格子状に分割して、複数のシェルを同時に表示する操作である。

操作内容 コマンド
左右(垂直)に分割 [Prefix] + %
上下(水平)に分割 [Prefix] + "
ペイン間の移動 [Prefix] + 矢印キー
ペインの最大化 / 復帰 [Prefix] + z
現在のペインを閉じる Ctrl + d または exit

3. ウィンドウ(タブ)の操作

ブラウザのタブのように、画面全体を切り替える単位である。

操作内容 コマンド
新しいウィンドウを作成 [Prefix] + c
次のウィンドウへ移動 [Prefix] + n
前のウィンドウへ移動 [Prefix] + p
番号を指定して移動 [Prefix] + 数字(0-9)
ウィンドウ一覧を表示 [Prefix] + w

4. セッションの管理(中断と再開)

tmux の最大の利点は、接続を切っても作業状態が保持される点にある。

  • デタッチ(中断): [Prefix] + d
    • 実行中のプロセスを維持したまま、tmux の外に戻る。
  • アタッチ(再開): tmux a
    • 前回の作業状態に復帰する。

5. Claude を活用する開発フロー

Claude から提示されたコードやコマンドを効率的に扱うためのテクニックである。

  1. 左右分割での並行作業 左ペインでエディタ(Vim/Nano等)を開き、右ペインで Claude の指示に基づいたコマンド実行やログ確認を行う。
  2. コピーモードの活用 [Prefix] + [ でコピーモードに入り、矢印キーでログを遡る。エラーメッセージを範囲選択して Enter でコピーし、そのまま Claude に貼り付けて解析を依頼できる。
  3. ズーム機能(z) Claude が生成した長いコードを修正する際、[Prefix] + z でエディタ画面を一時的に全画面化し、視認性を高める。

参照サイト

Claude Code Agent Teams (EXPERIMENTAL) 使い方ガイド

概要

Claude Code の実験的機能であるエージェントチーム機能(CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1)を利用すると、複数の Claude インスタンスを「チームメイト」として立ち上げ、複雑なタスクを自律的に解決させることが可能。本稿では、その有効化から操作方法、内部構造までを解説する。


1. 有効化の方法

チーム機能を利用するには、環境変数 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS を 1 に設定する必要がある。常用する場合は settings.json への追記が推奨される。

settings.json への追記(推奨)

~/.claude/settings.json に以下の設定を追加することで、起動のたびに環境変数を指定する手間を省ける。

{
  "env": {
    "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
  },
  "teammateMode": "auto"
}

表示モード(teammateMode)の選択肢

チームメイトの動作画面をどのように表示するかは、以下の表の通り。

値 動作 必要な環境
auto tmux内なら分割ペイン、それ以外はin-process(デフォルト) -
in-process メインターミナル内で全員起動。キー操作で表示を切り替える -
tmux 各チームメイトが別ペインで起動 tmux または iTerm2

2. チームの作成と制御

特別な CLI フラグは不要だ。Claude との会話の中で、自然言語を使ってチームを編成し、タスクを依頼する。

チームの作成例

会話の中で以下のように指示するだけで、Claude がチームメイトをスポーンさせ、タスクを分解・割り当てし、並行実行を開始する。

「設計担当、実装担当、Devil's Advocateの3人チームを作って、このプロジェクトの認証機能をリファクタリングして」

動的な制御コマンド例

チームの編成や進行状況は、会話を通じて詳細に制御できる。

目的 指示の例(英語推奨)
メンバー追加 Spawn an architect teammate to refactor the auth module.
モデル指定 Create a team with 4 teammates using Sonnet for each.
承認フロー Require plan approval before they make any changes.
同期実行 Wait for your teammates to complete before proceeding.
個別終了 Ask the researcher teammate to shut down.
クリーンアップ Clean up the team.(※リードセッションから実行)

3. 操作方法とショートカット

特に in-process モード(同一ターミナル内での動作)において、エージェントを切り替えるための主要なキー操作は以下の通り。

キー 動作
Shift + Down チームメイトを順番に切り替える
Enter 選択中のチームメイトのセッション詳細を表示する
Escape チームメイトの現在の思考・実行ターンを中断する
Ctrl + T 共有タスクリストの表示 / 非表示を切り替える

4. 内部構造と連携の仕組み

チームは「リード(親)」と複数の「チームメイト(子)」で構成され、独自のインフラを使用して連携する。

  • 共有タスクリスト: ~/.claude/tasks/{team-name}/ にタスクが保持される。各エージェントはここから自律的にタスクを確保(クレーム)し、実行する。
  • 通信システム: message(1対1)や broadcast(全員)といったコマンドでエージェント間通信を行う。タスク完了時はリードへ自動通知が届く。
  • 独立したコンテキスト: 各チームメイトは個別のコンテキストウィンドウを持つ。

独自スクリプト(手動 tmux 起動)との比較

比較項目 手動 tmux スクリプト等 本来の Team 機能
起動方法 シェルが手動でペイン分割・複数起動 Claude が自ら自動スポーン
エージェント間通信 ファイル(Markdown等)の読み書き 専用メッセージングシステム
タスク管理 口頭指示または手動ファイル管理 共有リスト + 自動クレーム
役割プロンプト 起動時に JSON 等で事前注入 自然言語で動的に指示

5. 品質ゲート(Hooks)の設定

チームメイトの作業品質を担保するため、特定のタイミングでスクリプトを実行し、フィードバックを与える「Hooks」機能が利用可能。

Hook 名 タイミング exit code 2 の効果
TeammateIdle チームメイトがアイドルになる直前 フィードバックを返し作業を継続させる
TaskCompleted タスクが完了マークされる直前 完了を拒否し、修正を命じて差し戻す

6. 制限事項と注意点

  • トークン消費: 各チームメイトが独立したコンテキストを持つため、人数に比例してトークン消費量(コスト)が増加する。
  • セッション復元: /resume や /rewind コマンドを使用しても、in-process のチームメイトの状態までは完全に復元されない。
  • ネスト不可: チームメイトがさらに別のチームを作る(孫エージェントを作る)ことはできない。
  • 環境制約: VS Code 統合ターミナル、Windows Terminal、Ghostty 等では tmux(分割ペイン)モードは動作しない。

参考サイト

Claude Code 究極の活用ガイド:継続的成長とトークン最適化の戦略

下記の要約内容を記載しておく

Claude Code は単なる CLI ツールではなく、適切な設定と運用パターンを組み合わせることで、開発者の意図を汲み取り続ける「自律型パートナー」へと進化する。10ヶ月に及ぶ実践から導き出された、コンテキスト管理、メモリ永続化、そしてコスト効率を最大化する戦略を解説する。

1. コンテキストとメモリの管理戦略

長期的なプロジェクトにおいて最大の敵は「コンテキストの劣化」である。会話が長引くと Claude の推論精度は低下し、トークン消費も増大する。これを防ぐには、セッションを戦略的に分割し、メモリを外部化する手法が不可欠である。

セッションの永続化と再開

セッション終了時に .claude フォルダ内の .tmp ファイルに進捗状況、決定事項、未完了タスクを要約して保存する「スキル」を導入する。翌日の作業開始時には、このファイルを読み込むだけで、前日の文脈を正確に引き継ぐことができる。

戦略的コンパクト(圧縮)

Claude Code の自動圧縮機能に頼らず、論理的な区切り(探索フェーズから実行フェーズへの移行時など)で手動圧縮(/compact)を行う。これにより、不要な試行錯誤の履歴を排除し、純度の高いコンテキストのみを維持できる。


2. 上級編:動的システムプロンプトとフックの活用

標準の CLAUDE.md やプロジェクトルールだけでなく、状況に応じてシステムプロンプトを動的に注入することで、Claude の振る舞いをより精密に制御できる。

システムプロンプトの動的注入

CLI フラグを利用し、用途に合わせたシステムプロンプトを読み込むエイリアスを設定する。 * 開発モード: 実装詳細にフォーカス。 * レビューモード: セキュリティとコード品質を優先。 * リサーチモード: 実装前に広範な調査を行う。

メモリ永続化フックの階層

フック機能を活用し、ユーザーが意識することなく情報を蓄積する仕組みを構築する。

フック名 実行タイミング 主な役割
SessionStart セッション開始時 過去 7 日間のコンテキストと習得済みスキルのロード
PreCompact 圧縮実行直前 重要な状態を要約し、情報の消失を防止
Stop セッション終了時 学習内容の抽出、セッションログの保存、スキルの自動生成

3. 継続的学習(Continuous Learning)スキル

Claude が一度解決したエラーや、プロジェクト固有の回避策を二度と忘れないようにするため、Stop フックを利用して「学習内容」を自動抽出する。

  • 自動抽出: セッション終了時に、エラー解決策やデバッグ手法を解析し、~/.claude/skills/learned/ に新しいスキルとして保存する。
  • 手動学習: 難解な問題を解決した直後に /learn コマンドを実行し、即座に知見をパターン化する。
  • メリット: 同じ説明を繰り返すストレス(とトークンの浪費)を排除し、使うほどに Claude が賢くなる環境を実現する。

4. トークン最適化とコスト管理

パワーユーザーにとって、トークン制限とコストは常に課題となる。サブエージェントアーキテクチャとモデルの使い分けがその解決策となる。

モデル選択のクイックリファレンス

タスクの複雑さに応じて、最適なモデルに処理を委任する。

モデル 推奨タスク コスト特性
Haiku 単純なファイル検索、リサーチ、定型的な修正 最安・高速
Sonnet 標準的なコーディング、大半の開発タスク バランス型
Opus 複雑なアーキテクチャ設計、高度なセキュリティ分析 高価・高精度

ツールと構造の最適化

  • mgrep の導入: 標準の grep よりもトークン消費を抑えた検索ツールを使用する。
  • モジュール化: 1 ファイルを数百行程度に抑えるモジュール型構成にすることで、ツール呼び出し回数を減らし、情報の欠落を防ぐ。
  • システムプロンプトの軽量化: 不要な命令を削除したカスタムプロンプトを使用し、静的オーバーヘッドを削減する。

5. 検証ループと並列化ワークフロー

品質を担保するための「検証ループ」と、効率を倍増させる「並列処理」のパターンを確立する。

検証パターンの二層化

  1. チェックポイントベース: マイルストーンごとに基準を満たしているか確認する。直線的な開発に適している。
  2. 継続的評価: テスト、リンター、ビルド確認を頻繁に実行する。長時間の探索的リファクタリングに適している。

並列化のベストプラクティス

複数の Claude インスタンスを立ち上げる際は、Git ワークツリーを活用する。

  • メリット: Git の競合を防ぎ、各インスタンスにクリーンな作業領域を提供できる。
  • 役割分担: メインチャットでコード変更を行い、別タブ(フォーク)で調査やドキュメント生成を行う。

6. プロジェクト開始時の「キックオフパターン」

新規プロジェクトの基盤作りでは、役割の異なる 2 つのインスタンスを同時に活用するのが効果的である。

  • インスタンス 1(足場エージェント): プロジェクト構造の作成、CLAUDE.md やルールの設定、基本的な骨組みの実装を担当。
  • インスタンス 2(深層研究エージェント): PRD(製品要求仕様書)の作成、アーキテクチャ図(Mermaid)の生成、最新ドキュメントの調査を担当。

理念:再利用可能なパターンの構築

特定のモデルのテクニックに依存するのではなく、スキル、コマンド、MCP、ワークフローといった「再利用可能なパターン」に投資することが、将来的なモデルのアップデート後も価値を発揮し続ける鍵となる。


参考サイト

スマホからClaude Codeを快適に操作する:SSH Termの活用 のまとめ

概要

以下の記事の内容のメモとして本記事を残しておく
スマホからClaude Codeを日本語で操作する。自作SSHアプリ「SSH Term」の話 #iOS - Qiita

Claude Codeの公式機能である「リモートコントロール」は、スマホからセッションに接続できる便利な機能である。しかし、この機能はチャットUIに限定されており、ファイルの探索や直接的なターミナル操作ができないといった制約が存在する。これらの課題を解決し、外出先からでも本格的な開発環境を実現する手段として、SSHとtmuxを組み合わせた運用、およびそれを支えるアプリ「SSH Term」が有効である。

公式リモートコントロールとSSH運用の比較

公式のリモートコントロール機能と、SSHアプリ(SSH Term)を用いた運用の主な違いは以下の通りである。

比較項目 公式リモートコントロール SSH + tmux (SSH Term)
操作インターフェース チャットUIのみ。ターミナル操作不可 ターミナルそのもの。あらゆるCLI操作が可能
セッションの永続性 ネットワーク切断後、約10分で終了 tmuxにより永続。再接続でいつでも復帰可能
ファイル管理 Claude Codeを介した操作のみ SFTPファイラーによる閲覧・DLが可能
日本語入力 端末のIMEに依存(Androidでは難あり) 独自のIMEモードにより安定した入力が可能
セットアップ コマンド一発で容易 SSHサーバー設定とtmuxの導入が必要

SSH Termが解決するモバイル開発の課題

Androidにおける日本語入力の安定化

多くのAndroid用SSHアプリでは、日本語入力が正常に機能しないという致命的な問題がある。SSH Termには専用のIMEモードが搭載されており、Claude Codeへのプロンプト指示やgitのコミットメッセージなどを、日本語で確実に入力することが可能である。

視覚的なファイル操作とシンタックスハイライト

ターミナル上でコードを確認するのは、スマホの小画面では困難である。SSH TermはSFTPファイラーを内蔵しており、40以上の言語に対応したシンタックスハイライト付きでファイルを閲覧できる。また、生成された成果物をスマホ本体にダウンロードすることも可能である。

接続・操作の自動化

スマホでのコマンド手打ちは手間がかかるため、SSH Termでは以下の自動化機能が提供されている。 - 接続時・再接続時コマンド: 接続直後にWSLの起動やtmuxへのアタッチを自動で実行できる。 - カスタムテキストコマンド: よく使うコマンドをボタンとして登録し、ワンタップで実行可能である。 - バックグラウンド維持: アプリを切り替えても接続が維持されるため、Claude Codeの処理待ちの間に他アプリを利用できる。

柔軟なカスタマイズ性とセキュリティ

SSH Termは、DraculaやTokyo Nightといった8種類のテーマ、および10種類以上のモノスペースフォントに対応している。さらに、Nerd Fontをサポートしているため、PCでカスタマイズしたリッチなプロンプト表示をスマホでも再現できる。セキュリティ面では、公開鍵認証(Ed25519等)や、アプリ復帰時の生体認証ロック機能も備えている。

このように、SSH Termは単なるターミナルアプリではなく、Claude CodeをはじめとするAIコーディングエージェントをスマホからフル活用するために設計されたツールである。

参考

スマホからClaude Codeを日本語で操作する。自作SSHアプリ「SSH Term」の話

gradlePluginPortal と mavenCentral の違い

Gradleのリポジトリと設定ファイルの違い

Gradleにおける「リポジトリの役割」と「設定ファイルの責務」は明確に分離されている。ビルドエラーを解消する上で、これらの違いを正しく理解することは不可欠である。


1. gradlePluginPortal と mavenCentral の違い

これらはどちらも「成果物(アーティファクト)を配布する場所」であるが、格納されているコンテンツの性質が異なる。

項目 gradlePluginPortal mavenCentral
主な用途 Gradleプラグインの配布 汎用ライブラリ(Java/Kotlin)の配布
運営元 Gradle Inc. Sonatype社(コミュニティ標準)
コンテンツ id("com.google.devtools.ksp") のようなビルド拡張機能 implementation("com.google.gson:gson") などのアプリ用コード
特徴 Gradle専用のポータル。一部のプラグインはここからMaven Centralへプロキシ(転送)される。 世界最大のJavaエコシステムリポジトリ。KSPなどの主要プラグインの実体もここに置かれることが多い。

2. settings.gradle.kts と build.gradle.kts の違い

定義を記述する場所によって、「何のための解決ルールか」が決定的に異なる。

settings.gradle.kts (pluginManagement)

  • 役割: 「ビルドツール自体」が使用する道具(プラグイン)をどこから持ってくるかを決める。
  • スコープ: プロジェクト全体(マルチプロジェクト全体)の初期化フェーズ。
  • なぜ重要か: plugins { ... } ブロックで指定されたプラグインを解決するには、まずこの設定が読み込まれている必要がある。

build.gradle.kts (repositories)

  • 役割: 「アプリケーションのソースコード」がコンパイル・実行時に必要とする外部ライブラリをどこから持ってくるかを決める。
  • スコープ: 各プロジェクト(モジュール)のビルドフェーズ。
  • なぜ重要か: ここに mavenCentral() を書いても、それはアプリ用のライブラリを探す設定であり、Gradleプラグイン(KSPなど)を探すための設定には反映されない。

3. まとめ:なぜ今回のエラーが起きたのか

  1. プラグインの所在: com.google.devtools.ksp は gradlePluginPortal ではなく mavenCentral に実体が置かれている。
  2. 設定の不備: settings.gradle.kts 内の pluginManagement に mavenCentral() が記述されていなかった。
  3. 解決策: プラグインを探す場所(settings.gradle.kts)に、明示的に mavenCentral() を追加する必要がある。

主要参照サイト

JDBCとR2DBCにおけるSSL証明書運用の違い:なぜTrustStoreが必要なのか

概要

Javaアプリケーションからデータベースへセキュアに接続する際、SSL/TLS証明書の管理は避けて通れない課題である。特に、AWSなどのクラウドサービスから提供される証明書形式(PEM)と、Javaの伝統的な接続方式(JDBC)の間には、形式上の「溝」が存在する。

本記事では、JDBCとR2DBCにおける証明書の扱い方の違いを整理する。

1. JDBCにおける制約:TrustStore(JKS)の壁

JDBC(Java Database Connectivity)を利用する場合、データベースドライバの多くは、信頼できる認証局の情報を TrustStore という形式で要求する。

TrustStoreとは

Java独自のバイナリ形式である JKS (Java KeyStore) や、標準規格の PKCS12 でパッケージ化されたファイルである。

  • PEM形式との非互換性: AWS等からダウンロードできる .pem ファイル(テキスト形式)を、JDBCドライバの設定にそのままパスとして指定して読み込ませることは基本的にできない。
  • 変換の必要性: .pem から .jks や .p12 への変換には、openssl や Java標準の keytool コマンドを用いる必要がある。

運用のジレンマ

リソースフォルダに .pem や変換用の .sh(スクリプト)を含めるのは、プロジェクト構成としては美しくないという意見も多い。しかし、JDBCを使う以上、以下のいずれかの対応が不可避となる。

  1. ビルド時やデプロイ時に手動(またはCI/CD)で変換した .jks を同梱する。
  2. アプリケーション起動時に、コード内で動的に .pem を読み込み、メモリ上または一時ファイルとして TrustStore を生成する。

2. R2DBCにおける柔軟性:モダンな証明書ハンドリング

一方で、比較的新しい接続仕様である R2DBC (Reactive Relational Database Connectivity) では、このあたりの設計が大幅に改善されている。

PEM形式の直接サポート

R2DBCドライバ(特に r2dbc-mysql や r2dbc-postgresql など)の多くは、SSL構成において PEMファイルを直接指定できる 仕組みを持っている。

  • 利便性: 変換コマンドを介さず、ダウンロードした .pem ファイルをそのままパス指定、あるいは文字列として流し込むことが可能である。
  • 構成の簡素化: 「変換スクリプト」や「独自形式のバイナリファイル」を管理する必要がなくなり、リソース管理がシンプルになる。

3. 比較まとめ:どちらの方式を採用すべきか

比較項目 JDBC (従来方式) R2DBC (モダン方式)
主な形式 JKS / PKCS12 (TrustStore) PEM / X.509
変換コスト 必須(keytool等を使用) 不要(そのまま読み込み可)
設定の難易度 やや高い(システムプロパティ等) 低い(接続URLやConfigに記述)
主な用途 従来の同期処理、Spring MVC等 ノンブロッキング、Spring WebFlux等

結論

JDBCを採用しているプロジェクトにおいて、SSL証明書の運用を楽にするためには「アプリケーションコード内でPEMをTrustStoreへ動的に変換して読み込む」というアプローチは、非常に現実的で合理的な選択と言える。

もしプロジェクトの要件がリアクティブスタック(WebFlux等)への移行を許容するのであれば、R2DBCを選択することで、これらの「証明書変換の手間」そのものを排除することが可能である。


参照サイト

Ollama: オープンソースのローカルLLM環境構築ツール

OllamaによるローカルLLM環境構築と活用の詳細解説

Ollama(オラマ)は、大規模言語モデル(LLM)をローカルPC環境で驚くほど簡単に実行できるオープンソースのツールである。従来、LLMを自身のPCで動かすには複雑なライブラリのインストールや環境構築が必要であったが、Ollamaの登場により、コマンド一つでChatGPTのような対話型AIを自分の端末内に構築することが可能となった。

Ollamaの仕組みと圧倒的なメリット

Ollamaは、内部的に「llama.cpp」というC++で書かれた高効率な推論エンジンを採用している。これをユーザーが扱いやすいようにパッケージ化したものがOllamaであり、以下のような特筆すべき利点を持っている。

  • 究極のプライバシー保護: すべての推論処理がユーザーのローカルマシン内で行われるため、入力したデータが外部サーバーに送信されることはない。機密情報や個人情報を扱う業務においても、情報漏洩のリスクを極限まで抑えることができる。
  • ランニングコストの撤廃: ChatGPTなどの商用APIは利用量に応じた従量課金が発生するが、OllamaはPCの電気代とリソースのみで動作する。何度試行錯誤しても追加費用は一切かからない。
  • オフラインでの動作: 一度モデルをダウンロードしてしまえば、インターネット接続が不安定な場所や、セキュリティ上の理由でネットワークを遮断している環境でもAIを利用できる。
  • エコシステムとの連携: Ollamaは標準でローカルサーバーとして機能し、OpenAI互換のAPIエンドポイントを提供する。これにより、DifyやAnywhere LLM、各種ブラウザ拡張機能などの外部ツールと即座に連携可能である。

動作に必要なハードウェアスペックの詳細

Ollamaを快適に動作させるためには、使用するモデルの「パラメータ数」に応じたリソースが必要となる。特に、モデルデータを展開するためのメインメモリ(RAM)またはビデオメモリ(VRAM)の容量が重要である。

推奨スペック一覧表

コンポーネント 最小構成(7Bモデル等) 推奨構成(13B〜30Bモデル) ハイエンド構成(70Bモデル)
メモリ (RAM) 8GB以上 16GB 〜 32GB 64GB以上
GPU / VRAM CPUのみでも動作可 NVIDIA RTXシリーズ (8GB+ VRAM) NVIDIA RTX 3090/4090 (24GB VRAM)
OS Windows 10/11, macOS 12+, Linux 同左(Apple Silicon Mac推奨) 同左(Linux + 複数GPU構成など)
ストレージ 10GB以上の空き容量 50GB以上の空き容量 200GB以上の高速NVMe SSD

Apple Silicon(M1/M2/M3チップ)を搭載したMacは、メインメモリをGPUと共有するユニファイドメモリ機構により、大規模なモデルも比較的スムーズに動作させる傾向がある。一方、Windows環境ではNVIDIA製のGPU(CUDA)を利用することで、劇的な推論速度の向上が見込める。

Ollamaの導入と主要コマンドの使い方

導入は非常にシンプルである。公式サイトからインストーラーをダウンロードし、実行するだけでバックグラウンドでOllamaサービスが起動する。その後、ターミナル(macOS)やコマンドプロンプト/PowerShell(Windows)から以下のコマンドを用いて操作を行う。

1. モデルの取得と実行

最も基本的なコマンドは run である。指定したモデルがローカルにない場合は自動的にダウンロードが開始される。

ollama run llama3

2. ローカルモデルの管理

現在自分のPCに保存されているモデルの一覧を確認したり、不要になったモデルを削除したりする。

  • 一覧表示: ollama list
  • 削除: ollama rm [モデル名]
  • 更新: ollama pull [モデル名](最新の重みデータを再取得する)

3. 対話中の操作

ollama run で対話モードに入った後は、スラッシュコマンドで制御が可能である。

  • /bye: 対話を終了して終了する。
  • /set verbose: 推論速度やトークン数などの統計情報を表示する。

日本語環境における最適モデルの選択

Ollamaのデフォルトリポジトリ(ollama.com/library)には多種多様なモデルが存在するが、日本語で利用する場合は以下のモデルが推奨される。

  1. Llama 3 / 3.1: Metaが開発した最新モデル。日本語能力が飛躍的に向上しており、汎用性が極めて高い。
  2. Gemma 2: Googleが公開した軽量かつ強力なモデル。9Bサイズでありながら、日本語の要約や推論において非常に高いパフォーマンスを発揮する。
  3. Mistral / Mixtral: 欧州発のモデルで、効率的な推論が特徴。特定のタスク(プログラミングなど)において強い。

ライセンスと商用利用に関する注意

Ollamaというツール自体はMITライセンスで提供されており、自由な利用が可能である。しかし、その上で動かす「モデル」のライセンスは個別に異なる点に注意しなければならない。

  • Llama 3: Meta独自の「Llama 3 Community License」が適用される。月間アクティブユーザー数が7億人を超える大規模サービスでない限り、商用利用は原則として無料である。
  • Gemma: Googleの「Gemma Terms of Use」に従う。商用利用は可能だが、利用規約の遵守が求められる。
  • Apache 2.0モデル: Mistralなど一部のモデルは、より制限の少ないApache 2.0ライセンスで配布されており、ビジネス用途でのカスタマイズに適している。

企業で導入する際は、利用するモデルごとに各開発元が提示する最新のライセンス条項を確認することが推奨される。


参考サイト