iPhoneアプリ「Enchanted」でローカルLLMの「Ollama」を使い、Tailscaleで外出先からアクセスしてみよう!

モバイルアプリ開発

はじめに

ローカルLLMが話題になっていますね。そんな中、iPhoneアプリの「Enchanted」を使って、ローカルLLMの「Ollama」を手軽に使う方法をご紹介します!

さらに、VPNサービスの「Tailscale」を導入すれば、外出先からもアクセスできるようになります。
この記事では、「Enchanted」と「Ollama」、そして「Tailscale」を使って、どこからでもローカルLLMを使う方法をご紹介します!


下記の記事もおススメ

nekomata-14bモデルのollamaへのインポートと使用方法
前回の記事では、Ollamaを使ってモデルファイルを作成する方法を紹介しました。今回は、その手順に従って日本語の大規模言語モデル「nekomata-14b」をインポートし、実際に使用する方法を解説します。GGUFモデルのダウンロードURLM...
Ollama モデルファイル
注意: Modelfile の構文は開発中です。モデルファイルは、Ollamaでモデルを作成・共有するための設計図です。おススメ記事フォーマットModelfile のフォーマット:# コメントINSTRUCTION 引数インストラクション説...

Enchanted アプリ概要

Enchantedは、大規模言語モデル(LLM)の研究者が自分で運用するモデル(ローカルLLM)とチャットできるためのチャットアプリです。このアプリは、Ollama APIとそのエコシステム内のすべてのモデルに対応しています。Enchantedを使うには、稼働中のOllamaサーバーが必要で、アプリの設定でサーバーのエンドポイントを指定する必要があります。

主な特徴

  • ストリーミング対応: 最新のChat APIと会話の文脈を活用したストリーミングが可能です。
  • モデルの切り替え: プロンプトをテストするために、モデル間を簡単に切り替えられます。
  • Markdownサポート: 表、リスト、コードなどが見やすくフォーマットされます。

開発の現状と展望

Enchantedはまだ開発の初期段階ですが、自分で運用するモデルを利用するLLMコミュニティ向けの主要ツールになることを目指す長期的なロードマップがあります。

Ollamaについて

Ollamaは、オープンソースのローカルLLM(Large Language Model)プラットフォームです。自分のコンピュータ上でLLMを動かすことができ、プライバシーとセキュリティを重視しながら、AIアシスタントとのやり取りを楽しむことができます。

特徴

  • オープンソースで、誰でも自由に利用可能
  • ローカル環境で動作するため、データがインターネットに送信されない
  • 様々なLLMモデルを使用可能
  • APIを提供しているため、他のアプリケーションと連携可能

Umievo-itr012-Gleipnir-7B モデル概要

今回はUmievo-itr012-Gleipnir-7Bを使っていきます。

Umievo-itr012-Gleipnir-7Bは、4つの強力な日本語モデルを進化的アルゴリズムで統合した先進的な言語モデルです:

  • Japanese-Starling-ChatV-7B
  • Ninja-v1-RP-expressive-v2
  • Vecteus-v1
  • Japanese-Chat-Umievo-itr004-7b

このモデルは、これらのモデルの特長を活かし、パフォーマンスと機能性を向上させています。

パフォーマンス

Umievo-itr012-Gleipnir-7Bは、ElyzaTasks100ベンチマークで平均スコア3.91を達成しました。
このスコアはLlama3-70Bによる3回の自動評価に基づいており、さまざまな言語理解タスクでの効果を示しています。

umiyuki/Umievo-itr012-Gleipnir-7B · Hugging Face
We’re on a journey to advance and democratize artificial intelligence through open source and open science.

「Ollama」のセットアップ

インストール

Ollamaは、公式サイトからインストーラをダウンロードして実行するだけで、簡単に環境を整えることができます。

Download Ollama on macOS
Download Ollama for macOS

モデルのダウンロード

まずは「Ollama」にモデルを追加します。

> ollama pull llama3

llama3の部分は使用するモデル名に置き換えてください。
今回は「Umievo-itr012-Gleipnir-7B」の4bit量子化モデルを使用しますので下記のModelfileから作成していきます。

Modelfileの作成

ダウンロードしたモデルを使うには、Modelfileを作成する必要があります。以下のような内容でModelfileを作成しましょう。

FROM ./Umievo-itr012-Gleipnir-7B_q4_K_M.gguf

