×
Community Blog Alibaba Cloud PAIの高度なLLMとLangChainの機能による生成AIの強化

Alibaba Cloud PAIの高度なLLMとLangChainの機能による生成AIの強化

本記事では、AIの能力をLangchainとLLMと組み合わせたAlibaba Cloud PAIというプラットフォームについて紹介します。

「ジェネレーティブAI(GenAI)」と「大規模言語モデル(LLM)」の世界への突入に備えていますか?Alibaba Cloud Platform for AI (PAI) は、AIの高度な機能とLLMの画期的な特徴を組み合わせた最先端のプラットフォームです。これにより、GenAIの領域を革新します。

1

PAIにはさまざまな魅力的な機能があります。主なハイライトをご紹介いたします:

  • シームレスなLangchainの統合: PAIは、オープンプラットフォームであるLangchainとシームレスに統合されています。Langchainのパワフルなツールとリソースを活用し、PAIは言語モデルの全ポテンシャルを引き出し、ダイナミックで文脈に即したAI生成コンテンツを作成することができます。
  • 高度なLLMの機能: PAIは、最先端のLLM技術を活用して、非常に優れたテキスト生成パフォーマンスを提供します。自然言語の応答やクリエイティブなストーリーの生成、さらにはマルチターンの対話においても、PAIは非常に高い精度と流暢さで対応することができます。
  • リアルタイムストリーミング出力: AI生成の応答を待つ必要はもうありません。PAIはリアルタイムストリーミング出力を提供し、瞬時かつダイナミックなフィードバックを実現します。AI生成コンテンツが目の前で展開され、モデルとのインタラクションがより魅力的で活発なものになります。
  • テンプレートベースのアクセス: PAIでは革新的なテンプレートベースのアクセス機能を導入しています。_DSW Gallery_を活用して、ビジネスタスクに基づいた独自のGenAIやAIモデルを簡単に作成することができます。これにより、特定の領域に適したAIモデルを作成するか、産業特定のLLMを作成することができます。
  • Knowledge Base System(KBS)またはRetrieval Augmented Generation(RAG): PAIのKBS機能をLLMに組み込むことで、膨大な知識ベースから関連する情報をシームレスに取得できます。これにより、AI生成の応答の品質と正確性を向上させることができます。PAIに蓄積された広範な知識を活用して、LLMをより賢明で信頼性の高いパートナーにします。
  • インタラクティブエージェントの機能: PAIを活用することで、AIによる対話をよりインタラクティブかつ没入感のある体験に変えることができます。PAIをプラットフォームとして、マルチエージェントシステムを構築し、リアルな対話やマルチターンの対話を行えます。質問を理解し、知的に応答し、対話の流れに合わせて適応するAIのコンパニオンをお楽しみください。

一つの記事ですべての機能を網羅するのは困難ですので、PAI上のLLMに関連する一連の記事を公開する予定です。まずはLangchainとの統合から始めましょう。

Introduction

PAI-EAS

2

Platform for AI - Elastic Algorithm Service (PAI-EAS) は、モデルのオンライン推論のためのプラットフォームであり、自動スケーリング、ブルーグリーン展開、リソースグループ管理などの機能を提供します。PAI-EASはリアルタイムおよびほぼリアルタイムのAI推論シナリオをサポートし、柔軟なインフラストラクチャ、効率的なコンテナスケジューリング、簡素化されたモデルの展開を提供します。また、リアルタイムおよびほぼリアルタイムの同期推論を可能にし、さまざまなAIアプリケーションに対して高スループットかつ低遅延を保証します。

LangChain

3

LangChain は、言語モデルによってパワードされたアプリケーションを開発するための強力なフレームワークです。これにより、言語モデルをプロンプトの指示、フューショットの例、または応答の基盤とするコンテキストのさまざまなソースに接続できるコンテキスト感知型アプリケーションが可能になります。LangChainを使用することで、提供されたコンテキストに基づいて論理的な推論と意思決定を行うことができます。

LangChainフレームワークには、いくつかのコンポーネントがあります。LangChain Librariesは、言語モデルと連携するためのPythonとJavaScriptのライブラリとインターフェースを提供します。これらのライブラリには、コンポーネントをチェーンとエージェントに組み合わせるためのランタイムや、さまざまなタスクに対するチェーンとエージェントのプリビルド実装も含まれています。LangChainテンプレートは、幅広いアプリケーションに対する簡単に展開可能なリファレンスアーキテクチャを提供します。

