はじめに
Obsidianの拡張機能とHugging Face1、Ollama2を使用してオフライン環境下での生産性の爆上げを図る。
※自己責任で実施すること。
flowchart LR A(Hugging FaceでLLMをフォーク) --> B(OllamaでLLMをpull&ローカル実行) B --> C(Obsidianの拡張機能でLLMを実行)
ちなみに表題に反して、おすすめはGemini APIです。
実装環境
M3 Macbook
Hugging FaceでLLMをフォーク
自分の使いたいLLMがいつ配信停止となっても困らないように、自分のリポジトリにフォークする。
※ライセンスには注意し、自己責任で行うこと
※Hugging FaceにはOllamaで使えない形式のモデルも存在するため選定の際は注意すること。
※いつ配信停止となっても別のモデルを探せるのであればOllamaでLLMをpull&ローカル実行から実施すること。
Hugging Face アカウント の作成
Hugging Faceのアカウントはメールアドレスがあれば作れる。有料プランを使用する場合は乗っ取り防止で2FAの設定をしておいた方がいい。
Hugging Face – The AI community building the future.
Hugging Face CLI のインストール
Hugging FaceのGUIだと日本語対応しておらず、UIも変更される可能性もあるため、再現性を確保するためCLIをインストールする。
|
|
Access Tokens の作成
Settingsの[Access Tokens](Hugging Face – The AI community building the future.)から作成する。Repositories内の項目をチェックする。トークンは発行時にしか表示されないため、メモしておくこと。
Hugging Face CLI でログイン
先ほど発行したトークンでログインする。
|
|
Git の大容量ファイル対応
gitが大規模言語モデル等の大容量ファイルを操作できるようにgit-lfs
をインストールする。
|
|
LLM のフォーク
フォークといってもGitHubみたいにスマートにはできないため、以下のように行う。(フォーク元のライセンスはあらかじめ確認すること。)
|
|
今回は以下2つの日本語学習済みモデルをフォークする。
モデル | 用途 | サイズ |
---|---|---|
elyza/Llama-3-ELYZA-JP-8B-GGUF | 大規模言語モデル(会話生成、質問応答など) | 約4.92GB |
lmstudio-community/granite-embedding-278m-multilingual-GGUF | 文書埋め込みモデル(類似度計算、検索など) | 約972MB |
|
|
自分の作成したリポジトリにモデルがアップロードできたところまで確認できたら、ダウンロードしたLLMは削除する。
|
|
OllamaでLLMをpull&ローカル実行
Ollamaのインストール
|
|
Ollamaを起動
一度アイコンから起動しないとollama
コマンドが実行できなかった。
LLMをpull
|
|
他にpullしたいモデルがあれば以下を雛形としてpullすること。
|
|
Obsidianの拡張機能でLLMを実行
Smart Composer
ObsidianでAIとチャットできる拡張機能。チャットを通じて編集中のドキュメントについて執筆をサポートしてくれる。
公式ドキュメント:Home · glowingjade/obsidian-smart-composer Wiki
設定画面でollama pull
したモデルを設定する。
So everyone, enjoy life!