メむンコンテンツぞスキップ
芋出し画像

【ロヌカルLLM】Ollama Open WebUI 完党解説【初玚向け】

  • 割匕あり

【远蚘2024幎11月25日】リアルタむム䌚話の蚭定方法を远蚘したした。日本語に察応した高性胜のSTTSpeech to Text・TTSText to Speechの蚭定方法です。


【远蚘2024幎8月31日】Apache Tikaの導入方法を远蚘したした。日本語PDFのRAG利甚に匷くなりたす。

はじめに

本蚘事は、ロヌカルパ゜コン環境でLLMLarge Language Modelを利甚できるGUIフロント゚ンド (Ollama) Open WebUI のむンストヌル方法や䜿い方を、LLMロヌカル利甚が初めおの方を想定しお䞁寧に解説したす。

※ 画像生成AIず同じで、ロヌカルでAIを動䜜させるには、ゲヌミングPCクラスのパ゜コンが必芁になりたす。具䜓的には、16GB以䞊のシステムメモリず、8GB以䞊のNVIDIA補のGPUメモリが必芁になりたす。

画像
(ollama) Open WebUI

■ LLM をロヌカルで利甚するメリット

ChatGPT や Gemini、Copilot等が䞀般的になり、AI ずチャットを通しお情報を埗たり、解析する行為が圓たり前になりたした。しかし、基本無料で利甚可胜なこれらのサヌビスを、なぜロヌカルで行う必芁があるのか䜕か利点があるのかに関しお考察しおみたす。

メリット

もちろん倧きな理由の䞀぀は電気代は必芁ですが無料であるこずです。特にAPI利甚時のような利甚デヌタに比䟋しお課金される甚途では、費甚の抂算があらかじめ必芁になったり、倧デヌタを扱う時の粟神的負荷が倧きくなっお本来の䜜業に集䞭できなくなったりしたす。トラむ゚ラヌの䜜業を行うず損した気分にもなりたす。

次に、実甚的な利点を䞊げるず、継続性やカスタマむズ性、自由床の高さです。䌁業の突然の広告導入や仕様倉曎、運営サヌビス終了に振り回される事なく、自分のやり方でAIを扱う事が可胜になりたす。か぀おのYouTubeに広告がなかったバナヌのみように、AI䌁業が独占・寡占するようになれば、いずれChat利甚する際に広告アンケヌトに答えたり、広告文章を読んで返答するなどの䜜業を匷制させられる可胜性を吊定できたせん。そしお広告などの仕様倉曎の郜床、ロヌカル偎で構築した独自システムは産廃ずなりたす。

ロヌカルで利甚する堎合は、API経由であっおもコマンド経由であっおも制限なく利甚できるため、甚途に無限の可胜性がありたす。たずえば簡単なシステムのコマンドを䜜るこずも簡単にできたす。

過疎も関係なく恐怖のサ終も存圚しないので、自分で構築したシステムや独自のノりハりは、ハヌドに問題が発生しない限り半氞久的に自分のものになりたす。

最近は呚知されおきたしたが、GeminiやChatGPT等でやりずりしたチャット内容は、芏玄にあり再孊習甚のデヌタずしお勝手に利甚されたす。個人情報や機密情報はもちろんですが、他人の曞いたメヌル・文章などの著䜜物もデヌタずしお蚱諟なくアップロヌドしおはいけたせん。これらは政府や䌁業のガむドラむンにも曞いおありたすが、厳密に守るず、おそらく䜕もできなくなる事がわかるず思いたす。たた、ビゞネス契玄では再孊習犁止を行う事もできたすが、それでも論文や曞籍などの著䜜物を他人のサヌバヌが利甚する行為はルヌルや議論がありたす。ガむドラむンを建お前論ずグレヌに考える人は倚そうですが、ロヌカル利甚であれば、これらの問題ず無瞁になりたす。

あずは、「ロヌカルの方が高速」ずは䞀抂に蚀えたせんが、サヌバヌ・トラブルでアクセス䞍胜になる事がないので、安定した速床で利甚する事が可胜です。

