FinGPT 完全ガイド — オープンソース金融 LLM の仕組みと実践

ローカル LLM を金融取引の意思決定サポートに応用する」で紹介した FinGPT について、アーキテクチャから実践的な利用方法まで詳しく解説します。BloombergGPT の学習コストが約 270 万ドル(約 4 億円)だったのに対し、FinGPT は 17〜300 ドルで同等以上の精度を実現するオープンソースの金融特化 LLM フレームワークです。

FinGPT とは

FinGPT は AI4Finance Foundation(米国 501(c)(3) 非営利法人)が開発・維持するオープンソースプロジェクトです。Columbia University と NYU Shanghai の研究者が中心となり、2023 年 6 月に初版論文(arXiv:2306.06031)を公開しました。

開発の背景

Bloomberg が 2023 年に公開した BloombergGPT(50B パラメータ)は、金融特化 LLM の可能性を示しました。しかし、モデルは非公開で、学習には 53 日間と約 270 万ドルが必要でした。

FinGPT はこの問題に対して「金融 AI の民主化」を掲げ、以下を実現しています。

  • オープンソース(Apache 2.0 / MIT ライセンス)
  • LoRA によるパラメータ効率的なファインチューニング
  • 1 台の GPU(RTX 3090)で学習可能
  • 学習コスト 17〜300 ドル(BloombergGPT 比で約 1 万分の 1)
項目BloombergGPTFinGPT
パラメータ数50B7B〜13B(LoRA)
学習コスト約 270 万ドル17〜300 ドル
学習期間53 日数時間
公開状況非公開オープンソース
感情分析(FPB F1)51.0%88.2%

感情分析では FinGPT が BloombergGPT を大幅に上回っています。 これは LoRA によるタスク特化のファインチューニングが、大規模な事前学習よりも効率的にドメイン知識を獲得できることを示しています。

5 層フルスタックアーキテクチャ

FinGPT は単一のモデルではなく、データ収集からアプリケーションまでをカバーする 5 層フレームワークです。

[アプリケーション層]  ロボアドバイザー、アルゴリズム取引、レポート分析
        |
[タスク層]           感情分析、NER、関係抽出、QA、ヘッドライン分類
        |
[LLM 層]            LoRA / QLoRA / RLSP によるファインチューニング
        |
[データエンジニアリング層]  リアルタイム NLP 処理、ノイズ除去(FinNLP)
        |
[データソース層]      ニュース・SNS・決算書・市場データ

ベースモデルの選択肢

FinGPT は特定のモデルに依存せず、複数のオープンソースモデルに対応しています。

モデルパラメータ主な用途
LLaMA2-13B13B英語金融データ(最高精度)
LLaMA3-8B8B最新マルチタスク版
ChatGLM2-6B6B中国語金融テキスト
Falcon-7B7B代替英語モデル
BLOOM-7B.17B多言語対応
InternLM-20B20B大規模高精度版

LoRA の仕組み:なぜ低コストで高精度か

FinGPT の核心技術は LoRA(Low-Rank Adaptation) です。ベースモデルの重み(数十億パラメータ)を凍結したまま、小さなアダプタ行列だけを学習します。

パラメータ削減の効果

ベースモデル(LLaMA2-13B): 約 60 億パラメータ(凍結)
LoRA アダプタ:              約 367 万パラメータ(学習対象)
→ 全体の 0.06% のみを学習

FinGPT の LoRA 設定

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# FinGPT で使用されている LoRA ハイパーパラメータ
lora_config = {
    "r": 8,              # LoRA ランク
    "lora_alpha": 16,    # スケーリング係数
    "lora_dropout": 0.1, # ドロップアウト率
    "target_modules": [  # 適用対象のモジュール
        "q_proj", "v_proj",       # アテンション層
        "gate_proj", "up_proj"    # フィードフォワード層
    ]
}

この設定により、RTX 3090 1 枚で数時間のファインチューニングが可能です。

RLSP:株価を報酬シグナルに使う独自手法

FinGPT は RLHF(人間によるフィードバック)の代わりに、RLSP(Reinforcement Learning with Stock Prices) という独自手法を提案しています。

仕組み

ニュース記事 → LLM が感情を予測 → 実際の株価変動と比較
                                       ↓
                              株価変動を「報酬シグナル」として使用
                                       ↓
                              LoRA パラメータを更新

人間のアノテーションなしで、市場データから自動的に学習データを生成できるのが特徴です。

効果

手法精度Macro-F1
ChatGPT(ゼロショット)63.4%61.7
FinBERT71.2%69.9
FinGPT(LoRA-SFT のみ)78.8%77.3
FinGPT(SFT + RLSP)82.1%80.9

