Skip to content

Configuration override mechanism #154

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
4 tasks
jlamypoirier opened this issue Feb 19, 2025 · 2 comments · May be fixed by #168
Closed
4 tasks

Configuration override mechanism #154

jlamypoirier opened this issue Feb 19, 2025 · 2 comments · May be fixed by #168
Assignees
Labels
enhancement New feature or request

Comments

@jlamypoirier
Copy link
Collaborator

🎯 Goal (What & Why)

We have several use cases for Fast-LLM configuration where we would like to define a default configuration, then override specific parameters in specific cases:

The current configuration mechanism allows for configuration overrides in code, but there is no equivalent for yaml configuration. Some options:

  • Define the override as a config class. Already possible, but can only support which means excessively verbose and error-prone duplicate configurations.
  • Use free-form dicts (dict[Any, Any]). Would work already, but config validation would mean applying the override and checking that it works
  • Define a ConfigurationOverride[ConfigClass] generic that performs basic validation for defined parameters. In it simplest form this would be a minimalistic class built on top of the free-form dice defined above.

🚀 Execution Plan

This doesn't really need work by itself, it will present itself as a sub-issue when we need it (#131, #151, #xx)

Step 1: What is the smallest working version?

(Describe the simplest way to implement this feature with minimal effort.)

Step 2: What additional optimizations are possible (but optional)?

(List potential refinements that can be added in later PRs if needed.)

📌 Acceptance Criteria (Must-Haves for Completion)

  • The feature must be functional and tested.
  • The implementation must be documented in practical terms.
  • The PR must include a performance/impact summary.
  • No refactors unless directly necessary for feature completion.

🛠️ Project Management

  • Assign the project to the Fast-LLM project.
  • Set the Estimate field (in days) in the GitHub project.
  • Use the Size field to categorize the PR size (Small/Medium/Large).
  • Assign an owner when opening the issue.
@tscholak
Copy link
Collaborator

interesting, but this is what OmegaConf is already good at.

@jlamypoirier
Copy link
Collaborator Author

And so is Fast-LLM, but we need to choose how to expose it to the yaml config

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants