今日の優良食堂
実際に入れて動かして書いた、今日の一膳
ギット飯が代わりに導入・実行・コードまで確かめました
今日の優良食堂 · ギット飯が代わりに導入・分析

AI4Finance-Foundation/FinGPT

金融機関向けのオープンソース大規模言語モデルで、株価予測や感情分析などのタスクに対応しています。

RTX 3090が1台あれば、17ドルでLoRAによる金融特化モデルの微調整を試せます。BloombergGPTが300万ドルと53日をかけて学習したのに対し、FinGPTは300ドル台で何度も再学習を回せる仕組みなので、金融ニュースやSNS投稿の感情分類、来週の株価方向予測、企業間関係の抽出まで、手元のデータで実際に検証しながら試行錯誤できます。HuggingFaceで公開済みのモデルとテストコードが揃っているため、今日の手持ちのデータをそのまま投げて、自分だけのロボアドバイザーづくりを今すぐ始められます。

01 / 概要
何をするものか一文で言うと
ひとことで金融機関向けのオープンソース大規模言語モデルで、株価予測や感情分析などのタスクに対応しています。

FinGPTは、金融分野向けの大規模言語モデル(LLM)を軽量なLoRAファインチューニングで作るための、研究プロジェクト集です。感情分析・株価予測(FinGPT-Forecaster)・財務レポート分析・RAG・為替情報分析など、複数のサブプロジェクトをひとつのリポジトリにまとめています。学習済みモデルはHuggingFaceの「FinGPT」組織で公開されています。

02 / 構造
どう動くのか中核のしくみ
読み方動きの流れを図と一緒にほどきました。

中核は、Llama2やChatGLM2などのベースLLMに対してPEFT(peft)ライブラリのLoRAを適用し、少ないパラメータだけを金融データで再学習する仕組みです。例えばFinGPT_Forecasterのapp.pyでは、AutoModelForCausalLMでmeta-llama/Llama-2-7b-chat-hfを読み込み、PeftModel.from_pretrainedでFinGPT側のLoRAアダプタ(fingpt-forecaster_dow30_llama2-7b_lora)を重ねています。株価データはyfinance、ニュースはfinnhub-pythonのAPIから取得し、プロンプトに整形してモデルに渡し、翌週の株価予測テキストを生成します。gradioでWeb UI化されており、HF_TOKENとFINNHUB_API_KEYの環境変数が必須です。FinGPT_Benchmarkディレクトリにはtrain_lora.pyやconfig.json、各種ベンチマーク(fpb、fiqa、nerなど)のスクリプトがあり、複数の金融タスクでLoRAモデルを訓練・評価できます。FinGPT_RAGはMicrosoftのDeepSpeed学習コード(main.py)を流用し、指示チューニング(instruction tuning)による感情分析モデルを訓練する構成です。全体として「巨大モデルをゼロから訓練せず、既存LLM+LoRA+金融データ」で低コスト適応するという設計思想が一貫しています。

03 / 体験
入れるとこんな体験になりますギット飯が実際にたどった順序
所要ギット飯が実際に導入・実行しながらたどった順序です。
  1. STEP 01

    READMEの手順通りgit cloneしてpip install -r requirements.txtを実行すると、torch、transformers、peftなど多数の重い依存関係がインストールされます。

  2. STEP 02

    FinGPT_Forecasterを動かすにはHF_TOKENとFINNHUB_API_KEY環境変数の設定が必須で、未設定だとapp.py実行時にValueErrorで即座に停止します。

  3. STEP 03

    meta-llama/Llama-2-7b-chat-hfはHuggingFace上でアクセス許可が必要なゲート付きモデルなので、事前に利用申請を通していないとモデル読み込みで失敗します。

  4. STEP 04

    GPUなしで動かそうとするとdevice_map autoやtorch.float16指定のモデル読み込みが極めて遅い、または実質的に動作しない可能性が高いです。

  5. STEP 05

    FinGPT_Benchmarkのtrain_lora.pyやtrain.shを試す場合は、data/download.pyで金融データセットを別途取得してからでないと訓練データが揃いません。

  6. STEP 06

    FinGPT_RAGのtraining以下はMicrosoft DeepSpeedのコードをベースにしており、deepspeedパッケージのインストールとマルチGPU環境が前提になっている点に注意が必要です。

04 / 成果物
何が手に入るのか導入後に手元に残るもの

手元で完走できれば、指定した株式銘柄について「ポジティブな材料」「懸念材料」「翌週の株価予測と分析」という形式のテキストをgradio画面上で得られます。また、FinGPT_Benchmark側を回せば、感情分析やNER、金融QAなど複数のベンチマークタスクにおけるLoRAファインチューニング済みモデルの評価スコアが得られます。ただしこれらはいずれもモデル重みのダウンロードやAPIキー、GPUリソースが揃って初めて到達できる結果です。

05 / 注意
ここは先に知っておいてください先に知っておくとよいこと
正直なところ誰にでも合うとは言いにくいところです。
01

Llama-2-7b-chat-hfやChatGLM2など複数のノートブック・スクリプトがゲート付きモデルやAPIキーへの依存を前提としており、無償・無登録では試せない部分が多いです。

02

fingpt/FinGPT_Othersやchatgpt-trading-v2以下にはpyfolioの古いテストコード(nose_parameterizedやpandas.util.testingなど廃止済みAPI依存)が含まれており、現行のpandasバージョンでは動かない可能性があります。

03

サブプロジェクトごとにrequirements.txtのtorch、transformers、peftなどのバージョンが微妙に異なっており、リポジトリ全体を一つの環境にまとめてpip installすると依存関係の衝突が起きる懸念があります。

04

README冒頭で示されているBasic Usageのコード例は断片的で、実際に動く完結したコードはSETUP.mdや各サブディレクトリのapp.py・ノートブックを個別に読む必要があります。

06 / 結論
ギット飯の結論食べてみる価値のある一膳か
ギット飯の最終判断優良食堂

FinGPTは、単一の製品というより「LoRAで金融LLMを安く作る」という手法を実証する研究サブプロジェクト群の集合体です。金融ドメインのLLMファインチューニングを学びたい研究者や、既存のHuggingFace公開モデル(fingpt-forecaster、fingpt-sentimentなど)をそのまま試してみたいエンジニアには向いています。一方、すぐに使える単一アプリケーションを期待する人には不向きで、実行にはゲート付きモデルへのアクセス権、複数APIキー、GPU、サブプロジェクトごとに異なる依存関係の調整が必要です。ファイル構成とapp.py・train_lora.py・requirements.txtの中身から見る限り、コード自体は実在し筋も通っていますが、環境構築の手間は相応に大きいと判断できます。

今日の残りの一膳
SUBSCRIBER LIBRARY
これまでに検証した優良食堂を一堂に

4 つの関門を通った優良食堂がすべてバックナンバーに集まっています。いちばん新しい一膳はどなたでも無料で読め、それより前の優良食堂の検証の根拠・詳しい解説は ギット飯 プレミアムのご購読ですでに開いています。

優良食堂バックナンバー →
リポジトリ詳細🧪 ひと言で味見する