RLSP の追加により、SFT のみの場合と比べて +3.3 ポイントの精度向上が得られています。

対応タスクと性能

得意なタスク

FinGPT が最も強いのは感情分析ヘッドライン分類です。

タスクデータセットFinGPT v3.3GPT-4BloombergGPT
感情分析FPB88.2%86-88%51.0%
感情分析FiQA-SA87.4%86-88%75.1%
感情分析TFNS90.3%n/an/a
ヘッドライン分類Gold/Oil95.5%86.0%n/a

感情分析では GPT-4 と同等以上の精度を、13B パラメータのローカルモデルで実現しています。

苦手なタスク(重要な注意点)

一方で、数値推論を伴うタスクでは著しく性能が低下します。

タスクFinGPTGPT-4人間
金融 QA(ConvFinQA)28.4%76%91%
金融 QA(FLARE-FinQA)3.8%69%89%
株価予測(精度)47〜52%

株価予測の精度は 47〜52% で、ランダム(50%)とほぼ同等です。 また、強気バイアス(上昇を予測しがち)が確認されており、下落局面でのシグナルが遅れる傾向があります。

実用的な使い方

これらの特性を踏まえると、FinGPT の最適な活用法は明確です。

活用法適性理由
ニュースの感情分析最適F1 88〜90% の高精度
ヘッドライン分類最適95% 以上の精度
市場センチメントの定量化適切大量テキストの自動処理
決算書の要約注意が必要数値の正確性が低い
売買シグナルの生成非推奨精度がランダムと同等

FinGPT は「売買判断を下す AI」ではなく、「情報収集・整理を効率化するツール」として使うのが正解です。

バージョンの進化

v1〜v2(2023 年前半):基盤構築

初版は ChatGLM2 と LLaMA2 の LoRA ファインチューニング版として登場。v2 では FinNLP と連携し、インターネット規模の金融データを自動収集するパイプラインを確立しました。

v3 シリーズ(2023 年後半〜):現在の主力

バージョンベースモデル特徴FPB F1
v3.1ChatGLM2-6B + LoRA中国語対応
v3.2LLaMA2-7B + LoRA軽量英語版
v3.3LLaMA2-13B + LoRA最高精度88.2%
v3.3 MTLLaMA2-7B 等8 タスク同時対応

LLaMA3 対応(2024 年〜)

2024 年 10 月に fingpt-mt_llama3-8b_lora(LLaMA3-8B ベースのマルチタスクモデル)が公開されました。LLaMA3 の改善されたコンテキスト長と命令追従能力を活用しています。

最新研究(2024〜2025 年)

時期論文内容
2024 年 12 月arXiv:2412.10823ニュース拡散を考慮した株価予測(精度 +8%)
2025 年 5 月arXiv:2505.19819FinLoRA: 金融 LoRA 手法の包括的ベンチマーク
2025 年 7 月arXiv:2507.08015FinGPT の能力と限界の体系的評価

HuggingFace 公開モデル一覧

FinGPT の LoRA アダプタは HuggingFace で公開されています。

モデルベース用途
fingpt-sentiment_llama2-13b_loraLLaMA2-13B感情分析(最高精度)
fingpt-mt_llama3-8b_loraLLaMA3-8Bマルチタスク(最新)
fingpt-forecaster_dow30_llama2-7b_loraLLaMA2-7BDOW30 株価予測
fingpt-mt_llama2-7b_loraLLaMA2-7Bマルチタスク軽量版
fingpt-mt_chatglm2-6b_loraChatGLM2-6B中国語版
fingpt-mt_falcon-7b_loraFalcon-7BFalcon 版
fingpt-mt_bloom-7b1_loraBLOOM-7B.1多言語対応
fingpt-sentiment_internlm-20b_loraInternLM-20B感情分析大規模版

ローカル環境での実行方法

方法 1: Python(PEFT + Transformers)

最も直接的な方法です。HuggingFace のモデルをそのまま読み込めます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig

# 4-bit 量子化でメモリ削減
bnb_config = BitsAndBytesConfig(load_in_4bit=True)
base_model = AutoModelForCausalLM.from_pretrained(
    "meta-llama/Llama-2-13b-hf",
    quantization_config=bnb_config,
    device_map="auto"
)
model = PeftModel.from_pretrained(
    base_model,
    "FinGPT/fingpt-sentiment_llama2-13b_lora"
)
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-2-13b-hf")

