はじめに
ChatGPTをはじめとした生成AIの活用はすでに当たり前になっている状況です。しかし、クラウドベースの利用にはデータプライバシーの懸念やコストが伴うため、ローカル環境で同様のことが行えるメリットはそれなりに高いのではないかと思います。この記事ではELYZAが公開しているモデルをローカル環境にセットアップし、それをObsidian経由で利用できるようにするまでの方法を紹介します。
環境
- Model: MacBook Pro 14-inch, Nov 2023
- Chip: Apple M3
- Memory: 24 GB
- OS: macOS 14.5
LLMのセットアップ
ollamaのインストール
ollamaはこちらからダウンロードし、ollama.app
を実行します。ガイド通りにコマンドラインもインストールします。
ELYZAモデルの追加
まずはELYZAのモデルをこちらからダウンロードします。今回は「ELYZA-japanese-Llama-2-7b-instruct-q4_K_M.gguf」をダウンロードしています。量子化具合による生成文章の違いについてはこちらが参考になるかと思います。次に下記のようにModelfileを作成します。FROM部分はダウンロードしたGGUF形式のファイルパスを指定します。
FROM ~/Downloads/ELYZA-japanese-Llama-2-7b-instruct-q4_K_M.gguf
TEMPLATE """[INST] <<SYS>>{{ .System }}<</SYS>>
{{ .Prompt }} [/INST]
"""
PARAMETER stop "[INST]"
PARAMETER stop "[/INST]"
PARAMETER stop "<<SYS>>"
PARAMETER stop "<</SYS>>"
Modelfileを作成したら、ollama create
を実行します。
ollama create elyza:7b-instruct -f Modelfile
コマンドの実行結果としてsuccessと出れば成功です。ollama list
で追加したモデルを確認することができます。
ollama list
NAME ID SIZE MODIFIED
elyza:7b-instruct 2c15e90b556e 4.1 GB 3 weeks ago
この状態になれば、ollama run elyza:7b-instruct
で会話を試すことができるようになっています。
ollama run elyza:7b-instruct
>>> こんにちは、初めまして!
こんにちは。
私はELYZAによって訓練されたAIです。
ユーザーからの様々な質問や要望にお答えすることを目的としています。お話いかがでしょうか?
>>> Send a message (/? for help)
続いて、Obsidianの方をセットアップします。
Obsidianのセットアップ
プラグインのインストール
まずは「Copilot」というCommunity pluginをまずはインストールします。
プラグインの設定
次にプラグインの設定画面に下記のように設定値変更を行います。
- Default Model: OLLAMA (LOCAL)
- Ollama model: elyza:7b-instruct
サーバを起動する
ObsidianのCopilotプラグインの設定画面に記載があるように、以下のコマンドを実行してサーバーを起動します。
OLLAMA_ORIGINS=app://obsidian.md* ollama serve
チャットしてみる
サーバーを起動したら、Obsidianに戻ってCopilotのチャット画面を開きます。Ribbonにある吹き出しアイコンを選択するか、コマンドパレットで「Copilot: Toggle Copilot Chat Window」と入力するとチャット画面が開きます。
Model SelectionでOLLAMA (LOCAL)
が選択されていることを確認できたら、あとは何か話しかけると返答があることを確認できると思います。こんなふうに。
一応、ELYZA-tasks-100のデータセットからいくつかピックアップして評価してみたところ、主観ですが応答速度もおおむね十分ですし、回答も違和感ない結果になっていることが確認できました。
Obsidianと組み合わせることで、冒頭にも書いたデータプライバシーやコストを気にすることなく個人のノート作成に生成AIを活用できたり、ノートの内容をベースにチャットできたり、さらにはまだBetaですがVault全体をベースにしてチャットできるようにもなります。
おわりに
環境によっては満足のいく結果にならないかもしれませんが、満足いく結果になる場合のメリットは大きいかと思います。ローカルLLM + Obsidianとの組み合わせによって、Obsidianで構築したSecond Brainがパワーアップする?!ことも期待できます。Apple Intelligenceの到来でどうなるかわかりませんが、興味ある方は試してみてください。公開されているモデルも色々あるので差し替えて試すのも面白いかと思います。
ちなみに、これは自分のとある貧相なノートの内容とチャットしたところです。以上。