LoginSignup
2
3

huggingfaceからダウンロードしたlocal modelでembeddingしたい

Posted at

状況

貧乏な自分は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時代 お金がかかる・・・

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3