LoginSignup
21
13

LlamaindexとLangchainの違いとは?

Posted at

概要

LlamaindexとLangchainは,GPTのような大規模言語モデル(LLM)を活用するためのライブラリです.正直僕はLllamaindexしか使ったことがなく,それぞれの違いについてよく理解していなかったので,記事にします.

Llamaindex

結論から言うと,Lllamaindexは独自のデータを使ったQAチャットができるLLMを簡単に作成できるライブラリです.Lllamaindexも内部的にはLangchainを使っているみたいです.

そもそも,LLMのカスタマイズするためのパラダイムには主に2種類があります.

  1. LLMをFine-tuningする
  2. 入力プロンプトにコンテキストを埋め込む

Llamaindexは後者である「入力プロンプトにコンテキストを埋め込む」を,より性能よく,効率よく,安価に行うために様々なデータ取り込みやインデックス化を実施することが可能です.

Llamaindexでは,以下のようなインデックス構造が提供されています.

インデックス名 説明
GPTListIndex 単にNodeのリストを保持し,クエリ時は先頭から順次処理し,それぞれの出力を合成
GPTVectorStoreIndex 各Nodeに対応する埋め込みベクトルと共に順序付けせずに保持し,埋め込みベクトルを使用してNodeを抽出し,それぞれの出力を合成
GPTTreeIndex ノードをツリー構造にして保持し,クエリ時はRootから探索して,使用するノードを決め,その出力を合成
GPTKeywordTableIndex 各Nodeからキーワードを抽出し,キーワードに対するNodeをマッピングして保持し,クエリ時はクエリのキーワードを使ってNodeを選択し,それぞれのノードの出力を合成

時間があったら別のタイミングでindexの種類についても記事にしたいと思います.

参考

Langchain

Langchainは,LLMをwebサービスや自作のAPI,プログラムの実行環境,ターミナルなどに接続するライブラリです

Langchainは,LLMにさまざまな機能を付け加えるのに便利なものです.Langchainでは以下のようなコンポーネントが提供されています.

コンポーネント 説明
Models OpenAIをはじめとした様々な言語モデル・チャットモデル・エンべディングモデルを切り替えたり、組み合わせたりすることができる
Prompt プロンプトの管理・最適化・シリアル化などをすることができる
Indexes PDFやCSVなどの外部データを用いて回答を生成することができる
Chains 複数のプロンプト入力を実行することができる
Agents 言語モデルに渡されたツールを用いて、モデル自体が次にどのようなアクションを取るかを決定し、実行し、観測し、完了するまで繰り返すことができる
Memory ChainsやAgentsの内部における状態保持をすることができる

参考

最後に

Lllamaindex とLangchainの違いについて簡単に記事にしてみました.

記事にする前は,全く別々の存在なのかと思っていたら,実は兄弟みたいな関係だったんだと言うことに気がつきました.

誰かの役に立てれば幸いです.

21
13
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
21
13