V1.2.3 UI optimization and new features#214
Open
guillaume-byte wants to merge 20 commits into
Open
Conversation
… two functions; and so adapt UI (#213)
* Fix release note generation from PR commits only * Add __getitem__ to ValueProxy for parameters wrap
…211) Document the Weights Studio per-image bounding-box render caps (GT and PRED capped independently) in the configuration env-var reference and the weights_studio deployment .env examples. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Add save btn and fix UI text issue of the current version * add details of export fct to readme
…re toggles The branch sync left two identical `message SaveCheckpointOperation` definitions, which makes protoc reject the file. Remove the redundant first copy (keeping the documented "manual save now" one) and regenerate the Python descriptor. The grpc stub is unchanged (no rpc was duplicated). Docs: add the Weights Studio feature toggles (ENABLE_PLOTS, ENABLE_DATA_EXPLORATION, ENABLE_HYPERPARAMETERS_OPTIMIZATION, ENABLE_AGENT) to configuration.rst and the AGENTS.md frontend env-var table. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- GetHistogram RPC: bin one column server-side into <=512 typed bins (min/max/avg/count + per-(origin,discarded) sub-bars) instead of the client pulling every row and binning in the browser. Bit-identical to the client binning; ~116x smaller payload, ~50ms warm. Adds the proto messages + RPC, regenerated pb2/pb2_grpc, DataService.GetHistogram, and servicer delegation. - ApplyDataQuery: skip the forced full-view rebuild for SORT-ONLY operations (a sort just re-orders the existing snapshot). Global sort ~7.5s -> ~0.5s. - _slowUpdateInternals: run the view rebuild on a background thread for reader-triggered (non-force) refreshes, so grid/histogram reads never block on the multi-second collapse+combine. Reader p95 ~3000ms -> ~130ms. Filters/ resets still refresh inline (need fresh data). - ws-classification example: loosen eval (100->500) / checkpoint (25->250) cadence and use a bigger eval batch (16->128) so eval stops dominating wall-clock. Co-authored-by: Alexandru Rotaru <rotarualexandruandrei94@gmail.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Guillaume <guillaume@graybx.com>
…ode in root log dir
…ithub.com/GrayboxTech/weightslab into v1.2.3---UI-Optimization-and-new-features
* Server-side histogram binning + grid/sort perf fixes - GetHistogram RPC: bin one column server-side into <=512 typed bins (min/max/avg/count + per-(origin,discarded) sub-bars) instead of the client pulling every row and binning in the browser. Bit-identical to the client binning; ~116x smaller payload, ~50ms warm. Adds the proto messages + RPC, regenerated pb2/pb2_grpc, DataService.GetHistogram, and servicer delegation. - ApplyDataQuery: skip the forced full-view rebuild for SORT-ONLY operations (a sort just re-orders the existing snapshot). Global sort ~7.5s -> ~0.5s. - _slowUpdateInternals: run the view rebuild on a background thread for reader-triggered (non-force) refreshes, so grid/histogram reads never block on the multi-second collapse+combine. Reader p95 ~3000ms -> ~130ms. Filters/ resets still refresh inline (need fresh data). - ws-classification example: loosen eval (100->500) / checkpoint (25->250) cadence and use a bigger eval batch (16->128) so eval stops dominating wall-clock. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * Fix proto files and is/is not ValueProxy from ledgers to ==/!= --------- Co-authored-by: Alexandru Rotaru <rotarualexandruandrei94@gmail.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Guillaume <guillaume@graybx.com>
Strip colorful emoji from console.log, print statements, logger calls, docstrings, and comments across the entire backend codebase. Plain text conveys the same meaning without unicode-rendering concerns. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
weightslab logdir <root_log_dir> [--no-ui] [--certs] [--grpc-port PORT] Wires the existing load_experiment_for_explore / serve / keep_serving infrastructure into the CLI so a downloaded log dir can be explored without running the original training script. By default also launches the Weights Studio Docker UI stack; pass --no-ui to skip (useful when the UI is already running from a prior 'weightslab ui launch'). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Both classification and segmentation examples now: - Export signal history + data grid to root_log_dir every 100 steps (configurable via write_export_ratio in config.yaml) - Also export once at end of training for a final snapshot This lets an offline explore session (weightslab logdir) immediately pick up the latest signal/dataframe state without waiting for a checkpoint. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…crash Adds a multi-task MNIST example (ws-multitask) demonstrating: - Shared CNN backbone with classification and localization heads - Two separately-tracked WeightsLab losses (cross-entropy + smooth-L1) - Detection-format targets (tight bounding box per digit) for UI bbox overlay - Per-sample accuracy signal for data grid inspection Fixes GuardContext.__enter__ crashing with "Proxy target not set" when no model is registered: get_model() returns a Proxy(None) placeholder; now checks the Proxy _obj target before assigning self.model so unregistered contexts (e.g., Lightning-only tests) work gracefully. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…dger) Previous fix only prevented assigning an unresolved Proxy but left self.model pointing to a stale proxy from a prior call. Now always derives self.model from the current ledger state on each __enter__: if get_model() returns a Proxy with no target (no model registered), self.model is set to None rather than falling back to a potentially-stale earlier value. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds _is_ui_running() which checks each _STACK_CONTAINERS entry via docker inspect. logdir_explore uses it to skip ui_launch when the Weights Studio stack is already up, avoiding a redundant Docker bring-up. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Removes all code added for the offline explore / logdir feature: - backend/explore_mode.py (deleted) - tests/integrations/test_explore_mode.py (deleted) - examples/PyTorch/ws-multitask/ (deleted) - load_experiment_for_explore / _rehydrate_dataframe_from_disk from src.py - logdir_explore / _is_ui_running / logdir subparser from ui_docker_bridge.py - explore mode guards from experiment_service.py and model_service.py - explore mode unit tests from test_trainer_services_unit.py Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
e51b974 to
9831f81
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Next release includes:
And more to come!