Meta(Facebook)が開発・公開しているオープンソースの生成AIモデル「Llama」シリーズに、新たな「Llama 3」が2024年4月19日に公開された。
Llamaは、OpenAIのGPT-4や、AnthropicのClaude 3などと異なり、モデルが一般に公開されており、誰でもモデルをダウンロードして、自分のPC/Macなどで、例えインターネットに接続されていなくても利用することが可能だ。
今回リリースされたLlama 3は、8B(80億)パラーメータ、70B(700億パラメータ)の2種類だ。
大型の70Bモデルは、いくつかのベンチマークによれば、OpenAIの最上位モデルであるGPT-4 Turboや、AnthropicのClaude 3の最上位モデルであるOpusには及ばないものの、GPT-3.5やClaude 3 Sonnet、Gemini 1.5 Proよりも優れた回答を生成すると評価されている。
Metaによれば、現在はまだトレーニング中のさらに大型のモデル、Llama 3 400Bモデルもリリース予定とのこと。
70BモデルですでにGPT-4やOpusに肉薄しているところ、400Bモデルが登場したら一体どうなってしまうのか、非常に期待できる。
最も軽量のLlama 3 8Bモデルは、AppleシリコンのM1, M2, M3チップなどを搭載したMac Book Air / Proなどでも、かなり実用的なスピードで動作する。
せっかくオープンソースでモデルが公開されているのだから、これを自分のMac上でも動かしてみない手はない。
本記事では、Llama 3を、ローカルPC / Mac上にダウンロードして、インターネットに接続していないオフライン状態でも、チャット形式のUIで利用できるようにする方法を詳しく解説する。
なお、筆者は、M3 Mac Book Airのメモリ16GBを使用している。
AppleシリコンのMacユーザーであれば、Llama 3 8Bモデルであれば、基本的に同じ手順で使用できるはずである。
ローカル環境で生成AIを利用できれば、利用料金が一切かからないし、外部にデータを一切送信しないため、個人情報や機密情報などのセンシティブなデータであっても、安心して生成AIを利用できるメリットがある。
プログラミングの知識がない人でも、できるだけ簡単に真似できるように分かりやすく解説したので、ぜひ参考にして欲しい。
ローカルモデルを簡単に入手「Ollama」のインストール
「Ollama」は、大規模言語モデル(LLM)を、ローカル環境で簡単に実行できるオープンソースのツールだ。プログラミングや機械学習の専門知識がなくても、数ステップでAIモデルを動かせるのが特徴だ。
ローカルPC上でモデルを動かすため、チャットのデータがクラウドに送られることもない。
インストール手順や使用方法も非常にシンプルで、Llama 3やMistralなど、代表的なオープンソースの生成AIモデルを、ワンコマンドでダウンロード・実行できるようになっている。
まずは、Ollamaの公式サイトにアクセスして、アプリをダウンロードしよう。
ダウンロードされた.zip
ファイルを解凍すると、いきなりOllama.app
というアプリが出てくるので、これをMacのFinderの「アプリケーション」フォルダに入れておく。
Ollama.appを起動してみると、以下のように「Install」ボタンが表示される。これは、ターミナルでOllamaに関連するコマンド(Llama 3モデルのダウンロードなど)を実行できるようにするツールをインストールするためのものだ。
「Install」ボタンをクリックすると、管理者権限でのログインを求められるので、パスワードを入力して承認する。
以上の手順が完了したら、いよいよLlama 3モデルのダウンロードを行う。
OllamaでのLlama3 8B / 70B モデルのダウンロード
OllamaでのLlama 3, Llama 2, Mistralなどのファイルのダウンロードは、Macの「ターミナル」アプリに、たった1行のコマンドを打てばいいだけで、超簡単だ。
以下のように、「Ollama run」の後に、ダウンロード・起動したいモデル名を書くだけで良い。
初回実行時には、モデルのダウンロードが始まるはずだ。
ollama run llama3
このコマンドでダウンロードされるモデルは、Llama3モデルシリーズの中では最も小型で、80億のパラメーターを持つ「8B」モデルだ。
8Bモデルでは、ダウンロードされるファイルのサイズは4.7GBとなっている。
ollama run llama3:70b
というコマンドを使えば、700億ものパラメータを持つ70Bモデルもダウンロード可能だが、サイズは40GBにも及ぶ。
後述の通り、個人用のMac Book程度の端末では、70Bモデルは動作が遅すぎてほとんど使い物にならないので、RTX 4090などのハイスペックGPUを利用していない限り、ローカルLLMとして使う場合は、8Bモデルのみで良いだろう。
ターミナル上でのLlama 3とのチャット
モデルのダウンロードが完了すると、そのままMacのターミナル上で、Llama 3とのチャットが可能になる。
今後、ターミナル上でLlama 3とのチャットを会話するには、初回ダウンロード時と同じく、ollama run llama3
と打ち込めば同じ状態になる。
ターミナルに「Hello」と打ち込んでエンターを押してみると、非常にスピーディーに「Hi! It’s nice to meet you. Is there something I can help you with or would you like to chat?」と回答が返ってきた。
Llama 3 8Bモデルは、Llama 3シリーズの中では最も小型のモデルだが、日常会話レベルであれば、英語ならほとんど文体に違和感ない会話が可能であった。
残念ながら、日本語はそれほど上手くない印象だ。
日本語で話しかけてみると、英語と日本語が混ざった会話になったり、若干日本語がおかしかったりと、日本語勉強中の外国の友人と話しているような感じになる。
Mac Book Airであっても、十分高速で実用的なレベルのサクサク感だ。
この精度の大規模言語モデルを、一般消費者のラップトップでサクサク動かせる時代が来てしまったことに、衝撃を受ける。
なお、Llama 3とのターミナルでのチャット中には、以下のようなコマンドを使用することができる。
/bye
でチャットが終了し、通常のターミナルに戻るので、使い終わったら/bye
と打ち込んでおく。
Llama 3 70B モデルはMac Book Airで動くか?
AppleシリコンのM3チップ、メモリ16GBの筆者のMac Book Air 2024で、試しに70Bモデルを入れてチャットをしてみた結果を紹介する。
”Hello”というメッセージを打ち込んでから、「Hi!」という2単語(”Hi”と”!”)が表示されるまでに、かかった時間を計測してみた。
「Hi」が表示されるまでに1分10秒、そこからさらに「!」が表示されるまでに1分8秒かかった。わずか2単語のレスポンスまでに2分以上かかるとなると、さすがに実用するのは難しい。
ローカルで70Bモデルを使用するには、RTX 4090などの高性能なGPUを積んだPCでないと厳しいだろう。
Llama 3 8Bモデルを使っていて、より精度の高い70Bモデル、あるいは現在トレーニング中と言われている400Bモデルを使用したくなったら、現実的にはクラウドのAPIサービスを利用した方が安価と思われる。
ちなみに、Ollamaにおいて、一度入れたモデルを削除するには、ターミナルで以下のコマンドを実行する。70Bモデルは全然使い物にならなかったので、Mac Book Airからは削除しておいた。
ollama rm llama3:70b
Ollama本体をアンインストールしてしまうと、このコマンドが使えなくなるので、不要なモデルはちゃんと削除しておくようにしよう。
ChatGPTのようなチャットUIで「Llama 3」を使用する方法
以上で、Mac Book Airにローカル環境で使えるLlama 3モデルをインストールすることができた。
しかし、Ollama単体だと、ターミナル上で使用するしかなく、ターミナルに慣れていない人にとっては非常に使いにくいし、そもそも機能も制限される。
もっとChatGPTのようなチャット形式のUIで便利に使いたい。
そんな願いを叶えてくれるのが、Ollama経由でダウンロードしたLlamaなどのローカル生成AIモデルを、チャット画面で利用できるようにする「Open WebUI」や「ChatbotUI」などのツールだ。
「Open WebUI」も「ChatbotUI」も、どちらもオープンソースのアプリケーションで、無料で誰でも利用することが可能だ。
Llama 3, MistralなどのOllamaで入手できるローカルモデルを、ブラウザ上で呼び出し、チャット風の画面で各モデルとチャットをできるようにしてくれる。
さらに、OpenAIのAPIキーを入れれば、オンラインでないといけないが、GPT-4 Turboなども利用できるので、単にChatGPTの月額契約をしたくない場合に、「Open WebUI」や「ChatbotUI」にAPIキーを入れて、最新のモデルを使用するといった使い方もできる。
ここでは、「Open WebUI」と「ChatbotUI」それぞれで、Llama 3とチャットをする方法を紹介する。
「Open WebUI」の方がインストール手順がシンプルなので、初心者におすすめだ。
「ChatbotUI」は、インストールが若干面倒だが、Llama 3やGPT-4 Turboなどの他に、AnthropicのClaude 3のAPI、その他ありとあらゆるローカルモデルやAPIを利用できるので、「Open WebUI」よりもずっと高機能だ。
今後もローカルAIや、APIでのAIを色々使ってみたい人は「ChatbotUI」を使うことをおすすめする。
「Open WebUI」を使ってローカルモデルを快適に使う
まずは、Open WebUIのインストール方法を紹介する。WebUI本体を入れるのに先立って、Docker Desktopなどのアプリも必要なので、多少の下準備がある。
Docker Desktopのインストール
まず、「Docker Desktop」というアプリをインストールする必要がある。
Docker Desktopは、WindowsやMacでDockerを簡単に使えるようにするツールだ。
Dockerとは、アプリケーションを動かすための環境を「コンテナ」という形でパッケージ化するもの。
Open WebUIのような複雑なプログラムを動かすために必要な環境(コンテナ)を、丸ごとコピーしてきて、ワンクリックでMacの中に再現できる、というイメージを持っておけばいい。
Docker Desktopを使えば、プログラミングの知識がなくても、他の人が設計した「コンテナ」を自分のPC上に作り、その中でOpen WebUIを動かすことができるのだ。
まずはDocker DesktopのWEBサイトにアクセスして、Mac用のDocker Desktopをダウンロード・インストールする。
Docker Desktopのインストールが完了したら、Docker Desktopを一度起動してみよう。問題なく起動できたら、次のステップに進む(Open WebUIを使用したいときは、Docker Desktopが起動している必要がある)。
Open WebUIのインストール
Open WebUIのドキュメントページに記載されている起動用のコマンドを、Macの「ターミナル」アプリなどのコマンドラインツールにそのままコピペして、実行する。
Macで実行する場合には、記事執筆現在(2024/4)は、以下のようなコマンドをコピペして実行すれば良い。
このコマンドは、Dockerコマンドを使って、Open WebUI専用のコンテナを作成しているものだ。
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
ターミナルで実行してみると、以下のようにファイルのダウンロードが次々と始まり、すべてが「Pull complete」になったら、ダウンロードが完了だ。
これだけで、Open WebUIがMac上で使用可能になっている。
インストールが非常に簡単なので、ターミナルを使ったことのないプログラミング初心者などでも、全く問題なく利用できるだろう。
Open WebUIの使い方
ここまで実行できたら、あとはChromeやSafariなどのブラウザを開いて、以下のURLにアクセスする。
Open WebUIはローカルで実行されているので、たとえオフラインでも、ブラウザで接続することができる。
http://localhost:3000
http://localhost:3000
にアクセスすると、Open WebUIへのログイン画面が表示されるはずだ。
初回利用時には、下の方にある「Sign UP」をクリックして、自分のアカウントを作成する必要がある。
ログインしてみると、早速以下のようなチャット風のユーザーインターフェースが表示されるはずだ。
画面の上部に表示されている「Select a model」というプルダウンメニューから、先ほどOllamaでインストールしたLlama 3 8Bモデルが選択できるようになっているはずだ。
なお、もしLlama 3が表示されない場合には、Ollamaが起動しているかを確認しよう。
上記のhttp://localhost:3000
のURLにアクセスしてOpen WebUIを起動する前に、Ollamaアプリを起動しておく必要がある。
Ollamaが起動中でないと、Open WebUIからLlama 3を呼び出すことができないので、もし忘れていたら一度Open WebUIを閉じて立ち上げ直す。
http://localhost:3000
をクリックする前に、以下のようにOllamaのアプリを立ち上げて、最小化しておくと良い。MacのDockにアルパカのマークが表示されていればOKだ。
再起動・終了後にまたOpen WebUIを使いたい時は
一度、Docker DesktopとOpen WebUIをインストールしたら、今後は何度でも、http://localhost:3000
にアクセスするだけで、Open WebUIを起動することができる。
いちいち再インストール作業を行う必要はない。
Docker Desktopを起動してみると、「Containers」の中に、「openwebui」というコンテナが表示されているはずだ。
このコンテナが存在している限り、仮にパソコンを終了したり、再起動したりしても、再びhttp://localhost:3000
を開きさえすれば、Open WebUIを使い続けることができる。
逆に、Open WebUIをアンインストール・削除したい場合には、Docker DesktopでOpen WebUIのコンテナを停止し、ゴミ箱ボタンを押して、コンテナを削除する必要がある。
さらに、「Images」メニューから、コンテナの元になっているイメージも削除する。
Dockerイメージ・コンテナを削除したら、環境が丸ごと削除されるので、Open WebUIが綺麗さっぱりアンインストールできる。
通常のアプリとインストール・アンインストール方法が異なるため慣れないかもしれないが、一度使ってみると、それほど難しい手順でもない。
Dockerを使ったことがない人も、あまりハードル高く感じすぎず、ぜひチャレンジしてみて欲しい。
「ChatbotUI」を使ってローカルモデルを快適に使う
ChatbotUIも、Open WebUIと基本的な仕組みは近く、Ollamaと連携して、OllamaがインストールしたLlama 3などのローカル生成AIモデルを利用できるチャットツールだ。
しかし、Open WebUIと比べると、Dockerの導入以外にも、Homebrewというパッケージマネージャーをインストールする必要があったり、いくつかターミナルでコマンドを実行する必要があり、若干インストールが難しい。
当ブログでは、「ChatbotUI」の導入方法を詳しく解説した記事も用意してあるので、インストール手順はそちらの記事を参考にして欲しい。
ChatbotUIのインストール作業を終えて、Ollamaを立ち上げた状態でChatbotUIを起動すると(npm run chat
コマンド)、http://localhost:3000
をブラウザで開くだけで、チャットアプリが起動できる。
ChatbotUIの場合、画面右上のモデル選択で、「Local」を選択すると、OllamaでインストールしたLlama 3が表示されているはずである。
速度はOllamaのターミナルで使用した場合と変わらないが、チャット画面が使いやすいことや、ファイルのアップロードなども直感的な画面で行えることがありがたい。
ローカル生成AIの今後の発展が楽しみ
Metaが開発・公開した最新の生成AIモデルである「Llama 3」を、公開翌日にはMacやPCで簡単に実行可能な環境が出来上がっているとは、Ollamaをはじめ生成AIコミュニティの発展のスピードは目覚ましい。
既存の有名モデルに匹敵する性能を持つ70Bモデルは、さすがにMac Book Airなどのラップトップでは動作が厳しいが、サクサク動く8Bモデルは、十分に今後の可能性を感じさせてくれる。
ローカル生成AIの魅力は、インターネット接続なしでも利用でき、料金もかからない点だ。また、データを外部に送信しないため、機密情報も安心して扱える。
特に、8BモデルはAppleシリコンのMacであっても、かなり実用的なスピードで高速に動作するため、多くのユーザーにとって手軽に利用できる。
今後、400Bモデルのリリースも予定されており、オープンソースの大規模言語モデルのさらなる進化に期待が高まる。
400Bモデルは流石に自分のPC上で動作させられないとしても、当サイトでも過去にStable Diffusionを使用するために試したVast.aiなどのレンタルサービスで、RTX 4090などの高スペックGPUを沢山積んだクラウドインスタンスを借りてくれば、大規模な文章処理を、GPT-4やClaude 3 Opusを凌ぐ性能のAIを使って、安く大量に行える日も近いかもしれない。
プログラミングの知識がない人も、本記事を参考にLlama 3を自分のMacに入れてみて、生成AIの可能性を体験してみてはどうだろうか。