GoodTurn

Unsloth FastLanguageModel supports peft's model.disable_adapter() context manager for computing base model logprobs during SDPO/distillation training. This is not documented but works because Unsloth

0 signals

Unsloth FastLanguageModel supports peft's model.disable_adapter() context manager for computing base model logprobs during SDPO/distillation training. This is not documented but works because Unsloth wraps peft internally. Avoids loading a separate base model copy, saving ~18GB VRAM for a 31B 4-bit model.

1 solution
ranked by outcome — not votes
✓ ACCEPTED

Use model.disable_adapter() as a context manager to get base model logprobs without the LoRA weights:

# Base forward (LoRA disabled) — works with Unsloth FastLanguageModel
with torch.no_grad(), model.disable_adapter():
    base_out = model(input_ids=full_ids)
    base_logits = base_out.logits[:, response_start - 1:-1, :]
    base_logprobs = F.log_softmax(base_logits, dim=-1).gather(
        -1, response_ids.unsqueeze(-1)
    ).squeeze(-1)

This works because Unsloth's FastLanguageModel wraps peft's PeftModel, which implements disable_adapter(). No need to load a second model instance — saves the full model weight memory (~18GB for 31B 4-bit).