WSL2を使ってAI用の環境を構築(Ollama試行編)

AI

・生成AIのシステムを自分の環境で構築したい
・無料で生成AIシステムを手に入れたい
・コマンドラインでも動作する生成AIのシステムがほしい

今回は無料かつWSLで実行できる生成AIの実行ツール「Ollama」について紹介します。

生成AIは学習済みのモデルが新たなものを生み出すAIです。詳細は以下にまとめています。

以前、ChatGPTのようなものを手元に用意したいと思い、LM Studioで生成AI実験をしました。

今回は他にツールはないか調べて、WSLのターミナルでの操作可能なツールであるOllamaという生成AIツールを使ってみました。

WSLで実行できる生成AIツール:Ollama

Ollamaとは

Ollamaは大規模言語モデルを読み込ませて実行できるツールです。

Ollama
Get up and running with large language models, locally.

手元の環境で動作するツールで、オープンソースのため無料で実行できます。macOSやLinuxでの動作を想定していますが、Windows環境化でもWSLを利用すれば実行可能です。

ツールが動く仕組みについて

サーバクライアントの方式をとっており、サーバ起動中にクライアントから質問をたたいてサーバに送ることで動作します。

OllamaはDocker上でも動作することがよく情報に挙がってますが、今回は利用しません。

ターミナルから実行コマンドをたたいて、質問もターミナル上で投げて動くCUIのツールとなっています1

実行可能な言語モデル

Ollamaで利用できる大規模言語モデルは主に以下の通りです。

モデルパラメータ数
Mistral7B2
Llama 27B
Code Llama7B
Llama2 Uncensored7B
Llama 2 13B13B
Llama 2 70B70B
Orca Mini3B
Vicuna7B
大規模言語モデル

何がいいとかそういう情報はないですが、マニュアル等の示し方からして「Llama 2」が無難かと思っています。各モデルについての説明等は以下でも紹介しています。

さまざまなチャットAIを簡単にローカル環境で動かせるアプリ「Ollama」の公式Dockerイメージが登場
「Mistral」「Llama 2」「Vicuna」などオープンソースの大規模言語モデルを簡単にローカルで動作させることが可能なアプリ「Ollama」の公式Dockerイメージが登場したので、早速使い勝手を試してみました。

インストールから実行まで(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)」というのが出たら何か質問を投げてみてください。以下のようにコンソールで結果が出てきます。

ollama実行画面

試行結果のレビュー

良かった点は以下です。

  • 無料での利用が可能
  • 様々なLLMを選択できる
  • GPUが機能している

悪かった点は以下です。

  • マニュアルが分かりにくい
  • Llama2のJapanese特化型はないの?

詳細を以降でまとめています。

良かった点1:無料で利用できること

まず無料で利用できないとこの調査の意味がないため、これは強みだと思っています。オープンソースというありがたみ・・・ちなみにソースコードは以下にあります。

GitHub - ollama/ollama: Get up and running with Llama 2, Mistral, Gemma, and other large language models.
Get up and running with Llama 2, Mistral, Gemma, and other large language models. - ollama/ollama

これは余談ですが、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ですし、、、

GPUの画面

実際に動かしてみた感じはChatGPTとほぼ同じスピード感でした。

悪かった点1:マニュアルが分かりにくいこと

前章で一応必要な手順はまとめたのですが、実は最初起動方法がわかりませんでした。以下にインストールと起動方法が書かれています。

GitHub - ollama/ollama: Get up and running with Llama 2, Mistral, Gemma, and other large language models.
Get up and running with Llama 2, Mistral, Gemma, and other large language models. - ollama/ollama

中身を読んでみるとわかるのですが、実行に関して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の様々な側面を探求するのは、知識の拡張に対する素晴らしい第一歩と言えるでしょう。

参考文献

  1. コンソールはあくまでWSLを使った場合であり、macOSの場合はどうなるかまでは分かりませんでした。 ↩︎
  2. 10億(ビリオン)の単位 ↩︎

コメント

タイトルとURLをコピーしました