宣言的なYAML設定
前処理、エンコーダー、アーキテクチャ、学習、ハイパーパラメータ最適化を、手作業で学習ループを書く代わりに、1つの検証済みYAMLファイルで定義します。
Ludwigは、1つのYAML設定だけで学習・ファインチューニング・デプロイができるオープンソースの宣言的深層学習フレームワークです。表形式、テキスト、画像、音声、時系列、LLMワークフローに対応。
Ludwigは、1つのYAML設定ファイルだけでカスタムモデルの構築、ファインチューニング、デプロイができるオープンソースの宣言的深層学習フレームワークです。手書きの学習ループを避けつつ、必要なときには高度な制御も維持したいユーザー向けに位置づけられています。
サイトによると、Ludwigは表形式、テキスト、画像、音声、時系列、LLMワークフローをサポートし、モデル定義を変更せずにローカル実行またはRayクラスターへのスケールが可能です。製品ドキュメントでは、組み込みの前処理、実験追跡、推論、エクスポートのワークフローも強調されています。
前処理、エンコーダー、アーキテクチャ、学習、ハイパーパラメータ最適化を、手作業で学習ループを書く代わりに、1つの検証済みYAMLファイルで定義します。
表形式、テキスト、画像、音声、時系列、その他の特徴量を組み合わせたモデルを構築し、1回の実行で複数の出力を学習します。
教師ありのインストラクションチューニングや、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ツールを使って、4ビットQLoRAや関連するアライメント手法でオープンモデルをインストラクションチューニングし、その後Ludwigの推論コマンドで結果を提供します。
ローカル実験を、基盤となるモデル定義を変更せずにクラスター上の分散実行へ拡張する必要がある場合にRayバックエンドを使います。
REST API、Dockerイメージ、またはONNXやSafeTensorsのようなデプロイ用モデル成果物が必要な場合に、組み込みのエクスポートと推論ワークフローを使います。
Ludwigは、前処理、モデルアーキテクチャ、学習、ハイパーパラメータ最適化、推論を1つの設定ファイルで定義できるYAMLベースのフレームワークです。サイトでは、オープンソースの宣言的深層学習フレームワークとして説明されています。
入門ページとホームページでは、コマンドライン中心のワークフローが示されています。Ludwigをインストールし、データセットを準備して、`ludwig train --config ...` を実行します。また、予測、評価、ハイパーパラメータ最適化、推論、分散学習、LLMファインチューニングについても説明されています。
サイトによると、Ludwigは表形式データ、テキスト、画像、音声、時系列、LLMワークフローをサポートしています。また、マルチモーダルおよびマルチタスクのモデリングにも対応しています。
ホームページとドキュメントでは、LudwigはモデルをREST APIとして提供でき、SafeTensors、ONNX、`torch.export` などの形式にエクスポートできると示されています。Dockerイメージや Hugging Face Hub へのアップロードにも言及があります。