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 必要か」「バッチで投げられるか」を毎回問う癖を付ける。