「Qwenで実現するAIエージェント開発!Model Studioハンズオンイベント」体験記
はじめに
今回株式会社レッジさま主催のイベントQwenで実現するAIエージェント開発!Model Studioハンズオンイベントに参加したので、そのハンズオンの内容をまとめてみました。
Model Studioの紹介
まず初めに今回のハンズオンで使用するModel Studioの紹介がありました。
AWSでいうところもBedrockのような生成AI周りの機能をフルマネージドで扱うことができるサービスになります。
Model Studioの特徴
Model Studioの特徴は以下のような点があります。
1. Qwenモデルが使用できる。
Model Studioでは、QwenのOSS版や商用版のAPIが利用可能です。コンソール上ですぐに試せる点や、煩雑なデプロイ作業を必要としない点が魅力的です。QwenモデルはOSSでも高性能で知られていますが、OSSモデルを自前でデプロイするには負担が大きくなりがちなので、手軽に使えるのは大きな利点だと思いました。
2. 開発者用の機能が豊富
プロンプトの最適化、ナレッジインデックス管理、関数呼び出しといったLLMアプリケーション開発に必要な機能がフルマネージドで提供されています。今回のハンズオンでは「ナレッジインデックス」の機能を主に使用しましたが、これ以外にもさまざまな機能が用意されているので、幅広いアプリケーション開発を支援してくれそうです。
3. 低コストで使える
自前で何かをデプロイする必要がないので、メンテナンスコストが抑えられ、従量課金で気軽に始められます。試しに使ってみたい場合にも適していると感じました。
他のModel Studioの仕様や機能の詳細は、公式ドキュメントをご参照ください。
RAGアプリケーションの作成ハンズオン
今回のハンズオンではRAGアプリケーションを作成しました。題材としてはiPhoneについて回答してくれるチャットボットを作成するというお題になります。
まず初めに何も設定せずにQwenモデルにiPhone16について聞いてみます、もちろんナレッジカットオフはiPhone16の発表前になるので、LLMはiPhone16についての情報も持っていません。Qwen Maxに質問したところ、「ごめんなさい、最新のiPhone16の具体的な特徴についてはわかりません。」と回答されました。ハルシネーションを起こさず、知らないことを知らないと答えてくれるところがいいですね。
データの登録
まずは、RAGで使用するデータの登録を行っていきます。
データの登録は、「Data Management」から行います。
今回は、iPhone16についての仕様のPDFを読み込ませたいので、「Unstructured Data」を選択し「Import Data」からデータの読み込みを行います。
データの読み込み場所は、ローカルかOSS(Alibaba Cloudのオブジェクトストレージサービス)を選択することができます。ドキュメントのパースなんかもマネージドでやってくれるのが楽でうれしいです。
最初の画面に戻って、Statusが「Imported」になっていれば読み込みは完了です。
インデックスの作成
先ほど登録したデータをもとに、インデックスを作成していきます。インデックスの作成は、「Data Application」の「Knoledge Index」から行います。
まずは基本設定を行います。Configuration ModeをCustomにすることで、クエリ書き換えやリランキングの設定を行うことができます。デフォルトでは有効になっているので、細かい設定を意識せずにこれらの機能を活用できるのはいいなと思います。
続いて読み込むデータの設定を行い、最後にデータ加工の設定を行います。ここではメタデータの設定やチャンキングの設定を行います。チャンキングの設定は自分でチャンクの長さやオーバーラップ比率を決めることができます。
以上でインデックスの作成が完了となります。データの読み込みからインデックスの作成まで、すべてフルマネージドで完結することができます。RAGはデータのパースからチャンク分け、ベクトルのような色々な作業が発生するので、それらの作業をすべて自動でやってくれるのがとても簡単で驚きました。
RAGアプリケーションの作成
作成したインデックスを使用したRAGアプリケーションを構築していきます。
「My Applications」から「Create Application」を選択して作成します。
今回は「Agent Application」を選択しました。
アプリケーションの設定
アプリケーション内では以下の設定を行うことができます。
- 使用するモデル
今回は「Qwen-Max」を選択します。
- Promptの設定
自分でプロンプトを設定することもできますが、今回はRAG用のアプリケーションを選択したので、すでにRAG用のプロンプトが入力されています。もちろん自分で作成したプロンプトも使用できますし、プロンプトをテンプレートしておいてそれらを使うことも可能です。個人的にいいなと思ったのはプロンプト最適化の機能があるところです。試しに使ってみたらいい感じのプロンプトを生成してくれました。
生成されたプロンプト
# Role
You are an informed assistant, skilled in utilizing a provided knowledge base to answer questions accurately and effectively. Your role is to ensure that users receive precise information based on the materials available in the knowledge base.
## Skills
### Skill 1: Knowledge Retrieval
- Retrieve relevant information from the provided knowledge base (${documents}) to answer user queries.
- Ensure that the information extracted is directly related to the question asked and provides clear and concise answers.
### Skill 2: Contextual Understanding
- Understand the context of the user's question and match it with the appropriate content from the knowledge base.
- Provide explanations or additional details when necessary to ensure the user fully comprehends the answer.
### Skill 3: Synthesis of Information
- Combine multiple pieces of information from the knowledge base to form comprehensive responses when a single source does not suffice.
- Present synthesized information in a logical and easy-to-understand manner.
## Limitations
- Only use the information provided in the knowledge base (${documents}) to answer questions. Do not rely on external sources or personal knowledge.
- Avoid making assumptions or providing speculative answers if the knowledge base does not contain sufficient information.
- Ensure all responses are accurate and directly tied to the content within the knowledge base.
## Knowledge Base
Remember the following materials that may help you answer questions: ${documents}.
- ナレッジベースの設定
ここで先ほど作成したナレッジベースのインデックスを設定していきます。
- Retrieveの設定
ここではRetrieveする際の設定を選ぶことができます。
Retrieveするチャンクの個数や、コンテキストの最大長を指定できます。
- 高度な設定
ここではプラグインの設定を行うことができます。
ハンズオンでは「Calculator」のプラグインを導入することで計算問題を正確に解くことができるデモがありました。他にもPythonコードを実行するプラグインも導入できます。
使ってみる
設定が完了したので、実際に使ってみます。
ナレッジベースの設定前は答えられなかったiPhone16の特徴について尋ねてみます。
ナレッジベースから情報を取得して正しく回答していることが確認できます!
このようにModel Studioを使うことで簡単にRAGアプリケーションを作成することができます。
APIで呼び出してみる
作成したアプリケーションはAPI経由で使用することができます。
今回のハンズオンでは扱いませんでしたが、せっかく作成したのでAPI経由でも使ってみます。
APIコールの呼び出し方も記載されているのでその通り実行してみます。
実行時には環境変数DASHSCOPE_API_KEY
に取得したAPIキーを設定してください。
from http import HTTPStatus
from dashscope import Application
import dashscope
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
responses = Application.call(app_id='YOUR_APP_ID',
prompt='iPhone16の特徴を教えてください',
stream=False)
print(responses["output"]["text")
レスポンス
iPhone 16の主な特徴は以下の通りです:\n\n1. **ディスプレイ**:\n - 6.1インチSuper Retina XDRディスプレイ\n - 解像度:2,556 x 1,179ピクセル、460ppi \n - HDR表示対応、最大輝度1,600ニト(HDR時)\n - 耐指紋性撥油コーティング\n\n2. **デザイン**:\n - Ceramic Shieldフロントカバー\n - 背面はガラス素材\n - 寸法:高さ147.6mm、幅71.6mm、厚さ7.8mm\n - 重量:170g\n\n3. **耐久性**:\n - 防水・防塵性能:IP68等級(最大水深6m、最長30分間)\n\n4. **プロセッサ**:\n - A18 Bionicチップ搭載\n - 新しい6コアCPU、5コアGPU\n - 16コアNeural Engine\n\n5. **カメラ**:\n - 48MPメインカメラ(26mm、f/1.6)\n - 光学式手ぶれ補正機能\n - 12MP望遠カメラ(52mm、f/1.6)\n\n6. **容量**:\n - ストレージオプション:128GB、256GB、512GB\n\n7. **その他の特徴**:\n - Dynamic Island機能\n - True Toneディスプレイ\n - 広色域(P3)対応\n - Apple Intelligence機能搭載\n\nこれらの特徴により、iPhone 16は優れたパフォーマンスと耐久性を提供し、特にカメラ性能やディスプレイ品質が向上しています。
APIでもコンソールと同じように呼び出すことができました。
API経由で使用すると、色々なアプリケーションと統合しやすいので様々な利用方法が考えられそうです。
おわりに
今回はじめてModel Studioを使用しましたが、Qwenの性能の高さ、RAGアプリケーション作成の簡単さに驚きました。特にRAG周りは機能が充実しており、ほぼフルマネージドでRAGが作れるのはとても便利だと思います。LLMというとOpenAIやAnthoropicのモデルに目が行きがちですが、QwenやDeepSeekなど中国勢の勢いもすごいので今後も注目していきたいです。
Discussion