従来の質問生成アルゴリズムと統合したのでテストする
要約 by AI, modified by Human
LangChainはMax marginal relevanceの口がついている
が、抽象クラスを継承しているやつが実装されていない。
LlamaIndexはテキストのリストを渡すことで、それに対して埋め込みベクトルを対応づけることができる。
クエリーを発行すると、関連するドキュメントをベクトルに基づいてピックアップする。
LlamaIndexのテキストに対してのベクトル化はローカルのJSONに格納されている。
LlamaIndexはOpenAIの埋め込みAPIを使用している。
埋め込みAPIが、どう実装されてるか、どこかのレイヤーから抜き出されるのかは分からない。
LangChainは動かないというトラブルがあるため、LlamaIndexを使用する。
FAISSに謎のトラブルがあるため、現在はLlamaIndexを使用する。
まだLlamaIndexの実装を確認していない。
次のステップはLlamaIndexの実装を確認して、コードを読み理解することです。
要約 by AI
LangChainはMax marginal relevanceの口がついているが、抽象クラスを継承しているやつが実装されていない。
LlamaIndexはテキストのリストを渡すことで、それに対して埋め込みベクトルを対応づけることができる。
クエリーを発行すると、関連するドキュメントをベクトルに基づいてピックアップする。
LlamaIndexはOpenAIの埋め込みAPIを使用している。
LangChainは動かないというトラブルがあるため、LlamaIndexを使用する。
まだLlamaIndexの実装を確認していない。
FAISSに謎のトラブルがあるため、現在はLlamaIndexを使用する。
LangChainが学習されたとき、どこかのレイヤーから抜き出されるかは分からない。
LlamaIndexのテキストに対してのベクトル化はローカルのJSONに格納されている。
次のステップはLlamaIndexの実装を確認して、コードを読み理解することです。
/nishio/kei.iconあなたはこの会話で何がどうなるとよいのでしょう?(GPT)
/nishio/human.icon従来の質問生成アルゴリズムと統合したのでテストする
/nishio/kei.iconありがとうございます。新しいアルゴリズムのテストに成功することを願っています。
/nishio/human.icon次にする作業を決めるために色々話します
/nishio/kei.icon具体的にどんな話をしたいですか?
/nishio/human.iconLlamaIndexとLangChainの実装を読んだんだけど、LangChainでFAISSを使った場合に謎のトラブルに巻き込まれてる先達がいるから、当面は今のLlamaIndexでの実装で進めようかなと思っている
/nishio/kei.icon「LlamaIndex」の実装について教えてください。具体的にどのような実装をしたのでしょうか?
/nishio/human.iconそっちの実装はまだあまり読んでない。特に問題なく動いて、ローカルのJSONにベクトルインデックスが置かれてるから、ライブラリが提供してない機能による実験も楽だろうなという感じ
/nishio/kei.icon「LlamaIndex」のローカルのJSONにベクトルインデックスが置かれた実装ですね。
/nishio/human.iconそう。LangChainの方はMax marginal relevanceの口がついてるのは期待が持てるけど抽象クラスを継承した先でそのメソッドが実装されてないやつがゴロゴロある感じなので、結局具体的なクラスを見なければどれならできるのかわからない状況。FAISSならできそうね
/nishio/kei.icon「LangChain」の抽象クラスを継承したクラスがMax marginal relevanceのメソッドを実装していない状況なので、具体的にどのクラスがMax marginal relevanceを実装しているのか把握しにくいですが、FAISSを使えばできる可能性がある、ということですか?
/nishio/human.iconそう。だけどもFAISSを使って動かなくて悩んでる人がいるから同じ道を進むのはやめとこうということ
/nishio/kei.icon「LangChain」のMax marginal relevanceの実装がFAISSを使うことで問題が解決する可能性があるということでしたが、具体的にどのような問題があったのでしょうか?
/nishio/human.iconHerokuにデプロイしたらバージョン揃えてるはずなのに動かなくなったということらしくて、関数の引数不一致で死んでたので、たぶん揃えたつもりで揃ってないんだろうなぁ、と思ってる
/nishio/kei.icon「LangChain」について、現在どのような問題があるのでしょうか?
/nishio/human.iconLangChainに限った話ではないけど日々更新されてるライブラリの上にプログラムを作るのは凍ってない湖の上を歩くようなもの。
/nishio/kei.iconプログラムを作るのに難しさを感じているようですね。作業が上手く進まない理由は何だと思いますか?
/nishio/human.icon地に足のついた理解をしてない人でも手軽に何かができるように分厚い抽象化レイヤーのクッションが引かれていると、座り心地はいいけど歩こうとするとこけるのである。チュートリアルに書いてあることをそのまま入力して動かして満足な人にはそれでいいんだけど、動き回りたい人には向かない。
/nishio/kei.icon「LangChain」は、どこで使っているライブラリの一部なのでしょうか?
/nishio/human.iconその話は置いといて、LlamaIndexについて質問して。
/nishio/kei.iconLlamaIndexに関する質問をするということでしたが、LlamaIndexについて詳細に説明してもらえますか?
/nishio/human.iconテキストの断片に対してベクトルを対応づけて、クエリーに対して適当なテキストを選択し、それをChatGPTに対するプロンプトに積み込むことで、ChatGPTが外部の資料を参照できるようにする方法
/nishio/kei.iconあなたは「LangChain」をどのように知ったのですか?
/nishio/human.icon👎LangChain
/nishio/kei.icon「LlamaIndex」の機能について詳しく教えてください。
/nishio/human.iconテキストのリストを渡すとそれに対して埋め込みベクトルを対応づけたVectorStoreができる。これはOpenAIの埋め込みAPIを叩いてるだけだと思う。クエリを発行すると、関連のあるドキュメントをベクトルに基づいてピックアップする。これは内積類似度だと思ってるけど確認してない。
/nishio/kei.icon「LlamaIndex」の「ベクトル」について詳しく教えてください。
/nishio/human.iconテキストをその意味を反映した1000次元ちょいのベクトルに対応づける技術がある。それによって作られたベクトルのこと。
/nishio/kei.icon「LlamaIndex」の埋め込みベクトルは、どのように作られるのですか?
/nishio/human.iconOpenAIのAPIでつくる
/nishio/kei.icon「OpenAI」のAPIで作られる埋め込みベクトルについて、APIはどのように機能しているのでしょうか?
/nishio/human.iconTransformerが学習された上でどこかのレイヤーから抜き出されるのかな?知らない
/nishio/kei.icon「LlamaIndex」のベクトルは、どこに格納されていますか?
/nishio/human.iconローカルのJSONに格納されてる。
/nishio/kei.icon「LlamaIndex」のローカルのJSONに格納されているものは、どのようなデータですか?