Language.replace_listeners
: Pass the replaced listener and the tok2vec
pipe to the callback
#12785
+44
−14
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.
Description
Prior to this PR,
Language.replace_listeners
only passed the copiedtok2vec
/transformer
model to thereplace_listener
callback. This worked forspacy-transformers
as the library only uses a singleTransformerListener
class, i.e., the replacement model was always the same. However,spacy-curated-transformers
introduces the concept of different listener classes for downstream components. So, the replacement process needs to provide extra information about the listener model being replaced to correctly select the target model.This PR adds support for such situations by passing the following extra arguments to the
replace_listener
callback: the replaced listener instance and thetok2vec
pipe whose model is copied into the downstream component. These argumentss are only passed when the callback accepts them, so the implementation is backwards-compatible with the callback used inspacy-transformers
.Types of change
Enhancement
Checklist