・生成AIのツールを自分の環境で構築したい
・無料で生成AIのツールを手に入れたい
・コマンドラインで利用したい
今回は無料かつWSLで実行できる生成AIの実行ツール「Ollama」について紹介します。
以前、ChatGPTのようなものを手元に用意したいと思い、LM Studioで生成AIの検証をしました。
今回は他にツールはないか調べて、WSLのターミナルでの操作可能なツールであるOllamaという生成AIツールを使ってみました。
WSLで実行できる生成AIツール:Ollama
Ollamaとは
Ollamaは大規模言語モデルを読み込ませて実行できるツールです。
手元の環境で動作するツールで、オープンソースのため無料で実行できます。macOSやLinuxでの動作を想定していますが、Windows環境化でもWSLを利用すれば実行可能です。
ツールが動く仕組みについて
サーバクライアントの方式をとっており、サーバ起動中にクライアントから質問をたたいてサーバに送ることで動作します。
OllamaはDocker上でも動作することがよく情報に挙がってますが、今回は利用しません。
ターミナルから実行コマンドをたたいて、質問もターミナル上で投げて動くCUIのツールとなっています1。
実行可能な言語モデル
Ollamaで利用できる大規模言語モデルは主に以下の通りです。
モデル | パラメータ数 |
---|---|
Mistral | 7B2 |
Llama 2 | 7B |
Code Llama | 7B |
Llama2 Uncensored | 7B |
Llama 2 13B | 13B |
Llama 2 70B | 70B |
Orca Mini | 3B |
Vicuna | 7B |
何がいいとかそういう情報はないですが、マニュアル等の示し方からして「Llama 2」が無難かと思っています。各モデルについての説明等は以下でも紹介しています。
インストールから実行まで(WSLのみ対応)
本章では実際にOllamaの使い方、つまりインストールからAI生成までを紹介します。
① WSLの環境を作成してください。作り方は以下で紹介しています。
② 以下のコマンドでOllamaをダウンロードおよびインストールします。
curl https://ollama.ai/install.sh | sh
③ 以下のコマンドでOllamaのサーバを起動します。
ollama serve
④ 別のWSLターミナルにて以下を実行します。初回起動の場合、llama2をダウンロードしに行くため時間がかかります。
ollama run llama2
⑤ 「>>>Send a message(/? for help)」というのが出たら何か質問を投げてみてください。以下のようにコンソールで結果が出てきます。
レビュー
良かった点は以下です。
- 無料での利用が可能
- 様々なLLMを選択できる
- GPUが機能している
悪かった点は以下です。
- マニュアルが分かりにくい
- Llama2のJapanese特化型はないの?
詳細を以降でまとめています。
良かった点1:無料で利用できること
まず無料で利用できないとこの調査の意味がないため、これは強みだと思っています。オープンソースというありがたみ・・・ちなみにソースコードは以下にあります。
これは余談ですが、Ollamaにはweb版もあるようで、これが使えればより自宅ChatGPTが現実的になるのかとワクワクしてしまいます。別途調べる必要がありそうです。
良かった点2:様々なLLMを選択できること
前章でもまとめましたがLlamaをはじめとして、MistralやVicunaなどを選択できます。またLlamaに関してはコードに特化したCode Llamaも選べたりします。
良かった点3:GPUが機能していること
LM Studioの時に仕事しなかったGPUについて、ちゃんと動いてくれています。(LM Studioでも仕事するようになりました)
AIを効率的に動かすにはGPUが動いてくれることで、OllamaはGPUを使って動いてくれます。
NVIDIA GeForce GTX 1650ではモデルによっては動作しない可能性もあります。メモリが4GBですし、、、
実際に動かしてみた感じはChatGPTとほぼ同じスピード感でした。
悪かった点1:マニュアルが分かりにくいこと
前章で一応必要な手順はまとめたのですが、実は最初起動方法がわかりませんでした。以下にインストールと起動方法が書かれています。
中身を読んでみるとわかるのですが、実行に関してollamaを実行する際にrunコマンドのことしか書かれていません。これだけですと、以下のようにollama serveを実行してくれと出ます(なぜ何回もリトライしたしww)。
実際はollamaでserveコマンドを実行し、別のターミナルを立ち上げてrunコマンドを実行する必要があります。これが書かれていなかったため苦戦しました。
悪かった点2:Llama2のJapanese特化型について
生成AIのシステムを構築する上で、なるべく日本語での返答を求めたいものです。そのためのモデルとして「ELYZA-japanese-Llama」がありますが、それが使えるようには見えませんでした。
Githubの「Import from GGUF」の項に外からとってきたguffファイルを読ませる手順が書いてあるので、それを使えばできるかもしれません。
Llama2そのものは選べ、それだけでも十分な返答がきますが、以下のように文字化けが散見されます。
あと回答が英語で出てきたりとどちらの言語で出てくるというのが基準が分かりません。例えば以下でプログラムを作らせてみましたが「Java」というワードが引っ掛かったのか、回答が英語になります。
まとめ
WSL上で動作する無料の生成AIツール「Ollama」を検証した結果、その利用可能性といくつかの注意点が明らかになりました。
メリットとしては、無料で利用できること、様々な大規模言語モデルを選択できること、そしてGPUを使った高速な実行が可能であることが挙げられます。これにより、ChatGPTに近い体験を自宅で試すことができます。
一方で、マニュアルの不親切さや、言語の文字化けや言語選定の不明瞭さが課題として残ります。
総じて、Ollamaは多くの可能性を秘めたツールですが、使いこなすにはある程度の技術的知識が必要だと思われます。オープンソースのソフトウェアとしては使いやすいので、改善が期待される部分を踏まえつつ、興味のあるユーザーには積極的に試してもらいたいと思います。
結局のところ、これらの点を考慮に入れつつも、Ollamaを自分の環境にインストールし、生成AIの様々な側面を探求するのは、知識の拡張に対する素晴らしい第一歩と言えるでしょう。
参考文献
- Meta:Llama(https://llama.meta.com/)
- Github:ollama/ollama(https://github.com/ollama/ollama)
- Gigazine:さまざまなチャットAIを簡単にローカル環境で動かせるアプリ「Ollama」の公式Dockerイメージが登場(https://gigazine.net/news/20231021-ollama-docker/)
コメント