別記事「クラウドLLMを使ったEU5解析」ではクラウドのLLM(生成AI)を使ってのEU5ファイル解析について記事を書いたのですが、今度はローカルLLMでのEU5解析記事です。
※下記内容は、多くが生成AIの回答結果をもとに構成されており、誤りを含む場合があります。またEU5は2026年1月時点の1.0.11を対象としています。特に生成AIやMCPは発展中の技術であり、時間経過により示している画面構成やスクリーンショット、解析内容などに大きな変化が出る可能性が高いため充分ご注意ください。
概要
LLM(Large Language Model:大規模言語モデル)を手元のPC内のローカル環境で動かすのが「ローカルLLM」です。これにより、回数制限などなく好きなだけ、ローカルファイルアクセスもしながら生成AIに解析を行わせることが可能になります。
※生成AIが無制限にローカルファイルにアクセスできるわけではなく、ユーザーがスキャンするように指示したファイルだけが認識され生成AIの解析対象となる。
ただし今回の「ローカルLLM」の場合には若干スペック条件があります。EU5が動作する環境なら楽勝だと思いますが。
- CPU:Intel Core i5 / AMD Ryzen 5
- GPU:RTXシリーズが有利(VRAM8GB以上)
- メインメモリ32GB~
メインメモリは多ければ多いほど大きなデータ解析に有利になります。またGPUについてもVRAMが多ければ多いほど有利になります。
今回の構成
- クライアント:AnythingLLM Desktop版
- エンジンのラッパー&パッケージマネージャ:Ollama
- 推奨モデル(エンジン):
- 解析用:Llama 3.1 (8B)
- スキャン用:nomic-embed-text
今回はEU5解析を主目的とするため、大量ファイルの処理に向いているRAG特化型の構成を取ります。そうではなくChatGPTのように使いたいだけならば「LM Studio」などの選択肢もあります。
このうち、インターフェース部分「AnythingLLM」はサイズは小さいものの、Ollama及びエンジンは数GBあるので、別ドライブにインストールしていきます。ドライブ分けが不要な場合は手順2の環境変数設定部分を飛ばしてください。
セットアップ
それではセットアップしていきましょう。
手順1)Ollamaをインストール
- Ollamaサイト(https://ollama.com/)に行き
- 右上の「Download」から「Download Ollama」へ
- 「Windows」を選び「Download for Windows」をクリック
- ファイル(OllamaSetup.exe)がダウンロードされる ※1.2GB程度
- 自動解凍後にインストーラー起動
- インストールする生成AIモデルの選択画面になるので、ここでいったん終了(タスクバーからQuit)する
手順2)Ollamaで使うモデルをダウンロード
- 環境変数の編集:
- Windows設定(Winキー+kankyo)で、(上枠)ユーザー環境変数にOLLAMA_MODELSを追加し、値に「J:\OllamaModels」と記述してOK
- Powershell(Winキー+powershell)で「$env:OLLAMA_MODELS」で設定値を確認できる
※環境変数変更前から開いていたPowershellやOllamaには新しい環境変数が反映されません。環境変数を設定した後は、一度Powershellを閉じ、タスクバーの通知領域(インジケーター)にあるOllamaも一度Quitして再起動する必要があります
- (Ollamaを起動だけしてエンジン選択画面のまま待機させて)
- Powershellで、「ollama pull llama3.1:8b」を実行すると環境変数で指定したフォルダにインストールされる
- 続いてPowershellで、「ollama pull nomic-embed-text」を実行すると環境変数で指定したフォルダにインストールされる
これで生成AIのモデルが2つダウンロードされました。
手順3)AnythingLLMのインストール
- AnythingLLMサイト(https://anythingllm.com/desktop)で「Download for Windows (x64)」Desktop版(AnythingLLMDesktop.exe)をダウンロード ※300MB程度
- これはサイズ少ないので普通にシステムドライブにインストールする
- 「Ollamaエンジンをインストールするか?」と英文で聞いてくるので「No」を選んでスキップする。※手順2でインストールは終わっている
- ファイアウォールの確認画面が出るのでOK
- アンケート:メアドと使用目的を適当に入れる
- (次の手順へ)
手順4)AnythingLLMでの使用ローカルLLMの設定
AnythingLLM内でどのLLMを使うのかを設定しておきます。
- (右上隅の×を押してスキャンパネルを閉じて)メインパネルに移動する

- 画面左下隅のスパナアイコンから設定に入る

