独自のカスタム・チャットボットの作成

AI

この記事は、The Parallel Universe Magazine 53 号に掲載されている「Create Your Own Custom Chatbot」の日本語参考訳です。原文は更新される可能性があります。原文と翻訳文の内容が異なる場合は原文を優先してください。


parallel_v53_04

ChatGPT* (英語)、GPT-4* (英語)、Bard* (英語) などの対話エージェントの途方もないパフォーマンスにより、大規模言語モデル (LLM) が大きな注目を集めています。しかし、LLM のトレーニングや微調整には膨大なコストと時間が必要です。これは、モデルサイズとデータセットが大きいためです。

この記事では、簡単に入手できるハードウェアでカスタム・チャットボットをトレーニングして微調整する方法を説明します。第 4 世代インテル® Xeon® スケーラブル・プロセッサーを使用して、体系的な手法を使用してチャットボットを作成し、ドメイン固有のデータセットと最適化された微調整コードベースを生成します。

アプローチ

スタンフォード大学が公開した Alpaca (英語) は、Meta の LLaMA (英語) モデルから微調整された、命令に従う言語モデルです。このプロジェクトからヒントを得て、我々はカスタムのドメイン固有チャットボットを作成する、強化された手法を開発しました。使用できる言語モデルは (パフォーマンスの高い言語モデルも含めて) いくつかありますが、オープンモデルである Alpaca を選択しました。

チャットボットのワークフローは、ガイド付きシード生成、ガイドなし (フリー) シード生成、サンプル生成、および微調整の 4 つのステップで構成されます (図 1)。


図 1. チャットボットの微調整の概要

これらのステップを説明する前に、シードタスクの生成に役立つプロンプト・テンプレートを紹介します。一般的なタスク向けの Alpaca のサンプルプロンプトを図 2 に示します。


図 2. シードタスク生成のプロンプト・テンプレート

「生成されるタスクの指示は <domain_name> の問題に関連している必要がある」という新しい要件を追加してテンプレートを変更しました。この要件は、指定されたドメインに関連するシードタスクの生成に役立ちます。多様なシードタスクを生成するため、ガイド付きシードタスク生成とガイドなし (フリー) シードタスク生成の両方を使用します。

ガイド付きシードタスク生成は、Alpaca の既存のシードタスク (英語) を活用します。シードタスクごとに、ドメイン・プロンプト・テンプレートのコンテンツを結合して、既存のダイアログ・エージェントにフィードします。対応する数のタスク (例えば、図 2 ではプロンプト・テンプレートで定義した 20 のタスク) が生成されることが予想されます。このようなテキスト生成は、因果関係言語モデルの典型的なユースケースの 1 つです。

ガイドなしシードタスク生成は、追加のシードタスクを指定しないで、ドメイン・プロンプト・テンプレートをダイアログ・エージェントに直接フィードします。ここでは、ガイドなしシードタスク生成を「フリー」と呼びます。このアプローチを使用して、新しいドメイン・シード・タスクを生成します (図 3)。


図 3. ドメイン・シード・タスク

これらのシードタスクを使用して、既存のダイアログ・エージェントを再度利用し、指示サンプルを生成します。ドメイン・プロンプト・テンプレートを使用するため、出力は「命令」、「入力」、「出力」形式の要件に従います。このプロセスを繰り返して、微調整に使用する 2,000 個の命令サンプルを生成します (図 4)。


図 4. ドメイン命令サンプル

ドメイン・シード・タスクと指示サンプルには類似性があります。これらはそれぞれ ChatGPT* プロンプトとその結果の出力であり、一方が他方に影響を与えると考えることができます。

タイトルとURLをコピーしました