prompt = """Instruction: What is the sentiment of this news?
Please choose an answer from {negative/neutral/positive}.
Input: Stocks rallied on strong earnings reports.
Answer: """

inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=10)
print(tokenizer.decode(outputs[0]))
# → positive

方法 2: GGUF 変換 → Ollama

Ollama はネイティブに LoRA アダプタをサポートしていないため、事前にマージ・変換が必要です。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 1. アダプタをベースモデルにマージ
python merge_lora.py \
  --base_model meta-llama/Llama-2-13b-hf \
  --lora_model FinGPT/fingpt-sentiment_llama2-13b_lora \
  --output_dir ./fingpt-merged

# 2. GGUF 形式に変換(llama.cpp を使用)
python llama.cpp/convert_hf_to_gguf.py ./fingpt-merged \
  --outtype q4_K_M \
  --outfile fingpt-sentiment-13b-q4.gguf

# 3. Ollama の Modelfile を作成
cat > Modelfile << 'EOF'
FROM ./fingpt-sentiment-13b-q4.gguf
PARAMETER temperature 0.1
SYSTEM "You are a financial sentiment analyst."
EOF

# 4. Ollama にインポート
ollama create fingpt-sentiment -f Modelfile

# 5. 実行
ollama run fingpt-sentiment "What is the sentiment of: Apple reported record earnings"

Qwen3 で日本語金融 LoRA を自作する(個人投資家向け)

前回の記事で紹介した構成では、Qwen3:14b をベースに FinGPT の LoRA 手法を適用する方法を推奨しました。ここで重要なのは、FinGPT の完成品(LoRA アダプタ)をそのまま Qwen3 に載せるわけではないという点です。

なぜ FinGPT の LoRA をそのまま使えないのか

FinGPT が公開している LoRA アダプタ(HuggingFace 上の重みファイル)は、LLaMA や Falcon 等の特定のベースモデル向けに学習されています。LoRA アダプタはベースモデルのアテンション層やフィードフォワード層に「差し込む」形で動作するため、アーキテクチャが異なる Qwen3 にはそのまま適用できません

FinGPT 公式 LoRA アダプタ:
  LLaMA2-13B 専用 → Qwen3 には載せられない(アーキテクチャが違う)

FinGPT の学習手法(スクリプト・設定・データ形式):
  汎用的 → Qwen3 にも適用できる

具体的にやること

FinGPT から借りるのは**学習の仕組み(レシピ)**であり、完成品(料理)ではありません。

FinGPT から借りるもの自分で用意するもの
学習スクリプト(training/ ディレクトリ)ベースモデル: Qwen3:14b
LoRA の設定(ランク 8、α=16 等)学習データ: 自分の日本語金融データ
データの前処理パイプライン売買日誌、日本語ニュース、決算短信
評価手法・ベンチマーク

手順は以下の通りです。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# 1. FinGPT のリポジトリからスクリプトを取得
git clone https://github.com/AI4Finance-Foundation/FinGPT.git

# 2. 学習スクリプトのベースモデル指定を変更
#    LLaMA2-13B → Qwen3:14b に差し替え
#    (設定ファイルの model_name を変更するだけ)

# 3. 学習データを自分の日本語金融データに差し替え
#    FinGPT のデータ形式(instruction / input / output)に合わせて整形
#    例: 売買日誌 → 感情分析の学習ペアに変換

# 4. LoRA ファインチューニングを実行
#    LoRA の設定(ランク、α、ドロップアウト)はそのまま使える
#    RTX 3090 1 枚、数時間で完了

# 5. 完成した LoRA アダプタを Ollama で使用
#    GGUF 変換 → Modelfile → ollama create

学習データの例

FinGPT の感情分析では「ニュース文 → positive/negative/neutral」の形式で学習します。日本語版では以下のように売買日誌やニュースを整形します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
[
  {
    "instruction": "このニュースの市場センチメントを判定してください。{negative/neutral/positive} から選んでください。",
    "input": "トヨタ自動車、通期営業利益が過去最高を更新。円安効果と北米販売好調が寄与。",
    "output": "positive"
  },
  {
    "instruction": "このニュースの市場センチメントを判定してください。{negative/neutral/positive} から選んでください。",
    "input": "日銀、追加利上げを決定。政策金利を0.5%に引き上げ。市場では円高進行。",
    "output": "negative"
  },
  {
    "instruction": "この売買判断を評価してください。",
    "input": "2025-01-15 7203トヨタ 買い 2,800円 理由:決算好調、円安トレンド継続と判断",
    "output": "妥当な判断です。ただし為替リスクに注意。円安反転時の損切りラインを設定してください。"
  }
]

