Python 教學:使用 OpenAI 與開源模型將文字轉換為向量 (Text Embedding)

加入好友
加入社群
Python 教學:使用 OpenAI 與開源模型將文字轉換為向量 (Text Embedding) - 儲蓄保險王

在自然語言處理 (NLP) 與 AI 應用中,文字轉向量 (Text Embedding) 是非常核心的一步。它可以將一段文字轉換成數字化的向量表示,方便電腦進行 相似度計算語意檢索 (RAG)推薦系統 等任務。

這篇文章會帶你了解:

  1. 為什麼要做文字轉向量
  2. 常用的向量模型有哪些
  3. 如何用 OpenAI API 生成向量
  4. 如何用 開源模型 (Sentence Transformers, BGE) 本地生成向量
  5. 模型選擇建議

1. 為什麼要將文字轉向量?

電腦本質上只能理解數字,像「我愛知識圖譜」這句話,模型需要將它轉換成一組數字向量,例如:

[0.12, -0.08, 0.33, ...]

這樣一來:

  • 不同句子之間就能比較「語意距離」
  • 可以拿來做 相似度檢索(例如搜尋引擎、問答系統)
  • 可以用在 推薦系統(找出語意相近的內容)

2. 常用的向量模型

目前主流有兩大類:

✅ OpenAI (雲端 API)

  • text-embedding-3-small → 1536 維,速度快、便宜,效果比舊版好
  • text-embedding-3-large → 3072 維,更高精度,適合需要極致語意理解的場景

✅ 開源模型 (本地部署)

  • Sentence Transformers (SBERT)all-MiniLM-L6-v2(小巧快速,英文檢索常用)
  • BGE (BAAI General Embedding)BAAI/bge-base-zh(中文檢索表現優秀)
  • E5 系列intfloat/multilingual-e5-base(多語言支援)

3. OpenAI 文字轉向量範例

先安裝套件:

pip install openai

Python 實作:

from openai import OpenAI

client = OpenAI(api_key="your_api_key_here")

text = "我愛知識圖譜與自然語言處理"

# 使用最新 embedding 模型
response = client.embeddings.create(
    model="text-embedding-3-large",   #  "text-embedding-3-small"
    input=text
)

vector = response.data[0].embedding
print(len(vector))     # 向量維度
print(vector[:10])     # 前10個數值

輸出結果:

Python 教學:使用 OpenAI 與開源模型將文字轉換為向量 (Text Embedding) - 儲蓄保險王

輸出結果:

  • text-embedding-3-small → 向量長度 = 1536
  • text-embedding-3-large → 向量長度 = 3072

4. 開源模型 (本地轉向量)

如果你想在本地跑,不依賴雲端,可以用 HuggingFace 的 sentence-transformers

安裝:

pip install sentence-transformers

Python 範例:

from sentence_transformers import SentenceTransformer

# 輕量英文模型
model = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2')

# 中文檢索建議用 BGE
# model = SentenceTransformer('BAAI/bge-base-zh')

text = "我愛知識圖譜與自然語言處理"
vector = model.encode(text)

print(len(vector))   # 向量維度
print(vector[:10])   # 前10個數值

常見維度:

  • all-MiniLM-L6-v2 → 384 維
  • bge-base-zh → 768 維
  • bge-large-zh → 1024 維

5. 模型選擇建議

  • 快速檢索 / 成本敏感text-embedding-3-small (1536 維)
  • 高精度需求text-embedding-3-large (3072 維)
  • 中文專案 / 本地部署BAAI/bge-base-zh
  • 多語言場景multilingual-e5-base

🔚 總結

文字轉向量是 RAG (檢索增強生成)語意搜尋 的基石。

  • 如果你要快速上手,直接用 OpenAI text-embedding-3-small
  • 如果你要本地化,推薦 BGE 中文模型SBERT
  • 如果你要高精度,選 text-embedding-3-large

推薦hahow線上學習python: https://igrape.net/30afN

加入好友
加入社群
Python 教學:使用 OpenAI 與開源模型將文字轉換為向量 (Text Embedding) - 儲蓄保險王

儲蓄保險王

儲蓄險是板主最喜愛的儲蓄工具,最喜愛的投資理財工具則是ETF,最喜愛的省錢工具則是信用卡

You may also like...

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *