LangSmithの使い方:完全なチュートリアル

この記事では、LangChainチームのLLM開発プラットフォーム、「Langsmith」の使い方を教えます!

Anakin AIを無料で利用開始

LangSmithの使い方:完全なチュートリアル

Start for free
目次

https://anakin.ai/apps/keyword

または

https://anakin.ai/blog/keyword

https://anakin.ai/ja-jp/apps/keyword

https://anakin.ai/ja-jp/blog/keyword

に変換してください。 以下はHTMLのコードです:

LangSmithは、開発者が大規模言語モデル(LLM)アプリケーションを構築、テスト、最適化するためのパワフルなプラットフォームです。デバッグ、評価、LLMを活用したシステムのモニタリングのためのツールセットを提供します。この包括的なガイドでは、LangSmithを効果的に使用する方法について詳しく説明し、セットアップから高度な機能までをカバーします。

💡
制限なしでClaude 3.5 Sonnetを試してみたいですか?

すべてのAIモデルにアクセスできるオールインワン価格タグのAIプラットフォームをお探しですか?

ならば、Anakin AIを見逃すわけにはいかないですよ!

Anakin AIは、ノーコードアプリビルダーを使った強力なAIアプリを作成するためのオールインワンプラットフォームで、Llama 3ClaudeGPT-4Uncensored LLMsStable Diffusionを使って、数分で夢のAIアプリを構築できます...

あなたの夢のAIアプリを数分で、週ではなく作りましょう!

LangSmithとは?

LangSmithは、大規模言語モデル(LLM)アプリケーションの開発、テスト、展開を効率化するために設計された包括的なプラットフォームです。LLMアプリケーションのライフサイクルの各段階で開発者をサポートするために、ツールセットや機能を提供します。

LangSmithの主な特徴は次のとおりです:

統合DevOpsプラットフォーム:LangSmithは、LLMアプリケーションの開発、共同作業、テスト、展開、モニタリングのための中央集約型環境を提供します。

フレームワークに依存しない:LangSmithはLangChainとシームレスに統合しますが、どのLLMフレームワークとも独立して使用することができます。

トレーシングとデバッグ

  • 開発者がLLMアプリケーションの実行をログとビジュアライズすることが可能
  • モデルの入力、出力、中間ステップについて詳細な洞察を提供

テストと評価

  • テスト用のデータセットの作成と管理をサポート
  • モデルのパフォーマンスを評価するための組込みおよびカスタムの評価ツールを提供
  • システマチックなプロンプトの最適化を可能にする

モニタリング

  • 遅延やコストなどのシステムレベルのパフォーマンスメトリックを追跡
  • 本番アプリケーションのリアルタイムモニタリングを可能にする

共同作業ツール

  • LLMプロジェクトでのチームコラボレーションを支援
  • プロンプトとモデルのバージョン管理を提供

統合機能

  • 既存のLLMアプリケーションとの簡単な統合
  • PythonやTypeScriptなど、さまざまなプログラミング言語をサポート

これらの機能により、LangSmithはプロトタイプと本番環境のギャップを埋め、開発者が自信を持って高品質のLLMアプリケーションを構築、テスト、展開することを目指しています。

LangSmithのセットアップ

LangSmithの機能を使用する前に、環境のセットアップとプラットフォームへの接続を行う必要があります。

LangSmithアカウントの作成