このデータが数百〜数千件あれば、LoRA ファインチューニングで日本市場に特化したモデルを作成できます。売買日誌を継続的に記録し、学習データとして蓄積していくのが前回の記事で紹介した「循環フロー」の核心です。

AI4Finance Foundation エコシステム

FinGPT は AI4Finance Foundation が運営するエコシステムの一部です。

AI4Finance Foundation
├── FinGPT     — 金融特化 LLM(感情分析・テキスト処理)
├── FinRL      — 深層強化学習による自動取引(13,000+ Stars)
├── FinNLP     — 金融データ収集・前処理パイプライン
├── FinRobot   — マルチエージェント金融 AI プラットフォーム(4,300+ Stars)
└── FinRL-Meta — DRL ベンチマーク環境

FinRL(強化学習による取引)

FinRL は深層強化学習(DRL)で株式取引・ポートフォリオ配分・高頻度取引を自動化するフレームワークです。2025 年には FinRL-DeepSeek が追加され、DeepSeek モデルによるニュースリスク評価と強化学習を統合しています。FinRL Contest 2025 も開催されています。

FinRobot(マルチエージェント)

FinRobot は FinGPT の「単一モデル」アプローチを超え、複数の金融 AI エージェントを統合するプラットフォームです。Chain-of-Thought(CoT)で複雑な金融問題を分解し、タスクに応じた最適なモデルを動的に選択します。

役割
Financial AI Agents 層CoT で金融問題を分解
Financial LLM Algorithms 層タスクに最適なモデル戦略を選択
LLMOps / DataOps 層ファインチューニング・RAG 管理
Multi-source LLM Foundation Models 層複数 LLM への統一アクセス

FinNLP(データパイプライン)

FinNLP はインターネット規模の金融データを自動収集・キュレーションするライブラリです。FinGPT のデータエンジニアリング層のバックエンドとして機能します。

日本語・日本市場での利用

現状

FinGPT 公式ラインナップに日本語専用モデルは存在しません。主要モデルは英語(LLaMA ベース)と中国語(ChatGLM ベース)に特化しています。

日本語で使うための選択肢

方法難易度精度
BLOOM ベースモデルを使う中(BLOOM は多言語対応)
LLaMA3 ベースを使う中(LLaMA3 は多言語改善)
Qwen3 で FinGPT の手法を再現高(日本語に最適)
日本語金融データで独自 LoRA最高

推奨は Qwen3 ベースでの再現です。 Qwen3 は日本語性能がオープンソースモデル中で最も高く、FinGPT の学習スクリプトを流用して日本語金融データ(ニュース RSS、決算短信、売買日誌)で LoRA ファインチューニングできます。

PLaMo-fin-base:日本市場に特化した金融 LLM

Preferred Networks(PFN) が開発した PLaMo-fin-base は、日本の金融市場に特化した LLM です。PFN がフルスクラッチで開発した基盤モデル PLaMo(100B パラメータクラス、2 兆トークンで事前学習)をベースに、日本語金融コーパスで継続事前学習を施しています。

学習データ:

データ種別内容
中央銀行資料日銀会見・政策決定会合の議事録
金融機関レポート銀行・証券会社の公表レポート・語彙集
Wikipedia 金融記事金融分野の百科事典データ
規模約 810 万ドキュメント、約 3 億 7000 万トークン

2025 年 6 月には後継版の PLaMo Fin Prime もリリースされ、金融ベンチマーク(Japanese Language Model Financial Evaluation Harness)で GPT-4 に接近する水準に達しています。

モデルchabsa(感情分析)cma_basics(証券アナリスト)総合平均
GPT-3.5-turbo89.9852.6350.27
PLaMo-fin-base59.0
PLaMo Fin Prime93.065.862.4
GPT-493.2078.9566.07

ただし、PLaMo-fin-base / PLaMo Fin Prime は企業向けクローズドサービスとして提供されており、HuggingFace での一般公開はされていません。研究版の pfnet/nekomata-14b-pfn-qfin(Qwen 14B ベース、Tongyi Qianwen LICENSE)は公開されています。

FinGPT と PLaMo-fin-base の補完関係

FinGPT と PLaMo-fin-base は競合ではなく、明確な補完関係にあります。

観点FinGPTPLaMo-fin-base
対象言語英語・中国語日本語
対象市場米国・グローバル(NYSE, NASDAQ)日本市場(東証、日本法令・規制)
手法LoRA ファインチューニング(軽量)継続事前学習(重量級)
学習コスト17〜300 ドル大規模(非公開)
提供形態オープンソース(Apache 2.0 / MIT)企業向けクローズド
強みの源泉リアルタイムデータ + 高速 LoRA 適応日本固有の金融知識(制度・法規制・企業名)
得意タスク英語ニュース感情分析(F1 88%)稟議書作成・規制文書処理・日本語金融 QA

