Vol.042025年9月17日
AI

embedding コストを 1/10 にする工夫

OpenAI embedding を毎回叩いていては破産する。再計算スキップ・dim 圧縮・バッチング、3 つの基本だけで激減する。

SoSoraEndo2025年9月17日2 min186

三段の節約

1. 内容ハッシュで再計算スキップ

def embed(text)
  digest = Digest::SHA256.hexdigest(text)
  cached = EmbeddingCache.find_by(digest:)
  return cached.vector if cached

  vec = openai_client.embed(text)
  EmbeddingCache.create!(digest:, vector: vec)
  vec
end

同じ文章を 2 回 embed する事態を完全に防ぐ。これだけで 30〜50% 減。

2. dim を 1536 → 256 に圧縮

text-embedding-3-small は出力次元を指定可能。256 でも検索精度は実用上ほぼ変わらない(情報量の上位成分が支配的)。

3. バッチング

1 件ずつ叩かず、100 件まとめて投げる。レイテンシも 1/10 になる。

具体数値

AetherEchoes の RAG 構築コストは、上記 3 段で月 $80 → $9 になりました。

まとめ

embedding は「叩いた瞬間に課金される」。叩く前に「本当に新規 input か」「次元数は 1536 必要か」「バッチで投げられるか」を毎回問う癖を付ける。

Tags

Reaction

Share

X (Twitter)