Skip to main content
1
“BloombergGPT: A Large Language Model for Finance”
Yuta Sawada
書誌情報
● 論文: https://arxiv.org/abs/2303.17564
● 発行: Mar 2023
● 概要
○ BloombergGPTは、金融特化型のデータを含む約5690億トークンのデータセッ
トで学習された500億パラメータのLLM
○ 財務タスク、汎用的なLLMベンチマーク共に高い精度を誇る
背景
汎用的なLLMがあふれる中で、ドメイン特化型のLLMを開発したい
● 1750億パラメータのGPT-3に続き、Gopher(2800億)、PaLM(5400億)、
Megatron(1兆)などの大規模言語モデル(LLM)が開発
● いずれも幅広いトピックとドメインをカバーするデータセットでトレー
ニングされた汎用的なLLMに焦点が当てられている
● 金融は、NLP技術が特に重要な分野であり、センチメント分析などの金
融固有のタスクが多く存在する
● 金融ドメインに焦点を当てたLLMはまだ開発・評価されていない
BloombergGPT
汎用的かつ金融ドメインに特化したハイブリッドのLLM
● モデル: 金融ドメインと一般のデータソースの両方を使用して学習した500億
パラメータのLLM
● 学習データ:従来のwebスクレイピングのものとは異なり、信頼性のあるソー
スからのキュレーションしたデータを大量に含む7000億トークンのコーパス
● 評価:金融NLPベンチマークと汎用的なLLMベンチマークの両方で高精度
● モデル構築の課題:膨大な計算を最適化するために、GPT-3やBLOOMの
取り組みの一環として開発された既存のコードを活用
データセット
FinPile:Bloombergが独自に作成した金融データを含むデータセット
● Financial Data(全体の約半分を占める)
○ Web: 全体の42% (スクレイピングにより)
○ News: bloombergのニュース記事を除くす
べての記事
○ Filing: 公開の財務諸表
○ Press: 金融のプレスリリース
○ Bloomberg: bloombergのニュース記事
(0.7%)
● Public Data(公開されているデータセット)
○ The Pile: GPTJ, GPT-neoX等
○ C4: T5
○ Wikipedia: 2022/7/1の英語のwikipedia
Tokenization
Bloomberg Tokenizer: 金融データのため独自のトークナイザーを開発
● GPT-2など従来のトークナイザーの問題点
○ 数字が、個別に認識されない
● Bloomberg Tokenizer
○ Unigramトークナイザーを実装し、The Pileを分割してトレーニング
○ 数字を個別に認識できる&マルチワードトークンに対応
● Unigram トークナイザー
○ テキストを単語や文字などの独立した単位に分割するトークン化手法 (↔
BPEやWordPiece)
モデルのアーキテクチャ
BLOOMのアーキテクチャに基づいたDecoderのみの言語モデル
● BLOOM
○ パラメータ数: 1760億
○ 70層のtransformerのDecoder
● BloombertGPT
○ パラメータ数: 500億
○ 70層のtransformerのDecoder
● Decoderブロック
○ SA: Multi Head Attention
○ LN: layer-normalization
○ FFN: Feed Forward Network
モデルの詳細
Chinchillaのスケーリング則に基づいてモデルのサイズ決定
● 40GBのA100 GPUで$1.3M(≒2億
円)の予算
● Chinchillaの方程式に当てはめる
○ パラメータ: 52.993B
○ トークン: 1111.112B
● 700Bトークンのデータセットは小
さいが、これ以上金融ドメインのデ
ータセットを追加することは困難
● 入力トークン数: 2048
● Optimizer: AdamW
学習リソースと最適化手法
平均して102 TFLOPsを達成
● 学習リソース(AWS Sagemaker)
○ p4d.24xlarge instanceを使用
○ 64 × 8 Nvidia 40GB A100 GPU → 合計512GPU
● 最適化手法
○ ZeRO Optimization: 複数のGPUに分割
○ MiCS: パブリッククラウド上で巨大なモデルをトレーニングする際の
低通信モデル並列戦略
○ Activation Checkpointing: アクティベーションを削除
○ Mixed Precision Training: 順方向および逆方向のパスはBF16, パラメー
タはFP32
○ Fused Kernels: 単一のGPUで複数の計算の共通化
学習
ステップ139,200(53日)のチェックポイントを最終モデルとして選択
● 1エポックの約80%で終了
○ 5690億トークンを使用
● 青からオレンジ
○ 学習率を2/3に
(以下効果なし)
● オレンジから緑
○ 学習率を半分に
○ ドロップアウトを追加
● 緑から赤
○ 学習率を半分に
評価概要
金融のタスクと一般的なタスクの二軸で評価(特殊なプロンプトは×)
● ベンチマーク
○ HELM、SuperGLUE、MMLU、およびGPT-3スイートなど
● 比較モデル
○ GPT-NeoX(20B), OPT66B, BLOOM176B, (GPT-3 175B)
評価(Financial Task)
従来の金融のベンチマークとBloomberg独自のベンチマークを作成
● 外部のFinancial Task(FLUEベンチ
マークとConvFinQAデータセット)
○ FPB(センチメント分類)
○ FiQA SA(センチメント予測)
○ ConvFinQA(質疑応答)
○ Headline(二値分類)
● 内部のFinancial Task(bloomberg
が作成)
○ センチメント分析
○ NER(固有表現抽出)
評価結果(Financial Task)
Bloombergがほとんどのタスクで最も優れたスコアを記録
● 外部のFinancial Task
○ BloombergGPTが4/5のタスクで1
番優れている
● 内部のFinancial Task
○ BloombergGPTが全てのタスクで
他のモデルに比べて大幅に優れて
いる
● GPT-3が比較されていないのが気にな
る
評価(Standard NLP Task)
4つの分野で一般的なタスクを評価するベンチマークを用意
● BIG-Bench Hard
○ BIG-benchの最も難しいタスクのサブセット
● 知識評価
○ 学習した情報を用いて回答できるか
● 読解力
○ プロンプトに含まれる情報に基づいて正しい回答を生成できるか
● 言語タスク
○ 曖昧性の解消、文法、含意を評価するタスクなど
評価結果①(Standard NLP Task)
PaLM 540Bには負けるものの、BLOOM176Bよりは全体的に高精度
● BIG-Bench Hard
○ 大きなサイズのモデルには負け
るが、同サイズのモデルでは最
高精度
評価結果②(Standard NLP Task)
GPT-3には負けるものの、BLOOM176Bよりは全体的に高精度
● 知識評価
○ BLOOM176Bと僅差、GPT-3には
及ばず
● 読解力
○ GPT-3の次に高精度
● 言語タスク
○ 読解力と同様、GPT-3の次に高精
度
BloombergGPTの活用
金融ドメイン特化型のLLMならではの利点を生かした活用方法
● Bloomberg Query Language(BQL)の作成
○ 自然言語をBQLに変換し、金融データにアクセスすることができる
● ニュース記事の見出しの提案
○ ニュース記事の各セクションごとの短い見出しを作成
● 金融に関する質問応答
○ 例) 企業のCEOを正確に予測
まとめ
Bloombergが開発したドメイン特化型のLLM「BloombergGPT」
● 金融ドメインを半分程含む7000億トークンの大規模データセット
FinPileを作成
● FinPileのための独自のトークナイザーを開発
● BLOOMのアーキテクチャをベースにモデルを53日間 512GPUで学習
● 金融ドメインなタスク、汎用的なタスク共に高精度を誇る
● BQLの作成などドメイン特化LLMならではの応用が可能