LLM LlamaIndex

  • file_metadataを使うことで、node.node.extra_infoにファイル名をもたせることができる。

  • リファレンスの情報はレスポンスのsource_nodesに含まれる

  • スキーマからSQLを生成している面白い事例

  • 以下のコード例によればGPT-4に検証させている様子(つまりGPT-4のAPIが使えない場合は使えない機能)

    • https://github.com/jerryjliu/llama_index/blob/main/examples/evaluation/TestNYC-Evaluation-Query.ipynb

  • devioの記事と疎密の意味が少し違いそう?要確認。

  • それぞれのソースとクエリを入力として、含まれるかどうかをYes,Noで答えさせることにより実現

  • 以下が挙げられている

    • 📝 Note-taking capabilities

    • 🌐 Web Page search

    • 🔎 @google search capabilities

  • LangChainと同じようなアイディアで、多分各インデックスの説明文とクエリの比較により判断するものかと

  • Fsspecをサポート

    • vector_store/doc_store内のオブジェクトを、fsspecがサポートするあらゆるオブジェクトストレージに永続化が可能に

    • S3, GCS, Azure blobその他が含まれる

  • S3KVStore

    • S3をネイティブなKey-Valueストアとしてサポートするように

    • S3DBKVStoreという名前でdoc_storeとindex_storeに対応

    • BaseKVStoreはこれでMongoDBS3が対応し、KVStoreで使えるようになるはず

    • あまりドキュメントには記載されていない

  • ResponseBuilderにAccumulatorが追加

    • ResponseMode.ACCUMULATEが増えている

    • 各ノードに均等にクエリし結果を連結するらしい。

    • ともなって設計的にBaseResponseBuilderが生えており、抽象化が進んだ

  • SubQuestionQueryEngineが追加

    • 複雑なクエリ(例:比較対照)を多くのサブクエリに分解して実行するクエリエンジン

  • 余り変更点は多くなさそう

  • PDFReaderのメタデータにpage_labelに加えて、file_nameが追加されている

  • vellum_aiとのインテグレーション

    • プロンプトをバージョンアップ/デプロイ/監視する

  • BaseCallbackHandlerにstart_traceとend_traceが追加

    • ともなってLlamaDebugHandlerにもいくつか修正が入っている

  • DynamoDBのストアが追加

    • index_store, doc_store, vectore_storeにも対応している

  • ResponseMode.COMPACT_ACCUMULATEが追加

    • COMPACTがチャンク再統合なのでより効率的に動作する

  • プロンプト関連の処理がPromptTypeというAPIで再構成されている

    • https://github.com/jerryjliu/llama_index/blob/v0.6.12/llama_index/prompts/prompt_type.py

  • Graphsignalとの連携

    • AIエージェントやLLMを搭載したアプリケーションに観測性を提供

  • SQLAutoVectorQueryEngineの追加

  • ChatEngineなる新しいエンジンが追加

    • 種類としてはSimpleChatEngine、ReActChatEngine、CondenseQuestionChatEngine

    • as_chat_engineでインスタンス化し、切り替えはChatModeで実施できる。デフォルトはCondenseQuestionChatEngine。

  • 内部的にglobal_service_contextができている。用途は不明。

  • PromptTypeにCONVERSATION、DECOMPOSE、CHOICE_SELECTが追加

  • 引数など使い方に影響のある名前変更あり

    • デフォルト定数に一部変更有。これに応じて引数が変わるので要注意。

      • NodeParser側

        • DEFAULT_CHUNK_OVERLAPが200から20に。これは要注意。

        • DEFAULT_CHUNK_SIZEはそのまま。

        • chunk_size_limitもchunck_sizeに変わっている

      • PromptHelper側

        • MAX_CHUNK_OVERLAPが消滅。max_chunk_overlapが非推奨となり代わりにchunk_overlap_ratioを使用するようになった影響

        • DEFAULT_CHUNK_OVERLAP_RATIOは0.1となっている

        • MAX_CHUNK_SIZEがDEFAULT_CONTEXT_WINDOWに名前変更

        • NUM_OUTPUTSがDEFAULT_NUM_OUTPUTSに名前変更

    • 各データストアのto_dictがなくなりto_jsonに変更

  • RetryQueryEngineが追加

    • 内部でFeedbackQueryTransformationを使う

    • FeedbackQueryTransformationが追加

      • Evaluatorの結果を使ってクエリにフィードバックが可能に。これがEvaluatorを抽象型にした背景っぽい。

    • BaseEvaluatorという新しい抽象型で評価系が実装

      • もともとQueryResponseEvaluatorがあったがEvaluatorが抽象型の親クラスを持つように変更されている

  • PromptHelperの修正

    • compact_text_chunksがrepackという名前に代わっている

    • truncateという複数ノードのテキストをつなげる処理が追加

    • chunk_overlap_ratioが指定できるように

  • PsychicReaderが追加

    • Psychicは多くのSaaSアプリのデータを1つのユニバーサルAPIで同期させることができるプラットフォーム

  • SubQuestionQueryEngineのパッチ

  • Nodeの削除系操作について見直しが入っている

  • RefDocInfoにAPIがいくつか追加

  • Vector StoreにMyScaleVectorStoreとSupabaseVectorStoreが追加

  • FunctionTool、BaseToolSpecの具象化クラスNotionToolSpec、TestToolSpecが追加。用途はあまりわかってない

  • 単純に比較したいのであれば、VectorStoreIndexでStorageContextのVectorStoreにFaissVectorStoreを指定する方法もありかも

  • ResponseSynthesizerがきちんと設計されたのはデカい。

Last updated