embeddingcache
1.0.0
テキストの埋め込みを取得しますが、すでに計算している場合はローカルにキャッシュします。
いくつかの異なるNLPタスクを実行している場合、またはチューニングを続けているNLPパイプラインを1つ持っている場合は、おそらく埋め込みを再計算したくないでしょう。したがって、キャッシュします。
pip install embeddingcache
from embeddingcache.embeddingcache import get_embeddings
embeddings = get_embeddings(
strs=["hi", "I love Berlin."],
embedding_model="all-MiniLM-L6-v2",
db_directory=Path("dbs/"),
verbose=True,
)
sqlite3を使用して埋め込みをキャッシュします。 [Sqlalchemyを使用するため、これは簡単に適応できます。]
1人の同時ライターとともに、読み上げられる負荷を想定しています。 (ただし、書き込み障害を再試行します。)
sqlite3を2つのデータベースに入れます:Hashstring.db:Hashstringテーブル。各行は、テキスト(ユニーク)への(ユニークな主要なキー)SHA512ハッシュです。両方のフィールドにインデックスが付けられています。
[embedding_model_name] .db:埋め込みテーブル。各行は、1-dim numpy(float32)ベクトルに対する(一意のプライマリキー)SHA512ハッシュであり、これをバイトとしてテーブルにシリアル化します。
pre-commit install
pip install -e .
pytest