ローカルLLMを触ってみる

記事タイトルとURLをコピーする

はじめに

こんにちは、アプリケーションサービス本部ディベロップメントサービス3課の北出です。 新しくMacBook Proを購入したのをきっかけに、ローカルLLMの構築に挑戦してみました。

普段の業務ではClaudeやGeminiといったクラウドベースのLLMを利用していますが、機密情報を扱うケースではデータを外部に送信できないという制約があります。クラウドLLMの利用が認められない案件や、お客様向けにローカルLLMを活用したソリューションを提案できるよう、実際に手を動かして検証した内容をまとめます。

本記事では、LM StudioOpen WebUIを使って、ローカル環境でLLMチャットとナレッジベース(RAG)を構築した手順と、実際に使ってみた所感を紹介します。

ローカルLLMとは

ローカルLLMとは、クラウドサービスを介さずに自分のPC上でLLM(大規模言語モデル)を直接実行する方法です。ChatGPTやClaude、GeminiなどのクラウドLLMでは、入力したデータがインターネット経由でサービス提供者のサーバーに送信されますが、ローカルLLMではすべての処理が手元のマシン内で完結します。

近年、Meta LlamaQwenMistralなど、高性能なオープンソースモデルが多数公開されており、個人のPCでも動作可能な軽量モデルが増えてきました。また、LM StudioやOllamaといったツールの登場により、専門知識がなくても手軽にローカルLLMを試せる環境が整ってきています。

ローカルLLMが注目される主な理由は以下の通りです。

  • データプライバシー: 機密情報や個人情報を外部に送信せずにAIを活用できる
  • オフライン利用: インターネット接続がない環境でも動作する
  • ランニングコスト: API利用料が不要で、初期のハードウェア投資のみで運用できる
  • カスタマイズ性: モデルの選択やファインチューニングを自由に行える

一方で、推論速度はマシンのスペック(特にGPUやメモリ)に大きく依存するため、クラウドLLMと比較するとレスポンスが遅くなる傾向があります。

今回の構成

今回構築した環境の構成は以下の通りです。

LM Studioのセットアップ

LM Studioとは

LM Studioは、ローカル環境でLLMを簡単に実行できるデスクトップアプリケーションです。GUIでモデルのダウンロード・実行・チャットができ、OpenAI互換のAPIサーバーも立ち上げられます。

モデルのインストールと動作確認

  1. LM Studioをインストール
  2. アプリ内の検索からQwen3.5-9Bを検索しダウンロード
  3. モデルをロードしてチャット画面で動作確認

チャット自体は問題なく動作しましたが、簡単な質問でも回答に約1分かかりました。推論モードでは何層にも推論をしているようで、個人のMacBook Proでは推論速度に限界があるようです。

LM StudioではRAG機能が充実していないため、Open WebUIを使ってRAG機能を作成します。

MCPの設定

LM StudioではMCP(Model Context Protocol)の設定も可能です。MCPを設定することで、外部ツールとの連携が可能になります。今回はMCPの設定まで確認できました。自分の環境にはuvをインストールしており、普段使っているmcp.jsonそのままで設定できました。

Open WebUIでナレッジベース(RAG)を構築

Open WebUIとは

Open WebUIは、オープンソースのLLMチャットUIです。ChatGPTライクなインターフェースを提供し、ドキュメントをアップロードしてベクトル化することでRAG(Retrieval-Augmented Generation)を実現できます。

Dockerでの起動

Open WebUIはDockerで起動します。自分の環境ではDocker Desktopの代わりにColimaを利用しました。

# Colimaの起動
colima start

# Open WebUIの起動
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway --name open-webui ghcr.io/open-webui/open-webui:main

起動コマンドの詳細はOpen WebUI公式ドキュメントを参照してください。

LM Studioとの接続

Open WebUIからLM Studioで起動したローカルLLMサーバーに接続します。

  1. LM Studio側でAPIサーバーを起動
  2. Open WebUIの管理画面 → 「接続」設定からOpenAI互換APIのURLを設定

1. LM Studio側でAPIサーバーを起動

LM Studioの Developer → Local Server で画像のように設定します。CORSもONにしておきましょう。

2. Open WebUIの管理画面で設定

localhost:3000 にアクセスすると、Open WebUIにアクセスできるはずなので、管理者アカウントを設定してください。

その後、右上のユーザーアイコン → 管理者パネル → 設定 → 接続 で接続設定画面に入ります。

画像のように、OpenAI APIの接続の管理をhttp://host.docker.internal:1234/v1 に設定します。

モデル設定で qwen/qwen3.5-9b があればOKです。

これでOpen WebUI上からローカルLLMとチャットできるようになりました。

ナレッジベースの作成

Open WebUIのドキュメント機能を使って、ローカルのディレクトリをナレッジベース化しました。

  1. Open WebUIの「ワークスペース」→「ナレッジ」からナレッジベースを新規作成
  2. 作成したナレッジベースの「+」を押し、「ディレクトリをアップロード」でディレクトリを丸ごとナレッジベースに登録。
  3. アップロードしたドキュメントが自動的にベクトル化される
  4. チャット画面でナレッジベースを選択して質問

ナレッジベースには私の名前などに関するマークダウンを登録しています。チャットで私の名前に関して質問してみました。

問題なくナレッジベースから情報をとってきてくれました。

ナレッジベースの作成自体はスムーズにできましたが、ナレッジベースを参照した質問への回答には約2分かかりました。ドキュメントの検索とLLMの推論を合わせると、個人のマシンスペックではかなり時間がかかる印象です。

使ってみた所感

実際にローカルLLMを構築・利用してみて感じたことをまとめます。

メリット

  • データが外部に出ない: 機密情報を扱う場合に大きなメリット
  • インターネット不要: オフライン環境でも利用可能
  • カスタマイズ性: モデルやRAGの設定を自由に調整できる

デメリット

  • 推論速度が遅い: 個人のMacBook Proでは簡単な質問でも1分、RAGを使うと2分程度かかる。ナレッジベースを増やすとさらに増加すると予想。
  • マシンスペックに依存: 快適に使うには高性能なGPUが必要

ユースケースの考察

ユースケース ローカルLLM クラウドLLM
個人の開発業務 △(速度がネック)
企業の機密情報処理 ◎(高性能マシン前提) △(データ送信の懸念)
オフライン環境(災害時等)
コスト(長期運用) ◎(初期投資のみ) △(従量課金 or 月額課金)

個人で使う分にはクラウドLLMの方が圧倒的に効率が良いです。一方で、企業レベルで高性能なコンピュータを用意できるなら、機密情報を扱うソリューションとして十分に価値があると感じました。

また、個人利用でも災害時などインターネットが使えない状況で、応急手当ての方法を聞くといった用途には役立ちそうです。

まとめ

今回、MacBook Pro上にLM StudioとOpen WebUIを使ってローカルLLM環境を構築し、ナレッジベース(RAG)まで実現しました。

  • LM Studioで手軽にローカルLLMを実行できる
  • Open WebUIでRAGを含むチャット環境を構築できる
  • ただし個人のマシンスペックでは推論速度に課題がある
  • 機密情報を扱う企業向けソリューションとしては有望

ローカルLLMは「使えるか使えないか」ではなく「どの場面で使うか」が重要です。用途とマシンスペックに応じて、クラウドLLMとうまく使い分けていくのが現実的な選択肢だと思います。

北出 宏紀(執筆記事の一覧)

アプリケーションサービス本部ディベロップメントサービス3課

2024年9月中途入社です。