LangChainとLangGraphによるRAG・AIエージェント[実践]入門
https://scrapbox.io/files/67317ec9bdc120dfaa10ed28.png
https://gihyo.jp/book/2024/978-4-297-14530-9
dump
強化学習や画像処理周りを学部と修士で見てきたのでなんとなく用語はわかりつつも、RAGみたいなアプリケーション層についてかなり不明だったので読み始めている
なんとなくのゴールとしては
Scrapbox に対する Notion AIのようなもの
リポジトリから開発の経緯がわかるようにするもの ソフトウェア考古工学をやりたい
RAGに関しては2023年4月くらいにちょっとさわった
https://note.com/yooya1939/n/n80840f8f2f38
llama-index 奮闘ログ
正確な情報を出せなかったりしたのは固有表現抽出とかが難しいからと踏んでいたような気がする?
indexの作り方が多くて都度思い出したりするのが難しかったのを思い出した
1章
2章
セットアップや超基本的な用語の導入
Function calling ってやつが何をやってるのかようやくわかった
OpenInterpreter/open-interpreter
Structured Outputs ってやつがJSON Schema対応してるの良さそう
ここまで読んだ感じ基本的にはOpenAIを前提にしていてGeminiとかは使わない感じっぽいな
3章
プロンプトエンジニアリングの話
prompt injection に対する防衛術に関しての話もあれば嬉しかったな
4章
LangChainのコンポーネントの話
Output ParserにPydantic使われてるの良さそう
LangChain Expression Language なるほど?
LLMアプリケーションは連鎖的につなぎたいことが多い
一般的なWebアプリケーションがフォームへの書き込みがメインアクションなのに比べてみたいな感じなのかな
動的に chain を繋いだりするのかな
chain を定義して invoke するのは TensorFlow2 以前っぽい
ビット和演算子が出てきて驚き最大
↓みたいな
code:python
chain = ( object | prompt | model | parse)
演算子オーバーロードなるほど https://qiita.com/MichaelHashimoto/items/75f05394584e5b82bc18
RAG の話
LLM全体として遅いイメージがあるのでベクタDBとか外部装置が増えてくるとすごい時間がかかりそうな気がしてきた
UIとして丸々を検索しています…みたいなの出したくなりそう
「入力→近い文書を検索」とあるけどどうするんだろう
Retriever がいい感じに
LLMの token size を上回る量のコンテクストが発生したらどうするんだろう
Chromaしらなかった
5章
LangChain Expression Languageを深堀り
おもしろ | に関する話もここで
Runnable という単位でフローを組めるみたいで並列もできるようになっているのすごい
6章
さまざまなRAGの工夫の話
検索クエリの生成 HyDE: Hypothetical Document Embeddings
仮説を生成してクエリする
実際にがちゃがちゃさわって困ったら見返すところだ
7章
LangSmith の話
懐かしのMLOps 的な感じ?
8章
AIエージェントへの導入
MRKL Systems / ReAct: Reasoning and Acting
言語処理から「計画能力」「外部実行能力」などを経ていわゆるAIエージェントとしての研究が進んでいるわけか
2020年くらいはWorld Modelsとか、深層強化学習的なやつがこの辺をやっていくと思っていたけど全然違う方法でのアプローチだった
エージェントにいくつかロールをもたせてタスクを実行するマルチエージェントが主流
AIエージェントが介入しやすい形を設計するのが重要そうだなあfunwarioisii.icon
9章
AIエージェントをLangGraphで実装する
色々できそうだけどQAがハンズオンになるモチベーションがよくわからなかった。これはLangChainというかRAGで解決できないのか?
LangGraphを使ってみるという感じか
10章
AIエージェントをLangGraphで実装する
要件定義書作るマン
11章 / 12章
6章のエージェント版とその実装
ざ〜っくり全部読んだ感想
自分が思っていた以上に進化していた
特にAIエージェントへの発展が驚き
数式が一切出てこなくって自然言語すごい
いわゆる機械学習からはもう分科されてそう