Releases: mozilla-ai/lumigator
Releases · mozilla-ai/lumigator
v0.1.2-alpha
Lumigator v0.1.2-alpha Release Notes
Features 🚀
- UI – Dataset preview: View dataset contents in a tabular format. The dataset viewer supports searching/filtering and enables exporting the data to CSV for easy analysis.
- Secret Management API: Added API endpoints to list and delete stored Secrets. You can now retrieve a list of configured secret names (with descriptions) and remove secrets via the Lumigator API.
- New task, Translation in API and SDK: You can now evaluate causal models for translation using datasets with ground truth. Feature available through API and SDK (UI coming soon).
- New LLM as a judge metric: GEval.
- Support of any OpenAI-compatible API with LiteLLM.
Bug Fixes 🐞
- MLflow Tracking URI Requirement: Fixed an issue where a missing MLflow tracking URI would cause a runtime error. Lumigator now properly checks for
MLFLOW_TRACKING_URI
and throws a clear error if it’s not set. - Database Path on Local Deployments: Corrected the default SQLite database file location for local installs. Previously, the local database was not being created in the intended path. The default
DATABASE_URL
has been fixed to ensure the SQLite file is stored in thedb-data/
volume as expected. - UI Consistency: Resolved a minor UI issue where the “View Results” button for experiments could appear disabled even after a successful run. Now, experiment result links are enabled as expected once a workflow succeeds (allowing you to inspect outputs immediately).
- Other stability fixes and tweaks across the stack (including error message corrections and test fixes) improve Lumigator’s reliability. For example, error handling in the backend was refined to bubble up meaningful messages, and several unit tests were fixed to reflect the latest interface changes.
Refactoring 🔧
- Sample Data Organization: Restructured the built-in sample datasets and related code. Sample CSV files are now organized by task category (e.g. under a
summarization/
subfolder), which makes the project structure more logical. Corresponding test fixtures and documentation references were updated to match the new file locations. - Unified Task Definition: Refactored how task information is represented in experiment workflows. The code now uses a unified
TaskDefinition
model (instead of separate “task” and “task type” fields) for experiments and workflows. - Code Cleanup: Various parts of the codebase were cleaned and restructured for clarity. For example, the front-end code was streamlined by introducing a generic table component used for both dataset viewing and experiment/job listings, reducing duplicate code. Unused legacy code (like the old “completions” routes) has been removed, and function/class naming has been improved for consistency.
Documentation Updates 📝
- User Guide: Preparing your own dataset for summarization evaluation
- README includes details on the optional model caching mechanism and how to configure it, so users can take advantage of faster startup times on first run. Additionally, notes were added on managing secrets with the new API endpoints (so you can see how to list or delete secrets via HTTP requests).
- API Reference: Regenerated the OpenAPI/Swagger documentation to include the latest API additions and changes.
- Operational Guides: Minor improvements, e.g. instructions for shutting down Lumigator and troubleshooting sections were expanded with the new error message for a missing MLflow URI.
Infrastructure & CI ⚙️
- Model Caching for Faster Startup: Implemented a mechanism to pre-download common model files into the local cache on startup. This significantly reduces the “cold start” time for the first experiment run. In practice, when you launch Lumigator or run the test suite, popular Hugging Face models are fetched in advance (controlled by a config flag
ENABLE_FIRST_TIME_CACHE
), so your initial evaluations kick off more quickly without waiting for large model downloads mid-experiment. - Improved Local Dev Workflow: The Makefile targets for managing the local stack were improved. The
stop-lumigator
andlocal-down
commands now correctly use the Docker Composelocal
profile to ensure all services (backend, Ray, Minio, etc.) shut down cleanly. This prevents orphaned containers or network issues when you restart Lumigator, especially when switching between configurations. - Continuous Integration: Added new integration tests for translation workflows and adjusted CI configurations accordingly. We pinned certain dev dependencies (like IPython) to stable versions to fix test failures in CI. The CI pipeline was also optimized – for instance, steps to run integration tests on SQLite and PostgreSQL now run on a dedicated runner to speed up feedback. These changes make the test suite more robust and ensure that contributions continue to pass checks consistently.
- Container & Deployment: Updated the Docker compose files and Helm charts to incorporate the latest changes. The Helm chart’s default values were bumped to use
v0.1.2-alpha
images, and minor tweaks (like adjusting the Ray cluster environment variable name) from this cycle were integrated. Multi-architecture support for the Docker build remains in place and was verified on this release (ensuring Lumigator’s Docker images work on both x86_64 and ARM64).
New Contributors
- @lucacorbucci made their first contribution in #997
Full Changelog: v0.1.1-alpha...v0.1.2-alpha
Release Notes created partially with Perplexity.ai.
v0.1.1-alpha
Summary
UI:
- Introduced TypeScript & general fixes.
- Prepared the project for the introduction of E2E testing.
- Added support for the new
workflows
endpoint. - Improved error messages
- Added sample dataset link for people to quickly find and use datasets in experiments
SDK:
- Updated SDK to use the new
workflows
endpoint
API:
- Added support for local models via llamafile, ollama or vLLM.
- Added support for DeepSeek API.
- Added support for Hugging Face text-generation pipelines.
- Decouple service (
jobs
&experiments
) layer from the presentation layer (extracted HTTP exceptions). - Delete the redundant
/completions
route and consolidate LLM inference logic into the inference job. - Added
job_result_download
endpoint to the experiment service, allowing direct retrieval of job outputs.
Infrastructure:
- Added persistence to local environments (database & ray).
- Fixed multiplatform builds
- Fixed issues with ray dead nodes in local environment after restarting the project.
- Removed kuberay from the helm installation.
Documentation:
- Improved helm documentation.
- Added a guide for running inference with Lumigator on any locally hosted model (via ollama, vLLM and llamafile).
- Improved documentation on how to run unit and integration tests.
- Added general documentation on environment variables.
General changes:
- Reorganized paths and folders within the project.
- Added MLFlow to track experiments.
- Reworked the environment variables flow adding a new build process.
PRs
- Decouple jobs service layer from the presentation layer (extract HTTP exceptions) by @peteski22 in #748
- Watch Schemas dir in dev mode by @njbrake in #746
- Decouple experiment service layer from the presentation layer (extract HTTP exceptions) by @peteski22 in #754
- Share HF cache from host home by @javiermtorres in #698
- [BUG] UI: Experiment details doesn't show max samples correctly by @peteski22 in #756
- Setting Docker image tag by @macaab26 in #755
- Implement job_result_download for experiment service by @veekaybee in #632
- Fix integration tests for backend API by @veekaybee in #763
- Adding helm chart link to the Readme by @agpituk in #764
- Create scaffolding for "workflows", merging experiments_new into experiments, hiding routes from OpenAPI schema that are in development by @njbrake in #728
- Revising documentation on running unit/integration tests by @veekaybee in #765
- Add persistence to Ray by @javiermtorres in #744
- Add detailed experiment status by @javiermtorres in #663
- Speed up pipeline by @macaab26 in #766
- Re-Organize Folders by @njbrake in #717
- Fix for evaluate issues by @javiermtorres in #779
- Fix link checker by @njbrake in #780
- Issue 525: Tracking Interface with Mlflow by @njbrake in #750
- Restore FE image build and push by @javiermtorres in #784
- Backend: Dataset errors by @peteski22 in #778
- docs: update troubleshooting.md by @eltociear in #789
- [Hotfix] Chart name regression breaks frontend/backend communication by @chainlink in #771
- Deleting apiserver defaults by @macaab26 in #796
- Changing pipeline step condition by @macaab26 in #804
- Fixing multiplatform build by @macaab26 in #805
- Adding new page to the index by @macaab26 in #807
- build: always pull latest docker image before start-lumigator by @khaledosman in #800
- chore: setup typescript, unit & e2e testing and vue-devtools by @khaledosman in #791
- Makefile: match
local-up
profiles and compose files, inlocal-down
by @peteski22 in #813 - Fix allocation of dead head nodes by @javiermtorres in #794
- Mlflow implementation of Tracking Interface by @njbrake in #768
- Update SDK to use new workflows API by @njbrake in #783
- Bugfix for old experiments endpoint by @njbrake in #814
- Remove all the completions route code by @njbrake in #819
- Test running twice by @njbrake in #820
- Replace pip cache of session_latest by @javiermtorres in #712
- Redo Bug fix for annotation/inference endpoint fails with long sequences as input by @HareeshBahuleyan in #762
- style: code formatting with prettier by @khaledosman in #793
- chore: enable typescript strict mode and fix type checking errors by @khaledosman in #799
- refactor: fix sass deprecations and migrate to new syntax by @khaledosman in #817
- List jobs per job type by @javiermtorres in #576
- docs: add code comments from #786 + hotfix for upload modal not going away by @khaledosman in #823
- refactor: refactor ambiguous usage of experiment vs job on the frontend & bubble up errors by @khaledosman in #824
- Label docker artifacts for easy removal and reference by @javiermtorres in #775
- Jobs return standardized and flexible output by @njbrake in #815
- Remove completions referenced in docs by @HareeshBahuleyan in #838
- Changing mlflow image version by @macaab26 in #833
- Remove kuberay api server (not needed for Ray) by @chainlink in #829
- Persist state in named volumes, logs in db by @javiermtorres in #821
- Fix name of Ray cluster env var by @javiermtorres in #844
- Add a make target to use a postgres DB by @javiermtorres in #772
- Update max line length from 100 chars to 120 as a treat in 2025 by @peteski22 in #843
- Run eval/inference on any Ollama or Llamafile or vLLM hosted locally by @HareeshBahuleyan in #782
- Upgrade to Pydantic 2.10 and resolve deprecated call warnings by @njbrake in #839
- Jobs Service: Remove ValueError and use service error by @peteski22 in #856
- Documenting the usage of local llms - bring your own Llamafile, Ollama or vLLM model by @HareeshBahuleyan in #806
- refactor: update folder structure by @khaledosman in #837
- Add support for HF text-generation pipelines by @dpoulopoulos in #808
- Installation: Day 1 improvements to settings by @peteski22 in #836
- Update dependencies used by pre-commit hooks by @peteski22 in #867
- Show configuration in operational guide menu by @peteski22 in #866
- First attempt at a parametrized JobCreate by @javiermtorres in #740
- Expose sample datasets link on datasets page by @hasangzl in #848
- inference: Support invoking DeepSeek API (#869) by @dpoulopoulos in #870
- Add helm dependencies to main chart by @chainlink in #871
- fix: fix polling for workflow/experiment status by @khaledosman in #887
- Refactored dataset saving for inference jobs by @aittalam in #884
- Allow for multiple ray clusters while using existing ray operator by @chainlink in #873
New Contributors
- @eltociear made their first contribution in #789
Full Changelog: v0.1.0-alpha...v0.1.1-alpha
v0.1.0-alpha
What's Changed
Roadmap features
[FEATURE] User can install Lumigator in their k8s cluster
[FEATURE] User can select multiple models to compare on the same dataset
[FEATURE] User can launch an experiment for summarization with a dataset that did not have ground-truth
[FEATURE] Evaluate experiment results
[FEATURE] User can launch an experiment for summarization that already has ground-truth
[FEATURE] Save inference output as a dataset which can be downloaded
Summary
New UI:
- Added detailed display for datasets and experiments.
- Enabled dataset download and results viewing.
- Improved job status updates and error handling.
- Added support for multiple models in experiments.
- Enabled ground truth generation (annotations) and improved dataset validation.
New SDK:
- Added support for experiments, datasets and launching annotation jobs.
- Introduced health endpoints and transparent error handling.
- Vendor caching adjustments.
- Packaged SDK plus integration tests.
API changes:
- Refactored jobs endpoints (
/health
,/jobs
,/experiments
). - Exposed available models via endpoint (
/models
). - Added support for CORS API requests and job status refreshes.
- Introduced
alembic
for database migrations and improved error handling. - Added support for inference with seq2seq models (via Transformers) and opinionated annotations for summarization with BART-large-cnn.
Infrastructure:
- Migrated from Pants to UV for building and testing.
- Added Docker support for local development and deployment.
- Introduced Helm charts for backend and frontend services.
- Improved CI/CD pipelines for building and publishing Docker images and PyPI packages.
- Added support for Nvidia GPUs and debugging tools like Debugpy.
Documentation:
- User documentation and guides: https://mozilla-ai.github.io/lumigator/
- Improved documentation for dataset upload and model data.
- Added troubleshooting sections.
- Updated contributing guidelines and issue templates.
PRs
- Changing to DockerHub by @macaab26 in #188
- Remove local test-dev-setup and clarify pants installation instructions by @veekaybee in #187
- Added all fixes in PR185 plus init script for localstack by @aittalam in #186
- Added optional support for localstack persistence by @aittalam in #191
- Delete old local docker infra by @veekaybee in #193
- Local documentation cleanup by @veekaybee in #192
- Few fixes on README by @aittalam in #194
- doc: devcontainer restructure, links to main readme, minor typos by @ividal in #195
- Updated lumigator/README.md by @aittalam in #197
- Updated notebooks README by @aittalam in #196
- Fixes notebook URL from relative path to static site to render correctly in GH by @veekaybee in #198
- [LUMI-28] Add minimal info on env vars by @javiermtorres in #200
- [LUMI-50] Set Docker Repository by @chainlink in #204
- chore: introduce issue templates by @ividal in #199
- Added updated notebook and deps by @aittalam in #211
- [LUMI-19] Coreweave s3 support by @agpituk in #208
- [LUMI-21] Make required fields as
required
in chart by @javiermtorres in #201 - [LUMI-16] Allow a secret for the Mistral API to be auto-generated if needed by @javiermtorres in #202
- Added first version of the new endpoint tutorial by @aittalam in #212
- chore: ray image for local container depends on OS by @ividal in #210
- Direct port of lm-buddy to Lumigator by @veekaybee in #209
- Resolving pathing and build dependencies between lm-buddy and Lumigator by @veekaybee in #220
- Change link for metrics by @veekaybee in #222
- [LUMI-33] Move env vars to settings by @javiermtorres in #205
- Added extra hosts to match localhost from lumigator to local laptop by @agpituk in #218
- Removing jobrunner by @aittalam in #217
- Add documentation for environment variables in README and docker compose by @javiermtorres in #221
- Davide/datasets fix by @aittalam in #214
- README related tweak (
PANTS_GUIDE.md
) by @peteski22 in #234 - Change lm-buddy to evaluator and remove finetuning module by @veekaybee in #226
- CLI :Remove Ragas and Prometheus from CLI by @peteski22 in #238
- Lumi 69 fix by @aittalam in #242
- Remove extra file by @chainlink in #244
- [LUMI-133] Create Backend Package and drop mzai top level package by @chainlink in #243
- Fix up Env Vars for AWS Creds by @chainlink in #247
- Parametrized job submission by @aittalam in #248
- [LUMI-107] Add UV to backend by @chainlink in #249
- Initial work on 'base' SDK and health endpoints. by @peteski22 in #250
- make the client 'private' by @peteski22 in #253
- Adding OpenAI key to Helm Chart by @macaab26 in #246
- SDK: Add 'Completions' by @peteski22 in #252
- [LUMI-108] Add docker backend by @chainlink in #251
- Removing cli module to move cli components closer to entrypoint by @veekaybee in #256
- Use custom sql init (sqlite) by @javiermtorres in #236
- Deploy locally on Linux without root access by @dpoulopoulos in #261
- [LUMI-106] Make evaluator work dir configurable for different environments by @chainlink in #260
- Davide/lumi 100 fix ld preload by @aittalam in #254
- [LUMI-53] [Security] Remove secrets from RAY_WORKER_ENV_VARS by @chainlink in #267
- [LUMI-110] Move evaluator into it's own folder for module resolution by @chainlink in #263
- SDK: Add 'experiments' by @peteski22 in #259
- Check test race conditions by @javiermtorres in #237
- [LUMI-131] Working local docker compose without pants deps by @chainlink in #270
- Adding CONTRIBUTING by @veekaybee in #271
- SDK: add
datasets
by @javiermtorres in #255 - [LUMI-150] Run backend tests via uv by @chainlink in #278
- [LUMI-151] Run backend tests in Github via UV by @chainlink in #276
- Added GT field recording whether a dataset contains GT by @aittalam in #274
- [LUMI-149] Move schemas to top level by @chainlink in #281
- [LUMI-148] Move SDK to subfolder for packaging by @chainlink in #283
- [LUMI-154] Add uv to SDK project by @chainlink in #286
- [LUMI-155] Add Github action for SDK tests by @chainlink in #287
- [LUMI-157] Update readme with uv by @chainlink in #288
- [LUMI-101]Adding build & push new action for uv by @macaab26 in #279
- Remove summarizer, ground truth deployment, and Ray serve by @veekaybee in #280
- [LUMI-156] Drop pants by @chainlink in #282
- [LUMI-157] Update backend tests docs to remove pants and change to uv by @chainlink in #289
- Removal of heading that was not required in PR template. by @peteski22 in #284
- Ruff fixes by @macaab26 in #293
- Added support for Local environment for non contributors by @agpituk in https://github.com/mozilla...