HuggingFaceの埋め込み
このドキュメントでは、TiDB Cloudの自動埋め込みで HuggingFace 埋め込みモデルを使用して、テキスト クエリからセマンティック検索を実行する方法について説明します。
注記:
現在、 自動埋め込み次の AWS リージョンのTiDB Cloud Starter クラスターでのみ利用可能です。
Frankfurt (eu-central-1)
Oregon (us-west-2)
N. Virginia (us-east-1)
利用可能なモデル
独自のHuggingFace推論APIキー (BYOK) をお持ちの場合は、HuggingFace モデルをhuggingface/
プレフィックスで使用できます。
以下のセクションでは、便宜上、いくつかの一般的なモデルを例として取り上げ、それらを自動埋め込みでどのように使用するかを説明します。利用可能なモデルの完全なリストについては、 ハギングフェイスモデル参照してください。すべてのモデルがHuggingFace推論APIで提供されておらず、常に動作するわけではないことにご注意ください。
多言語-e5-ラージ
- 名前:
huggingface/intfloat/multilingual-e5-large
- 寸法: 1024
- 距離メトリック: コサイン、L2
- 価格: HuggingFaceによる請求
- TiDB Cloudがホスト: ❌
- 鍵をご持参ください: ✅
- プロジェクトホーム: https://huggingface.co/intfloat/multilingual-e5-large
例:
SET @@GLOBAL.TIDB_EXP_EMBED_HUGGINGFACE_API_KEY = 'your-huggingface-api-key-here';
CREATE TABLE sample (
`id` INT,
`content` TEXT,
`embedding` VECTOR(1024) GENERATED ALWAYS AS (EMBED_TEXT(
"huggingface/intfloat/multilingual-e5-large",
`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;
bge-m3
- 名前:
huggingface/BAAI/bge-m3
- 寸法: 1024
- 距離メトリック: コサイン、L2
- 価格: HuggingFaceによる請求
- TiDB Cloudがホスト: ❌
- 鍵をご持参ください: ✅
- プロジェクトホーム: https://huggingface.co/BAAI/bge-m3
SET @@GLOBAL.TIDB_EXP_EMBED_HUGGINGFACE_API_KEY = 'your-huggingface-api-key-here';
CREATE TABLE sample (
`id` INT,
`content` TEXT,
`embedding` VECTOR(1024) GENERATED ALWAYS AS (EMBED_TEXT(
"huggingface/BAAI/bge-m3",
`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;
オールミニLM-L6-v2
- 名前:
huggingface/sentence-transformers/all-MiniLM-L6-v2
- 寸法: 384
- 距離メトリック: コサイン、L2
- 価格: HuggingFaceによる請求
- TiDB Cloudがホスト: ❌
- 鍵をご持参ください: ✅
- プロジェクトホーム: https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2
例:
SET @@GLOBAL.TIDB_EXP_EMBED_HUGGINGFACE_API_KEY = 'your-huggingface-api-key-here';
CREATE TABLE sample (
`id` INT,
`content` TEXT,
`embedding` VECTOR(384) GENERATED ALWAYS AS (EMBED_TEXT(
"huggingface/sentence-transformers/all-MiniLM-L6-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;
オールMPネットベースv2
- 名前:
huggingface/sentence-transformers/all-mpnet-base-v2
- 寸法: 768
- 距離メトリック: コサイン、L2
- 価格: HuggingFaceによる請求
- TiDB Cloudがホスト: ❌
- 鍵をご持参ください: ✅
- プロジェクトホーム: https://huggingface.co/sentence-transformers/all-mpnet-base-v2
SET @@GLOBAL.TIDB_EXP_EMBED_HUGGINGFACE_API_KEY = 'your-huggingface-api-key-here';
CREATE TABLE sample (
`id` INT,
`content` TEXT,
`embedding` VECTOR(768) GENERATED ALWAYS AS (EMBED_TEXT(
"huggingface/sentence-transformers/all-mpnet-base-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;
Qwen3-埋め込み-0.6B
注記:
HuggingFace Inference API はこのモデルでは安定していない可能性があります。
- 名前:
huggingface/Qwen/Qwen3-Embedding-0.6B
- 寸法: 1024
- 距離メトリック: コサイン、L2
- 最大入力テキストトークン数: 512
- 価格: HuggingFaceによる請求
- TiDB Cloudがホスト: ❌
- 鍵をご持参ください: ✅
- プロジェクトホーム: https://huggingface.co/Qwen/Qwen3-Embedding-0.6B
SET @@GLOBAL.TIDB_EXP_EMBED_HUGGINGFACE_API_KEY = 'your-huggingface-api-key-here';
CREATE TABLE sample (
`id` INT,
`content` TEXT,
`embedding` VECTOR(1024) GENERATED ALWAYS AS (EMBED_TEXT(
"huggingface/Qwen/Qwen3-Embedding-0.6B",
`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;