LangSmith: LLMとAIアプリケーションのテストにおけるベストな方法
Published on
もし、Language Learning Models (LLMs)の世界にいるなら、LangSmithのことは聞いたことがあるかもしれません。しかし、LLMアプリケーションを良いものから素晴らしいものに変える方法をご存知でしょうか?この記事は、LLMアプリケーションのデバッグ、テスト、評価、モニタリングに幅広い機能を提供するプラットフォームであるLangSmithの理解を一度に完全にするためのガイドです。
LLMsの分野で経験豊富な開発者でも初心者でも、LangSmithには誰にでも何かがあります。LangChainとのシームレスな統合から実世界の例が詰まった堅牢なクックブックまで、LangSmithはゲームチェンジャーです。さあ、深入りしていきましょう!
LangSmithとは?
LangSmithは、あなたのLLMアプリケーションをプロダクション品質に高めるための最先端のプラットフォームです。しかし、それはどういう意味でしょうか?単純に言えば、LangSmithは、どのLLMフレームワークに基づく賢明なエージェントとチェーンを構築し、テストし、展開するためのツールキットです。LangSmithは、オープンソースのLangChainフレームワークの背後にある同じ会社であるLangChainによって開発され、シームレスに統合されています。
LangSmithの主な特徴
-
デバッグとテスト:LangSmithは単なる構築だけでなく、正しい構築に関するものです。このプラットフォームは対話型チュートリアルとクイックスタートガイドを提供し、すぐに使い始めることができます。Python、TypeScript、その他の言語でコーディングしている場合でも、LangSmithが対応しています。
-
APIと環境の設定:構築を開始する前に、環境の設定を行う必要があります。LangSmithはAPIキーアクセスとシンプルな環境設定手順により、これを簡単にします。たとえば、
pip install -U langchain
のような簡単なコマンドを使用して、ターゲット環境の最新バージョンのLangChainをインストールできます。 -
トレースの能力:LangSmithの特筆すべき機能の1つは、コードのトレース能力です。これはデバッグやアプリケーションの改善に重要です。実行名をカスタマイズしたり、ネストされた呼び出しをトレースしたりすることができます。
LangSmithを選ぶ理由
-
使いやすさ:LangSmithは使いやすさを重視して設計されています。プラットフォームにはさまざまなチュートリアルやドキュメントが用意されており、始めるのに役立ちます。
-
汎用性:小規模なプロジェクトから大規模なアプリケーションまで、LangSmithは様々なニーズに対応できる柔軟性があります。
-
コミュニティのサポート:LangSmithには、常に助けを提供するために準備ができている開発者や専門家の強力なコミュニティがあります。コミュニティフォーラムに参加したり、自分自身の例をクックブックに貢献したりすることができます。
今はLangSmithが何であり、LLMと一緒に仕事をする人にとって価値のある資産である理解を持っているはずです。次のセクションでは、LangSmithのセットアップ方法とその機能を最大限に活用する方法について詳しく説明します。
LangSmithのセットアップ
LangSmithのセットアップは、使いやすいインターフェースと詳細な手順により、簡単に行うことができます。しかし、はじめる前に、アクセス用のAPIキーが必要です。心配しないでください、手に入れるのは非常に簡単です。
APIキーを取得する手順
-
LangSmithアカウントを作成する:LangSmithのウェブサイトに移動し、アカウントを作成してください。さまざまなサポートされているログイン方法を使用できます。
-
設定に移動する:アカウントが設定されたら、設定ページに移動します。ここにはAPIキーを作成するオプションがあります。
-
APIキーを生成する:「APIキーを生成する」ボタンをクリックすれば、APIキーが手に入ります。
環境の設定
APIキーを入手したら、次のステップはランタイム環境の設定です。LangSmithを使用して環境を簡単に設定することができます。以下はその方法です。
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_ENDPOINT=https://api.smith.langchain.com
export LANGCHAIN_API_KEY=<your-api-key>
<your-api-key>
を先ほど生成したAPIキーで置き換えてください。これらのコマンドは環境変数を設定し、LangSmithとの対話を容易にします。
LangSmith Cookbook: 実生活のLangSmithの例
LangSmith Cookbookは、コード断片のコンピレーションだけでなく、実践的な例の宝庫です。初心者でもLLMsの分野の専門家でも、Cookbookは一般的なパターンや実世界のユースケースに対する実践的な洞察を提供します。では、LangSmith Cookbookが提供する主な特徴について詳しく見ていきましょう。
LangSmith Cookbookとは?
LangSmith Cookbookは、LangSmithのマスタリングのための実践的なガイドとして機能するリポジトリです。標準のドキュメンテーションでカバーされている基礎を超えて、共通のパターンや実世界のシナリオに踏み込んでいます。これらのレシピは、LLMアプリケーションのデバッグ、評価、テスト、継続的な改善を可能にします。
あなたの貢献が重要です
Cookbookは、コミュニティ主導のリソースです。共有する洞察がある場合や特定のユースケースが見落とされていると感じる場合は、GitHubの問題を提起するか、LangChainの開発チームに連絡することをお勧めします。あなたの専門知識はこのコミュニティを形作り、Cookbookをダイナミックで進化し続けるリソースにしています。
Cookbookからの主な例
コードのトレース
-
LangChainを使用しないトレース (opens in a new tab): Python SDKの
@traceable
デコレータを使って、LangChainを使用せずにアプリケーションをトレースする方法を学びます。 -
REST API (opens in a new tab): LLMとチャットモデルの実行のログ記録、ネストされた実行などに対するREST APIの機能を理解します。
-
カスタマイズされた実行名 (opens in a new tab): LangSmithチェーン実行に特定の名前を割り当てることでUIの明瞭さを向上させます。これには、チェーン、ラムダ関数、およびエージェントの例が含まれます。
-
ツール内のネストした呼び出しのトレース (opens in a new tab): 1つのトレースですべてのネストしたツールサブコールを含める方法を学びます。
-
トレースリンクの表示 (opens in a new tab): トレースリンクをアプリケーションに追加することで開発を高速化します。これにより、実行フローを素早く表示したり、実行にフィードバックを追加したり、実行をデータセットに追加したりすることができます。
LangChain Hub
-
リトリーバルQAチェーン (opens in a new tab): ハブからのプロンプトを使用したRAGパイプラインの例。
-
プロンプトのバージョン管理 (opens in a new tab): 特定のプロンプトバージョンを選択することで、デプロイの安定性を確保します。
-
Runnable PromptTemplate (opens in a new tab): プレイグラウンドからハブにプロンプトを保存し、実行可能なチェーンに統合します。
テストと評価
-
Q&Aシステムの正確性 (opens in a new tab): データセット上でリトリーバル補完型Q&Aパイプラインをエンドツーエンドで評価します。
-
動的データを使用したQ&Aシステムの評価 (opens in a new tab): ラベルを逆参照して時間の経過とともに変化するデータを処理する評価器を使用します。
-
固定ソースを使用したRAG評価 (opens in a new tab): データセットに検索されたドキュメントを提供することで、RAGパイプラインの応答コンポーネントを評価します。
-
比較評価 (opens in a new tab): ラベル付きの順位付けスコアを使用してシステムバージョンを対比し、最適な出力を決定します。
-
PytestでのLangSmith (opens in a new tab): pytestでチェーンをベンチマーク化し、集計メトリクスが品質基準を満たすことをアサートします。
-
Pytestでの単体テスト (opens in a new tab): 個別の単体テストを作成し、アサーションをフィードバックとして記録します。
-
既存の実行の評価 (opens in a new tab): 既存の実行トレースにAIアシスタントのフィードバックと評価メトリクスを追加します。
-
テストプロジェクトの命名 (opens in a new tab):
run_on_dataset(..., project_name='my-project-name')
を使用してテストに手動で名前を付けます。 -
フィードバックと例のダウンロード方法 (opens in a new tab): 予測、評価結果、その他の情報をプログラム的にレポートに追加するためにエクスポートします。
TypeScript / JavaScriptによるテストの例
-
PythonでのJSチェーンの評価 (opens in a new tab): カスタムPython評価器を使用してJSチェーンを評価します。
-
アサーションをフィードバックとして記録 (opens in a new tab): CIテストのアサーションをLangSmithのフィードバックに変換します。
フィードバックの使用
-
Streamlitチャットアプリ (opens in a new tab): ユーザーフィードバックをキャプチャし、チャットアプリケーションのトレースを共有する最小限のチャットアプリ。
-
Next.jsチャットアプリ (opens in a new tab): Next.jsバージョンのチャットアプリ。
-
リアルタイム自動フィードバック (opens in a new tab): 非同期コールバックを使用して、すべての実行に対してフィードバックメトリクスを生成します。
-
リアルタイムRAGチャットボットの評価 (opens in a new tab): 検索されたドキュメントに対してRAGチャットボットの応答にホールシネーションがないか自動的にチェックします。
ファインチューニングのためのデータのエクスポート
-
OpenAIファインチューニング (opens in a new tab): LLM実行を一覧表示し、OpenAIのファインチューニング形式に変換します。
-
Lilacデータセットキュレーション (opens in a new tab): Lilacを使用して、ハードディスクから近似重複を検出し、PIIの検査を行ってLangSmithデータセットをさらに改善する。
探索的データ分析
-
LLM実行とフィードバックのエクスポート (opens in a new tab): LangSmith LLM実行データをさまざまな分析プラットフォーム用に抽出して解釈します。
-
Lilac (opens in a new tab): オープンソースの分析ツールLilacを使用して、データをより良くラベル付けし組織化します。
これらの例を探索することで、LangSmithの機能について包括的な理解を得ることができ、LLMアプリケーションを次のレベルに引き上げることができます。なぜ待つ必要がありますか?LangSmith Cookbookに飛び込んで、いくつかのコードマジックを作り始めましょう!
結論
LangSmithはただのツールではありません。LLMアプリケーションを次のレベルに引き上げる包括的なプラットフォームです。堅牢なトレース機能からLangChain Hubとのシームレスな統合まで、LangSmitはあなたの生活をより簡単にするために設計されたさまざまな機能を提供しています。そしてLangSmith Cookbookを忘れてはなりません。現実世界の例やハンズオンのコードスニペットの宝庫です。始めたばかりの方でも既存のアプリケーションを最適化したい方でも、LangSmithはあなたをサポートします。
よくある質問
LangSmithは何をするのですか?
LangSmithは、LLMアプリケーションの構築、テスト、評価、監視を支援するために設計されたプラットフォームです。トレース、APIアクセス、実世界の例が満載のクックブックなど、さまざまな機能を提供しています。
LangSmithとLangChainの違いは何ですか?
LangSmithは、LLMアプリケーションの構築と管理に特化していますが、LangChainは言語モデルの開発のためのフレームワークとして機能します。LangSmithはLangChainとシームレスに統合されており、LLMニーズに対する統一されたプラットフォームを提供しています。
LangSmithへのアクセス方法は?
LangSmithにアクセスするには、ウェブサイトでアカウントに登録する必要があります。登録後、プラットフォームと対話するためのAPIキーを生成することができます。