PARAMETER temperature 1.0
PARAMETER repeat_penalty 1.2
PARAMETER num_ctx 4096

TEMPLATE """{{ if .System }}{{ .System }} {{ end }}{{ if .Prompt }}USER: {{ .Prompt }} {{ end }}ASSISTANT: {{ .Response }}"""

SYSTEM """あなたはユーザーに親身になり、役立つ、詳細な、丁寧な回答を提供します。"""

PARAMETER stop "USER:"
PARAMETER stop "ASSISTANT:"
PARAMETER stop <s>
PARAMETER stop </s>

モデルデータのダウンロード

下記からモデルデータのダウンロードをしてきます。

umiyuki-Umievo-itr012-Gleipnir-7B-Q4_K_M.gguf · mmnga/umiyuki-Umievo-itr012-Gleipnir-7B-gguf at main
We’re on a journey to advance and democratize artificial intelligence through open source and open science.

モデルデータの作成

Modelfileを作成したら、以下のコマンドでモデルデータを作成します。

> ollama create Umievo-itr012-Gleipnir-7B_q4_K_M -f ./Modelfile

-fオプションでModelfileのパスを指定します。

動作確認

以下のコマンドで、モデルが正常に動作するか確認しましょう。

> ollama run Umievo-itr012-Gleipnir-7B_q4_K_M

Windowsの設定

file

デフォルトでは、ローカルからのアクセスに制限されているため、以下の環境変数を設定します。

> set OLLAMA_HOST=0.0.0.0
> set OLLAMA_ORIGINS=192.168.10.*

環境変数を設定したら、「Ollama」を再起動します。

Tailscaleを使ったVPN設定

Tailscaleは、簡単にVPNを構築できるサービスです。これを使えば、外出先からもローカルネットワーク内の「Ollama」にアクセスできるようになります。

Tailscaleのセットアップ

  1. Tailscaleの公式サイトにアクセスし、アカウントを作成します。
Tailscale · Best VPN Service for Secure Networks
Securely connect to anything on the internet with Tailscale. Deploy a WireGuard®-based VPN to achieve point-to-point connectivity that enforces least privilege.
  1. Windowsマシンにアプリをダウンロードしてインストールします。

  2. インストール後、Tailscaleアプリを起動し、アカウントにログインします。

  3. iPhoneにもTailscaleアプリをインストールし、同じアカウントでログインします。

iPhoneからのアクセス

iPhoneでTailscaleアプリを起動し、VPNに接続します。

これで、外出先からもVPN経由で「Ollama」にアクセスできるようになりました!

「Enchanted」の設定

file

アプリのダウンロード

App Storeから「Enchanted」アプリをダウンロード・インストールします。

接続設定

「Enchanted」アプリの"Settings"画面で、「Ollama」のアドレスを入力し、保存します。

これで、iPhoneから「Ollama」に接続できるようになりました!

まとめ

「Enchanted」アプリを使えば、iPhoneからローカルLLMの「Ollama」を手軽に使うことができます。
ローカル環境でLLMを使いたい方は、ぜひ試してみてください!

Enchantedを無事に動かすことができました!ローカルLLMをスマホで手軽に使えるのは魅力的ですね。
一応、音声入力機能もありますが、現時点では英語のみの対応となっています。
将来的に読み上げ機能などが追加されて、会話のようなやり取りができるようになったら、さらに面白くなりそうです!

Enchantedは手軽さとスッキリとしたデザインが特徴で、スマホでローカルLLMを使うのに適しているアプリだと思います。
ただ、現状の機能を見ると、拡張性という点ではオープンソースのOpenWebUIの方が、スマホとPCの両方で利用できるので優れているかもしれません。
どちらを選ぶかは、ユーザーのニーズと好みによって異なるでしょう。

これからもローカルLLMの発展に注目していきたいと思います!

参考サイト

「Enchanted」 を使って iPhone から Ollama にアクセスしてみる
別マシンの Ollama へのアクセス - Qiita
Ollama は各種 LLM をローカルで手軽に動かせます。HTTP サーバーとして実装されているため、LLM を専用マシンに分離することも簡単です。デフォ…
‎Enchanted LLM
‎Enchanted is chat app for LLM researchers to chat with self hosted models. Enchanted supports Ollama API and all ecosystem models. It is necessary to have a ru...

コメント

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