13章デザインパターンとシステムアーキテクチャ
本書ではこれまで、LLMをさまざまなタスクに適応させるための技術、たとえばコンテキスト内学習、ファインチューニング、RAG、外部ツールの利用などを紹介してきました。これらの技術は、ユースケースの性能要件を満たすために役立ちますが、LLMを用いたアプリケーションを本番環境にデプロイするには、コスト、レイテンシ、信頼性など、他にも多くの要件を満たす必要があります。これらの目標を達成するためには、多種多様なソフトウェア基盤や、それぞれに特化したコンポーネントが必要となります。
この章では、実際に役立つアプリケーションを構成するような、本番レベルのLLMを用いたシステムを構築するための手法について説明します。まずは、複数のLLMを活用してコストと性能のバランスを取る、マルチLLMアーキテクチャ(Multi-LLM Architecture)について掘り下げます。次に、DSPyのようなソフトウェアフレームワークを活用し、LLMアプリケーション開発を従来のソフトウェア開発におけるプログラミングパラダイムと統合する方法についても紹介します。
アプリケーションを構築するうえで、LLMを単なる独立したコンポーネントとして扱うだけでは、本番運用に適したシステムにはなりません。信頼性が高く、高速で、かつコスト効率に優れたLLMを用いたシステムを構築するには、複数のソフトウェアとモデルから構成されるシステムとしてLLMを扱う必要があります。これらのコンポーネントの組み合わせ方や接続方法は、システムアーキテクチャ(System Architecture)と呼ばれます。
まずは、複数のLLMを組み合わせてタスクを解くマルチLLMアーキテクチャの解説から始めましょう。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access