この前は、LlamaIndexのプロンプトテンプレートを日本語にしてたりしました。
今回はretrivalの部分をちょっとカスタマイズをしようと思い、デフォルトの検索方法を変えてFaissを使うようにしたいと思います。
Faissの導入
ベクトル検索用の近傍探索ライブラリやツールにも色々あります。 LlamaIndexでもベクトル検索のライブラリやツールをたくさんサポートしているので、今回はその中ですぐに使えそうだったfaissを使うように修正したいと思います。
やり方
やること自体はそんなに難しくなくて、VectorStoreIndex
を使うときにstorage_contextをFaissのものに変えてあげるだけです。コードにするとこんな感じですね。
before
vector_index = VectorStoreIndex.from_documents(
documents,
service_context=ServiceContext.from_defaults(chunk_size=512)
)
after
vector_store = FaissVectorStore(faiss_index=faiss_index)
storage_context = StorageContext.from_defaults(vector_store=vector_store)
vector_index = VectorStoreIndex.from_documents(
documents,
storage_context=storage_context,
service_context=ServiceContext.from_defaults(chunk_size=512)
)
結構簡単にベクトル検索インデックスの変更ができました。
使用したコード
参考文献
下記を参考にしました。
感想
意外とfaiss使うのも簡単なんですね。ちょっとびっくりしました。
以上、小ネタでした。