- 「インスタンス設定」-「AIプロバイダー」-「LLM」の設定画面に入り、
- LLM Provider:「Native(内蔵)」→「Ollama」へ変更
- Ollama Base URL:「http://127.0.0.1:11434」であることを確認
- Model:「llama3.1:8b」を選択
- MaxTokens:「4096」にすると長い解析結果でも途切れなくなる
- 忘れずに画面右サイドに出る「変更を保存」しておく

- さらに「インスタンス設定」-「AIプロバイダー」-「埋め込みエンジン」の設定画面に入り、 ※以下のエンジン変更を行うとワークスペース内のスキャン済データが初期化されます。必ず最初に設定するようにしてください。
- 埋め込みプロバイダー:「AnythingLLM Embedder」→「Ollama」
- ModelPreference:「all-MiniKM-L6-v2」→「nomic-embed-text:latest」
- Max enbedding chunk length:※512または768 通常は2048だがEU4ならそれ以下でも
- Embedding batch size:※GPUのVRAM8GB以下=16~32、12GB以上64~128
- 忘れずに画面右サイドに出る「変更を保存」しておく
参考)ローカルLLMでクラウドLLMエンジンを使う(ローカルLLMの限界について)
矛盾した項目タイトルですが、ローカルLLMの場合、どうしてもクラウド生成AIエンジンよりも総合的な解析能力は格段に劣ります。これはトークンサイズやモデルサイズ、計算リソースの制約上、致し方ない事実です。特にEU5の膨大なファイル解析などを行わせるとそれは顕著に現れます。
※例えば、VRAM容量に直結する計算リソースにおいてはローカルLLMが単体GPUの最大24GBクラスであるのに対し、クラウド側はNVIDIA H100などを数百枚単位で連結したテラバイト級のメモリ空間を誇ります。ただこれは頻繁に出し入れする(要するに質問者が回答を受け取るまでの待ち時間を我慢して増やす)ことである程度補うことも可能です。加えて、”脳”の大きさを示す「パラメータ数」です。ローカルLLMの7B(70億)〜14B(140億)に対し、最新のクラウドLLMは1,800B(1.8兆)以上と言われています。そしてEU5のファイル解析のような場面での致命的な差は、生成AIが一度に読み込める”短期記憶”量である「コンテキストウィンドウ」です。これは最初のVRAM容量に比例するものであり、家庭用PCで動作するローカルLLMが一般的に8K(8,000)トークン程度であるのに対し、クラウドLLM=AIデータセンターでは1M(100万〜200万)トークンもの膨大なデータを処理できます。このトークンサイズは決して追いつかないものです。現状では大人と幼児の違いだと言っても良いでしょうし、周辺ハードウェア技術の進化を見る限りではこの差は近々(恐らく数十年間)には埋まりそうもありません。残念ながら現時点での(専門的なジャンルにおける解析作業においては)ローカルLLMの限界は、よほど単純な解析でない限り予想以上に早く訪れます。それを乗り越えるためにはトークン量を削減する工夫(前処理)などを人間が行う必要が出てきます。※2026年初時点の概況
※このローカルLLMとクラウドLLMの””差”(特に最後のトークンサイズ)のなにが困るかと言うと、分析能力が低いのを「推測力」(学習結果による当てずっぽう)で補おうとするあまりハルシネーション(嘘・幻覚)を起こしてしまうのです。その結果、ありもしないファイルをでっち上げたり、書いてもないことを事実かのように回答し始めます(EU5であればAge15とかいい始めるが当然そんなものはない)。それを禁止するために厳格なプロンプトを書き始めるのですが、そうすると一気に「そんなものは存在しない」的な塩対応をし始めます(トークンの限界などから指定ファイル全部を保持しきれなくなり溢れて切り捨てた結果、読んでいないので存在しないとする)。結局生成AIの解析力を活かすことができず、解析にだけクラウドLLMを使い始めることになります(クライアントでの質問回数だけは無制限)。あるいは毎質問ごとに必要なファイルを手作業で全部与えるかのどちらかですが、いずれにしろローカルLLMを使うメリットがスポイルされていることに違いはありません。
※EU5の場合、解析したいと思うテキストファイル数はおよそ3,000ファイル程度ありますが(サイズ自体はそれぞれ数KB前後)、これを一気にすべて食わせて解析するなんてのは現時点では到底無理で、個別に「今回は海軍関係だからこれらとこれらのファイルと、あと日本語化でこのファイル」「今回は政府改革関連だからこれらのファイルと日本語化でこのファイル」といった、質問内容に合わせたファイルの渡し方をする必要が出てきます。しかしこれでは人間が生成AIの下僕になってしまいます。ましてや例えばブラウザ版のGeminiなどでは最大10個のファイルドロップも受け付けますし、それこそグーグルのNotebookLMなどでは50ファイル・数百万トークンを受け付けてくれます。しかしNotebookLM無料版ではチャットが1日50回と言う制限があり試行錯誤にはとても向きません。
そこで、ローカルLLMクライアントを受付窓口としてだけ利用し(質問と回答の整形)、実際の解析には強力なクラウド生成AIエンジンを使う(実際の解析作業)という処理を分担させる手段もあります。
※その場合にはデータはすべてクラウドLLMに投げますので、”秘匿性の高いローカルLLM(生成AI)環境”ではなくなります。クラウドLLMの運営企業が一番欲しがっている「人間は一体何を生成AIで処理させようとしているか?どういう結果を望んでいるか?」というデータは握られることになります。だいたい私たちが処理させようとしている”データ”自体は、ほとんどがすでに持っている(学習済)のでそんなに欲しいものではない。
クラウドLLMで処理するには、上記手順4でLLMエンジンを設定するときに、「インスタンス設定」-「AIプロバイダー」-「LLM」の設定画面で”エンジン”を「Gemini」などに、さらに”APIキー”にはクラウド生成AI(例えばGeminiならGoogle AI Studio)で取得したAPIキーを設定することで、受け付けたプロンプト処理をクラウド側に投げて回答するようになります。クラウドLLMのAPIキー取得については詳しくは別記事「クラウドLLMを使ったEU5解析」参照
※じゃあそもそも最初からクラウドLLMを使うのと何が違うのかと言うと、クラウドLLMのクライアントでクラウドLLMを利用すると言えどもクライアントからクラウド側に投げたり受けたりする際に少ないながらもトークンなどを消費しており、処理内容(特にファイル内容を解析するなど)によっては、思っているよりも早く制限(時間/日あたり利用上限)に達してしまうことがあります。するとクラウドLLM側のAPI利用制限はまだ残っているにも関わらず、先にクライアント側の利用制限が訪れるということになります。こうした事態においては、この”ローカルLLMでクラウドLLMエンジンを使う”という選択肢も検討してみても良いかも知れません。もちろんこの場合でもクラウドLLMの制限は存在し、利用量によってはやがて上限に達する可能性はありますが、少なくともクライアントサイドでの利用制限を取っ払いたいというケースの話です。
手順5)EU5ファイルの取り込み&スキャン
- AnythingLLMを起動すると、自動でワークスペース作成に入る。適当なワークスペース名を入れる
※EU5の場合は頻繁にバージョンアップを繰り返しているため、パッチごとにワークスペースを分けることにする- ※ダークモードからライトモードに切り替えたい場合には、設定の「カスタマイズ」-「UI Preference」にTheme指定がある。
- マイドキュメントパネルの「+ New Folder」 ボタンで新しくフォルダを作る
※管理上ワークスペース名のフォルダが良い
※AnythingLLMに取り込ませたすべてのファイルは、削除しない限りマイドキュメントにたまり続ける。またワークスペースを切り替えてもこのマイドキュメントは共通で存在し続ける。そのため、プロジェクトごとにフォルダを作ってその中に取り込んでいくようにしないと管理が大変になるので必ずフォルダ分類するようにしよう。またマイドキュメントの実体は「%AppData%\anythingllm-desktop\storage」に保存されていくため、そのままではシステムドライブを圧迫してしまう。これはシンボリックリンクを作成して移動してしまうと良いと思われる。※後述 - 解析させたいファイルをドラッグして、AnythingLLMの画面左側ペインの「クリックしてアップロード、またはドラッグ&ドロップしてください」の部分(下スクショだと薄青色部分)に放り込む