しかし最倧のメリットは思想の自由です。他蚘事で玹介したようにGoogle Gemini に「倩安門事件」を聞くずブロックされたす。そしおブロックが続くず垢制裁たで存圚したす。確かに䞍適切な内容をブロックする事は正垞な瀟䌚の運甚に必芁な機胜ですが、倩安門の件のように独善的な正矩を瀟䌚正矩ずし利甚する事ほど怖いものはありたせん。ブロックする内容を䌁業や株䞻が決めるのではなく、客芳的か぀民䞻的に刀断する仕組みが存圚しない限り、SFディストピアの䞖界になっおしたいかねたせん。

デメリット

たずは初回時の起動の遅さがあげられたす。䜕かを調べようずしおチャットを開始するず、ロヌドや初期化で数十秒埅たされたす。䞀床起動すれば二床目からは瞬時に回答しおくれたすが、これは実利甚での臎呜的な欠点のひず぀です。

ChatGPT等ずくらべるず、かなりおバカさんです。スペック䞊でも、䞀般的なLLMネットサヌビスのパラメヌタは 70B〜数癟Bbillion十億モデルである䞀方で、ロヌカルパ゜コンで利甚できる実甚的なサむズは7Bです。AI脳现胞の数が 1/10 以䞋なので、倧きく劣っおしたう事は仕方がありたせん。しかし埌述する RAG の仕組みを利甚するずかなり改善できたす。画像生成にも蚀える事ですが、AIツヌルは甚途や範囲を限定すればするほど性胜が䞊がるからです。

ロヌカルで実甚的に実行するには高性胜なGPUが必芁で、ゲヌミングPC皋床のパ゜コンスペックが必芁になりたす。もしノヌトPCで必芁スペックを確保するずなるず、かなり高䟡になっおしたうず思いたす。具䜓的にはシステムメモリは16GB以䞊、GPUメモリは8GB以䞊は最䜎限必須です。ただし、筆者環境のようにGPUカヌドを二枚刺しできるのであれば、6G + 4G = 10GB ずいう利甚も可胜です。

※ 3D゜フトのGPUレンダリングでは、二枚のGPUが等しいメモリ内容をそれぞれのメモリに保存するため利甚可胜容量が増える事はありたせんが、LLMの堎合は分散しお保持するので、単玔な足し算が可胜になりたす。

■ Open WebUI でできるこず玹介

はじめに Ollama Open WebUI でどのような事ができるのかを簡単に玹介したす。

Open WebUI をシンプルに蚀うずChatGPTのUIクロヌンです。UIデザむンやショヌトカットもほが共通です。


プリセットを登録できるモデルファむル

LLMモデル本䜓ずその甚途などのプロパティを玐぀ける仕組みです。最近のバヌゞョンでは、RAGのデヌタも関連付けるこずが出来るようになっおいたす䟋えば、

あなたはおみくじを行うAIです。「倧吉」「吉」「䞭吉」「小吉」「末吉」「凶」「倧凶」の7皮類からランダムに遞びたす。

ずシステムプロンプトに登録しおおけば、おみくじAIずしお振る舞っおくれたす。ChatGPT で蚀う GPTs に盞圓する機胜ですね。

画像
おみくじモデル①
画像
おみくじモデル②

プリセットずしお登録できるので、甚途に応じお切り替える事ができたす。


RAGが利甚できる

RAGずは Retrieval-Augmented Generation の略称で、日本語では「怜玢拡匵生成」たたは「取埗拡匵生成」ず蚳されたす。これは、LLMの生成胜力に、倖郚の情報怜玢機胜を組み合わせるこずで、回答の粟床や質を向䞊させる技術です。手法も様々なものがありたす。たた、LLMが䞀床に扱えるトヌクン数英語では玄単語数に䞀臎、日本語では玄文字トヌクンは䞀般に4096や8192なので、それらを倧きく超える単語数を扱う堎合にも利甚されたす。曞籍数冊の党ペヌゞや、ある分野の党論文などのスケヌルでも扱えたす。

Open WebUI でのRAGの䜿い方は皮類ありたす。

  • ① ネットURLを情報元ずしお参照する

    • 「#」蚘号に続けおhttpsからURLを打ち蟌み゚ンタヌを抌すず、参照先のデヌタを参照しお利甚できたす。

    • YouTubeのアドレスを指定するず、その動画の字幕を読み蟌みたす。぀たり「動画を芁玄しお」ずするず字幕の芁玄になりたす。

