Claris FileMaker 2024 (21.1) のリリースに合わせて、FileMaker と LLM の連携、特にローカル LLM に焦点を当てた Community Live が開催されました。
ライブ配信のアーカイブ: https://www.youtube.com/watch?v=PeDg0vyaDGo
新バージョン 21.1では、画像のセマンティック検索ができるようになりました。今回は、それに合わせて、ローカル LLM でその仕組みを実現する方法を紹介しています。
データのセキュリティを考慮して外部サービスの LLM の使用を躊躇している方にとって、ローカル LLM の導入は有力な選択肢となります。しかし、サービスの立ち上げ方が不明確で、どこから手をつけるべきか分からない方も多いでしょう。そのようなニーズに応えるために今回の Webinar が企画されました。
Claris Community 内にこの Webinar 専用の告知ページが準備されていて、関連の情報やファイルなど、必要なものがまとめられています。
この Webinar の告知ページ: https://community.claris.com/en/s/question/0D5Vy00000MixgiKAB/november-7-2024-community-live-ai-on-your-terms-using-local-llms-with-claris-filemaker
ローカル LLM サーバーの構築手順
今回の Webinar では、ローカル LLM のサーバー準備とマイクロサービスの立ち上げまでをカバーしています。ローカル LLM のサービスを立ち上げることで、まったく外部に情報を出すことがない、セキュアな仕組みが実現可能になります。
なお、今回のメインホストである SoliantConsulting の Wim さんは、今までもセキュリティやコンテナ化など、サーバー関連の情報を多く発信をしています。
Soliant Consulting のWim さんの記事: https://www.soliantconsulting.com/?s=wim
基本的な手順は、以下の Claris のエンジニアリングブログや、readme.txt ファイルの中にすべて記述されています。
- AI-powered semantic search for images in FileMaker 2024
https://support.claris.com/s/answerview?anum=000045088&language=en_US - Working with LLMs in FileMaker 2024
https://support.claris.com/s/answerview?anum=000041889&language=en_US
ローカル LLM のサービスの立ち上げ方は、それほど複雑ではありません。実際実行するコマンドはわずか数行です。
今回の Webinar では、その部分について、その意味を噛み砕きながら、一つ一つ説明してくれています。
Python スクリプトの準備
最新の FileMaker Server をインストールすると、OS ごとにパスは若干変わりますが、Open_Source_LLM というフォルダが作成されます。このフォルダの配下に Python のファイル群が置かれます。これが、ローカル LLM のプログラムの実体です。
これを、そのままその FileMaker Server にインストールするのではなく、別サーバーにコピーして、そこにインストールを行います。ローカル LLM をホストするサーバーは、多くのサーバーリソースを要求することもあり、独立したマシンを準備することが推奨されています。
設定ファイルの編集
Python のファイル群のうち、変更を加えるのは以下の “server/fm_LLMOs_Settings.py” ファイル1つだけです。
このファイルで、セキュリティの SSL 証明書、PKI キートークンを使用するかどうかの設定を行います。また、ポートの指定もここで行います。
Wim さんは、手抜きせずに、きちんとこれらのセキュリティ設定を行うことを強く推奨します。
そもそもローカル LLM のサービスを立てる動機がセキュリティを考慮してという場合が多いと考えられるので、ここは設定したことがないという人も練習と思って、がんばりましょう。
SSL 証明書、PKI トークンの設定
SSL 証明書、PKI トークン関連のファイルを設定し、環境変数に設定します。
モデルの選択
今回、画像をテキストで検索する場合、画像とテキストの埋め込みに対応したモデルを選択することになります。
ここでは、画像とテキスト、かつ多言語に対応しているということで、“clip-ViT-B-32” を選択するのがいいでしょう。
fm_LLMOS_ModelSettings.json というファイルに記述のある4つが、Claris が動作を検証したの OSS のモデルだそうです。これらは、Hugging Face という機械学習モデルのリポジトリサイトから自動的にダウンロードされます。
conda, Python3, 関連ライブラリのインストール
次に Miniconda というツールを使って、Python 関連の環境を準備します。
Miniconda は、Python でのプログラム開発で用いられる、conda というパッケージ管理と環境管理システムを含んだディストリビューションです。
Miniconda をインストール後、環境を作ってアクティベートし、Python3 と 必要なライブラリをインストールします。
1. conda の環境を作成
2. Python3 をインストール
3. 必要なライブラリをインストール
pyc ファイルを実行
ここまでの設定ができたら、pyc ファイル (コンパイルされた Python スクリプト)を実行します。
以下が、起動直後の画面です。
コマンドを実行することで、ローカル LLM のサービスが起動し、FileMaker のスクリプトステップ「AI アカウント設定」を設定できるようになります。
具体的には、「カスタム」を選択し、エンドポイントと API キーを設定します。
マイクロサービスのバックグラウンドプロセス化
ここまで説明した方法では、自分がログアウトしたり、ターミナルを終了したときに、起動したマイクロサービスも同時に終了してしまいます。
安定してサービスを提供するためには、上で説明した、サービスの起動コマンドをデーモン化します。それによって、ユーザがログインしたり、ターミナルを操作しなくても、マシンの起動と同時にサービスを立ち上げられるようになります。
いろいろな方法がありますが、ここでは pm2 というフリーのプログラムが使われていました。
ローカル LLM が身近に
ローカルLLMはちょっと敷居が高いかと導入を迷っていた方も、これならできるかも、と身近に感じられたのではないでしょうか? ローカル LLM の導入によって、セキュリティや API 利用コストに関する不安を取り除き、LLM 利用の選択肢が増えて、これからさらにFileMaker と LLM の連携シーンが増えていくことでしょう。
弊社PR
弊社では、KAC(Kotobuki APIs & Connectors)サービスを展開しており、ローカル LLM ではなく、埋め込みが可能な Web API を提供中です。無料からお試しいただけますのでぜひ KAC キーの取得や検証をおすすめします。
セマンティック検索や LLM Chat API などと連動した Claris FileMaker システムについて注力しております。AI 連携のシステム構築のご相談などございましたらぜひお問い合わせいただければ幸いです。