Amazon Titan 埋め込み
このドキュメントでは、TiDB Cloudの自動埋め込みで Amazon Titan 埋め込みモデルを使用して、テキストクエリによるセマンティック検索を実行する方法について説明します。
注記:
自動埋め込みは、AWS でホストされているTiDB Cloud Starter クラスターでのみ使用できます。
利用可能なモデル
TiDB Cloud は以下のAmazon Titan 埋め込みモデルネイティブに提供します。APIキーは必要ありません。
Amazon Titan テキスト埋め込み V2 モデル
- 名前:
tidbcloud_free/amazon/titan-embed-text-v2 - 寸法: 1024 (デフォルト)、512、256
- 距離計量:コサイン、L2
- 言語: 英語 (プレビューでは 100 以上の言語に対応)
- 一般的な使用例: RAG、ドキュメント検索、再ランク付け、分類
- 最大入力テキストトークン数: 8,192
- 最大入力テキスト文字数: 50,000
- 価格: 無料
- TiDB Cloudがホスト: ✅
- 鍵をご持参ください: ❌
このモデルの詳細については、 Amazon Bedrock ドキュメント参照してください。
SQLの使用例
次の例は、Auto Embedding で Amazon Titan 埋め込みモデルを使用する方法を示しています。
CREATE TABLE sample (
`id` INT,
`content` TEXT,
`embedding` VECTOR(1024) GENERATED ALWAYS AS (EMBED_TEXT(
"tidbcloud_free/amazon/titan-embed-text-v2",
`content`
)) STORED
);
INSERT INTO sample
(`id`, `content`)
VALUES
(1, "Java: Object-oriented language for cross-platform development."),
(2, "Java coffee: Bold Indonesian beans with low acidity."),
(3, "Java island: Densely populated, home to Jakarta."),
(4, "Java's syntax is used in Android apps."),
(5, "Dark roast Java beans enhance espresso blends.");
SELECT `id`, `content` FROM sample
ORDER BY
VEC_EMBED_COSINE_DISTANCE(
embedding,
"How to start learning Java programming?"
)
LIMIT 2;
結果:
+------+----------------------------------------------------------------+
| id | content |
+------+----------------------------------------------------------------+
| 1 | Java: Object-oriented language for cross-platform development. |
| 4 | Java's syntax is used in Android apps. |
+------+----------------------------------------------------------------+
オプション
EMBED_TEXT()関数のadditional_json_optionsパラメータを介して次のオプションを指定できます。
normalize(オプション): 出力埋め込みを正規化するかどうか。デフォルトはtrueです。dimensions(オプション): 出力埋め込みの次元数。サポートされる値:1024(デフォルト)、512、256。
例: 代替ディメンションを使用する
CREATE TABLE sample (
`id` INT,
`content` TEXT,
`embedding` VECTOR(512) GENERATED ALWAYS AS (EMBED_TEXT(
"tidbcloud_free/amazon/titan-embed-text-v2",
`content`,
'{"dimensions": 512}'
)) STORED
);
INSERT INTO sample
(`id`, `content`)
VALUES
(1, "Java: Object-oriented language for cross-platform development."),
(2, "Java coffee: Bold Indonesian beans with low acidity."),
(3, "Java island: Densely populated, home to Jakarta."),
(4, "Java's syntax is used in Android apps."),
(5, "Dark roast Java beans enhance espresso blends.");
SELECT `id`, `content` FROM sample
ORDER BY
VEC_EMBED_COSINE_DISTANCE(
embedding,
"How to start learning Java programming?"
)
LIMIT 2;
結果:
+------+----------------------------------------------------------------+
| id | content |
+------+----------------------------------------------------------------+
| 1 | Java: Object-oriented language for cross-platform development. |
| 4 | Java's syntax is used in Android apps. |
+------+----------------------------------------------------------------+