状況
貧乏な自分はOpenAIのエンベディングモデルを利用するには無理があった
そこでhuggingfaceにあるエンベディングモデルを利用することにした
huggingfaceからモデルをダウンロード
今回はmultilingual-e5-largeを利用する想定
pip install sentence_transformers
from huggingface_hub import snapshot_download
download_path = snapshot_download(repo_id="intfloat/multilingual-e5-large", local_dir="ダウンロードしたいところ")
利用
pip install langchain
pip install InstructorEmbedding
from langchain.embeddings import HuggingFaceInstructEmbeddings
モデルの指定
def embedding_model():
# em = OpenAIEmbeddings(model='text-embedding-ada-002', deployment="embedding-ada-002")
model_name = "さっきのダウンロードしたところのパス"
model_kwargs = {'device': 'cpu'}
encode_kwargs = {'normalize_embeddings': True}
em = HuggingFaceInstructEmbeddings(
model_name=model_name,
model_kwargs=model_kwargs,
encode_kwargs=encode_kwargs
)
return em
今回chromaを利用しています。
実際利用
persist_directory = f"db/{texts_name}"
texts = "おかねをくれ~~"
embeddings = embedding_model()
vectordb = Chroma.from_documents(texts, embeddings, persist_directory=persist_directory)
vectordb.persist()
結果
短いテキストとかならエンベディングできたんですけど
長いテキストはスペックが足りずにできませんでしたw
GPU付のPCを買うお金がないので詰みました😢
世はLLM時代 お金がかかる・・・