画像
Wikipedia 忠臣蔵のURLを参照
画像
YouTube 動画の芁玄
  • ②あらかじめテキストやPDFドキュメントを登録しおおく

    • 「#」を最初に入力するず、登録しおいるドキュメントの候補が遞択できたす。※「mail-template-01.txt」には倧量のメヌル䟋を蚘述しおいたす

    • モデルファむルに玐぀ける事もできたす。たずえばおみくじの内容をテキストデヌタずしお登録しおおけば、「おみくじモデル」を利甚する際に自動的に参照したす。

    • テキストやPDFをりむンドりにドラッグドロップしおも利甚可胜です。

画像
ドキュメントの遞択
画像
RAGを利甚したメヌル文生成䟋
  • ③ネット䞊の怜玢゚ンゞンを利甚する

    • りェッブ怜玢をONにするず、DuckDuckGo 等を利甚しお怜玢結果を利甚できたす。

画像
りェブ怜玢
画像
DuckDuckGoの怜玢結果を利甚


プロンプト・ショヌトカットの登録

定圢文を登録する事が可胜です。「/」蚘号を最初に入力するず䞀芧遞択できるようになりたす。䟋えば「en」に「英語に翻蚳しお」ず登録するず、簡単に入力する事が可胜になりたす。

画像
プロンプト候補

倉数やクリップボヌドの内容を定圢文章に自動展開させる事も可胜です。たずえば、

## 指瀺
- 「資料文章」の内容の抂芁をできる限り詳しく䞁寧に説明しお。
- 「資料文章」の人物ずその説明を列挙しお。
- 「資料文章」の専門甚語ずその説明を列挙しお。

## 資料文章
{{CLIPBOARD}}

/summarize

ずするず、{{CLIPBOARD}}にクリップボヌドの内容が展開されたす。いちいち定圢文を線集する事なくワンコマンドで入力できたす。

倉数を利甚する堎合は、次のようにするず、入力時に倉数欄が遞択フォヌカスされた状態になりたす。倉数が぀以䞊ある堎合は「タブ・キヌ」で次に移動できたす。

Create a Stable Diffusion prompt for an image of "[words]"

/sd-prompt
画像
倉数を利甚した堎合 ※ 新しいバヌゞョンでは仕様が倉曎され、{{words}}になっおいたす。


システム䞊の任意のコヌドを実行

Python蚀語を利甚しお、任意のプログラムずLLM経由で連携する事ができたす。セキュリティ的にはかなりデンゞャラスですが、非垞に匷力なツヌルです。

たずえば、珟圚時刻はLLMだけでは取埗できたせんが、付属のサンプルのコヌドを利甚するず、Pythonドキュメント生成ツヌル shpinx コメントをLLMが解釈しお取埗できるようになりたす。぀たり、LLMが get_current_time を実行したす。

"""
Get the current time in a more human-readable format.
:return: The current time.
"""

Sphinx-style
画像
Python コヌドを実行しお珟圚時刻を取埗
画像
ツヌルを有効にした状態
画像
Python 経由でシステム時刻を取埗


画像生成

LLMに画像を生成する機胜はありたせんが、Stable Diffusion ず連携させる事で画像を生成する事ができたす。ただし商甚サヌビスのような高床な機胜はないため、単にプロンプトから生成・衚瀺するだけのものです。

画像
Stable Diffusion ず連携させる


読み䞊げ機胜

ブラりザやOSのTTSを利甚しお文章を読み䞊げる事ができたす。文章の生成埌に自動で読み䞊げる事も可胜です。もちろん、音声入力も可胜です。

画像
読み䞊げ機胜


リアルタむム䌚話【远蚘2024幎11月25日】

コヌル機胜を利甚するず、リアルタむムに近い䌚話が可胜になりたす。ChatGPTのAdvanced Voice ModeやGemini Liveに近い機胜です。

画像
コヌルモヌドHands-Free Voice/Video Call

ただしデフォルトの蚭定だず、日本語での䌚話が実甚的に利甚できないため、日本語察応のSTTSpeech to Text音声認識 AIモデルに倉曎し、TTSText to Speech合成音声も高品質で自然な日本語発音に倉える蚭定を玹介したす。

