はじめに
先日、ゲーミングPCを思い切って購入してみた。1 その動機はGPUを使って流行りの生成AIで遊びたかったためなので、とりあえずローカルLLMを試してみようと思う。
environments
- OS: Ubuntu 24.04.1 LTS(on WSL2)
- CPU: Corei7 12650H 10Core(2.3GHz)
- Memory: 16GB
- GPU: GeForce RTX 4060(VRAM 8GB)
OllamaでローカルLLMを動かす
Ollamaとは、小規模な言語モデル(LLM)をローカル環境で簡単に動作させるためのツールだ。特にGPUを利用して生成AIを手軽に試すことができるため、LLMの動作確認やテストに非常に便利。Ollamaを使用することで、インターネット接続がなくても自分のPC上でAIモデルを動かすことが可能。GitHub上で公開されている。
https://github.com/ollama/ollama
Install Ollama
$ curl -fsSL https://ollama.com/install.sh | sh
OllamaでLLama3.2を動かす
2024年11月現在、最も評判の良いローカルLLMモデルの一つがLLama3.2だ。Ollamaを使用することで、簡単にこのモデルをローカルで実行できる。
以下のコマンドでLLama3.2を起動できる。
$ ollama run llama3.2
試しに質問してみる。
町田のよいところについて教えて!
町田市は、神奈川県の西側にある市です。以下は、町田市のよいところを紹介します。
- 新宿線とJR東武線の交点
- 町田駅には、国勢調査で最も利用される駅の一つです。
- 長野 River Town
- 長野川沿いに発展したエリアで、自然と文化が混ざっている街です。
- 高槻市との交流
- 高槻市とは隣接している自治体で、両市の間には文化交流が盛んです。
- 観光名所
- 町田市には、国民文化財に指定された「高木美術館」や、「町田市民会館」があります。
- スポーツ
- 町田市は、プロ野球のヤクルトスワルズが本拠地を置いているstadtです。
これらの点では、町田市は charmfulな街として親しまれています。ただし、町田市には様々な地域があり、各地域ごとに独特の風格が残っているので、個人的な好みによって異なる可能性があります。
まるで精度が悪く使い物にならない!町田はヤクルトスワルズの本拠地ではありません!
Ollamaで日本語モデルのLlama 3 ELYZA JP 8Bを動かす
どうやら日本語向けにカスタマイズされたモデルでないと日本語の正確な質問には答えてくれないようだ。2024年11月現在、最も評判が良い日本語モデル、Llama 3 ELYZA JP 8Bを試してみる。
$ ollama run hf.co/elyza/Llama-3-ELYZA-JP-8B-GGUF
https://huggingface.co/elyza/Llama-3-ELYZA-JP-8B-GGUF
どうやらデフォルトでは無限に文章を生成し続けるため、OllamaのModelfileを指定して自分でモデルを作成する必要がある。この記事2を参考にModelfileを作成して動かした。
$ ollama create elyza:jp8b -f Modelfile
$ ollama run elyza:jp8b
町田の良いところについて教えて!
町田は神奈川県横浜市と東京都八王子市に挟まれた位置にある、相模原台地上の都市だ。多くの良い点があるが以下に挙げてみる。
1.自然が豊富: 町田には多摩丘陵や多摩森林科学園などの緑豊かなエリアがあり、都心部から比較的近くに位置しながらも自然を感じることができる。 2.交通の便がよい: JR横浜線と小田急小田原線が通っており、都心部や郊外へ向かう各方面へのアクセスが良好だ。バス路線も充実している。 3.買物や食事に便利なエリアが多い: 町田には多くの商業施設や飲食店がある。特に、町田東急ツインズやルミネ町田など大型商業ビルは一日中賑わっている。 4.教育機関が充実している: 高校や大学を含め、教育機関が多くある。都立高校の合格率も高く、子育て世帯に好ましい環境と言える。 5.多摩都市モノレールがある: 多摩センター方面へ向かう多摩都市モノレールがあり、通勤や通学で使用する人々が便利さを実感している。
これらの点から町田は住みやすく、生活のしやすいエリアとして人気がある。
素晴らしい!多摩都市モノレールの町田延伸は予定されており、未来予測までしてくれた!3
考察
ChatGPTみたいにブラウザでローカルLLMをつかうには?
Open WebUIを使う。OllamaはCUIに適したツールだが、Open WebUIを使うことで、OllamaをブラウザUIから利用でき、ChatGPTのように操作ができる。
READMEにしたがってOpen WebUIを立ち上げると、なるほど ChatGPTとそっくりなUIが現れる。 操作感も同じ。 違うのは裏で動作しているLLMモデル。
ローカルLLMに必要なパソコンスペックは?
軽く情報を検索してみたところ、ザックリ概要は以下のような感じ.
- GPUは推奨
- 7Bがメモリ8GB/13Bがメモリ16GB
- GPUをつかうならばメモリよりもVRAMを意識する
わたしのPCはMemory: 16GB/VRAM 8GBなので、パラメータ数は8Bが程度で13Bは実験、それ以上は止めておいた方がよさそうという結論になった。
- You should have at least 8 GB of RAM available to run the 7B models, 16 GB to run the 13B models, and 32 GB to run the 33B models. https://github.com/ollama/ollama
- §1.5 LLMの選び方: パラメータ数と性能から考える|Ollamaで体験する国産LLM入門
Windows環境とWSL2上のUbuntu環境ではLLMはどちらがいい?
基本的に多くのAI OSSはUbuntuを使うことを前提にしているので、WindowsよりもUbuntuを選んでおいたほうが無難。
WSLのメモリ容量は.wslconfigで調整。デフォルトではホストの半分のメモリ容量が割り当てられる。
検索用途以外でローカルLLMはどんなユースケースで適しているのか?
検索用途以外で何があるか? 私の場合、もっぱらGoogle検索の代わりがChatGPTやperplexityなのだが、情報検索ならばわざわざローカルLLMよりも、webサービスのほうがいい。ローカルLLM + RAGは少し興味がある。
- プライバシーに関わる情報の処理
- リアルタイム性
- ファインチューニングして追加学習した処理
個人利用だと、ネット環境が貧弱な環境での作業で活用できるかもしれないが、そもそもネット環境が貧弱ならばLLMに限らずあらゆるタスクが制限されるので、パソコン作業をしない。
なぜ趣味個人利用でローカルLLMなのか?
そもそも、なぜ個人利用でローカルLLMなのか?
推論パラメータ数で比較した場合、ClaudeやChatGPTをAPIで利用した方が8B程度のローカルLLMよりも圧倒的な性能差がある。大規模パラメータの公開モデルならば企業LLMを代替する価値があるけれども、趣味程度だと、APIを使ったほうがいい。
PDF/有料コンテンツをソースに回答させることができる
たとえば書籍をPDFで購入したとき、有料コンテンツをネットに無断でアップロードはできない。このようなときに、ローカル環境でOpen WebUIを立ち上げてRAGと組み合わせることによって、PDFの情報をソースとして回答するチャットボットが作れる。
サービス利用月額料金の削減/API料金のコスト削減
まず考えられるのは、サービス利用月額料金の削減。
自分のPCにGPUがあるならば、それを活用することで、コストを削減できる。ただ、どのサービスも月額20ドル、3000円程度なので、どこまでコスト削減になるのかはわからない。どのサービスも最新モデルは回数制限ありで利用できるため、あるサービスで制限に達したら別のサービスを使えばいい。
開発者目線だとAPIコスト削減。APIを利用することで、アプリと連携することができる。月額と違い使っただけ課金されるので、たくさんAPIを叩きたい場合はコスト削減できる。
ローカルLLMで遊ぶことで技術的な学習をする
一番の理由は、学習なのかもしれない。手元で動かそうとすると、学習意欲が湧いたり、その間に感じる発見がある。またLLMの動向を追いかけるのにも話題が尽きないから、試しながら最新動向を追いかけることができる。
サービス料金の節約よりも、学習意欲という感情的な理由が一番な気がする。
まとめ
今回の技術検証の目的は、手持ちのPCでローカルLLMを動かすとどんなことが出来るのか?の調査だった。結論としては、あえてローカルLLMをつかう理由はみつからなかった。
- 検索用途ならば、ローカルLLMをつかうことはない。
- チャット目的でも、Webサービスに課金するならばつかうことはない。
ただ、それも生成AIを活用するかの用途次第なので、これに落胆せずに、積極的に活用方法をさぐっていきたい。また、今回この記事を書くにあたり、あまり知識がない状態から調べたので、勉強にはなった。結局は、手元で動かして学ぶというポイントなのかもしれない。