LangSmithを始めるには:

  1. LangSmithのウェブサイト(https://smith.langchain.com/)を訪問します
  2. GitHubアカウント、Discordアカウント、またはメールアドレスを使用してサインアップします
  3. メールを受信トレイで受け取ったリンクをクリックしてアカウントを確認します

LangSmithのAPIキーの取得

アカウントの設定が完了したら:

  1. LangSmithアカウントにログインします
  2. 設定ページに移動します
  3. "APIキーの作成"をクリックします
  4. 生成されたAPIキーをコピーして安全に保存します

LangSmithの環境の設定

プロジェクトでLangSmithを使用するために、環境変数を設定します:

export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_ENDPOINT="https://api.smith.langchain.com"
export LANGCHAIN_API_KEY="your-api-key-here"
export LANGCHAIN_PROJECT="your-project-name"  # Optional, defaults to "default"

"your-api-key-here"を実際のAPIキーに置き換え、お好みのプロジェクト名を設定してください。

LangSmithをコードに統合する

環境が設定されたので、LangSmithをLLMアプリケーションに統合する方法を探ってみましょう。

基本的なLangSmithトレーシング

LangSmithのトレーシング機能を使用すると、LLMアプリケーションの実行をログとして記録し、可視化することができます。これは、アプリケーションの振る舞いを理解し、潜在的な問題を特定するために重要です。以下に簡単な例を示します:

from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain

# 言語モデルの初期化
llm = OpenAI(temperature=0.7)

# プロンプトテンプレートの作成
prompt = PromptTemplate(
    input_variables=["topic"],
    template="{topic}についての短い段落を書いてください。"
)

# LLMChainの作成
chain = LLMChain(llm=llm, prompt=prompt)

# チェーンの実行
result = chain.run("人工知能")

print(result)

環境変数が設定されている場合、このコードは自動的に実行をLangSmithに記録します。その後、LangSmithのUIでトレースを表示することができます。トレースは、LLMチェーンの正確な入力、出力、および中間ステップを表示します。

LangSmithのトレース可能デコレータの使用

トレースをより詳細に制御するには、@traceableデコレータを使用することができます。これにより、特定の関数をトレースし、LangSmithに記録する情報をカスタマイズすることができます。

from langsmith import traceable

@traceable
def generate_text(topic: str) -> str:
    llm = OpenAI(temperature=0.7)
    prompt = f"{topic}についての短い段落を書いてください。"
    return llm(prompt)

result = generate_text("機械学習")
print(result)

このアプローチは、特定のアプリケーションの一部のみをトレースする場合や、標準的なLangChainコンポーネントではないカスタム関数を扱う場合に特に便利です。

LangSmithでのデータセットの作成と管理

データセットは、LLMアプリケーションのテストと評価に不可欠です。LangSmithでは、効果的なデータセットの作成と管理のためのツールを提供しています。

LangSmithでのデータセットの作成

次のようにプログラムでデータセットを作成する方法です:

from langsmith import Client

client = Client()

dataset = client.create_dataset(
    "AI Topics",
    description="テスト用のAI関連トピックのコレクション"
)

examples = [
    {"input": {"topic": "ニューラルネットワーク"}, "output": "ニューラルネットワークの簡単な説明。"},
    {"input": {"topic": "自然言語処理"}, "output": "自然言語処理の手法の概要。"},
    {"input": {"topic": "コンピュータビジョン"}, "output": "コンピュータビジョンの主要なコンセプト。"}
]

client.create_examples(examples, dataset_id=dataset.id)

このコードは、名前が「AI Topics」のデータセットを作成し、例として入出力のパターンを追加します。これらの例は、LLMアプリケーションのテストとパフォーマンス評価に使用することができます。

LangSmithのデータセットを評価に使用する

データセットを使用してLLMアプリケーションを評価する方法:

from langsmith import RunEvalConfig, run_on_dataset

eval_config = RunEvalConfig(
    evaluators=[
        "criteria",
        "embedding_distance",
    ]
)

results = run_on_dataset(
    dataset_name="AI Topics",
    llm_or_chain_factory=generate_text,
    evaluation=eval_config,
)

print(results.metrics)

このコードは、generate_text関数を「AI Topics」データセット上で実行し、定義済みの基準や埋め込み距離のメトリックを使用して結果を評価します。結果のメトリックは、アプリケーションのパフォーマンスの定量的な指標となります。

LangSmithでのデバッグ

LangSmithは、LLMアプリケーションの理解と改善をサポートするための強力なデバッグツールを提供しています。

LangSmithでのトレースの可視化

トレースを有効にしてLLMアプリケーションを実行した後、LangSmithのUIで実行を可視化できます:

  1. LangSmithアカウントにログインします
  2. "トレース"セクションに移動します
  3. プロジェクトと分析したい具体的な実行を選択します
  4. 詳細な実行グラフ、入力、出力、およびメタデータを探索します

この可視化により、LLMアプリケーションが情報をどのように処理しているかを正確に把握できるため、ボトルネックや予期しない動作の特定に役立ちます。

LangSmithのプレイグラウンドをデバッグに使用する

LangSmithのプレイグラウンド機能を使用すると、プロンプトのデバッグと最適化をインタラクティブに行うことができます:

  1. LangSmithのUIで、「プレイグラウンド」セクションに移動します
  2. 既存のプロンプトテンプレートを選択または作成します
  3. サンプル入力を入力してプロンプトを実行します
  4. 出力を分析し、必要に応じてプロンプトを調整します
  5. 最適化されたプロンプトを保存およびバージョン管理します

プレイグラウンドは、プロンプトの設計を反復させ、小さな変更がLLMの出力にどのように影響するかをテストするときに特に便利です。

LangSmithの高度な機能

LLMアプリケーションを改善するためのLangSmithの高度な機能について見てみましょう。

LangSmithでのカスタム評価ツールの実装

LangSmithには組み込みの評価ツールが用意されていますが、特定のニーズに応じてカスタム評価ツールを作成することもできます:

from langsmith import RunEvalConfig

def custom_evaluator(run, example):
    # カスタムの評価ロジックをここに実装します
    score = # ... runとexampleに基づいてスコアを計算
    return {"custom_metric": score}

eval_config = RunEvalConfig(
    evaluators=[
        "criteria",
        custom_evaluator,
    ]
)

results = run_on_dataset(
    dataset_name="AI Topics",
    llm_or_chain_factory=generate_text,
    evaluation=eval_config,
)

これにより、ドメイン固有の評価基準をLangSmithワークフローに組み込むことができます。たとえば、特定のキーワードのチェック、出力の感情分析、生成されたテキストに特定の事実が含まれていることの確認などを行うカスタム評価ロジックを作成することができます。

LangSmithでの継続的なモニタリング

LangSmithを使用すると、本番のLLMアプリケーションを継続的にモニタリングできます:

  1. トレースを本番コードに実装します(前述の方法を使用)
  2. LangSmithのUIでアラートを設定します:
  • "モニタリング"セクションに移動します
  • エラーレート、レイテンシなどのメトリックに基づいて新しいアラートルールを作成
  1. アラートの通知チャンネル(メール、Slackなど)を設定

この継続的なモニタリングにより、本番のLLMアプリケーションの問題を素早く特定し、対応することができます。これにより、LLMアプリケーションの高可用性とパフォーマンスが確保されます。

LangSmithでのプロンプトの最適化

LangSmithのプロンプト最適化機能を使用すると、プロンプトを反復的に改善できます:

  1. 入力と期待される出力のデータセットを作成します
  2. プレイグラウンドを使用して複数のプロンプトバージョンを実装します
  3. データセットを使用して、各プロンプトバージョンを評価実行します
  4. 結果を分析して、最もパフォーマンスの良いプロンプトを特定します
  5. 得られた洞察に基づいて反復的に改善します

このプロセスにより、プロンプトを体系的に改善し、LLMアプリケーションのパフォーマンスを向上させ、より一貫性のある出力を得ることができます。

LangSmithのベストプラクティス

LangSmithを最大限に活用するために、次のベストプラクティスを考慮してください:

LangSmithでのプロジェクトの整理

  • 異なるアプリケーションやコンポーネントごとに個別のプロジェクトを作成します
  • トレース、データセット、評価の一貫した命名規則を使用します
  • タグとメタデータを活用して、データを効果的にカテゴリ化およびフィルタリングします

LangSmithでの作業を整理することで、複雑なLLMアプリケーションをより簡単に管理し、チームメンバーとの協力を容易にすることができます。

LangSmithでの効果的なデータセット管理

  • 定期的にデータセットを更新し、新しいユースケースをカバーします
  • データセットには、実世界の例とエッジケースの両方を使用します
  • データセットのバージョン管理を行い、時間の経過とともに変更を追跡します

適切に管理されたデータセットは、LLMアプリケーションの効果的な評価と継続的改善に不可欠です。

LangSmithのパフォーマンスの最適化

  • 大規模な評価にはバッチ処理を使用します
  • 冗長なAPI呼び出しを減らすためにキャッシュメカニズムを実装します
  • 高スループットなシナリオでのパフォーマンスの向上のために、LangSmithの非同期APIを活用します

これらの最適化により、LangSmithのワークフローの効率が大幅に向上し、大規模なデータセットや複雑なLLMアプリケーションを扱う場合に特に優れたパフォーマンスを発揮します。

LangSmithの一般的な問題のトラブルシューティング

LangSmithを使用する際によく発生する問題とその解決方法について説明します:

LangSmithでの認証の問題の解決

認証に関する問題が発生した場合:

  1. 環境変数でAPIキーが正しく設定されているか確認します
  2. アカウントに必要な権限があることを確認します
  3. APIキーが期限切れになっていないか、または取り消されていないか確認します

LangSmithでのレート制限の処理

レート制限を回避するためには:

  1. APIリクエストで指数バックオフを実装します
  2. 大規模な操作にはバッチ処理を使用します
  3. 必要に応じてレート制限を増やすためにLangSmithサポートに連絡します

LangSmithでのトレースの問題のデバッグ

トレースがLangSmithのUIに表示されない場合:

  1. LANGCHAIN_TRACING_V2trueに設定されていることを確認します
  2. コードが適切に@traceableでデコレートされているか、またはLangChainのトレースが有効になっているクラスを使用していることを確認します
  3. ネットワーク接続とファイアウォールの設定を確認します

まとめ

LangSmithは、LLMアプリケーションの開発プロセスを大幅に向上させることができる強力なプラットフォームです。トレーシング、評価、モニタリングの機能を活用することで、より堅牢で効率的、効果的なAIパワードシステムを構築することができます。LangSmithを継続的に使用し、さまざまな機能を試し、開発ワークフローに深く組み込むことで、その全ポテンシャルを最大限に引き出すことができます。

LangSmithは常に進化しているため、最新の機能やベストプラクティスについて最新情報を入手するようにしてください。LangSmithコミュニティと交流し、フォーラムに参加し、サポートへの連絡を躊躇しないでください。練習と探索を重ねることで、LangSmithのフルパワーを活用して、ユーザーの期待を満たす最先端のLLMアプリケーションを作成できるようになります。

💡
制限なしでClaude 3.5 Sonnetを試してみたいですか?

すべてのAIモデルにアクセスできるオールインワン価格タグのAIプラットフォームをお探しですか?

ならば、Anakin AIを見逃すわけにはいかないですよ!

Anakin AIは、ノーコードアプリビルダーを使った強力なAIアプリを作成するためのオールインワンプラットフォームで、Llama 3ClaudeGPT-4Uncensored LLMsStable Diffusion...を使って、数分で夢のAIアプリを構築できます...

あなたの夢のAIアプリを数分で、週ではなく作りましょう!