Views
No views yet
allenai/Olmo-3-7B-Instruct 训练得到的 LoRA adapter。训练时通过 Unsloth 的 FastLanguageModel.from_pretrained 加载该基座,并设置 load_in_4bit=True 进行 4bit 量化加载。训练目标是让模型更适合用中文回答大模型研发与工程化实践相关问题,例如 LoRA/PEFT、SFT 数据构造、RAG、向量检索、Agent、量化、部署与训练排障。allenai/Olmo-3-7B-InstructFastLanguageModel.from_pretrained(..., load_in_4bit=True)Nwna/llm-engineering-sft-80001base model = allenai/Olmo-3-7B-Instruct
2dataset = Nwna/llm-engineering-sft-8000
3num_train_epochs = 2.0
4max_seq_length = 2048
5per_device_train_batch_size = 4
6gradient_accumulation_steps = 2
7learning_rate = 1e-4
8warmup_ratio = 0.05
9lr_scheduler_type = cosine
10optim = adamw_8bit
11LoRA r = 16
12LoRA alpha = 16
13LoRA dropout = 0
14target_modules = q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_projtrain_loss ≈ 1.18521from transformers import AutoTokenizer, AutoModelForCausalLM
2from peft import PeftModel
3import torch
4
5base_model = "allenai/Olmo-3-7B-Instruct"
6adapter = "Nwna/olmo3-7b-llm-engineering-lora"
7
8tokenizer = AutoTokenizer.from_pretrained(adapter)
9model = AutoModelForCausalLM.from_pretrained(
10 base_model,
11 torch_dtype=torch.bfloat16,
12 device_map="auto",
13)
14model = PeftModel.from_pretrained(model, adapter)
15model.eval()
16
17messages = [
18 {"role": "user", "content": "LoRA 和全参数微调有什么区别?为什么本作业选择 LoRA?"}
19]
20text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
21inputs = tokenizer([text], return_tensors="pt").to(model.device)
22
23with torch.no_grad():
24 outputs = model.generate(**inputs, max_new_tokens=512, do_sample=False)
25
26print(tokenizer.decode(outputs[0], skip_special_tokens=True))FastLanguageModel.from_pretrained(model_name="allenai/Olmo-3-7B-Instruct", load_in_4bit=True) 加载基座模型,再加载本 LoRA adapter。