LangChainを使用することで、開発者はアプリケーションのライフサイクル全体を簡素化することができます。LangChainのライブラリとテンプレートを使用してアプリケーションを開発し、LangSmithで検査とモニタリングを行い、LangServeを使用してチェーンをAPIとして展開することができます。

LangChainは、モデルI/O、リトリーバル、エージェントなどのモジュールに対して標準的で拡張可能なインターフェースと連携を提供します。使用事例、手順、ベストプラクティス、APIリファレンス、開発者ガイドなどのリソースが豊富に用意されています。LangChainコミュニティは活発で支援的であり、言語モデルパワードアプリケーションの将来についての質問、フィードバックの共有、協力の場を提供しています。

このチュートリアルでは、PAI EASのセットアップ方法、チャットモデルの展開、および異なる設定での実行手順を説明します。

PAI-EASでのLangChainとLLMの構築手順

Step 1: PAI-EASでのLLMのセットアップ

まず、PAI-EASでLLMのセットアップを行います。こちらのチュートリアルやドキュメントを参照して、EASのセットアップ方法やPAI-EASのサービスURLとトークンの取得方法について確認してください。これらの資格情報は、EASサービスへの接続に必要です。

4

もしもQwenモデルを試してみたい場合は、4番のフィールドでCommand to Runを自由に変更してください。Qwenはオープンソースであり、Qwen、基本言語モデルであるQwen-7BとQwen-14B、チャットモデルであるQwen-7B-ChatとQwen-14B-Chatなど、さまざまなモデルが提供されています。

python api/api_server.py --port=8000 --model-path=Qwen/Qwen-7B-Chat

Step 2: 環境変数の設定

PAI-EASからURLとトークンの環境変数の設定が必要です。これらの変数をターミナルでエクスポートするか、コード内でプログラム的に設定することができます。これにより、アプリケーションがEASサービスに安全にアクセスできるようになります。

ターミナルで変数をエクスポートする場合:

export EAS_SERVICE_URL=XXX
export EAS_SERVICE_TOKEN=XXX

PAI-EASからこれらの変数を取得するには、以下の手順に従ってコードに必要なホストURLとトークンを見つけることができます:

5

  • 上記の図に示されているように、PAI-EAS上の展開されたモデルに移動します。
  • 「サービスの詳細」をクリックして、展開されたモデルの詳細情報にアクセスします。
  • 「エンドポイント情報の表示」セクションを探し、それをクリックします。

6

  • 「パブリックエンドポイント」フィールドには、ホストURLが表示されます。このURLをコピーします。
  • 次に、「Authorization」フィールドを見つけます。ここには認証に必要なトークンが含まれています。このトークンをコピーします。

7

Step 3: 依存関係のインポート

コード内で必要な依存関係をインポートします。これには、_langchain.chat_models__moduleの_PaiEasChatEndpoint_ classと_langchain.chat_models.base__moduleの_HumanMessage_classが含まれます。これらのモジュールは、PAI-EASでチャットモデルを実行するための基盤を提供します。

import os

from langchain.chat_models import PaiEasChatEndpoint
from langchain.chat_models.base import HumanMessage

os.environ["EAS_SERVICE_URL"] = "Your_EAS_Service_URL"
os.environ["EAS_SERVICE_TOKEN"] = "Your_EAS_Service_Token"
chat = PaiEasChatEndpoint(
    eas_service_url=os.environ["EAS_SERVICE_URL"],
    eas_service_token=os.environ["EAS_SERVICE_TOKEN"],
)

Step 4a: チャットモデルの初期化

PAI-EASのサービスURLとトークンをパラメータとして渡すことで、_PaiEasChatEndpoint_classのインスタンスを作成します。これにより、EASサービスへの接続が初期化され、チャットモデルの対話の準備が整います。

output = chat([HumanMessage(content="write a funny joke")])
print("output:", output)

Step 4b: チャットモデルの実行

チャットメソッドを呼び出し、望ましい入力内容の_HumanMessage_ objectを渡すことで、チャットモデルを利用します。デフォルトでは、チャットモデルは推論のためのデフォルト設定を使用します。ただし、_temperature, top_p, top_k_などの追加のキーワード引数を含めることで、推論パラメータをカスタマイズすることができます。これにより、モデルの振る舞いを要件に合わせて最適化することができます。

kwargs = {"temperature": 0.8, "top_p": 0.8, "top_k": 5}
output = chat([HumanMessage(content="write a funny joke")], **kwargs)
print("output:", output)

以下は、PaiEasEndpointの他のパラメータのリストです:

Parameter Name Type Purpose Default Value
eas_service_url str Service access URL
eas_service_token str Service access token
max_new_tokens Optional[int] Maximum output token ID length 512
temperature Optional[float] 0.95
top_p Optional[float] 0.1
top_k Optional[int] 10
stop_sequences Optional[List[str]] Output truncation character set
streaming bool Whether to use streaming output False
model_kwargs Optional[dict] Other parameters for EAS LLM inference

Step 4c: ストリームレスポンス(オプション)

よりダイナミックなインタラクションを得るために、ストリームコールを実行してストリームレスポンスを取得することができます。ストリームメソッドを呼び出す際に、ストリーミングパラメーターを_True_に設定してください。ストリームの出力を反復処理して、各レスポンスをリアルタイムで処理します。

outputs = chat.stream([HumanMessage(content="hi")], streaming=True)
for output in outputs:
    print("stream output:", output)

実行するための用意されたコード

import os
from langchain.llms.pai_eas_endpoint import PaiEasEndpoint
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain

# Initialize the EAS service endpoint
os.environ["EAS_SERVICE_URL"] = "EAS_SERVICE_URL",
os.environ["EAS_SERVICE_TOKEN"] = "EAS_SERVICE_TOKEN"
llm = PaiEasEndpoint(eas_service_url=os.environ["EAS_SERVICE_URL"], eas_service_token=os.environ["EAS_SERVICE_TOKEN"])

# Accessing EAS LLM services:
# Access method 1: Direct access
kwargs = {"temperature": 0.8, "top_p": 0.8, "top_k": 5}
output = llm("Say foo:", **kwargs)

# Access method 2: Template-based access
# 2.1 Prepare the question template
template = """Question: {question}
Answer: Let's think step by step."""
prompt = PromptTemplate(template=template, input_variables=["question"])

# 2.2 Wrap with LLMChain
llm_chain = LLMChain(prompt=prompt, llm=llm)

# 2.3 Access the service
question = "What NFL team won the Super Bowl in the year Justin Bieber was born?"
llm_chain.run(question)

Conclusion

Alibaba Cloud PAIは、最先端のプラットフォームが絶妙に組み合わさったものであり、技術と魅力的な機能を提供し、GenAIの領域で変革的な体験を創造します。言語がAIの創造性とイノベーションのキャンバスとなる旅に備えてください。PAIを使ってLLMの真のポテンシャルを解き放ってください - それはGenAIの未来への入り口です!

Alibaba Cloud PAI-EASを使用することで、チャットモデルの展開と実行がシームレスかつ効率的なプロセスになります。上記の手順と情報を利用することで、チャットモデルのフルポテンシャルを引き出し、知的な対話体験を創造することができます。PAI-EASは、開発者が機械学習の能力を容易に活用できるだけでなく、高いスループット、低レイテンシ、包括的な運用・保守機能も提供します。今日からアプリケーション内でチャットモデルを活用し、エキサイティングなAI駆動の対話の旅に出かけましょう。

Alibaba CloudのPAI-EAS上でLLMとLangChainのパワーを体験し、パフォーマンスの向上とコスト削減の旅に出ましょう。Alibaba Cloudにお問い合わせして、ジェネレーティブAIの世界を探索し、アプリケーションやビジネスを変革する方法を発見してください。

本文はAIによって翻訳されました。ここで表明されている意見は参考までにお読みいただくものであり、必ずしもAlibaba Cloudの公式の意見を代表するものではありません。原文はこちらです。

0 0 0
Share on

Regional Content Hub

89 posts | 3 followers

You may also like

Comments

Regional Content Hub

89 posts | 3 followers

Related Products