Instructions to use ubitech-edg/qwen2.5-72b-cpt with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use ubitech-edg/qwen2.5-72b-cpt with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="ubitech-edg/qwen2.5-72b-cpt") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("ubitech-edg/qwen2.5-72b-cpt") model = AutoModelForCausalLM.from_pretrained("ubitech-edg/qwen2.5-72b-cpt") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps
- vLLM
How to use ubitech-edg/qwen2.5-72b-cpt with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "ubitech-edg/qwen2.5-72b-cpt" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "ubitech-edg/qwen2.5-72b-cpt", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/ubitech-edg/qwen2.5-72b-cpt
- SGLang
How to use ubitech-edg/qwen2.5-72b-cpt with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "ubitech-edg/qwen2.5-72b-cpt" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "ubitech-edg/qwen2.5-72b-cpt", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "ubitech-edg/qwen2.5-72b-cpt" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "ubitech-edg/qwen2.5-72b-cpt", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use ubitech-edg/qwen2.5-72b-cpt with Docker Model Runner:
docker model run hf.co/ubitech-edg/qwen2.5-72b-cpt
Qwen2.5-72B — Text Continual Pretraining (CPT) with LoRA Adapters
Model type: Causal Language Model
Base model: Qwen/Qwen2.5-72B
License: Apache 2.0
Framework: Axolotl + DeepSpeed ZeRO-1
Overview
qwen2.5-72b-cpt is a continual-pretrained version of Qwen 2.5-72B, trained using LoRA adapters in 4-bit NF4 quantization for efficient large-scale domain adaptation.
This release contains only the LoRA adapters and training configuration, allowing users to load them on top of the official Qwen 2.5-72B base model.
The CPT (Continual Pretraining) objective broadens the model’s scientific, governance, and energy-domain knowledge while preserving Qwen’s strong general and reasoning capabilities.
Training was performed on the Leonardo EuroHPC supercomputer using Axolotl 0.6 + DeepSpeed ZeRO-1 optimization with bfloat16 computation.
Training Setup
| Component | Specification |
|---|---|
| Objective | Unsupervised continual pretraining (language modeling) |
| Adapter type | LoRA |
| Quantization | 4-bit NF4 (bnb) |
| Precision | bfloat16 |
| Hardware | 8 nodes × 2 × NVIDIA A100-64 GB GPUs |
| Framework | Axolotl + DeepSpeed ZeRO-1 (PyTorch 2.5.1 + CUDA 12.1) |
| Runtime | ≈ 24 hours |
| Checkpoints | Saved every 1/5 of an epoch |
| Loss watchdog | threshold = 5.0, patience = 3 |
Dataset
Public text corpora from open scientific, governmental, and encyclopedic sources:
| File | Description |
|---|---|
| arxiv.jsonl | Scientific and technical papers |
| gov.jsonl | Governmental and regulatory documents |
| news.jsonl | Energy and policy-related news |
| wiki.jsonl | Wikipedia articles for background knowledge |
Hyperparameters
| Parameter | Value |
|---|---|
| Sequence length | 2048 |
| Micro batch size | 1 |
| Gradient accumulation | 4 |
| Epochs | 1 |
| Max steps | 4000 |
| Learning rate | 0.0002 |
| LR scheduler | cosine |
| Optimizer | AdamW (8-bit) |
| Warmup steps | 10 |
| Weight decay | 0.0 |
| LoRA rank (r) | 16 |
| LoRA alpha | 32 |
| LoRA dropout | 0.05 |
| LoRA target modules | q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj |
| Gradient checkpointing | ✅ |
| Flash attention | ✅ |
| Auto resume | ✅ |
| bnb 4-bit compute dtype | bfloat16 |
| bnb 4-bit quant type | nf4 |
| bnb double quant | true |
Tokenizer
Tokenizer type: AutoTokenizer
Special token: <|end_of_text|> as pad_token
Files Included
This repository hosts LoRA adapters and Axolotl metadata only.
Contents:
- adapter_config.json
- adapter_model.safetensors
- config.json
- special_tokens_map.json
- tokenizer_config.json
- tokenizer.json
- README.md
Usage — Load and Apply the Adapters
To use this CPT variant in Python:
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
base_model = "Qwen/Qwen2.5-72B"
adapter_repo = "ubitech-edg/qwen2.5-72b-cpt"
# Load base and tokenizer
tokenizer = AutoTokenizer.from_pretrained(base_model)
model = AutoModelForCausalLM.from_pretrained(
base_model,
device_map="auto",
torch_dtype="bfloat16"
)
# Load LoRA adapters
model = PeftModel.from_pretrained(model, adapter_repo)
model.eval()
prompt = "Explain how renewable energy contributes to grid stability."
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=200)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
- Downloads last month
- 3