Repository navigation
Conversation
A library can now ship a probe as <name>/<model>/probe/ with probe_head.safetensors and probe_config.json (labels, layer), so --adapters <library> composes it without a manifest. The slot is named <name>_probe, so it can sit next to a LoRA of the same name. The compose report skips LoRA analysis when every slot is a probe, which used to crash. Signed-off-by: IRENEKO <cyko@ibm.com>
IRENEKO
requested review from
antonpibm,
aviv1ron1,
freunda and
yairallouche
as code owners
November 5, 2026 20:12
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This branch has not been deployed
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.
Probe slots could only be composed from a YAML manifest. A library can now ship a
probe the same way it ships a LoRA, so
--adapters <library>picks it up:The slot is named
<name>_probe, so a probe can sit next to a LoRA of the samename (in one library, or across two libraries composed together).
layerisoptional; omitted means the final post-norm state, as in the manifest.
Changes:
discover_adaptersacceptsprobeas a technology and requires the probe filesinstead of
adapter_model.safetensors/adapter_config.json. Probes are left outof the module-contribution report, which reads
adapter_config.json.labelsandlayerfrom each discovered probe'sprobe_config.jsoninto the same
probe_metathe manifest path fills.compose used to crash there (
KeyError: 'adapter_names').Hub libraries need no download change: a
probe/folder falls under the existing<name>/<model>/**fallback pattern.Testing
tests/composer/test_adapter_filtering.py: a LoRA and a probe under one name areboth discovered, as
ansandans_probe.tests/composer/test_selective_download.py: a Hub probe folder is in the downloadpatterns.
tests/composer/test_probe_compose.py: two CLI end-to-end composes. One is aprobe-only library (granite-4.0-micro). The other is
answerability/.../lora/plusanswerability/.../probe/(granite-4.1-3b), which gives slotsanswerabilityandanswerability_probe.test_probe_compose.py14/14,test_compose_e2e.py9/9.