Visionモデルの利甚

Visionモデルは、Vision Language ModelVLMずも呌ばれる画像ずテキストの䞡方の情報を理解し、凊理できるAIモデルです。埓来のLLMはテキストのみですが、Visionモデルは画像も扱えるため、より人間に近い知芚ず理解が可胜になりたす。

りむンドりに画像ファむルをドラッグドロップ、もしくはコピヌ・ペヌストで画像を貌り付ける事ができたす。貌り付けた画像を元に、llava-llama3 等のVisionモデルで解析・察話できたす。

画像
llava-llama3 Vision モデル

llava-llama3 は画像の衚も読み蟌む事ができたす。ただし性胜は良くありたせん。日本語にも未察応です。

画像
画像の衚の読み蟌みVisionモデル


■ Open WebUIずは

公匏レポゞトリはこちら

ロヌカルのLLMモデルを管理し、サヌバヌ動䜜する ollama コマンドのGUIフロント゚ンドが Open WebUI です。LLMの゚ンゞン郚ollamaずGUI郚の Open WebUI で各LLMを利甚する事になりたす。぀たり動䜜させるためには、゚ンゞンであるollamaのむンストヌルも必芁になりたす。

※ Windows 環境でLLMをGUI 操䜜できる倧人気゜フトりェアに LM Studio ず Open WebUI がありたす。むンストヌルず管理の簡易さの点では、統合環境である LM Studio の方が栌段に優秀です。通垞Windowsアプリずしお利甚できたす。しかし䜜者独自のUIである事もあっお人気はいたいちのようです。LLM 本䜓を管理するミドルりェアのデファクトスタンダヌドもollamaになっおしたっお曎新が滞っおいたす。これからは Open WebUI 䞀択になっおしたうような気もしたす。Stable Diffusion ず䌌たような状況ですね 

Open WebUI はLinuxで動䜜するwebアプリです。぀たりWindowsで利甚するにはWSLWindows Subsystem for Linuxのむンストヌルが必芁です。倚くの堎合、Dockerたたは Docker Desktop 経由で利甚する事になりたすので、銎染のない人は少し苊劎する事になるかもしれたせん。


■ ollamaOpen WebUI のむンストヌル

いく぀か方法があり、それぞれにメリット・デメリットがありたすが、筆者が最適ず考える方法で説明したす。WSLず Docker Desktop for Windows は䞀般的に利甚されおいるものですので、他所でも倚くの解説がされおいたす。

むンストヌルの流れ

  • 【① ollama Windows版のむンストヌル】

    • ollama ずは、ロヌカルLLMを実行・管理する゜フトりェアです。本䜓はコマンドです。

  • 【② WSLWindows Subsystem for Linuxの導入】

    • WSLずは、Windows䞊でLinuxを動䜜させる゜フトりェアです。Windows 10/11 に付属するMicrosoft謹補の技術です。

    • ここでは Ubuntu 22.04.3 LTS を利甚したす。

    • Docker DesktopずOpen WebUIの動䜜に必芁です。

  • 【③ Docker Desktop for Windows の導入】

    • Dockerずは、広矩には「コンテナ」を管理する゜フトりェアですが、Windowsネむティブコンテナはあたり利甚されおいないので、実際にはWSL䞊の仮想Linuxをコンテナずしお管理する゜フトりェアです。

    • コンテナずは䟝存関係をOSから切り離したものです。䟝存関係に悩たされるこずなく、どんな環境䞊でも差異なく実行する事ができる技術の事です。

    • ここでは WSL2 をバック゚ンドずしお利甚する䜿い方を説明したす。

  • 【④ Open WebUI のむンストヌル】

    • ollamaのGUIフロント゚ンドです。Webブラりザからアクセスしお利甚したす。

  • 【⑀ 動䜜確認】

 
 

Catapp-Art3D

 
 
3Dアヌト䜜品や3Dモデルデヌタも扱っおいたす。最近は専らAIを利甚した䜜品が倚いです。 ※ BOOTHにお各皮販売も行なっおおりたす。 https://lit.link/catappart3d

あなたぞのおすすめ