Conversation
|
The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update. |
xenova
reviewed
Feb 3, 2026
Collaborator
xenova
left a comment
There was a problem hiding this comment.
Very exciting PR! 🙌 Just a quick review from scanning the PR briefly.
…tion that does not check for tokenizer files or processor files if the task does not use them
Co-authored-by: Joshua Lochner <admin@xenova.com>
xenova
requested changes
Feb 19, 2026
Collaborator
xenova
left a comment
There was a problem hiding this comment.
Solid progress! Thanks 🔥
Co-authored-by: Joshua Lochner <admin@xenova.com>
…s.js into v4-cache-handler
breaks simultaneous loading
nico-martin
commented
Feb 27, 2026
xenova
approved these changes
Mar 1, 2026
Collaborator
xenova
left a comment
There was a problem hiding this comment.
Huge PR! 🔥 Thanks so much @nico-martin.
AaronRohrbacher
pushed a commit
to AaronRohrbacher/transformers.js
that referenced
this pull request
Apr 16, 2026
* added progress_total progress callback status info * added get_file_metadata helper * some clean up * improved get_file_metadata and get_files * added functions to main export * removed dynamic import * restructuring * refactored the pipeline tasks so I can have a get_pipeline_files function that does not check for tokenizer files or processor files if the task does not use them * updated doc * Update packages/transformers/src/utils/core.js Co-authored-by: Joshua Lochner <admin@xenova.com> * added is_pipeline_cached and improved return object * fixes after review * added ModelRegistry to doc * added clear_cache and clear_pipeline_cache * Update packages/transformers/src/utils/cache/clear_cache.js Co-authored-by: Joshua Lochner <admin@xenova.com> * small doc fix * changed delete logic for cache * fixed examples in cache utilitiy files * fixed examples * renamed type * refactoring get_file_metadata * moved src/utils/pipeline-tasks.js to src/pipelines/index.js * fixed doc builder * fixed doc builder * created shared getFetchHeaders function * added case for DecoderOnlyWithoutHead and DecoderOnly * improved console.warn * changed to modelType = MODEL_TYPES.EncoderOnly if not foundInMapping * removed full download from get_file_metadata * Remove duplicate module tag (already set in ModelRegistry.js) * Remove test file * pnpm format * Cleanup * use config from_pretrained logic for ensuring config is of correct type * Reorder file acquisition * Add example JSDoc to file header * Add ModelRegistry tests * FIXME: skip cache clearing tests breaks simultaneous loading * Formatting * Unify model-loader.js, get_model_files.js, and session.js * console.warn to logger.warn * Only resolve dtype once in session.js * Use map + Promise.all * map -> forEach * Use env.fetch instead of global fetch * Add comment to clear_cache for clarity * Add model_file_name support in cache operations * Update cache tests * Fix TOCTOU race condition * Remove dead code * cleanup * Cleanup pipeline import/exports * renamed folder cache to model_registry * changed doc title * fix for unit tests on node 20 * standardize module name --------- Co-authored-by: Joshua Lochner <admin@xenova.com> Co-authored-by: Joshua Lochner <26504141+xenova@users.noreply.github.com>
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.
Improved Download Progress Tracking
Problem
Transformers.js couldn't reliably track total download progress because:
Solution
New Exported Functions
get_files(): Determines required files before downloadingget_model_files()/get_tokenizer_files()/get_processor_files(): Helper functions to identify files for each componentget_file_metadata(): Fetches file metadata using Range requests without downloading full contentfromCacheboolean to identify cached filesis_cached(): Checks if all files from a model are already in cacheEnhanced Progress Tracking
readResponse()withexpectedSize: Falls back to metadata whencontent-lengthheader is missingtotal_progresscallback: Provides aggregate progress across all filesReview
One thing I am not super confident is the get_model_files function. I tried to test it with different model architectures, but maybe I missed some that load files that are not in that function. @xenova, could you smoke-test some models and write mie the models that fail?
Easiest way to do that is:
Closes #1345