BloombergGPT: A Large Language Model for Finance
Shijie Wu, Ozan Irsoy, Steven Lu, Vadim Dabravolski, Mark Dredze, Sebastian Gehrmann, Prabhanjan Kambadur, David Rosenberg, Gideon Mann
Code Available — Be the first to reproduce this paper.
ReproduceCode
- github.com/open-finance-lab/finlorapytorch★ 54
- github.com/yangletliu/finlorapytorch★ 54
Abstract
The use of NLP in the realm of financial technology is broad and complex, with applications ranging from sentiment analysis and named entity recognition to question answering. Large Language Models (LLMs) have been shown to be effective on a variety of tasks; however, no LLM specialized for the financial domain has been reported in literature. In this work, we present BloombergGPT, a 50 billion parameter language model that is trained on a wide range of financial data. We construct a 363 billion token dataset based on Bloomberg's extensive data sources, perhaps the largest domain-specific dataset yet, augmented with 345 billion tokens from general purpose datasets. We validate BloombergGPT on standard LLM benchmarks, open financial benchmarks, and a suite of internal benchmarks that most accurately reflect our intended usage. Our mixed dataset training leads to a model that outperforms existing models on financial tasks by significant margins without sacrificing performance on general LLM benchmarks. Additionally, we explain our modeling choices, training process, and evaluation methodology. We release Training Chronicles (Appendix C) detailing our experience in training BloombergGPT.
Tasks
Benchmark Results
| Dataset | Model | Metric | Claimed | Verified | Status |
|---|---|---|---|---|---|
| arc_challenge | GPT-NeoX 20B (1-shot) | Accuracy | 45.39 | — | Unverified |
| arc_challenge | OPT 66B (one-shot) | Accuracy | 44.54 | — | Unverified |
| arc_challenge | Bloomberg GPT 50B (1-shot) | Accuracy | 48.63 | — | Unverified |
| arc_challenge | BLOOM 176B (1-shot) | Accuracy | 50.85 | — | Unverified |
| arc_easy | Bloomberg GPT 50B (1-shot) | Accuracy | 73.99 | — | Unverified |
| arc_easy | BLOOM 176B (1-shot) | Accuracy | 75.93 | — | Unverified |
| arc_easy | OPT 66B (1-shot) | Accuracy | 71.25 | — | Unverified |
| arc_easy | GPT-NeoX 20B (1-shot) | Accuracy | 70.79 | — | Unverified |
| BIG-bench (Causal Judgment) | OPT 66B (few-shot, k=3) | Accuracy | 51.87 | — | Unverified |
| BIG-bench (Causal Judgment) | GPT-NeoX 20B (few-shot, k=3) | Accuracy | 52.41 | — | Unverified |
| BIG-bench (Causal Judgment) | BloombergGPT 50B (few-shot, k=3) | Accuracy | 49.73 | — | Unverified |
| BIG-bench (Causal Judgment) | BLOOM 176B (few-shot, k=3) | Accuracy | 51.87 | — | Unverified |
| BIG-bench (Causal Judgment) | PaLM 540B (few-shot, k=3) | Accuracy | 61 | — | Unverified |
| BIG-bench (Date Understanding) | GPT-NeoX 20B (few-shot, k=3) | Accuracy | 45.6 | — | Unverified |
| BIG-bench (Date Understanding) | BLOOM 176B (few-shot, k=3) | Accuracy | 50 | — | Unverified |
| BIG-bench (Date Understanding) | OPT 66B (few-shot, k=3) | Accuracy | 49.6 | — | Unverified |
| BIG-bench (Date Understanding) | Bloomberg GPT 50B (few-shot, k=3) | Accuracy | 54.8 | — | Unverified |
| BIG-bench (Date Understanding) | PaLM 540B (few-shot,k=3) | Accuracy | 53.6 | — | Unverified |
| BIG-bench (Disambiguation QA) | PaLM 540B (few-shot, k=3) | Accuracy | 60.8 | — | Unverified |
| BIG-bench (Disambiguation QA) | GPT-NeoX 20B (few-shot, k=3) | Accuracy | 40.8 | — | Unverified |
| BIG-bench (Disambiguation QA) | Bloomberg GPT 50B (few-shot, k=3) | Accuracy | 34 | — | Unverified |
| BIG-bench (Disambiguation QA) | BLOOM 176B (few-shot, k=3) | Accuracy | 40.4 | — | Unverified |
| BIG-bench (Disambiguation QA) | OPT 66B (few-shot, k=3) | Accuracy | 40.4 | — | Unverified |
| BIG-bench (Sports Understanding) | GPT-NeoX (few-shot, k=3) | Accuracy | 53.2 | — | Unverified |
| BIG-bench (Sports Understanding) | Bloomberg GPT (few-shot, k=3) | Accuracy | 62.8 | — | Unverified |
| BIG-bench (Sports Understanding) | PaLM 540B (few-shot, k=3) | Accuracy | 80.4 | — | Unverified |
| BIG-bench (Sports Understanding) | OPT 66B (few-shot, k=3) | Accuracy | 54.4 | — | Unverified |
| CommonsenseQA | OPT 66B (1-shot) | Accuracy | 66.4 | — | Unverified |
| CommonsenseQA | Bloomberg GPT 50B (1-shot) | Accuracy | 65.5 | — | Unverified |
| CommonsenseQA | BLOOM 176B (1-shot) | Accuracy | 64.2 | — | Unverified |
| CommonsenseQA | GPT-NeoX 20B (1-shot) | Accuracy | 60.4 | — | Unverified |
| ReCoRD | OPT 66B (1-shot) | F1 | 82.5 | — | Unverified |
| ReCoRD | BLOOM 176B (1-shot) | F1 | 78 | — | Unverified |
| ReCoRD | GPT-NeoX 20B (1-shot) | F1 | 67.9 | — | Unverified |
| ReCoRD | Bloomberg GPT 50B (1-shot) | F1 | 82.8 | — | Unverified |
| WinoGrande | GPT-NeoX (one-shot) | Accuracy | 60.6 | — | Unverified |
| WinoGrande | Bloomberg GPT (one-shot) | Accuracy | 64.1 | — | Unverified |
| WinoGrande | OPT 66B (1-shot) | Accuracy | 66.1 | — | Unverified |
| WinoGrande | BLOOM 176B (1-shot) | Accuracy | 67 | — | Unverified |