53
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

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」と入力するとチャット画面が開きます。
image.png

Model SelectionでOLLAMA (LOCAL)が選択されていることを確認できたら、あとは何か話しかけると返答があることを確認できると思います。こんなふうに。

image.png

一応、ELYZA-tasks-100のデータセットからいくつかピックアップして評価してみたところ、主観ですが応答速度もおおむね十分ですし、回答も違和感ない結果になっていることが確認できました。

Obsidianと組み合わせることで、冒頭にも書いたデータプライバシーやコストを気にすることなく個人のノート作成に生成AIを活用できたり、ノートの内容をベースにチャットできたり、さらにはまだBetaですがVault全体をベースにしてチャットできるようにもなります。

おわりに

環境によっては満足のいく結果にならないかもしれませんが、満足いく結果になる場合のメリットは大きいかと思います。ローカルLLM + Obsidianとの組み合わせによって、Obsidianで構築したSecond Brainがパワーアップする?!ことも期待できます。Apple Intelligenceの到来でどうなるかわかりませんが、興味ある方は試してみてください。公開されているモデルも色々あるので差し替えて試すのも面白いかと思います。

ちなみに、これは自分のとある貧相なノートの内容とチャットしたところです。以上。

image.png

53
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
53
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?