BERTの学習 対 GPTの生成 文章分類で精度が高いのはどちらか

TexAIntelligenceに搭載されている事前学習済みモデルISID-BERTをファインチューニングした場合と、学習を行わずにGPT系の生成を行った場合、分類タスクにおいてどちら方が精度が出るのかを自社データで検証します。

はじめに

TexAIntelligence

ベースラインとしては、AITCで開発している文章活用AIソリューションTexAIntelligenceを用います。 TexAIntelligence には、日本語の認識精度向上のために、ISIDが自社でチューニングを行ったalbertモデル(ISID-BERT)が搭載されています。

TexAIntelligenceとは isid-ai.jp

Azure OpenAIサービス

この実験では、Azure OpenAIサービス(https://learn.microsoft.com/ja-jp/azure/cognitive-services/openai/overview)を利用して、GPT3の中でも最もハイコンテキストを理解できる"text-davinci-003" 、対話的に解くChatGPTとして "gpt-3.5-turbo" 、テキスト埋め込みに "text-embeddings-ada-002" を用います。 テキストの埋め込みは、従来の学習方法である埋め込みを簡単な分類器で学習する方法で利用します。

補足
AzureのOpenAIサービスを利用する場合、入力のpromptに使った情報は学習されません。

In-Context Learning

in-context Learning (ICL) は、大規模言語モデルを再学習せず、入力だけから大規模言語モデル内部で獲得した表現により予測(生成)させる方法です。 ICLでは精度を高めるために、promptに工夫 (prompt engineering) を要します。

プロンプトの例

タスクの回答例を一つだけプロンプト内に提示するone-shot learningの場合

タスク:人事管理システムPOSITIVEに対する問い合わせメールの分類
テキスト分類してください。

ラベル
[人事, 給与,インフラ,導入関連,就業,就業WF,モバイル,システム管理,ログイン,タレマネ,マイナンバー管理,ビジネスプロセスオートメーション,マイナンバー申請]

例題
テキスト:{text}
ラベル:{label}

テキスト: {text}
ラベル:

実験設定

データセット紹介

不均衡な15クラス分類問題を扱います。 データはISIDが提供する人事給与、勤怠システムPOSITIVEへ来る問い合わせメールを対象にします。 問い合わせメールがPOSITIVEのどの機能に対する質問かを分類するタスクです。

ラベル名は問い合わせ時にユーザーが選択肢から選んだものを用います。
評価指標は単純な精度になります。

種類 数量
訓練 4853
評価 50
テスト 1226

不均衡の具合として、15クラス中2クラスで全体の75%を占めます。
データセットにはそれぞれクラス比率を一定に保たせています。

ファインチューニングの実験

TexAIntelligenceの学習機能を使用して、データセットをもとにISID-BERTをファインチューニングします。

GPTを用いた実験の進め方

金額が高くならないように最初は評価データ50件でおこないます。
訓練データを使って、promptを作ります。
具体的には、例やラベル説明をするために利用します。
評価で一定の精度に達したら、テストデータで評価します。
一定の精度に達しない場合はテストデータを利用しません。

比較手法

比較は以下の7つの項目でおこないます。

  1. albert (TexAIntelligence)
  2. text-embeddings-ada-002 + ガウス過程分類
  3. ゼロショット分類(Zero-Shot Learning)
  4. 少数例つき分類(Few Shot Learning)
  5. クラス説明付き分類(k-shot Learning with Class Explanation)
  6. ステップバイステップ分類(ZSL + CoT(text simplification) )
  7. 少数例+クラス説明つき分類

1と2は従来の学習方法になります。
3~7はpromptの設計によるIn-Context Learningになります。
5のクラス説明付き分類は各クラスがどんなクラスかを詳細に記述する方法です。
6のステップバイステップ分類は文章をシンプル化したあとに分類する方法です。

各手法のプロンプトや試行錯誤の様子は別記事で紹介します。
ここでは、最終結果と考察を述べます。

結果

実験の結果になります。 プロンプトエンジニアリングは半日実施しました。

手法 評価 テスト
albert(TexA) - 81.2%
Embedding+GP分類 - 82.4%
ゼロショット分類 20% -
少数例つき分類 28% -
クラス説明付き分類 34% -
CoT(テキスト平滑化)分類 34% -
クラス説明付き+少数例つき分類 66% 57.9%

考察

ISID-BIRTをファインチューニングする方法を含む、従来の学習の方が短時間ではるかに高い精度が出るという結果になりました。 メール文章は顧客情報なので公開できませんが、GPT系の生成では製品の詳細を知らないとクラスが分からないようでした。 また、GPT系にPOSITIVEを知っているか聞いてみましたが、知らないようでした。
つまりGPT系では、POSITIVEに対する知識はなく、一般的な人事給与、勤怠システムの知識とpromptの説明から分類を試みたことになります。 しかし、高精度で分類を行うには情報が足りないようです。

まとめ

BERT系のファインチューニングとGPT系の生成(in-context Learning)による分類でどちらが精度が高いのか自社データを使って検証しました。
実験結果的には、GPT系の生成ではなく、従来の学習ベースの方法の方が精度が高いという結果になりました。
一方で、GPT4ではプロンプトのトークン数が大幅に増加し、POSITIVEの説明データを大量にインプット可能になります。 これはGPT4が人事システムPOSITIVE固有のドメイン知識が補完でき、精度が逆転することが考えられます。
また、情報参照型分類のReAct手法を用いることで精度改善が見込めます。 今後も検証を進めていきたいです。

執筆
AITC 製品開発グループ
太田 真人