LangChain とは?
LangChain は、大規模言語モデル (LLM) に基づいてアプリケーションを構築するためのオープンソースフレームワークです。LLM は、大量のデータで事前にトレーニングされた大規模な深層学習モデルで、ユーザーのクエリに対する応答を生成できます。たとえば、質問に答えたり、テキストベースのプロンプトから画像を作成したりします。LangChain は、モデルが生成する情報のカスタマイズ、正確性、関連性を向上させるためのツールと抽象化を提供します。たとえば、開発者は LangChain コンポーネントを使用して新しいプロンプトチェーンを構築したり、既存のテンプレートをカスタマイズしたりできます。LangChain には、LLM が再トレーニングなしで新しいデータセットにアクセスできるようにするコンポーネントも含まれています。
LangChain はなぜ重要なのでしょうか?
LLM は、一般的なコンテキストでのプロンプトへの対応には優れていますが、トレーニングを受けたことのない特定の分野では苦労します。プロンプトは、ユーザーが LLM からの応答を求めるために使用するクエリです。たとえば、LLM は見積もりを提供することで、コンピューターのコストに関する回答を提供できます。ただし、会社が販売している特定のコンピューターモデルの価格を表示することはできません。
そのためには、機械学習エンジニアは LLM を組織の内部データソースと統合し、プロンプトエンジニアリングを適用する必要があります。これは、データサイエンティストが特定の構造とコンテキストを持つ生成モデルへの入力を絞り込む手法です。
LangChain は、このようなデータ応答性の高いアプリケーションを開発するための中間ステップを合理化し、プロンプトエンジニアリングをより効率的にします。チャットボット、質問応答、コンテンツ生成、サマライザーなど、言語モデルを利用したさまざまなアプリケーションをより簡単に開発できるように設計されています。
以下のセクションでは、LangChain の利点について説明します。
言語モデルの再利用
LangChain を使用すると、組織は再トレーニングや微調整を行うことなく、LLM をドメイン固有のアプリケーションに転用できます。開発チームは、独自の情報を参照してモデルの応答を強化する複雑なアプリケーションを構築できます。たとえば、LangChain を使用して、保存されている内部ドキュメントからデータを読み取り、それらを会話形式の応答に要約するアプリケーションを構築できます。プロンプト表示中に言語モデルに新しい情報を導入する検索拡張生成 (RAG) ワークフローを作成できます。RAG のようなコンテキスト認識型ワークフローを実装すると、モデルのハルシネーションが減り、応答精度が向上します。
AI 開発を簡素化
LangChain は、データソースの統合とプロンプトの調整の複雑さを抽象化することで、人工知能 (AI) の開発を簡素化します。開発者はシーケンスをカスタマイズして複雑なアプリケーションを迅速に構築できます。ビジネスロジックをプログラミングする代わりに、ソフトウェアチームは LangChain が提供するテンプレートとライブラリを変更して開発時間を短縮できます。
デベロッパーサポート
LangChain は、言語モデルを外部データソースに接続するツールを AI 開発者に提供します。オープンソースであり、活発なコミュニティによってサポートされています。組織は LangChain を無料で使用でき、フレームワークに精通した他の開発者からのサポートを受けることができます。
LangChain はどのように機能しますか?
LangChain を使用すると、開発者は望ましい結果を生み出すために必要なステップを指定することで、言語モデルを特定のビジネスコンテキストに柔軟に適応させることができます。
チェーン
チェーンは、コンテキストに応じたレスポンスを提供するための LangChain のさまざまな AI コンポーネントを構成する基本原則です。チェーンとは、ユーザーのクエリからモデルの出力までの一連の自動アクションです。たとえば、開発者は以下の目的でチェーンを使用できます。
- さまざまなデータソースへの接続。
- ユニークなコンテンツを生成します。
- 複数の言語を翻訳します。
- ユーザークエリへの回答。
リンク集
チェーンはリンクでできています。開発者がつなぎ合わせて連鎖シーケンスを形成する各アクションは、リンクと呼ばれます。リンクを使用すると、開発者は複雑なタスクを複数の小さなタスクに分割できます。リンクの例には以下が含まれます。
- ユーザー入力をフォーマットします。
- LLM にクエリを送信します。
- クラウドストレージからデータを取得しています。
- ある言語から別の言語への翻訳。
LangChain フレームワークでは、リンクはユーザーからの入力を受け取り、それを LangChain ライブラリに渡して処理します。LangChain では、リンクを並べ替えてさまざまな AI ワークフローを作成することもできます。
概要
LangChain を使用するには、開発者は以下のコマンドを使用してフレームワークを Python にインストールします。
pip install langchain
次に、開発者はチェーンビルディングブロックまたは LangChain 表現言語 (LCEL) を使用して、簡単なプログラミングコマンドでチェーンを構成します。chain () 関数はリンクの引数をライブラリに渡します。execute () コマンドは結果を取得します。開発者は現在のリンク結果を次のリンクに渡すか、最終出力として返すことができます。
以下は、製品の詳細を複数の言語で返すチャットボットチェーン関数の例です。
chain([
retrieve_data_from_product_database().
send_data_to_language_model().
format_output_in_a_list().
translate_output_in_target_language()
])
LangChain のコアコンポーネントにはどのようなものがありますか?
LangChain を使用すると、ソフトウェアチームは次のモジュールでコンテキスト対応言語モデルシステムを構築できます。
LLM インターフェイス
LangChain は、開発者がコードから LLM に接続してクエリを実行できる API を提供します。開発者は、複雑なコードを記述する代わりに簡単な API コールを行うことで、GPT、Bard、PaLM などのパブリックモデルや独自モデルと LangChain でインターフェースできます。
プロンプトテンプレート
プロンプトテンプレートは、開発者が AI モデルのクエリを一貫して正確にフォーマットするために使用する事前に構築された構造です。開発者は、チャットボットアプリケーションや少量学習用のプロンプトテンプレートを作成したり、言語モデルに特定の指示を提供したりできます。さらに、さまざまなアプリケーションや言語モデルでテンプレートを再利用できます。
エージェント
開発者は、LangChain が提供するツールとライブラリを使用して、複雑なアプリケーション向けに既存のチェーンを構成およびカスタマイズします。エージェントは、クエリに応じて最適なシーケンスを決定するように言語モデルに求める特別なチェーンです。エージェントを使用する場合、開発者はユーザーの入力、使用可能なツール、および希望する結果を得るための中間ステップを提供します。次に、言語モデルは、アプリケーションが実行できる実行可能な一連のアクションを返します。
検索モジュール
LangChain を使用すると、言語モデルの応答を絞り込む情報を変換、保存、検索、取得するための多数のツールを備えた RAG システムの設計が可能になります。開発者は、単語を埋め込んで情報のセマンティック表現を作成し、ローカルまたはクラウドベクトルデータベースに保存できます。
メモリ
会話型言語モデルアプリケーションの中には、過去のやりとりから想起された情報を使って応答を改善するものがあります。LangChain を使用すると、開発者はシステムにメモリ機能を含めることができます。以下をサポートしています。
- 最新の会話を思い出すシンプルなメモリシステム。
- 履歴メッセージを分析して最も関連性の高い結果を返す複雑なメモリ構造。
コールバック
コールバックは、開発者が LangChain 操作で特定のイベントを記録、監視、ストリーミングするためにアプリケーションに配置するコードです。たとえば、開発者はチェーンが最初に呼び出された日時や、コールバックで発生したエラーを追跡できます。
AWS はお客様の LangChain 要件にどのように対応できますか?
Amazon Bedrock、Amazon Kendra、Amazon SageMaker JumpStart、LangChain、および LLM を使用すると、企業データに基づいて高精度の生成系人工知能 (生成系 AI) アプリケーションを構築できます。LangChain は、これらのコンポーネントをつなぐインターフェースです。
- Amazon Bedrock は、組織が生成系 AI アプリケーションを構築してデプロイできるマネージドサービスです。Amazon Bedrock を使用して世代別モデルをセットアップし、LangChain からアクセスすることができます。
- Amazon Kendra は、組織が内部検索を実行するのを支援する機械学習 (ML) を活用したサービスです。Amazon Kendra を 独自のデータベースからのデータを使用して言語モデルの出力を調整できる、LangChain に接続できます。
- Amazon SageMaker Jumpstart は、開発者が迅速にデプロイできる、事前に構築されたアルゴリズムと基本モデルを提供する ML ハブです。SageMaker ジャンプスタートで基本モデルをホストし、LangChain からプロンプトを出すことができます。
今すぐアカウントを作成して、AWS で LangChain の使用を開始しましょう。