Views
No views yet
Qwen/Qwen3-14B.Qwen/Qwen3-14Benable_thinking=True (apples-to-apples vs Phase 1 baselines)| Task | Best baseline | v3 FT | Δ |
|---|---|---|---|
contract_nli_explicit_identification | 0.840 (Qwen2.5-7B think) | 0.720 | -0.120 |
consumer_contracts_qa | 0.960 (Qwen3-14B think) | 0.960 | 0.000 (matches) |
proa | 1.000 (Qwen3-14B no-think) | 0.960 | -0.040 |
proa.1import torch
2from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
3from peft import PeftModel
4
5BASE = "Qwen/Qwen3-14B"
6ADAPTER = "cs-552-2026-Clanker-Scientists/coordinator-qwen3-14b-qlora-legal-v3"
7
8tok = AutoTokenizer.from_pretrained(BASE)
9bnb = BitsAndBytesConfig(load_in_4bit=True, bnb_4bit_compute_dtype=torch.bfloat16)
10base = AutoModelForCausalLM.from_pretrained(BASE, quantization_config=bnb, device_map="auto")
11model = PeftModel.from_pretrained(base, ADAPTER)
12model.eval()
13
14msgs = [
15 {"role": "system", "content": "You are a legal contract analyst..."},
16 {"role": "user", "content": "Contract:\n[excerpt]\n\nQuestion: Does the contract explicitly identify confidential information?"},
17]
18prompt = tok.apply_chat_template(msgs, tokenize=False, add_generation_prompt=True, enable_thinking=True)
19inputs = tok(prompt, return_tensors="pt").to(model.device)
20with torch.no_grad():
21 out = model.generate(**inputs, max_new_tokens=512, do_sample=False)
22print(tok.decode(out[0, inputs.input_ids.shape[1]:], skip_special_tokens=True))