第一弾:PC上でAIを動かす実験 — Phase 0〜3の挑戦

第一弾:PC上でAIを動かす実験 — Phase 0〜3の挑戦

AIstacknot

自己紹介

はじめまして。私は主にフロントエンドを扱っているエンジニアです。
普段はWebアプリケーションの開発を中心に行っていますが、近年はAIの進化に強い関心を持ち、「自分の環境でAIを動かし、業務や事業にどう活かせるか」 をテーマに取り組んでいきます。

今回は、その実験の第一弾として 「PC上でAIを立ち上げ、少しずつ拡張していく」 という取り組みを紹介します。


なぜ「PC上でAIを動かす」のか

AIを利用する際、多くの企業や個人はクラウドAPIに依存しています。確かにこれらは高性能で便利ですが、最大の課題は「従量課金」です。

  • n8nやdifyといった自動化ツールに接続すると、APIリクエスト数は一気に増える
  • 利用が広がるほど「費用が怖いから控える」という逆効果が生まれる

この問題を解決するために、ローカルで動かせるLLM に注目しました。
最近はOpenAI自身もローカルモデルを提供し始め、MetaのLLaMA、Mistral、Gemma、Phiなど選択肢も豊富になっています。

これらをPCやオンプレ環境で動かすことで、従量課金を気にせず業務フローに組み込める のです。


ロードマップ:Phase 0〜3

Phase 0:PCでチャット応答できる

  • 目的: ローカルLLMをPC上で動かし、チャット形式で応答できる環境をつくる。
  • 成果物: テキストでの入出力が可能な最小のチャット環境。
  • 使用予定/検討中の技術(暫定):
  • バックエンド: FastAPI(REST API化し、n8n/dify連携を想定)
  • LLM候補: LLaMA・Mistral・OpenAIローカルモデル
  • UI(User Interface:ユーザーインターフェース): Streamlitで簡易UI、将来的にはReactへの移行も検討
  • 補足: ここで挙げた技術は暫定であり、実際の進行時には再検討する可能性があります。

Phase 1:自分の文章を検索→正しく返す

  • 目的: 自社のドキュメントをAIに参照させ、根拠を示して回答できるようにする。
  • 成果物: RAG(Retrieval-Augmented Generation:検索拡張生成)を組み込んだ検索応答システム。
  • 使用予定/検討中の技術(暫定):
  • ベクトルDB: Chroma(ローカルで軽量)、将来的にQdrantやElasticsearchも視野
  • 埋め込みモデル: Instructor系、MiniLMなどローカル対応の埋め込みモデル
  • API(Application Programming Interface:アプリケーション間の連携インターフェース): FastAPIで/ingest(文書投入)・/ask(検索質問)を提供
  • UI(User Interface:ユーザーインターフェース): Streamlitで検索結果やスコアを可視化
  • 補足: 実際には、ドキュメント量や運用方法に応じて都度技術を見直していきます。

Phase 2:ベンチ結果をCSV/グラフ化

  • 目的: 各モデルの応答速度や精度を数値化し、比較できる状態にする。
  • 成果物: ベンチマーク結果をCSVに出力し、グラフで可視化。
  • 使用予定/検討中の技術(暫定):
  • ベンチ計測: Pythonスクリプト(timeit・pytest)で応答時間やトークン数を収集
  • 可視化: Matplotlib / Plotly、Streamlitのダッシュボードでグラフ化
  • 比較対象: LLaMA、Mistral、Gemma、Phiなど複数ローカルモデル
  • 補足: ベンチマークの評価指標や可視化方法も、進めながら柔軟に変えていく予定です。

Phase 3:音声で質問→音声応答返る

  • 目的: テキストだけでなく音声で自然に対話できる環境をつくる。
  • 成果物: マイク入力→AI応答→音声出力の一連の体験。
  • 使用予定/検討中の技術(暫定):
  • 音声認識(STT:Speech To Text): Whisper(ローカル動作可)
  • 音声合成(TTS:Text To Speech): VOICEVOX、Coqui TTS(OSSでローカル利用可)
  • UI(User Interface:ユーザーインターフェース): Streamlitで録音・再生UIを試作
  • 補足: 音声合成エンジンやSTTの選択も、精度や操作感を見ながら見直していきます。

LLM技術の検討

今回の実験で扱うのはすべてローカルで動かせるモデルです。

  • OpenAI Local Models: 従量課金不要でn8n/difyに安心して組み込める
  • LLaMA(Meta): 最もエコシステムが成熟、GPU最適化環境が豊富
  • Mistral: 軽量で高精度、商用利用にも向く
  • Gemma(Google): 小型ながら精度が高い
  • Phi(Microsoft): 軽量モデルとしてPC実行に適する

ただし、これらも「どれを採用するか」は状況次第で変わります。
実験を進めながら、モデルの精度・速度・リソース要件を比較し、都度最適なものを選びます。
実際の比較・検討は、次回以降で実際に手を動かして試しながら進めます。


副次的な効果

Phase 0〜3を完了すると、次のような効果が期待できます。

  • n8nやdifyと連携した業務フロー自動化
  • 社内ナレッジの即時活用(マニュアルや規程をAIが回答)
  • 利用拡大のハードルが下がる(従量課金を気にせず誰でも使える)

実験スタイル(進め方)

  • 原則は“最小で動かす→測る→改善”:毎回、最小構成でまず一往復を成立させる。
  • ローカル優先:API課金を避け、CPUで回る構成から始め、必要に応じてGPU/エッジへ。
  • 可視化重視:理由の分かるログ・グラフを残し、再現性を担保。
  • 安全マージン:音声・GPIOなど外部世界に触れる箇所は、必ず安全層で隔離。

リスクと対応

  • モデルが重くて遅い:小モデル/量子化/プロンプト短縮→TTFT(Time To First Token:最初の文字が返ってくるまでの時間)1秒以内。
  • 日本語PDFの品質差:抽出器の切替・段落分割の最適化・手動修正の運用も用意。
  • 音声デバイス競合:固定デバイスID化、初回セットアップウィザードで回避。
  • スパゲッティ化:Phaseごとにフォルダ構成とAPI境界を固定、後戻りを減らす。

次回予告

今回はPhase 0〜3の全体像と、暫定的に想定している技術をご紹介しました。

ただし繰り返しになりますが、ここで挙げた技術はあくまで現時点での候補です。
実際に取り組む中で課題や制約が見えれば、その都度最適な技術に差し替えていきます。

そして、複数のLLM候補を比較・検討する作業は次回以降で取り上げます

次回はまず Phase 0: PCでチャット応答できる環境 を実際に構築して試します。
FastAPIによるAPI化、Streamlitでの簡易UI、そしてローカルLLMのセットアップまで手を動かし、動作確認まで行います。

「AIをローカルで動かし、従量課金を気にせず社内で使えるようにする」
その第一歩を、ぜひ一緒に見届けていただければと思います。



EastCloud株式会社では、以下の事業を展開しています。

  • ITコンサルティング・システム開発
  • クラウドサービス導入支援

詳しい会社情報・お問い合わせは、公式サイトをご覧ください。

公式サイトを見る

記事をシェアする