見出し画像

書評:ChatGPT/LangChainによるチャットシステム構築[実践]入門

今回読んだ書籍

感想

LLMアプリケーションを開発する上で必要な知識を基礎から教えてくれます。

ChatGPTの基本操作から、OpenAIのAPI利用、LangChainを使ったチャットボット開発までが、コード例を交えて詳しく説明されています。

また内容はコンパクトで、数時間で完了できるようUdemyの講座のように設計されています。

ChatGPTを未経験の人にも、LLMアプリケーション開発の入門として最適な気がします。

しかし、9月時点の情報を元にしており、それ以降の大きなアップデートによって一部の情報が既に古くなっていることに注意が必要です。

この書籍の発売は10月なので、大体9月くらいまでの情報となっていますが、11月のOpenAI DevDay、12月のLangChain v0.1.0などの大きなアップデートによって、コードは動かない部分もあると思います。

ただ、LangChainは特に変化が激しいため、今後もこのように、どの書籍の情報もすぐに古くなっていくものと思われます。(なんなら変化が激しすぎて、実質的にWebサイトなどでも追従はできないかもしれません。)

個人的には、動かないときにソースコードに潜って調べる、import後に意図通り動くようにカスタマイズする、といったことが重要だと思っています。

そのため、この書籍を読みながら、ソースコードを読みながら動くように直していくのがよいと思います。読み終わる頃には、LangChainの公式ドキュメントやソースコードなどの最新情報から自ら情報収集し、LLMアプリケーション開発を進められるようになると思います。

LangChainの状況は、例えるなら「超高速大縄跳び」です。

一度頑張って入ってしまうことが重要だと思います。逆に「最新情報じゃないから使えない」「落ち着くのを待ってから始めよう」と思っていると、永遠に入れない気がします。

そして縄跳びに入ってしまった後は、跳び続けることになります。最新情報を収集して動かすを繰り返す必要があります。これはこれで大変ですが、一緒に跳び続けましょう笑

こんな人におすすめ

感想でも触れた通り、「ChatGPTをあまり使ったことがないが、LLMアプリケーション開発を始めたい人」です。

また書籍というよりLLMアプリケーション開発自体ですが、個人的には「ソフト開発初心者」におすすめしたいです。

私自身ソフトウェア系ですが、新卒から先行開発の職種で、プロダクションには関わっていません。そのため、ソフトウェア開発の知識・経験が不足しています。「勉強しなきゃな」とは思っていますが、先行開発では最新技術とプロトタイピングの方が重要で、ソフトウェア開発の知識はその次になってしまっていました。そんなときにChatGPTが登場し、LangChainをはじめLLMアプリケーション開発も盛り上がり始めました。

ソフトウェア開発初心者にとってLLMアプリケーション開発のいいところは、なにより「最終的には自然言語である」ところです。

そのため、ソースコードもわかりやすいですし、なにより「自然言語でのコミュニケーション」は大学の研究などを通して、また人生を通してある程度経験があります。そのため、ちょっとプログラミングができれば、価値のあるものを作り始めることができます。基礎を長く勉強する必要がないのです。

他にも「新しい分野で全員のスタートラインが近い」ところや「単純におもしろい」ところがあります。

おもしろさは個人差があると思いますが、もともと人間とシステム(ロボットやコンピュータなどソフト・ハード問わず)のインタラクションに興味があった自分にはすごく刺さりました。

「全員のスタートラインが”近い”」と表現したのは、もちろん自然言語処理に関わっていた人は有利ですし、論理的な文章を書けない人は不利だからです。それでいうと私は不利側ですが、LLMアプリケーション開発によって鍛えられている感覚や、言語的な能力を鍛えることがLLMアプリケーション開発なら成果に直結しそうな感覚があり、楽しめています。

一応「こんな人におすすめ」をまとめておきます。

おすすめしたい人

  • ChatGPTをあまり使ったことがないが、LLMアプリケーション開発を始めたい人

  • ソフト開発初心者

LLMアプリケーション開発のおすすめ理由

  • 最終的には自然言語である

  • 新しい分野で全員のスタートラインが近い

  • 単純におもしろい

個人的に気になった部分

LangChainの新しい機能について学べたことは価値がありましたが、個人的に特に気になった部分は、「Temperatureの推奨値」と「RAGの評価」の部分です。

Temperatureの推奨値

LLMでは、Temperature(温度)パラメータによって、応答の多様性?を制御できます。

私のプロジェクトでは、RAGを用いて正確な情報を伝えるためTemperatureを0にしていましたが、この書籍にあったユースケースと説明を読むと、もう少し上げてみてもいいかも、と思いました。

私が開発しているチャットボットでは、ユーザーに入力にある表現をオウム返しのような形でそのまま使ってしまい、自然さが損なわれるようなことがありました。

この書籍を読んで、Temperatureを0にしていることで「対話の流れ」みたいなものに逆らいづらくなっているということなのかも?と感じました。

人間どうしの対話では、お互いに能動的に関わり、お互いの個性を反映した「流れ」を作ることが、盛り上がるよい対話のために重要な気がします。チャットボットにおけるTemperatureは、その能動性に関わるのかもしれないなと思いました。

RAGの評価

RAGの評価はかなり難しく気になるところです。RAGの評価については、書籍では詳細には触れていませんが、参考になる記事の紹介がありました。

Patterns for Building LLM-based Systems & Products

最後に

読む前は「出版までのリードタイムはあるし、情報はすぐ古くなるし、LLMアプリケーション開発の勉強で書籍は個人的にはいらないかな、これから始める人もコード動かないとつらいよな」と思っていました。

しかし読んでみると、これから始める人にはすごくよいなと思いました。また個人的にも、LangChainの知らなかった情報が知れたり、読むことがトリガーとなって思考が活性化されたりしたので、書籍も必要だなと思いました。「LLMアプリケーション開発がソフトウェア開発初心者におすすめな理由」も整理できたのでよかったです。

参考


この記事が気に入ったらサポートをしてみませんか?