Views
No views yet
pip install transformers peft torch accelerate huggingface-hub tqdm bitsandbytespip install -r requirements_inference.txt1from transformers import AutoModelForCausalLM, AutoTokenizer
2from peft import PeftModel
3import torch
4
5# Load base model
6base_model = AutoModelForCausalLM.from_pretrained(
7 "Qwen/Qwen3-4B-Instruct-2507",
8 torch_dtype=torch.bfloat16,
9 device_map="auto",
10 trust_remote_code=True,
11)
12
13# Load LoRA adapter
14model = PeftModel.from_pretrained(
15 base_model,
16 "AutomatedScientist/qwen-4b-jupyter-to-interleave-tool-call-lora"
17)
18
19# Load tokenizer
20tokenizer = AutoTokenizer.from_pretrained(
21 "AutomatedScientist/qwen-4b-jupyter-to-interleave-tool-call-lora",
22 trust_remote_code=True
23)1# Prepare input
2messages = [{"role": "user", "content": "Your Jupyter notebook content here..."}]
3text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
4inputs = tokenizer(text, return_tensors="pt").to(model.device)
5
6# Generate
7with torch.no_grad():
8 outputs = model.generate(
9 **inputs,
10 max_new_tokens=512,
11 do_sample=True,
12 temperature=0.7,
13 pad_token_id=tokenizer.pad_token_id,
14 )
15
16# Decode
17response = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)
18print(response)python download_aurora_data.py --output-dir data/aurora_jupyter1python inference.py \
2 --adapter-path AutomatedScientist/qwen-4b-jupyter-to-interleave-tool-call-lora \
3 --input-file data/aurora_jupyter/stage1/code/jupyter-structured-clean-dedup_part_aa.jsonl \
4 --output-file results.jsonl \
5 --max-samples 10stage1/code/jupyter-structured-clean-dedup_part_aa.jsonlstage1/code/jupyter-structured-clean-dedup_part_ab.jsonl| Training Loss | Epoch | Step | Validation Loss |
|---|---|---|---|
| 0.1429 | 0.5 | 57 | 0.0904 |
| 0.057 | 1.0 | 114 | 0.0560 |
| 0.0531 | 1.5 | 171 | 0.0527 |
| 0.0506 | 2.0 | 228 | 0.0528 |
| 0.0511 | 2.5 | 285 | 0.0524 |
docker build -t qwen-jupyter-inference .1docker run --gpus all --shm-size=8gb --ipc=host \
2 -v ~/.cache/huggingface:/root/.cache/huggingface \
3 -v $(pwd)/data:/data \
4 qwen-jupyter-inference1docker run --gpus all --shm-size=8gb --ipc=host \
2 -v ~/.cache/huggingface:/root/.cache/huggingface \
3 -v $(pwd)/data:/data \
4 qwen-jupyter-inference \
5 python3 inference_vllm.py \
6 --adapter-path AutomatedScientist/qwen-4b-jupyter-to-interleave-tool-call-lora \
7 --input-file /data/your_input.jsonl \
8 --output-file /data/output.jsonl \
9 --max-samples 100 \
10 --max-new-tokens 4096 \
11 --max-model-len 327681pip install vllm
2python inference_vllm.py \
3 --adapter-path AutomatedScientist/qwen-4b-jupyter-to-interleave-tool-call-lora \
4 --input-file data/input.jsonl \
5 --output-file data/output.jsonl \
6 --max-samples 100## Instruction header### Response header1from rubric import get_reward, evaluate
2
3text = "## Instruction\n...\n### Response\n..."
4score = get_reward(text) # Returns 0.0-1.0
5details = evaluate(text) # Returns detailed breakdownadapter_model.safetensors - LoRA adapter weightsadapter_config.json - LoRA configurationtokenizer.json, tokenizer_config.json - Tokenizer filesinference.py - Basic inference script (transformers)inference_vllm.py - High-throughput vLLM inference scriptDockerfile - Docker image for vLLM inference (Blackwell-optimized)rubric.py - Evaluation rubric for output scoringsystem_prompt.py - System prompt used during inferencedownload_aurora_data.py - Script to download sample datarequirements_inference.txt - Python dependencies