Views
No views yet
transformers model with lora integration that works with zero extra installs! Just `trust_remote_code=True`. You trust me! 🩷️
1from transformers import AutoConfig, AutoModelForCausalLM, AutoTokenizer
2import torch
3
4device = "cuda" if torch.cuda.is_available() else "cpu"
5
6model_id = "crumb/qwen3.5-9B-cq3"
7tokenizer = AutoTokenizer.from_pretrained(model_id)
8model = AutoModelForCausalLM.from_pretrained(
9 model_id, dtype=torch.bfloat16,
10 device_map="auto", # <- however you please
11 trust_remote_code=True # <- it's that easy!.. just takes a while LOL
12)1model.add_adapter("my_adapter", r=32, alpha=32**0.5, trainable=True)
2model.add_adapter("my_other_adapter", r=45, alpha=1.772453851, trainable=True)1inputs = tokenizer("Once upon a time,", return_tensors="pt")
2inputs = {k:v.to(device) for k,v in inputs.items()}
3outputs = model.generate(
4 **inputs, do_sample=True,
5 max_new_tokens=16,
6 temperature=1.0,
7 top_k=0,
8)
9print(tokenizer.decode(outputs[0]))
10# [transformers] Setting `pad_token_id` to `eos_token_id`:248044 for open-end generation.
11# Once upon a time, a single drive DJ grew out of a drug‑ware would run it and eventually1advantage = 10.0 # <- what it generated was awesome lol
2
3optimizer = torch.optim.AdamW(
4 [p for n,p in model.named_parameters() if "my_adapter" in n],
5 3e-5, weight_decay=0.1, betas=(0.9, 0.95)
6)
7logits = model(outputs.clone().detach()).logits
8logits = logits[:, inputs['input_ids'].shape[-1]:, :]
9labels = outputs[:, inputs['input_ids'].shape[-1]:].clone()
10loss = torch.nn.functional.cross_entropy(
11 logits.reshape(-1, logits.size(-1)),
12 labels.reshape(-1),
13 reduction="none",
14).view(labels.shape)
15policy_loss = (-loss * advantage).mean()
16policy_loss.backward()
17
18grad_norm = torch.nn.utils.clip_grad_norm_(model.parameters(), 0.5)
19optimizer.step()1with model.disable_adapters(["my_other_adapter"]):
2 # ...whatever code here...1model.push_to_hub("my_adapter", "username/my_cq_adapter")
2model.push_to_hub("my_other_adapter", "username/my_other_cq_adapter")
3
4model.load_adapter(
5 adapter_name="another_adapter",
6 load_directory="crumb/cq-example-adapter"
7)