Claris FileMaker 2024 – AIとの連携により、セマンティック検索が可能になった!

2024年06月05日 08:30 AM

Claris FileMaker 2024


みなさま、こんにちは!

Claris FileMaker 2024 がリリースされました。この新バージョンでは、やはり「AIとの連携」が可能になりましたので、その機能について紹介いたします。

AIや機械学習、特に自然言語処理(NLP)における「埋め込み表現(Embeddings)」についてや、セマンティック検索、コサイン類似度(Cosine Similarity)についても解説し、最後に Claris FileMaker で、セマンティック検索をする方法について掘り下げていきます。

  • 埋め込み表現(Embeddings)ってなに?
  • セマンティック検索について
  • コサイン類似度(Cosine Similarity)とは?
  • Claris FileMaker で、セマンティック検索をするためには?
  • 「セマンティック検索」の例

まずは、「セマンティック検索」とは、どういう検索なのか、動画で紹介します。

□■ 埋め込み表現(Embedding)ってなに? ■□

 まず初めに、埋め込み表現(Embedding)とは何かを理解しましょう。単語や文章(テキスト)、画像、音声などのデータを、AI/機械学習/言語モデルが処理しやすい数値ベクトル表現に変換する技術のことを言います。

 「単語の埋め込み」を考えてみましょう。これは意味的に近い関連する単語を、空間的に近い数値ベクトルへ変換します。例として「猫」は多次元のベクトルとして表現され、このベクトルには意味的な情報(「ペット」、「哺乳類」、「鳴き声」など)が含まれます。これにより、機械が単語間の意味的な関係を理解しやすくなります。

 埋め込み表現にすることにより、AIが文脈などを理解し、セマンティック検索ができるようになります。

□■ セマンティック検索について ■□

 セマンティック検索とは、ユーザーが検索したい意図を理解し、その意図に基づいて関連する情報を検索する技術です。従来のキーワードベースの検索とは異なり、セマンティック検索は文脈や意味を考慮して検索結果を提供します。

例)

● キーワード検索

ユーザーが「チキン レシピ 簡単」で検索すると、「チキン」「レシピ」「簡単」という単語を含むページが結果として表示されます。

● セマンティック検索

ユーザーが「簡単に作れるチキン料理のレシピを教えて」と検索すると、セマンティック検索は「簡単に作れる」という条件を理解し、短時間で調理できるチキン料理のレシピを優先的に表示します。

 このように、セマンティック検索は、ユーザーの検索体験を大幅に向上させる技術であり、より具体的かつ有益な情報を提供することができます。その文脈まで考慮して、関連するデータを抽出するために、コサイン類似度(Cosine Similarity)を算出することで、どれだけ関連するのかを判定することができます。

□■ コサイン類似度(Cosine Similarity)とは? ■□

 機械学習におけるコサイン類似度Cosine Similarity)とは、2つのベクトルが「どのくらい似ているか」という類似性を表す尺度です。具体的にはベクトル空間において、2つのベクトルがなす角のコサイン値のことで、値は、「-1 〜 1」の範囲で表され、下記のような意味を持ちます。

  • 1 : 0度のことで、同じ向きのベクトルとなり、完全に似ている
  • 0:90度で、直交した向きのベクトルで、似ている/似ていないのどちらにも無関係
  • -1:180度で、反対の向きのベクトルで、完全に似ていない

 つまり1に近いほど、類似度が高くなリます。埋め込み表現(Embedding)で、ベクトルに変換したデータから、コサイン類似度を算出することで、文脈まで考慮して関連性の高いデータを抽出することができます。

□■ Claris FileMaker で、セマンティック検索をするためには? ■□

 Claris FileMaker 2024 でセマンティック検索を実行させるには、下記のような準備が必要です。

  • OpenAI API のAPIキー(今回は、OpenAI API の Embedding models を使用します。OpenAI以外でも可能。)
  • AI アカウントを指定します。
    • 「AI アカウントを設定」スクリプトステップ
  • セマンティック検索で使用するデータの ベクトルデータを作成
    • 「埋め込みを挿入」スクリプトステップ
    • 「対象レコードに埋め込みを挿入」スクリプトステップ
  • セマンティック検索をする。
    • 「セマンティック検索を実行」スクリプトステップ

「AI アカウントを設定」スクリプトステップ

  • アカウント名:今回は、OpenAI のアカウントを設定(OpenAI以外でも可能)
  • モデルプロバイダ:「OpenAI」「カスタム」のうちから選択。
  • エンドポイント:モデルプロバイダで、カスタムを選択した場合に、表示されます。今回は、OpenAI を指定したので、指定は不要でした。
  • API キー:OpenAI API に登録をして、API キーを発行し、そのキーを設定しました。

このスクリプトステップは、実行した後はファイルを閉じるまで、指定したアカウントが有効な状態となります。

OpenAI API の登録と、API キーの発行は、弊社の下記ブログを参照してください。

「埋め込みを挿入」スクリプトステップ

「対象レコードに埋め込みを挿入」スクリプトステップ

「埋め込みを挿入」スクリプトステップは、セマンティック検索で使用するベクトルデータを作成するスクリプトステップです。

  • アカウント名:OpenAI のアカウントを設定
  • 埋め込みモデル:今回は、「”text-embedding-3-large”」を使用
    • (選択するモデルにより、同じデータ料でも料金が変わります。)
  • 入力:ベクトルデータへ変換する元データ
  • ターゲット:変換後のベクトルデータ(フィールドタイプは、オブジェクトフィールド)

