Skip to content

Phase 6: Future capabilities - LLM config generation, HyperNetworkCombiner, Nash-MTL#4092

Open
w4nderlust wants to merge 4 commits intoapi-code-qualityfrom
future-capabilities
Open

Phase 6: Future capabilities - LLM config generation, HyperNetworkCombiner, Nash-MTL#4092
w4nderlust wants to merge 4 commits intoapi-code-qualityfrom
future-capabilities

Conversation

@w4nderlust
Copy link
Copy Markdown
Collaborator

Summary

Phase 6 of the Ludwig modernization: advanced capabilities that extend Ludwig's competitive positioning.

1. LLM-Driven Config Generation

Describe your ML task in natural language and get a valid Ludwig config:

from ludwig.config_generation import generate_config

config = generate_config(
    'I have customer data with age, income, and purchase history. '
    'I want to predict churn (binary) and lifetime value (number).'
)
# Returns a validated Ludwig config dict

Uses Ludwig's JSON Schema as context for the LLM. Supports both Anthropic and OpenAI APIs. Generated configs are validated against Ludwig's Pydantic schema before returning.

2. HyperNetworkCombiner

A hypernetwork generates the weights of processing layers based on a conditioning modality. Instead of combining features additively, metadata fundamentally changes how other features are processed.

combiner:
  type: hypernetwork
  hidden_size: 128
  hyper_hidden_size: 64
  output_size: 128

Based on HyperFusion (arXiv 2403.13319, 2024). Unique Ludwig differentiator not available in other frameworks.

3. Nash-MTL Loss Balancer

Nash bargaining for multi-task weight allocation (Navon et al., ICML 2022). Finds the cooperative game-theoretic solution where weights are inversely proportional to task losses, equalizing marginal contributions.

trainer:
  loss_balancing: nash_mtl

For power users with many conflicting output features. More principled than heuristic methods. For most use cases, FAMO or uncertainty weighting are sufficient.

Test plan

  • 1223 existing tests pass (0 regressions, 1 pre-existing flaky dask test)
  • Pre-commit all clean
  • HyperNetworkCombiner registered and importable
  • Nash-MTL registered in LOSS_BALANCER_REGISTRY
  • CI

w4nderlust and others added 4 commits April 6, 2026 19:53
LLM config generation: describe your ML task in English, get a valid
Ludwig config. Uses JSON Schema as LLM context, validates output with
Pydantic. Supports Anthropic and OpenAI APIs.

HyperNetworkCombiner: one modality generates weights for processing
another. Based on HyperFusion (arXiv 2403.13319, 2024). Unique
differentiator for Ludwig.

Nash-MTL loss balancer: cooperative game-theoretic task weight
allocation (Navon et al., ICML 2022) for power users with many
conflicting outputs.
BatchEnsembleLinear: shared backbone with per-member rank-1 scaling.
Provides ensemble-level performance at single-model inference cost.
Based on TabM (Gorishniy et al., ICLR 2025).
…tests

- ConcatCombiner now supports batch_ensemble=True config option with
  num_ensemble_members parameter for TabM-style ensembling
- ludwig generate_config: CLI command to generate Ludwig configs from
  natural language task descriptions via LLM (Anthropic/OpenAI)
- Tests for config_generation with mocked LLM calls
@w4nderlust w4nderlust force-pushed the future-capabilities branch from 55368b9 to ec11aff Compare April 7, 2026 02:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant