Skip to content

Release 3.2.0#238

Merged
dylanuys merged 49 commits intomainfrom
testnet
Jul 11, 2025
Merged

Release 3.2.0#238
dylanuys merged 49 commits intomainfrom
testnet

Conversation

@dylanuys
Copy link
Contributor

Overview: Alignment with Real World Data

  • The theme of this release is alignment of SN34's scored challenges with real world data.
  • To support the ultimate goal of maximizing the accuracy of BitMind's applications, we are introducing real image data scraped from the internet in image classification and segmentation challenges.
  • Initially, the real world data will be introduces as an additional real image dataset alongside our existing real image datasets, with the same uniform sampling probability currently used for selecting datasets for challenges.
    • The aim is to iteratively increase the sampling weight given to the scraped data to progressively increase the representation of these real world data in scored challenges.

Key Changes

  • Initial web search query generation functionality introduced to PromptGenerator class.
  • Web search query generation is executed as part of the main generation loop in neurons/validator/generator.py
  • Subsequent to generating a batch of search queries, the scraper will run and store results in the validator's cache for challenge sampling.

dylanuys and others added 30 commits May 14, 2025 12:19
* V3

* removing v2 ci pipeline

* removing outdated .gitmodules

* keeping the noise that sample size of 50 and slight decay of .5 in EMA provides to avoid having any one model completely dominate the subnet.

* release 2.2.6 datasets, models, and lora support (#188)

* deprecate stable-diffusion-inpainting

* .env templates

* V3/RGB (#191)

* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* V3 frame extraction (#192)

* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

* frame extraction

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* setup.sh

* removing wandb log call from generator

* V3/2.2.9 (#189)

* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* fixing prompt indexing

* properly handling new prompt dictionary key (task type)

* V3/2.2.11 (#190)

* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* prompt sanitation + i2v model

* more retries for prompt sanitation

* fixing truthy tuple assertion

* Update min_compute.yml

* fixing setup script name in docs

* correct script name

* updated requirements.txt with bittensor-cli

* removing wandb.off

* import cleanup

* miner substrate thread restart + vali autoupdate test

* temporary v3 branch set to test autoudpate

* autoupdate update

* lower frequency of audoupdate check

* autoudpate test

* check autoupdate at setp 0

* typo

* autoupdate test

* dont set weights immediately at startup in case of many restarts

* Pyproject toml (#193)

* pyproject setup

* executable setup.sh

* autoupdate test

* resetting version after autoupdate tests

* Add Hugging Face model access instructions to validator docs; improve logging and fix LLM device mapping for multi-GPU

- Added section to Validating.md with instructions for gaining access to required Hugging Face models (FLUX.1-dev, DeepFloyd IF).
- Added logging of generation arguments in generation_pipeline.py.
- Fix LLM loading for multi-GPU in prompt_generator.py: use device_map and remove .to(self.device) for quantized models.
  Quantized LLMs must use device_map for correct device placement; calling .to(self.device) causes device mismatch errors. Parse GPU ID from device string for device_map assignment.

* fixing image_samples check for i2i

* hf_xet requirement

* wandb autorestart

* Fix: raise error if image is None for i2i/i2v tasks and ensure image is converted from array

* fixing wandb autorestart

* error log

* Update setup.sh to install Node.js 20.x LTS from NodeSource for pm2 compatibility; add doc note for existing validators' Hugging Face access

* external port for proxy cuz tensordock rugged us (#196)

* incentive doc

* Typo

* proxy updates

* v2 parity encoding (#197)

* final autoupdate test

* reset version

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>
* fixing wandb cache clean paths (#202)

* max frames configuration

* fn header update

* slight increase to timeout
* adding extra metadata to testnet requests for miners

* adding label and mediatype to testnet metadata
* log augmentation params

* braindead typo
* fix hotkey check in sync_metagraph

* bump version
* healthcheck wip

* remove old miner health task vars, change miner healtchechk endpoint name

* health count logging

* fixing query based on health logic

* updating healthcheck interval to 10

* removing unecessary lock

* use DEFAULT_TIMEOUT

* adding blacklisting for bad responses

* fixing detect_image fallback

* a couple comments

* update functionality for generator and proxy
* adding basic health dict to miner tracker

* move all request processing logic to epistula module

* reflect request processing updates in eval engine

* healthy/unhealthy miner uid functions

* proxy using simpler miner health from tracker state

* new fn signature for score_challenge
* scraper wip

* fixing queries with max date set in tbs, also adding placeholder for reverse image search which i cant get to work rn due to captchas

* taking first sentence of prompt as initial version of search queries

* - Adding specific media scraping interval config
- Adding retry logic and error handling to scraping callback

* Fixing enum value for output path in scraper

* add selenium to requirements

* Fixing str treated as enum

* cleaning up

* increasing media update intervals

* [testnet] Safer Miner Prediction History (#214)

* centralizing logic for safely getting valid predictions and associated labels

* cleaning up
* adding bm-aura-imagegen dataset

* log mask as npy artifact

* format
dylanuys and others added 17 commits June 4, 2025 06:22
* binary image endpoint

* adding video endpoint without preprocessing (#221)

* fix frames list (should be np array)
* segmentation v1

* remove debug logging

* legacy detector backward compatibility

* initial reward split for segmentation release

* typo fix and increasing window size

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>
* LLM-based query generation + moving scraping to generator class

* Release 3.0.11 (#223)

* V3 (#187)

* V3

* removing v2 ci pipeline

* removing outdated .gitmodules

* keeping the noise that sample size of 50 and slight decay of .5 in EMA provides to avoid having any one model completely dominate the subnet.

* release 2.2.6 datasets, models, and lora support (#188)

* deprecate stable-diffusion-inpainting

* .env templates

* V3/RGB (#191)

* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* V3 frame extraction (#192)

* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

* frame extraction

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* setup.sh

* removing wandb log call from generator

* V3/2.2.9 (#189)

* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* fixing prompt indexing

* properly handling new prompt dictionary key (task type)

* V3/2.2.11 (#190)

* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* prompt sanitation + i2v model

* more retries for prompt sanitation

* fixing truthy tuple assertion

* Update min_compute.yml

* fixing setup script name in docs

* correct script name

* updated requirements.txt with bittensor-cli

* removing wandb.off

* import cleanup

* miner substrate thread restart + vali autoupdate test

* temporary v3 branch set to test autoudpate

* autoupdate update

* lower frequency of audoupdate check

* autoudpate test

* check autoupdate at setp 0

* typo

* autoupdate test

* dont set weights immediately at startup in case of many restarts

* Pyproject toml (#193)

* pyproject setup

* executable setup.sh

* autoupdate test

* resetting version after autoupdate tests

* Add Hugging Face model access instructions to validator docs; improve logging and fix LLM device mapping for multi-GPU

- Added section to Validating.md with instructions for gaining access to required Hugging Face models (FLUX.1-dev, DeepFloyd IF).
- Added logging of generation arguments in generation_pipeline.py.
- Fix LLM loading for multi-GPU in prompt_generator.py: use device_map and remove .to(self.device) for quantized models.
  Quantized LLMs must use device_map for correct device placement; calling .to(self.device) causes device mismatch errors. Parse GPU ID from device string for device_map assignment.

* fixing image_samples check for i2i

* hf_xet requirement

* wandb autorestart

* Fix: raise error if image is None for i2i/i2v tasks and ensure image is converted from array

* fixing wandb autorestart

* error log

* Update setup.sh to install Node.js 20.x LTS from NodeSource for pm2 compatibility; add doc note for existing validators' Hugging Face access

* external port for proxy cuz tensordock rugged us (#196)

* incentive doc

* Typo

* proxy updates

* v2 parity encoding (#197)

* final autoupdate test

* reset version

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* autoupdate set to main

* testing autoupdate on testnet

* autoupdate enabled by default

* autoudpate testnet

* pointing autoupdate at main by default

* removing extra state load command

* setting back to 360 epoch length

* burn for initial v3 release rampup

* debug log typo

* fixed merge to testnet

* Max Frames and Timeout (#203)

* fixing wandb cache clean paths (#202)

* max frames configuration

* fn header update

* slight increase to timeout

* adding extra metadata to testnet requests for miners (#201)

* remove max size arg

* Testnet Metadata (#204)

* adding extra metadata to testnet requests for miners

* adding label and mediatype to testnet metadata

* Log Augmentation Parameters (#205)

* log augmentation params

* braindead typo

* bump verison

* [testnet] Release 3.0.5 (#207)

* fix hotkey check in sync_metagraph

* bump version

* [testnet] Miner healthchecks (#209)

* healthcheck wip

* remove old miner health task vars, change miner healtchechk endpoint name

* health count logging

* fixing query based on health logic

* updating healthcheck interval to 10

* removing unecessary lock

* use DEFAULT_TIMEOUT

* adding blacklisting for bad responses

* fixing detect_image fallback

* a couple comments

* update functionality for generator and proxy

* [testnet] Revised Miner Healthcheck (#210)

* adding basic health dict to miner tracker

* move all request processing logic to epistula module

* reflect request processing updates in eval engine

* healthy/unhealthy miner uid functions

* proxy using simpler miner health from tracker state

* new fn signature for score_challenge

* [testnet] Image Scraping (#213)

* scraper wip

* fixing queries with max date set in tbs, also adding placeholder for reverse image search which i cant get to work rn due to captchas

* taking first sentence of prompt as initial version of search queries

* - Adding specific media scraping interval config
- Adding retry logic and error handling to scraping callback

* Fixing enum value for output path in scraper

* add selenium to requirements

* Fixing str treated as enum

* cleaning up

* increasing media update intervals

* [testnet] Safer Miner Prediction History (#214)

* centralizing logic for safely getting valid predictions and associated labels

* cleaning up

* Aura Dataset and Mask W&B Logging (#217)

* adding bm-aura-imagegen dataset

* log mask as npy artifact

* format

* increasing media cache refresh default

* disabling scrape_new_media_on_interval

* warnings for missing keys in miner history state loading

* lowering media scraping default (not currenlty used)

* remvoning unused healthcheck endpoint in miner

* [testnet] Binary Image Proxy Endpoint (#220)

* binary image endpoint

* adding video endpoint without preprocessing (#221)

* fix frames list (should be np array)

* adding wan2.1-t2v-1.3B (#222)

* removing scraping from this release

* version bump

* whitespace

* putting peft requirement back

* ftfy requirement

* refactor(models): make Wan2.1 VAE loading lazy

- Convert VAE loading to use lazy tuple pattern (fn, args)
- Update load_vae to use kwargs for consistency

* Remove duplicate function

* fix torch_dtype typo for wan

* extending window to 200

* imports

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* Release/3.0.11 (#224)

* Release 3.0.11 (#225)

* updating config to allow toggling generation/scraping on and off

* updated scraper to get native resolution images

* override aug level

* native resolution wip

* Release 3.1.0 (#227)

* V3 (#187)

* V3

* removing v2 ci pipeline

* removing outdated .gitmodules

* keeping the noise that sample size of 50 and slight decay of .5 in EMA provides to avoid having any one model completely dominate the subnet.

* release 2.2.6 datasets, models, and lora support (#188)

* deprecate stable-diffusion-inpainting

* .env templates

* V3/RGB (#191)

* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* V3 frame extraction (#192)

* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

* frame extraction

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* setup.sh

* removing wandb log call from generator

* V3/2.2.9 (#189)

* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* fixing prompt indexing

* properly handling new prompt dictionary key (task type)

* V3/2.2.11 (#190)

* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* prompt sanitation + i2v model

* more retries for prompt sanitation

* fixing truthy tuple assertion

* Update min_compute.yml

* fixing setup script name in docs

* correct script name

* updated requirements.txt with bittensor-cli

* removing wandb.off

* import cleanup

* miner substrate thread restart + vali autoupdate test

* temporary v3 branch set to test autoudpate

* autoupdate update

* lower frequency of audoupdate check

* autoudpate test

* check autoupdate at setp 0

* typo

* autoupdate test

* dont set weights immediately at startup in case of many restarts

* Pyproject toml (#193)

* pyproject setup

* executable setup.sh

* autoupdate test

* resetting version after autoupdate tests

* Add Hugging Face model access instructions to validator docs; improve logging and fix LLM device mapping for multi-GPU

- Added section to Validating.md with instructions for gaining access to required Hugging Face models (FLUX.1-dev, DeepFloyd IF).
- Added logging of generation arguments in generation_pipeline.py.
- Fix LLM loading for multi-GPU in prompt_generator.py: use device_map and remove .to(self.device) for quantized models.
  Quantized LLMs must use device_map for correct device placement; calling .to(self.device) causes device mismatch errors. Parse GPU ID from device string for device_map assignment.

* fixing image_samples check for i2i

* hf_xet requirement

* wandb autorestart

* Fix: raise error if image is None for i2i/i2v tasks and ensure image is converted from array

* fixing wandb autorestart

* error log

* Update setup.sh to install Node.js 20.x LTS from NodeSource for pm2 compatibility; add doc note for existing validators' Hugging Face access

* external port for proxy cuz tensordock rugged us (#196)

* incentive doc

* Typo

* proxy updates

* v2 parity encoding (#197)

* final autoupdate test

* reset version

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* autoupdate set to main

* testing autoupdate on testnet

* autoupdate enabled by default

* autoudpate testnet

* pointing autoupdate at main by default

* removing extra state load command

* setting back to 360 epoch length

* burn for initial v3 release rampup

* debug log typo

* fixed merge to testnet

* Max Frames and Timeout (#203)

* fixing wandb cache clean paths (#202)

* max frames configuration

* fn header update

* slight increase to timeout

* adding extra metadata to testnet requests for miners (#201)

* remove max size arg

* Testnet Metadata (#204)

* adding extra metadata to testnet requests for miners

* adding label and mediatype to testnet metadata

* Log Augmentation Parameters (#205)

* log augmentation params

* braindead typo

* bump verison

* [testnet] Release 3.0.5 (#207)

* fix hotkey check in sync_metagraph

* bump version

* [testnet] Miner healthchecks (#209)

* healthcheck wip

* remove old miner health task vars, change miner healtchechk endpoint name

* health count logging

* fixing query based on health logic

* updating healthcheck interval to 10

* removing unecessary lock

* use DEFAULT_TIMEOUT

* adding blacklisting for bad responses

* fixing detect_image fallback

* a couple comments

* update functionality for generator and proxy

* [testnet] Revised Miner Healthcheck (#210)

* adding basic health dict to miner tracker

* move all request processing logic to epistula module

* reflect request processing updates in eval engine

* healthy/unhealthy miner uid functions

* proxy using simpler miner health from tracker state

* new fn signature for score_challenge

* [testnet] Image Scraping (#213)

* scraper wip

* fixing queries with max date set in tbs, also adding placeholder for reverse image search which i cant get to work rn due to captchas

* taking first sentence of prompt as initial version of search queries

* - Adding specific media scraping interval config
- Adding retry logic and error handling to scraping callback

* Fixing enum value for output path in scraper

* add selenium to requirements

* Fixing str treated as enum

* cleaning up

* increasing media update intervals

* [testnet] Safer Miner Prediction History (#214)

* centralizing logic for safely getting valid predictions and associated labels

* cleaning up

* Aura Dataset and Mask W&B Logging (#217)

* adding bm-aura-imagegen dataset

* log mask as npy artifact

* format

* increasing media cache refresh default

* disabling scrape_new_media_on_interval

* warnings for missing keys in miner history state loading

* lowering media scraping default (not currenlty used)

* remvoning unused healthcheck endpoint in miner

* [testnet] Binary Image Proxy Endpoint (#220)

* binary image endpoint

* adding video endpoint without preprocessing (#221)

* fix frames list (should be np array)

* adding wan2.1-t2v-1.3B (#222)

* [testnet] Segmentation Challenges (#226)

* segmentation v1

* remove debug logging

* legacy detector backward compatibility

* initial reward split for segmentation release

* typo fix and increasing window size

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* removing scraper for current release

* whitespace

* fix bug in miner history resetting when a detector changes to a detector without dereg

* limit uids

* cleanup

* proxy updates

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* Patch/autoupdate minor version (#229)

* stamina for scraping

* cleanup

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>
* wandb logging fix for masks

* exclude mask in detector challenge headers

* return empty lists when no predictions received
Copy link
Contributor

@kenobijon kenobijon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@dylanuys dylanuys merged commit f6b34e0 into main Jul 11, 2025
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.

2 participants