Amazon Titan 埋め込み
このドキュメントでは、TiDB Cloudの自動埋め込みで Amazon Titan 埋め込みモデルを使用して、テキストクエリからセマンティック検索を実行する方法について説明します。
注記:
現在、 自動埋め込み次の AWS リージョンのTiDB Cloud Starter クラスターでのみ利用可能です。
Frankfurt (eu-central-1)
Oregon (us-west-2)
N. Virginia (us-east-1)
利用可能なモデル
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. |
+------+----------------------------------------------------------------+