AI・機械学習
中級

Flower(フェデレーテッド学習フレームワーク)(フラワーフェデレーテッドガクシュウフレームワーク)

Python製のオープンソースフェデレーテッド学習フレームワーク。LLMのLoRAアダプタ集約からスマートフォン分散学習まで対応し、2025年時点で最も広く使われるフェデレーテッドLLM実装基盤。

0 回閲覧
0 いいね
2026/6/7 更新
関連タグ
federated-learning
llm
framework
python
open-source

Flowerは「フェデレーテッド学習をシンプルに」というビジョンのもと、2020年にCambridge大学グループが公開したPython製フレームワーク。2025年時点でGitHub Stars 5,000+、商用採用事例50社以上を持ち、フェデレーテッドLLM実装のデファクトスタンダードとなっている。

アーキテクチャ概要

Flowerはサーバ・クライアント分離設計を採用する。

[FlowerServer]
  └─ Strategy (FedAvg/FedProx/SCAFFOLD等)
  └─ ServerApp: ラウンド管理・集約ロジック

[FlowerClient] × N
  └─ NumPyClient / FlowerClient
  └─ ローカルモデル (PyTorch/HF PEFT等)
  └─ gRPC通信 → サーバへ重み差分送信

主要コンポーネント

コンポーネント役割設定例
ServerApp集約・ラウンド管理flwr.server.ServerApp
ClientAppローカル学習・評価flwr.client.ClientApp
Strategy集約アルゴリズムFedAvg(fraction_fit=0.1)
Simulation仮想クライアント実行flwr.simulation.run_superlink
SuperLink本番通信エンドポイントTLS+認証対応

LLMとの統合方法

Hugging Face PEFT + Flowerの典型構成

# クライアント側 (簡略)
from flwr.client import NumPyClient
from peft import get_peft_model, LoraConfig

class LLMClient(NumPyClient):
    def __init__(self, model, train_data):
        self.model = get_peft_model(model, LoraConfig(r=8, ...))
        self.train_data = train_data

    def fit(self, parameters, config):
        # LoRAパラメータをFlower形式で受け取り
        set_params(self.model, parameters)
        # ローカル学習
        train(self.model, self.train_data, epochs=1)
        return get_params(self.model), len(self.train_data), {}

Flower Simulation(仮想フェデレーテッド環境)

実際のネットワークなしで100+クライアントを単一マシンでシミュレート可能。

  • Ray バックエンド: マルチプロセス並列でクライアントを仮想化
  • GPU共有: 複数仮想クライアントが1台のGPUをシェア
  • 速度: 100クライアント×Llama 3 8B LoRAを4枚A100で1ラウンド約20分

バージョン別機能追加履歴

バージョンリリース主要追加機能
1.0 (2022)2022年6月基本FedAvg・シミュレーション
1.5 (2023)2023年9月SuperLink本番通信・TLS認証
1.8 (2024)2024年3月LLM PEFTサンプル・FlexLoRA
1.10 (2024)2024年9月非同期集約・グローバルDP
1.12 (2025)2025年2月Llama 3公式チュートリアル・FedLoRA改善

Flowerの競合比較

フレームワークStar数LLM対応本番実績学習コスト
Flower5.2k高高低
FedML3.4k高中中
PySyft9.1k中中高
OpenFL0.8k中低高
FATE5.7k低高(中国)高

よくある質問(FAQ)

Q1: Flowerはオンプレ環境でも使えるか? A: SuperLinkを自社サーバに立てることでクラウド不要のオンプレ構成が可能。Docker Composeで5分でデプロイできる公式テンプレートが提供されている。

Q2: FlowerはDifferential Privacyを内蔵しているか? A: Flower自体はDPを内蔵しないが、PythonのOpacusライブラリと組み合わせることでDP-SGDを適用できる。flwr-1.12からOpacus統合の公式サンプルが追加された。

Q3: 本番環境での認証・セキュリティは? A: SuperLinkはTLS相互認証(mTLS)をサポート。クライアント証明書ベースでなりすましを防止する。追加でgRPCインターセプタでカスタム認証も実装可能。

まとめ

  • FlowerはフェデレーテッドLLMファインチューニングの最有力フレームワーク
  • HF PEFTとの統合でLoRAアダプタ集約が容易
  • Simulationモードで本番前の大規模検証が可能
  • 2025年はLlama 3 + Flowerの組み合わせが事実上の標準スタック
この記事について
カテゴリーAI・機械学習
難易度中級
作成日2026/6/7