「対象レコードに埋め込みを挿入」スクリプトステップは、対象レコードに対してベクトルデータを作成します。

  • アカウント名:OpenAI のアカウントを設定
  • 埋め込みモデル:今回は、「”text-embedding-3-large”」を使用
    • (選択するモデルにより、同じデータ料でも料金が変わります。)
  • ソースフィールド:ベクトルデータへ変換する元データ
  • ターゲットフィールド:変換後のベクトルデータ(フィールドタイプは、オブジェクトフィールド)
  • ターゲット内容を置換:既存のファイルを置き換えるかどうかのチェック
  • 引数:各APIリクエストで処理するレコード数の上限などの引数の設定をJSONで指定できる箇所
    • (引数についての詳細は、ヘルプを参照。)

作成したベクトルデータは、各レコードのオブジェクトフィールドに保存します。

「セマンティック検索を実行」スクリプトステップ

  • クエリー:検索内容を指定「自然言語」「ベクトルデータ」
    • (自然言語であれば、文章を指定し、ベクトルデータを指定する場合は、事前に変換しておく必要があります。)
  • アカウント名:(クエリーで”自然言語”を選択した場合に必要)AI のアカウントを設定
  • 埋め込みモデル:(クエリーで”自然言語”を選択した場合に必要)「”text-embedding-3-large”」などの指定したAIのモデルを指定する。
    • (「埋め込みを挿入」スクリプトステップで使用したモデルと同じものを指定する必要があります。)
  • テキスト:(クエリーで”自然言語”を選択した場合に必要)検索テキストを指定します。
  • レコードセット:「すべてのレコード」「対象レコード」が指定できます。
  • ターゲットフィールド:ベクトルデータを保存したオブジェクトフィールドを指定。
  • 返される数:検索後表示されるレコード数を指定。検索後は、コサイン類似度で、降順でソートされて抽出されるため、上位Xレコードを表示するような指定ができます。
  • コサイン類似度条件:「次の値より大きい」「次の値より小さい」「次の値に等しい」「次の値以上」「次の値以下」
  • コサイン類似度の値:”コサイン類似度条件”で使用する「次の値」を指定

「セマンティック検索を実行」スクリプトステップで、検索を実行します。

検索結果は、デフォルトではコサイン類似度の降順、上位10件を表示します。「返される数」で、件数を指定すれば、それ以下の件数や、それ以上の件数にすることが可能です。コサイン類似度の値を指定すると、条件に合致するレコードはすべて表示されます。

□■ 「セマンティック検索」の例 ■□

サンプルファイルで、検証してみました。

大学の授業一覧のダミーデータを作成し、キャプチャのようなサンプルファイルを作成しました。

授業の「科目」「教員」「授業の目的」「到達目標」「学生の口コミ」などを保存したサンプルとなっています。

検索:「コーディングの授業」

すごい!!!

「コーディングの授業」でセマンティック検索をすると、キャプチャのようにコーディングという言葉がなくても、それらしい授業が検索されています。

(コサイン類似度のフィールドは、条件付き書式で値により背景色を変更しています。0.4以上で、黄色、0.47以上でオレンジ色としています。)

検索:「人間のことを学べる授業」

「人間のことを学べる授業」でセマンティック検索をすると、こちらもキャプチャのように、それらしい授業が検索されています。

これは便利です!

□■ まとめ ■□

Claris FileMaker は企業や組織で幅広く使用されているデータベース管理ソフトウェアの一つで、ここにセマンティック検索を導入することで、多くの利点があります。

1. 高度なデータ検索:

セマンティック検索を用いることで、キーワード一致だけでなく文脈を理解した検索結果が得られます。これにより、データベース内の情報をさらに効率的に発見・活用できます。

2. ユーザビリティの向上:

自然言語でのクエリ入力が可能になるため、ユーザーが直感的に情報を検索できるようになります。例えば、授業内容などに、キーワードが入力されていなくても、「精神的な内容を扱う授業」といった自然なフレーズでも検索がスムーズに行えます。

OpenAI の Embedding Models を使用しましたので、ベクトルデータを作成するには、有料となりますが、費用が高い印象はありません。もちろん従量課金ですので、データ量によっては金額が高くなることも考えられますので、まず試して費用感なども確認する必要はありますが、多少費用がかかっても、データの種類によってはとても有用な機能になると思います。

Claris FileMaker 2024 では、AI関係の関数も追加されていますので、別のブログで詳細に紹介したいと思います。

ここまで、ご覧いただきありがとうございました。

サンプルファイルのダウンロード

サンプルファイルのダウンロードができます。

※ご注意
こちらのサンプルファイルは、弊社がデモを行うにあたって作成したものを参考にしていただくためご提供するものであり、実際の業務などで利用されることは想定しておりません。
つきましてはご自身の責任においてご利用いただき、サンプルファイルを利用したことにより発生した事象についての責任を弊社では負いかねます。
上記ご了承いただけましたら、以下のボタンからサンプルファイルのダウンロードをしてください。

※OpenAI APIキーはご自身でご用意をお願いいたします。

ファイル名:samplefile_SemanticSearch01.zip(742KB)

Claris FileMaker 無料評価版ダウンロード

Claris FileMaker 2024 が45日間無料でお試しいただける無料評価版がダウンロードできます!
機能制限等は一切ありません。
購入前に新機能を試してみたい方、ご購入を検討されている方ぜひボタンをクリックしてください!(Caris サイトへ移動します)