個人投資家にとっての使い分け:

グローバル情報(英語ニュース・米国株)
  → FinGPT(LoRA / オープンソース / 無料)

日本市場情報(日本語ニュース・日本株・決算短信)
  → Qwen3 + FinGPT の手法で自作 LoRA
  → または nekomata-14b-pfn-qfin(研究版、公開済み)

エンタープライズ(金融機関の業務利用)
  → PLaMo Fin Prime(PFN のクローズドサービス)

FinGPT の LoRA 学習パイプラインを活用して、PLaMo 系の日本語モデルや Qwen3 に金融タスク特化のアダプタを作成する、という組み合わせが個人投資家にとって最も現実的な選択肢です。

日本の金融 LLM エコシステム

PLaMo-fin-base 以外にも、日本では複数の金融特化 LLM が開発されています。

オープンソース / 研究系:

モデル開発元ベース特徴
nekomata-14b-pfn-qfinPFNQwen 14BPLaMo-fin-base の研究版。HuggingFace で公開
Stockmark-13bStockmark独自 13B企業開示情報・特許データで学習。Apache 2.0
Stockmark-100BStockmark独自 100B日本ビジネス QA で GPT-4o を上回る(90% vs 88%)
日本語金融 BERT東大 和泉研BERT約 2,700 万文の金融コーパスで追加学習。CC BY-SA 4.0

金融機関の独自開発:

モデル開発元内容
みずほ LLMみずほ FG継続事前学習 + SFT + RAG。銀行業務試験で合格水準(2025 年 12 月発表)
Llama-3.3-fintranslate-JDD-70bJapan Digital Design(三菱 UFJ 系)金融市場翻訳特化。GPT-4o を上回る翻訳品質
NRI 金融特化 LLM野村総合研究所Llama 3.1 Swallow 8B ベース。特定タスクで GPT-4o 超え

評価フレームワーク:

PFN が開発した Japanese Language Model Financial Evaluation Harness がオープンソースで公開されています。証券アナリスト試験・FP 2 級・証券外務員試験等の問題で日本語金融 LLM を評価できます。

すぐに試す方法

HuggingFace Spaces(ブラウザだけで OK)

FinGPT Forecaster にアクセスし、ティッカーシンボル(AAPL, NVDA 等)を入力するだけで予測レポートが生成されます。ただし、2025 年時点では Runtime error が発生することがあります。

Google Colab(無料 GPU)

GitHub リポジトリに初心者向け Jupyter ノートブックが提供されています。

FinGPT/
  └── fingpt/
      └── FinGPT_Inference_Llama2_13B_falcon_7B_for_Beginners.ipynb

Google Colab の T4 GPU(無料枠)でも動作可能です。

注意:同名の別プロジェクト

「FinGPT」で検索すると、フィンランド語 LLM の FinGPTarXiv:2311.05640)がヒットすることがあります。Aalto 大学等が開発したフィンランド語特化モデルで、AI4Finance Foundation の FinGPT とは全くの別プロジェクトです。

まとめ

  • FinGPT は金融特化のオープンソース LLM フレームワーク: BloombergGPT の 1 万分の 1 のコスト(17〜300 ドル)で、感情分析では同等以上の精度を実現
  • LoRA + RLSP が核心技術: ベースモデルの 0.06% のパラメータだけを学習し、株価変動を報酬シグナルとして自動学習
  • 感情分析は GPT-4 と同等(F1 88〜90%): ただし株価予測(47〜52%)や金融 QA(3〜28%)は実用水準に達していない
  • 「売買判断 AI」ではなく「情報整理ツール」として使う: ニュースの感情分析・ヘッドライン分類に最適、売買シグナル生成は非推奨
  • AI4Finance エコシステムの一部: FinRL(強化学習取引)、FinRobot(マルチエージェント)、FinNLP(データパイプライン)と連携
  • PLaMo-fin-base と補完関係: FinGPT は英語・グローバル市場、PLaMo-fin-base は日本語・日本市場に特化。個人投資家は FinGPT の学習スクリプトとデータ形式を借りて、Qwen3 + 日本語金融データで自分用の LoRA を自作するのが現実的
  • HuggingFace / Google Colab で今すぐ試せる: ローカル実行には PEFT + Transformers または GGUF 変換 → Ollama

参考