Overview
Intervention-to-Skill (I2S) turns large-model assistance into procedural skills that a small model can reuse across tasks. This repository provides the pretrained confidence model based on Qwen3-8B.
The model assesses a proposed environment action using the task, visible state, admissible actions, interaction history, and procedural guidance. Confidence is the normalized likelihood of CONFIDENT among the complete UNCERTAIN and CONFIDENT label sequences. This score guides when I2S requests large-model assistance.
I2S uses this model for confidence scoring while a separate actor generates actions. The model weights remain fixed during task streams.
Links
📄 Paper · 🤗 Hugging Face Paper · 🌐 Project Page · 💻 GitHub · 🧪 Usage Example · 📊 Evaluation · ModalityDance
Model Details
Table with columns: Setting, Value| Setting | Value |
|---|
| Base model | Qwen/Qwen3-8B |
| Checkpoint format | Transformers, sharded Safetensors |
| Precision | Float32 |
| Labels | UNCERTAIN, CONFIDENT |
The repository contains the complete model weights, tokenizer, and configuration. Load the checkpoint directly with Transformers or vLLM.
Usage
Install the I2S package and model dependencies in a Python environment with CUDA:
git clone https://github.com/ModalityDance/I2S.gitcd I2Spython -m pip install -e '.[training]'
Load the pretrained model and score a proposed action:
import torchfrom transformers import AutoModelForCausalLM, AutoTokenizer from i2s.confidence_scoring import encode_pair, label_log_likelihoods model_id = "ModalityDance/I2S-Qwen3-8B-Confidence"tokenizer = AutoTokenizer.from_pretrained(model_id)model = AutoModelForCausalLM.from_pretrained( model_id, torch_dtype=torch.float32, device_map="auto").eval() messages = [{"role": "user", "content": ( "Task: Move the item to the designated location.\n" "Observation: The item is held and the destination is accessible.\n" "Admissible actions: Place the item at the destination.\n" "Proposed action: Place the item at the destination.")}]prompt_ids, label_ids = encode_pair(tokenizer, messages)with torch.inference_mode(): scores = label_log_likelihoods(model, tokenizer, prompt_ids, label_ids) confidence = scores.softmax(0)[1].item() print("Confidence:", confidence)
For task execution, follow the I2S Quick Start. Start the pretrained confidence model in the serving environment:
conda activate i2s-servingpython scripts/serve_models.py confidence
Training
The model is calibrated offline on interaction examples with labels derived from local execution feedback. Training and validation use disjoint task identities. The objective is class-weighted cross-entropy over the complete confidence-label likelihoods.
Training commands are in Confidence Calibration.
Citation
@misc{shi2026i2s, title = {From Intervention to Skill: Evolving Small--Large Language Model Collaboration}, author = {Zhenning Shi and Ran Wei and Ning Song and Yongqi Li}, year = {2026}, url = {https://github.com/ModalityDance/I2S}}
License
This model is released under the Apache 2.0 License, following Qwen3-8B. The I2S code is released under the MIT License.