0 / 0
資料の 英語版 に戻る

テキストのベクトル化

最終更新: 2025年3月20日
テキストのベクトル化

watsonx.ai から入手できる埋め込みモデルと埋め込みAPIを使用して、生成AIアプリケーションで使用する文章や段落の意味を捉えたテキスト埋め込みを作成します。

開発方法

テキストをベクトル化、つまりテキストを埋め込みと呼ばれるテキストの数値表現に変換するには、これらのプログラミング方法を使用します

また、 IBM を使用して、サードパーティのプラットフォームから埋め込みモデルを使用することもできます。例えば、以下のようなプラットフォームです

あるいは、チャットワークフローの一環として文書をベクトル化したり、ベクトルインデックスを作成したりするために、 watsonx.ai UIのグラフィックツールを使用することもできます。 以下のリソースを参照してください。

概要

Converting text into text embeddings, or ベクトル化 text, helps with document comparison, question-answering, and in retrieval-augmented generation (RAG) tasks, where you need to retrieve relevant content quickly.

詳しくは、以下のトピックを参照してください。

サポートされている基盤モデル

watsonx.ai で利用可能なエンベッディングモデルの詳細については 、「サポートされているエンコーダモデル 」を参照してください。

プログラム的に使用可能な埋め込みモデルを確認するには、 watsonx.ai のサービスAPIとして 利用可能な基盤モデルをリストアップする メソッドを使用します。 filters=function_embedding パラメータを指定すると、利用可能な埋め込みモデルのみが返されます。

curl -X GET \
  'https://{cluster_url}/ml/v1/foundation_model_specs?version=2024-07-25&filters=function_embedding'

Python

watsonx.ai Python ライブラリの埋め込みクラスを参照してください。

次のサンプルノートブックが利用可能です

REST API

watsonx.ai API の Generate embeddings メソッドを使用してテキストをベクトル化します。

REST API の例

次のコードスニペットでは、 slate-30m-english-rtrvr モデルを使用して、次の2行のテキストをテキスト埋め込みに変換しています

  • 基盤モデル、幅広い下流タスクに適応できる大規模な生成AIモデルである。
  • 生成型AI テキスト、ソースコード、画像、音声、合成データなど、さまざまな種類のコンテンツを生成できるAIアルゴリズムの一種。

この例では2行のテキストしか送信されていないが、1,000行まで指定できる。 送信する各行は、埋め込みモデルで定義されている最大入力トークン制限に従う必要があります。

行が長くなる可能性がある場合に対処するため、 truncate_input_tokens パラメータを指定して行を強制的に切り詰めるようにします。 そうでないと、リクエストが失敗する可能性があります。 この例では、 input_text パラメーターが含まれているので、元のテキストがレスポンスに追加され、元のテキストと各埋め込み値のセットとのペアが簡単になります。

埋め込み方法のペイロードで model_id として使用する埋め込みモデルを指定します。

REST API リクエストの例

curl -X POST \
  'https://{region}.cloud.ibm.com/ml/v1/text/embeddings?version=2024-05-02' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer eyJraWQiOi...' \
  --data-raw '{
  "inputs": [
    "A foundation model is a large-scale generative AI model that can be adapted to a wide range of downstream tasks.",
    "Generative AI a class of AI algorithms that can produce various types of content including text, source code, imagery, audio, and synthetic data."
  ],
  "parameters":{
    "truncate_input_tokens": 128,
    "return_options":{
      "input_text":true
    }
  },
  "model_id": "ibm/slate-30m-english-rtrvr",
  "project_id": "81966e98-c691-48a2-9bcc-e637a84db410"
}'

REST API レスポンスの例

レスポンスはこのようになるが、このレスポンスのサンプルでは、例の可読性を向上させるために、各埋め込みの384個の値を6個に減らしている:

{
  "model_id": "ibm/slate-30m-english-rtrvr",
  "created_at": "2024-05-02T16:21:56.771Z",
  "results": [
    {
      "embedding": [
        -0.023104044,
        0.05364946,
        0.062400896,
        ...
        0.008527246,
        -0.08910927,
        0.048190728
      ],
      "input": "A foundation model is a large-scale generative AI model that can be adapted to a wide range of downstream tasks."
    },
    {
      "embedding": [
        -0.024285838,
        0.03582272,
        0.008893765,
        ...
        0.0148864435,
        -0.051656704,
        0.012944954
      ],
      "input": "Generative AI a class of AI algorithms that can produce various types of content including text, source code, imagery, audio, and synthetic data."
    }
  ],
  "input_token_count": 57
}

詳細情報

親トピック: 生成型AIソリューションのコーディング