「このデータは外に出せないので、AI は使えません。」 そういって諦めた企画に、AI を使えるようにする。それが Claris FileMaker 2026 の Claris AI Model Server です。
本シリーズの第1回、第2回では、「FileMaker 万年ジュニアズ」の筆者が「Claris AI Model Server セットアップガイド」を片手に Claris AI Model Server をセットアップし、ローカル AI を使用してマルチモーダル検索を実現すべく泥沼を掻き分け、とうとう写真 592点すべてに埋め込みを用意しました。
全 3回の最終回である今回は、実際にテキスト(日本語、英語)で画像を検索してみました。その結果を見ながら、なぜこうなるのか、そして実務で使うならどうするかについて考えます。
今回の旅路:
(第1回、第2回)
1. はじめに
2. Claris AI Model Server をセットアップする
3. AI モデルの選択でつまずく
4. 埋め込み生成しながら処理時間を測ってみる
(第3回・本記事)
5. テキストで画像を検索してみる
6. おわりに
なお、本記事では、Claris が提供するオンプレミス AI 推論基盤を「Claris AI Model Server」、AI モデルをホストしてリクエストを処理する役割・機能を単に「AI モデルサーバー」と呼びます。
5. テキストで画像を検索してみる
前回までで、Claris AI Model Server を使ってローカル AI を使用し、マルチモーダル検索のための埋め込みが生成できました。最後はいよいよマルチモーダル検索の実行、テキストで画像を検索してみます。
検索処理は、埋め込み生成がもっとも遅かった (2) 拠点間 VPN 構成で行いました(第2回参照)。専用の検索用レイアウトを作り、[セマンティック検索を実行] スクリプトステップで、モデル clip-ViT-B-32-multilingual-v1 を使います。
ここまでいろいろ乗り越えてきましたが、最後の心配は、検索対象の写真の内容。ぱらぱらと覗いてみたところ、上司の秘蔵写真集は動物とブッシュ(低木がまばらに生えた草原)ばかりです。 似たような雰囲気の写真の中から目的の 1枚を探せるのか……。
とはいえ、現場写真や商品カタログなど、業務でも「似た写真が大量にある」のはよくある話なので、案外いい練習題材かもしれません。
日本語で検索してみた
まず、「草原にいるシマウマ」で検索を実行してみました。
実際にやってみると、埋め込み生成にあれだけ待たされた VPN 環境でも、検索は一瞬でした(クリックして結果がすぐ出たので、時間測定しませんでした)。検索時にネットワーク越しに送るのは、検索のために入力された短いテキストだけなので、構成による差はほぼ出ないと考えられます。日々の検索はネットワーク構成をほとんど気にせずに使えます。
肝心の検索結果ですが、なんと、上位 20件(コサイン類似度が大きい順)にシマウマの写真はたったの 1枚でした。しかも、上から 11番目です。
コサイン類似度とは、対象の埋め込みベクトルがどれだけ近いかを表す数値で、-1 から 1 の値をとります。ただし、CLIP 系のモデルではその仕組み上、画像とテキストの類似度が -1〜1 の全域に広がることはなく、かなり狭い範囲に集まります(今回のシマウマ検索上位 20件のコサイン類似度は「約 0.26〜0.28」でした)。したがって、値そのものの大小で良し悪しは判断できません。見るべきは、同じ検索の中での相対的な順位です。
ただ、シマウマ検索の検索結果は、画像群を上位からから眺めても、この写真のどこにシマウマがいるのだろうと、首をかしげてしまいました。
日本語による画像検索結果例(「草原にいるシマウマ」で検索)
英語でも検索してみた
今度は、英語で「zebra in a field」と入力して検索してみました(厳密には “field” は「草原」と同義ではありませんが、平易な英語表現として選びました)。モデルは、第1回でも書いたとおり、英語なら clip-ViT-B-32 でも検索できますが、ここでは言語以外の条件をそろえるために、上記日本語の場合と同じ clip-ViT-B-32-multilingual-v1 を使います。
すると、検索結果の上位 20件に、草原にいるシマウマの写真が続々と入ってきました。上位 10件に絞ってみても 6件がシマウマ! 同じ画像セット、ほぼ同じ意味のテキスト、同じモデルなのに、言語を変えただけでこれだけ違うのです。なお、上位 10件のコサイン類似度は約 0.32〜0.36 でした。
英語による画像検索結果例(「zebra in a field」で検索)
なぜ英語のほうがよいのか
上記 2回の検索で変えたのは言語だけです。つまりこの差は、言語そのものに起因すると考えられます。そこで clip-ViT-B-32-multilingual-v1 のモデルカードを改めて確認しました。理由はこのモデルの成り立ちにあるようです。
clip-ViT-B-32-multilingual-v1 は、英語版 CLIP のテキストエンコーダを「先生」として、その出力を多言語で再現できるように訓練されたモデルです(Multilingual Knowledge Distillation という手法)。つまり、英語が基準で、日本語はそこに寄せて配置されている、という関係になります。
さらに土台となる CLIP 自体が英語のテキストで学習されたモデルなので、英語で問いかけたときにもっとも素の性能が出やすいのは、考えてみれば自然なことかもしれません。
第1回では 2つのモデルを「相棒」と書きましたが、「多言語対応」は「どの言語でも同じ精度が出る」という意味ではない、ということなんですね。ドラマ同様、「相棒」にも得意分野があったわけです。
ちなみに、本記事冒頭のイメージは日本語「ブッシュを歩く象」で検索したものですが、上位 20件に、カバのおしりの写真が 1枚入っていただけで、あとは全部「象」という、なかなか良い検索結果になっています。あくまで推測ですが、象は言語圏によらず人気者で、日本語側の対訳データでもよくカバーされている語だったのかもしれません。
実務ではどうするか
言語による精度の差について、対策としては次のような方法が考えられます。
- 入力された日本語をローカル LLM で英語に翻訳してから、画像の埋め込みに対してセマンティック検索する(画像の埋め込みを clip-ViT-B-32 で生成しているので、検索側は同じベクトル空間を共有する clip 系のどちらのモデルでも可)
- 入力された日本語をローカル LLM で英語に翻訳してから、イメージキャプション生成で作った英語の説明文に対してセマンティック検索する(テキスト同士の比較になるので、all-MiniLM-L12-v2 といったテキスト埋め込みモデルを使用)
- イメージキャプション生成で作った英語の説明文を日本語に翻訳し、その日本語テキストに対して埋め込みを生成しておいて、入力された日本語でセマンティック検索する(paraphrase-multilingual-MiniLM-L12-v2 のような、日本語を含む多言語対応テキスト埋め込みモデルを使用)
なお、ここに挙げたモデルはいずれも、Claris 推奨モデルです。
AIS ガイドの画像検索アプローチ
上記 3. は、AIS ガイドに添付されているもう 1つのサンプルファイル (サンプルファイル 2)で採られているアプローチです。
第1回では、キャプションに対して検索すると簡単に書きましたが、正確には、生成した英語のキャプションを日本語に翻訳し、その日本語テキストから作った埋め込みに対して検索する、という作りになっています。翻訳は open-ai/gpt-oss-20b、埋め込み生成は sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2 で、CLIP は登場しません。画像とテキストを直接比較するのではなく、画像をいったん日本語の文章に変換してしまい、あとはテキスト同士の比較で検索する、という考え方です。
こうすると、検索する言葉と検索される言葉がどちらも日本語になるので、言語をまたぐ照合の精度に悩まされることがありません。最初にこのサンプルを見たときは、せっかく画像とテキストを直接比べられるモデルがあるのに、なぜわざわざ文章を経由するのだろうと思っていましたが、今ならわかります。日本語で検索することを考えれば、こちらの方がずっと確実ですね。
もちろん、いいことばかりではありません。キャプションという文章を経由する分、元の画像が持っていた情報は落ちます。一方で、なぜその写真がヒットしたのかをキャプションを見て確かめられるという、CLIP 系モデルを使う場合にはない利点もあります。どちらが優れているという話ではなく、目的に応じて選ぶものなのだと思います。
なお、このアプローチでも、キャプション生成も翻訳も埋め込み生成も、すべて手元の AI モデルサーバーの中で完結します。全 592点に対して 2段構えの AI 処理をかけることになりますが、クラウド AI サービスを利用する場合とは異なり、どれだけ AI を使っても費用に跳ね返らないので、上司の目を気にすることなく、思う存分試すことができます。
「Claris AI Model Server セットアップガイド」サンプルファイル 2 の実行例
6. おわりに
本シリーズでは 3回に分けて、Claris AI Model Server をセットアップし、Claris 推奨のローカル AI モデルを使用して、テキストから画像を検索できるようにした顛末をお届けしました。
第1回の「今回わかったこと」で、泥沼から這い出た筆者が「報告したいことは 4つ」と書きましたが、おかげさまで 4つとも無事に報告できました。第1回でモデル選びの落とし穴、第2回で、スクリプトステップの選び方と AI モデルサーバーとクライアントの距離、そしてこの第3回で「多言語対応モデル」の実際のところ。第1回に「這い出てみると、どれも当たり前のようなことばかり」と書いた通りなのですが、当たり前だと気づくまでに要した時間は、あまり当たり前ではありませんでした。やはり、実際に試してみないとわからないことはわからないのです。
ポイントは「外に出さなかった」こと
改めて振り返ると、今回の検証でもっとも価値があったのは、592点の写真を一度も組織の外に出さずに AI で検索したことかもしれません。第1回で書いたように、素材そのものは外に出しても困らないものでしたが、仕組みとしては組織内だけで完結しています。
クラウドの最新の AI サービスを使えば、同じことをもっと手軽に、もっと高い精度で実現できたと思います。ただしその場合は、写真を 1点ずつ外部に送信することになります。今回は上司の個人写真だからよかったものの、これが設計図や契約書、患者の記録、社内の現場写真だったら、話はまったく違ってきます。
Claris AI Model Server のいちばんの魅力は、まさにそこにあります。外に出せないデータにこそ、AI を使える。 外部サービスに預けられないから AI を諦めていた、という領域が、オンプレミスで動く AI によって現実的な選択肢になります。
埋め込み以外にもできること
Claris AI Model Server が扱えるのは、埋め込みだけではありません。テキスト生成、イメージキャプション、そして登録した文書を参照して回答する RAG(検索拡張生成)も同じ仕組みの上で動きます。
つまり、こんなことも同じ環境でできるはずです。
- 社外に出せない社内規程やマニュアルに、自然な言葉で質問する
- 機密扱いの問い合わせ履歴を要約・分類する
- 公開できない現場写真に、自動で説明文を付ける
どれも「データを外に出せないから」という理由で止まっていた企画ではないでしょうか。
ぜひ FileMaker x ローカル AI を試してみてください
もう 1つの収穫は、FileMaker Cloud に眠っていた写真が、そのまま AI の題材になったことでした。AI を導入するからといって、特別なデータを用意し直す必要はありません。すでに FileMaker で管理しているデータに、そのまま AI 機能を適用できます。
みなさんのカスタム App にも、外に出せないまま眠っているデータがないか、ぜひ探してみてください。
ともあれ、我らが上司、写真をありがとうございました。ciao!
このブログでご紹介した Claris AI Model Server は、Claris FileMaker 2026(26.0.1)以降でご利用いただけます。これよりも前のバージョンをお使いの方は、最新の無料評価版をダウンロードしてご利用ください。