LLMという、ChatGPTのように質問に答えたりする人工知能が最近世界の注目を集めました。
定期的に最新で効率の良いモデルがリリースされ、LLMで何が可能かの定義が変わっています。
その中で、プライバシーなどの理由により、オフラインでLLMを使いたい方が多いと思います。
ただ、専門的な知識が必要ですし、ローカル環境を適切に設定しなければならないので、
LLMは自分のパソコンで簡単に実行できるものではありません。
そのために、Janという、LLMのローカル且つオフライン実行をとても簡単にする自由でオープンソースソフトを紹介したいと思います。

インストール

Janの公式サイトにて、自らのOSにあったJan.aiのバージョンをダウンロードできます。
私の場合にMacになりますが、WindowsやLinuxもサポートされています。
インストール自体には特に注意点がありません。普通のソフトとしてインストールされます。

初期画面

Janを初めて起動しますと、ChatGPTのような画面が表示されます。
また、デフォルトで実行されるモデルは現時点、ChatGPT 3.5です。
ただ、ChatGPTはAPI Keyを必要とする有料なモデルなので、
Api Keyを記入せずに質問をしようとすると、エラーが発生します。

Api Keyが不要なモデルに変更しましょう。

モデルをダウンロード

左側に、hubのアイコンを押せば、マーケットプレイスのような画面が表示されます。

その画面から、Janがサポートする全てのモデルをワンクリックでダウンロードできます。
モデルの設定などは、Janがしてくれます。
テストのために、Api Keyなどがいらない、どのパソコンでも実行できる「TinyLlama」をダウンロードします。
上にあるサーチバーに「Tiny」を入力し、TinyLlamaに相当する結果のダウンロードボタンを押します。

TinyLlamaに質問をする

インストールが完了したら、先ほどのスレッドを作る画面に戻り、新しいスレッドを作ります。
今質問しても、ChatGPTの方が使用されますので、右側のModelというサブメニューから、Localタブを開いて、TinyLLamaを選択します。

これから、スレッド内でする質問は全部、ローカルのTinyLlamaに送信されます。
初めての質問として、RubyでHello Worldを作ってもらいました:

ちなみに、質問をした時にネットに接続していませんでした。
TinyLlamaの答えは私のパソコンで直接計算されました。

終わりに

ローカルでLLMを実行するJanを紹介しました。
テストだったのでTinyLlamaを使いましたが、
MistralやZephyrなどの、より精度の高いモデルも提供されていますので、
適切なパソコンを持てば、先端的なモデルまで使用できます。