【LangSmith】アカウント作成からAPIキーの発行方法を解説!

【LangSmith】アカウント作成からAPIキーの発行方法を解説!

LangSmithは、LLMアプリケーションの開発やデバッグを効率化するプラットフォームです。

LangSmithはLLMアプリケーションのログ記録やモデル評価、パフォーマンスの監視ができます。

この記事では、LangSmithのアカウント作成から、APIキーの発行方法、簡単な使い方まで解説しています。

ざっくり言うと

  • LangSmithはLLMアプリケーションのログ記録やモデル評価、監視が可能
  • LangSmithのアカウント作成、APIキーの発行方法、簡単な使い方を解説

10/30開催のウェビナーをお知らせ!

目次

LangSmithとは

見出し画像

LangSmithは、LLMアプリケーションの開発やデバッグを効率化するプラットフォームです。

LangSmithはLLMアプリケーションのログ記録やモデル評価、パフォーマンスの監視ができます。

これによりLLMアプリケーションの品質向上と開発効率の向上が可能になります。

LangSmithのアカウント作成

見出し画像

LangSmithを使用するために、まずアカウント作成をします。

STEP
LangSmith公式ページにアクセス

LangSmithの公式ページにアクセスし、「Sign up with email」をクリックします。

アカウント作成
(出典:https://www.langchain.com/langsmith)
STEP
メールアドレス・パスワードの登録

「メールアドレス」と「パスワード」を入力し、「Continue」をクリックします。

アカウント作成
(出典:https://www.langchain.com/langsmith)
STEP
メールアドレス認証

登録したメールアドレスに認証メールが届きますので「Confirm your email」をクリックします。

メールアドレス認証
(出典:https://www.langchain.com/langsmith)

ここまででアカウント作成は完了です。

LangSmithのAPIキーの設定

見出し画像

LangSmithのAPIキーの設定方法を解説していきます。

STEP
LangSmithにログイン

LangSmithの公式ページにログインし、サイドバーの「歯車アイコン」をクリックします。

APIキー
(出典:https://www.langchain.com/langsmith)
STEP
APIキーの作成

サイドバーの「API Keys」を開き、「Create API Key」ボタンをクリックします。

APIキー
(出典:https://www.langchain.com/langsmith)

「Description」に任意の名前を入力し、「Key Type」を選択し、「Create API Key」をクリックします。

APIキー
(出典:https://www.langchain.com/langsmith)
STEP
APIキーの確認

作成したAPIキーは「Copy」ボタンでコピーできます。

APIキー
(出典:https://www.langchain.com/langsmith)

APIキーは大切に保管してください。

LangChainの実行環境

見出し画像

LangSmithでは、LangChainでの実行ログを扱いますので、ここではLangChainの環境を構築します。

この記事で用意した実行環境は以下のとおりです。

  • GPU:NVIDIA A100 80GB
  • GPUメモリ(VRAM):80GB
  • OS :Ubuntu 22.04
  • Docker

Dockerで環境構築

Dockerを使用してLangChainの環境構築をします

Dockerの使い方は以下の記事をご覧ください。

STEP
Dockerfileの作成

コンテナにインストールするパッケージは以下のとおりです。

LLMはOllamaのライブラリを使って動かしますので、PyTorchやTransformerは別途インストール不要です。

パッケージ一覧
  • CUDA:12.1
  • Python:3.10
  • ollama
  • langchain
  • langsmith
  • langchain-community
  • langchain_core

Ubuntuのコマンドラインで、Dockerfileを作成します。

mkdir langsmith_test
cd langsmith_test
nano Dockerfile

Dockerfileに以下の記述を貼り付けます。

# ベースイメージ(CUDA)の指定
FROM nvidia/cuda:12.1.0-cudnn8-devel-ubuntu22.04

# 必要なパッケージをインストール
RUN apt-get update && apt-get install -y python3-pip python3-venv git nano curl

RUN curl -fsSL https://ollama.com/install.sh | sh

# 作業ディレクトリを設定
WORKDIR /app

# アプリケーションコードをコピー
COPY . /app

# Python仮想環境の作成
RUN python3 -m venv /app/.venv

# 仮想環境をアクティベートするコマンドを.bashrcに追加
RUN echo "source /app/.venv/bin/activate" >> /root/.bashrc

# JupyterLabのインストール
RUN /app/.venv/bin/pip install Jupyter jupyterlab

# LangChain関連のインストール
RUN /app/.venv/bin/pip install ollama langchain langsmith langchain-community langchain_core

# コンテナの起動時にbashを実行
CMD ["/bin/bash"]

[Ctrl + S]キーで変更内容を保存し、[Ctrl + X]キーで編集モードから抜けます。

STEP
docker-compose.ymlファイルの作成

docker-compose.ymlでDockerコンテナの設定をします。

docker-compose.ymlのYAMLファイルを作成して開きます。

nano docker-compose.yml

以下のコードをコピーして、YAMLファイルに貼り付けます。

services:
  langsmith_test:
    build:
      context: .
      dockerfile: Dockerfile
    image: langsmith_test
    runtime: nvidia
    container_name: langsmith_test
    ports:
      - "8888:8888"
    volumes:
      - .:/app/langsmith_test
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]
    command: >
      bash -c '/usr/local/bin/ollama serve & /app/.venv/bin/jupyter lab --ip="*" --port=8888 --NotebookApp.token="" --NotebookApp.password="" --no-browser --allow-root'

[Ctrl + S]キーで変更内容を保存し、[Ctrl + X]キーで編集モードから抜けます。

STEP
Dockerコンテナを起動

Dockerfileからビルドしてコンテナを起動します。   

docker compose up

 

Dockerの起動後にブラウザの検索窓に”localhost:8888″を入力すると、Jupyter Labをブラウザで表示できます。

localhost:8888

環境変数の設定、LLMの設定、チェーンの構築

見出し画像

Dockerコンテナで起動したJupyter Lab上で、LangSmithの環境変数の設定から、LangChainを使ったチェーンの構築まで行います。

STEP
環境変数の設定

LangSmithのAPIに関する環境変数を設定します。

import os
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_ENDPOINT"] = "https://api.smith.langchain.com"
os.environ["LANGCHAIN_PROJECT"] = "langsmith-test"
os.environ["LANGCHAIN_API_KEY"] = "***************************"
コードの説明

os.environ[“LANGCHAIN_TRACING_V2”] = “true”

LangChainのトレーシング機能を有効にします。LLMの実行ログやトレース情報がLangSmithに送信され、後から確認できるようになります。

os.environ[“LANGCHAIN_ENDPOINT”] = “https://api.smith.langchain.com”

LangSmithのAPIエンドポイントを指定します。LangChainがこのエンドポイントにリクエストを送信することで、LangSmithのサービスと通信します。

os.environ[“LANGCHAIN_PROJECT”] = “langsmith-test”

使用するLangSmithプロジェクトの名前を指定します。ログやトレースはこのプロジェクト単位で管理されます。

os.environ[“LANGCHAIN_API_KEY”] = “***************************”

LangSmithで発行したAPIキーを指定します。

STEP
LLMの設定

日本語LLMモデル「Llama-3-ELYZA-JP-8B-q4_k_m.gguf」をダウンロードします。

!curl -L -o Llama-3-ELYZA-JP-8B-q4_k_m.gguf "https://huggingface.co/elyza/Llama-3-ELYZA-JP-8B-GGUF/resolve/main/Llama-3-ELYZA-JP-8B-q4_k_m.gguf?download=true"

Llama-3-ELYZA-JPについては、別記事で詳しく解説しています。

LLMの実行にはOllamaのツールを使用します。

LLMのモデルがOllama使えるようにプロンプトテンプレートを指定して、モデルを作成します。

import ollama
from langchain_community.chat_models import ChatOllama

modelfile='''
FROM ./Llama-3-ELYZA-JP-8B-q4_k_m.gguf
TEMPLATE """{{ if .System }}<|start_header_id|>system<|end_header_id|>

{{ .System }}<|eot_id|>{{ end }}{{ if .Prompt }}<|start_header_id|>user<|end_header_id|>

{{ .Prompt }}<|eot_id|>{{ end }}<|start_header_id|>assistant<|end_header_id|>

{{ .Response }}<|eot_id|>"""
PARAMETER stop "<|start_header_id|>"
PARAMETER stop "<|end_header_id|>"
PARAMETER stop "<|eot_id|>"
PARAMETER stop "<|reserved_special_token"
'''

ollama.create(model='elyza8b', modelfile=modelfile)
コードの説明

FROM ./Llama-3-ELYZA-JP-8B-q4_k_m.gguf

ダウンロードしたモデルのパスが入ります。

TEMPLATE “””{{ if .System }}<|start_header_id|>system<|end_header_id|>…

モデルで使用するプロンプトテンプレートが入ります。

ollama.create(model=’elyza8b’, modelfile=modelfile)

モデルとプロンプトテンプレートを使ってOllama用のモデルを作成します。modelにはOllamaで呼び出す際に使用する名前をつけられます。

STEP
チェーンの構築

プロンプト、LLM、出力パーサーを処理するチェーンを構築して実行します。

from langchain_core.prompts import PromptTemplate
from langchain_core.output_parsers import StrOutputParser

llm = ChatOllama(model="elyza8b", temperature=0.7)

prompt = PromptTemplate(
    input_variables=["keyword"],
    template="以下のキーワードに関するFAQを作成してください: {keyword}。具体的な質問とそれに対する簡潔な回答を含めてください。"
)

chain = prompt | llm | StrOutputParser()

result = chain.invoke({"keyword":"RPA"})

print(result)
コードの説明

ChatOllama(model=”elyza8b”, temperature=0.7)

ChatOllamaをインスタンス化してLLMモデルを実行できる状態にしています。

PromptTemplate()

input_variables: プロンプトで使用する変数のリストです。ここでは"keyword"という変数を指定しています。

template: 実際のプロンプトのテンプレートです。{keyword}がプレースホルダーで、実際のキーワードがこの部分に挿入されます。

chain = prompt | llm | StrOutputParser()

プロンプト、LLM、出力パーサーをつなげたチェーンを構築します。プロンプトがLLMに送られ、LLMの応答が文字列として出力されます。

chain.invoke({“keyword”:”RPA”})

指定した入力{"keyword":"RPA"})に基づいてチェーンを実行します。

以下のキーワードに関するFAQを作成してください: RPA。
具体的な質問とそれに対する簡潔な回答を含めてください。

RPA(Robotic Process Automation)に関するFAQです。

Q1: RPAとは何ですか?
A1: RPAは、ソフトウェアロボットが人間の操作を自動化する技術です。

Q2: RPAとAIは同じ意味ですか?
A2: いいえ。RPAは主に定型作業の自動化を目的としていますが、AIは機械学習や自然言語処理などを用いて複雑なタスクを実行する技術です。

Q3: RPAで何ができるのですか?
A3: RPAでは、データ入力、帳票作成、メール操作、システム連携などの定型作業を自動化できます。

Q4: RPAは人間の仕事を奪うのではありませんか?
A4: RPAは、人間の判断や創造性が必要な部分を除き、単純で反復的な作業を代替することで生産性向上に貢献します。人間の仕事を奪うことはないと考えられます。

Q5: RPAの導入にはどのようなメリットがありますか?
A5: RPAの導入により、作業効率化、コスト削減、ミス防止が期待できます。

Q6: RPAはセキュアですか?
A6: はい。RPAツールは、セキュリティ対策として認証や暗号化などを実施し、安全に運用することが可能です。

Q7: RPAの学習方法はありますか?
A7: はい。各RPAツールの提供元が公式に提供しているトレーニングや研修プログラムがあり、また、書籍やオンラインコースなどを通じてスキルを身につけることができます。

Q8: RPAはどのような業界で活用されていますか?
A8: RPAは、金融、製造、ヘルスケア、ITなど多くの業界で導入され、生産性向上やコスト削減に貢献しています。

LangSmithでログを確認

見出し画像

LangSmithにログインし、実行ログを確認します。

STEP
LangSmithのプロジェクトを開く

LangSmithにログインし、トップページから「Projects」を選択します。

langsmithログ
(出典:https://www.langchain.com/langsmith)
STEP
プロジェクトを選択

環境変数で指定したプロジェクト名を選択します。

langsmithログ
(出典:https://www.langchain.com/langsmith)

この記事では、os.environ[“LANGCHAIN_PROJECT”] = “langsmith-test”と指定しました。

STEP
実行ログの確認

各ステップでの実行ログが確認できます。

langsmithログ
(出典:https://www.langchain.com/langsmith)

チェーンの中身の処理も可視化できています!

生成AI・LLMのコストでお困りなら

GPUのスペック不足で生成AIの開発が思うように進まないことはありませんか?

そんなときには、高性能なGPUをリーズナブルな価格で使えるGPUクラウドサービスがおすすめです!

GPUSOROBAN
GPUSOROBAN

GPUSOROBANは、高性能GPU「NVIDIA H200」を業界最安級の料金で使用することができます。

NVIDIA H200は、生成AI・LLMの計算にかかる時間を大幅に短縮することが可能です。

クラウドで使えるため、大規模な設備投資の必要がなく、煩雑なサーバー管理からも解放されます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
EdgeHUBロゴ

メールマガジン登録

Stable Diffusion・LLM・RAGに関する最新情報をいち早くお届けします。

無料メルマガの配信をご希望の方は、下記フォームよりご登録ください。

    EdgeHUB編集部からのお知らせ

    無料ウェビナーのお知らせ

    【10/30開催 無料ウェビナー】日本語のローカルLLMを使用したRAGの使い方

    RAG×日本語LLMの無料オンラインウェビナー!

    開催日時:
    2024年10月30日(水) 14:00~15:00

    内容:

    • 「LangChain」と「Llama-3-ELYZA-JP」でRAG環境を構築
    • 生成AI開発の強い味方「GPUSOROBAN」の活用方法

    このウェビナーでは、オープンソース「LangChain」で構築したRAGの使い方や、デモを紹介します。

    生成AIに関心のある方、AI技術をビジネスに活かしたい方は、ぜひこの貴重な機会にご参加ください!

    こんな方におすすめ!

    • 日本語LLMの利用を検討している方
    • AI開発に携わっている方
    • 最新のAI技術やトレンドに興味がある方
    • GPUスペック不足に悩んでいる方

    \簡単1分で申し込み!/

    この記事を書いた人

    EdgeHUBは、NVIDIAクラウドパートナーである株式会社ハイレゾが運営しています。「AIと共にある未来へ繋ぐ」をテーマに、画像生成AI、文章生成AI、動画生成AI、機械学習・LLM、Stable Diffusionなど、最先端の生成AI技術の使い方をわかりやすく紹介します。

    目次