※ファイル取り込みが始まる。取り込み成功できたものは緑色マークが付いていく。 - 全部終わったらチェック画面になるので、一番上の行のチェックを入れ、画面中央の矢印ボタンを押して右ペインへと移動させるとスキャン処理を開始する

※上記スクショは一度ファイルスキャンが終わった後に、追加でスキャンを行う場面なのですでに右ペインにファイルがあるが、ワークスペースが空なら右ペインも空っぽ。
※これが時間がかかる。GPUを使ってでも時間短縮をしたいなら「nomic-embed-text」を使ってスキャンして、解析時には「ollama pull llama3.1:8b」と使うのもあり。というか常套手段らしい。私の環境では、EU5の4フォルダ(\game\in_game\common、\game\in_game\events、\game\in_game\setup、\game\main_menu\localization)2800弱のファイルスキャンで10分弱かかる - 取り込みが終われば、画面右ペインにファイルリストが並ぶ
- ※スキャンできなかったファイル(0バイトファイルやバイナリファイル)はエラーとして表示されるが、とりあえず無視する
- 右上の×で取り込み画面を閉じてメイン画面に戻る
マイドキュメントの仕組み
「マイドキュメント」とはAnythingLLMで取り扱う全ファイルが格納される場所で、個別のワークスペースには、このマイドキュメントの中から選択したものだけが右側ペインに格納される。各ワークスペースでは、この右側ペインに移動させたファイルだけが生成AIの認識対象となる。
※Windowsの「マイドキュメント」フォルダとは別物
しかしファイルの実体はAnythingLLMのマイドキュメントペインに残り続けることになる。
※仮にマイドキュメントからあるワークスペースにファイル移動していて、マイドキュメントの元フォルダを削除すると、スキャンしてワークスペースに移動したファイルを含めてすべてAnythingLLMから削除される
※つまり同一ファイルを元に複数のワークスペースに格納して取り扱うことも可能。
ファイルが増えると管理上非常にややこしくなるため、ワークスペースごとにAnythingLLM上で新しいフォルダを作ってそこに取り込みし、各ワークスペースへとスキャンさせるという手順を取っていくと良いと思われる。
またマイドキュメントはそのままではシステムドライブにたまり続けることになるため、このフォルダを移動させたうえでシンボリックリンクを貼っておくとシステムドライブを圧迫しない。
システムドライブから移動させる手順
- 完全にAnythingLLMを終了する
- エクスプローラーで「%AppData%\anythingllm-desktop」を開く
- その中に「storage」フォルダがあるため、それを退避させたいディスクへと「移動」する
※移動先フォルダにはstorageの上位フォルダだけを作っておき、storageフォルダごと移動する。
※コピーではなく移動(ムーブ。切り取りとペースト)。 - ムーブが完全に終わったら、コマンドプロンプトを管理者モードで起動する(フルパスで指定するのでフォルダはどこでも良い)
- コマンドプロンプトで「mklink /D “C:\Users\(ユーザー名)\AppData\Roaming\anythingllm-desktop\storage” “(移動先ドライブのフォルダ)\storage”」を実行する
- すると「%AppData%\anythingllm-desktop」フォルダの中に「storage」というショートカットアイコン付きのフォルダができる
- 試しに(ショートカットアイコン付きの)storageフォルダをダブルクリックすると、何事もなかったように(移動先の)フォルダが開くが表示上は元のシステムドライブを見ているような画面のまま
これで完了
ローカルLLMを使ってみる
生成AIに質問させてみる
さてファイル取り込みが終わったのでローカルLLMを試してみましょう。といってもなんと尋ねたら良いかが悩むところです。ここで登場するのがブラウザ版生成AIです。
質問(プロンプト)をブラウザ版生成AI(Geminiなど)に生成させ、それをローカルLLMにプロンプトとして打ち込み(コピペし)、その回答結果をブラウザ版生成AIにコピペすると、さらに次はどんなことを聞けばいいかのプロンプトを教えてくれます。
まず最初は次のような質問が良いでしょう
AnythingLLMをインストールしてEU5のファイルをスキャンさせた。試しにちゃんとファイルスキャンできたかの確認をしてみたい。AnythingLLMに何を質問すればよいか?。
生成AIはたいていParadoxInteractive社のEUシリーズのファイル構造を学習済で知っているため、どういう質問をすれば良いかをわかっています。そのプロンプトをAnythingLLMのチャット画面にそのまま入力(コピペ)してみましょう。
すると結果が出ますので、それをブラウザ版生成AIに「こういう結果が出た」として貼り付けます。するとまた生成AIが次に尋ねる内容を書いてきますので、それをAnythingLLMに入れてという作業を繰り返していきます。
要するに生成AI(ブラウザ版)が生成AI(AnythingLLM)を使っていく感じですね。人間は仲介者として動きます。
こうして質問と回答を繰り返していくと生成AIの癖がわかってきますので、徐々に自分でも質問してみたいという欲が出てくるでしょう。プライバシーを気にせず、開発中のMODや未公開の日本語化作業ファイルを投げ込めるのが最大のアドバンテージとなります。24時間使い放題ですので、好きな質問をしていきましょう。

コメント