Ludwigは、1つのYAML設定だけで学習・ファインチューニング・デプロイができるオープンソースの宣言的深層学習フレームワークです。表形式、テキスト、画像、音声、時系列、LLMワークフローに対応。

Ludwig preview

概要

Ludwigは、1つのYAML設定ファイルだけでカスタムモデルの構築、ファインチューニング、デプロイができるオープンソースの宣言的深層学習フレームワークです。手書きの学習ループを避けつつ、必要なときには高度な制御も維持したいユーザー向けに位置づけられています。

サイトによると、Ludwigは表形式、テキスト、画像、音声、時系列、LLMワークフローをサポートし、モデル定義を変更せずにローカル実行またはRayクラスターへのスケールが可能です。製品ドキュメントでは、組み込みの前処理、実験追跡、推論、エクスポートのワークフローも強調されています。

機能

宣言的なYAML設定

前処理、エンコーダー、アーキテクチャ、学習、ハイパーパラメータ最適化を、手作業で学習ループを書く代わりに、1つの検証済みYAMLファイルで定義します。

マルチモーダル・マルチタスクモデリング

表形式、テキスト、画像、音声、時系列、その他の特徴量を組み合わせたモデルを構築し、1回の実行で複数の出力を学習します。

LLMファインチューニングスタック

教師ありのインストラクションチューニングや、DPO、KTO、ORPO、GRPOを含むアライメント手法に加え、LoRA、QLoRA、DoRA、VeRAを使ってLLMをファインチューニングします。

分散学習バックエンド

Ray用のバックエンド設定を追加するだけでローカルジョブを分散実行に切り替えられ、DDP、FSDP、DeepSpeed、KubeRay のサポートが示されています。

ハイパーパラメータ最適化

Ray TuneまたはOptunaで組み込みHPOを実行でき、Auto、TPE、GP、CMA-ESなどのサンプラーと、SQLiteまたはPostgreSQLによる永続化を利用できます。

推論とエクスポートのワークフロー

1つのコマンドでモデルを提供し、SafeTensors、ONNX、`torch.export` にエクスポートできます。Dockerイメージや Hugging Face Hub へのアップロードオプションもあります。

ユースケース

  • 設定からカスタムモデルを学習する

    YAMLファイルから教師ありモデルを構築し、前処理やループロジックをゼロから書かずに学習パイプラインを明示的に保ちたい場合にLudwigを使います。

  • マルチモーダルおよびマルチタスクのモデリング

    テキストと表形式特徴量、画像とメタデータのような異なる入力タイプを組み合わせ、1つのモデルで複数の出力を学習するプロジェクトに使います。

  • LLMのファインチューニングと推論

    LLMツールを使って、4ビットQLoRAや関連するアライメント手法でオープンモデルをインストラクションチューニングし、その後Ludwigの推論コマンドで結果を提供します。

  • Rayでの分散学習

    ローカル実験を、基盤となるモデル定義を変更せずにクラスター上の分散実行へ拡張する必要がある場合にRayバックエンドを使います。

  • モデルのエクスポートとデプロイ

    REST API、Dockerイメージ、またはONNXやSafeTensorsのようなデプロイ用モデル成果物が必要な場合に、組み込みのエクスポートと推論ワークフローを使います。

Pros and Cons

Pros

  • モデルパイプラインを1つのYAMLファイルで定義できます。
  • 複数のデータモダリティとマルチタスク構成をサポートしています。
  • LoRA、QLoRA、DPO、GRPO などのLLMファインチューニング手法を備えています。
  • モデル定義を書き直すことなく、ローカル学習からRayベースの分散ジョブまでスケールできます。
  • 学習に加えて、モデルの推論とエクスポートの手段も提供しています。

Cons

  • 収集済みソースには `ludwig.ai/pricing` の価格ページが含まれていないため、この証拠セットだけでは商用条件が不明です。
  • ソースのカバレッジは、統合、チームでのデプロイパターン、価格など一部の実用的な詳細については限定的です。
  • 高度な機能の一部はホームページとドキュメントで高レベルに説明されていますが、抽出されたソースだけでは各ワークフローを十分な深さで網羅していません。

FAQ

Ludwigは何に使われますか?

Ludwigは、前処理、モデルアーキテクチャ、学習、ハイパーパラメータ最適化、推論を1つの設定ファイルで定義できるYAMLベースのフレームワークです。サイトでは、オープンソースの宣言的深層学習フレームワークとして説明されています。

Ludwigはどのように使いますか?

入門ページとホームページでは、コマンドライン中心のワークフローが示されています。Ludwigをインストールし、データセットを準備して、`ludwig train --config ...` を実行します。また、予測、評価、ハイパーパラメータ最適化、推論、分散学習、LLMファインチューニングについても説明されています。

Ludwigはどのようなモデルやデータをサポートしていますか?

サイトによると、Ludwigは表形式データ、テキスト、画像、音声、時系列、LLMワークフローをサポートしています。また、マルチモーダルおよびマルチタスクのモデリングにも対応しています。

Ludwigはデプロイに使えますか?

ホームページとドキュメントでは、LudwigはモデルをREST APIとして提供でき、SafeTensors、ONNX、`torch.export` などの形式にエクスポートできると示されています。Dockerイメージや Hugging Face Hub へのアップロードにも言及があります。

Quick Facts

カテゴリ
開発者向けツール
主な利用者
MLおよびAIの実務者
プラットフォーム
オープンソースフレームワーク
ソースドメイン
ludwig.ai
ライセンス
Apache 2 License
デプロイ
ローカル、Rayクラスター、Kubernetes