Text Generation
Transformers
Safetensors
English
Chinese
Russian
yue2
music-generation
orbitquant
quantization
4-bit precision
custom-code
8-bit precision
Instructions to use WaveCut/YuE2-3B-OrbitQuant-W4A4 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use WaveCut/YuE2-3B-OrbitQuant-W4A4 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="WaveCut/YuE2-3B-OrbitQuant-W4A4")# Load model directly from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained("WaveCut/YuE2-3B-OrbitQuant-W4A4", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use WaveCut/YuE2-3B-OrbitQuant-W4A4 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "WaveCut/YuE2-3B-OrbitQuant-W4A4" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "WaveCut/YuE2-3B-OrbitQuant-W4A4", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/WaveCut/YuE2-3B-OrbitQuant-W4A4
- SGLang
How to use WaveCut/YuE2-3B-OrbitQuant-W4A4 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 "WaveCut/YuE2-3B-OrbitQuant-W4A4" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "WaveCut/YuE2-3B-OrbitQuant-W4A4", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'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 "WaveCut/YuE2-3B-OrbitQuant-W4A4" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "WaveCut/YuE2-3B-OrbitQuant-W4A4", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use WaveCut/YuE2-3B-OrbitQuant-W4A4 with Docker Model Runner:
docker model run hf.co/WaveCut/YuE2-3B-OrbitQuant-W4A4
| import json | |
| from pathlib import Path | |
| import pytest | |
| import torch | |
| from kernels import get_local_kernel | |
| from orbitquant.kernels.native_packed_matmul import matmul_packed_w4a4_int8_with_native_kernel as original | |
| kernel=get_local_kernel(Path(__file__).resolve().parents[1] / 'build', 'orbitquant_gemv') | |
| def test_exact_integer_gemv(rows,n,k,dtype): | |
| torch.manual_seed(123) | |
| x=torch.randint(0,256,(rows,k//2),device='cuda',dtype=torch.uint8) | |
| w=torch.randint(0,256,(n*k//2,),device='cuda',dtype=torch.uint8) | |
| xn=torch.rand(rows,device='cuda');wn=torch.rand(n,device='cuda',dtype=torch.bfloat16) | |
| ac=torch.arange(-8,8,device='cuda',dtype=torch.int8);wc=ac.flip(0).contiguous() | |
| bias=None | |
| kw=dict(activation_scale=.03125,weight_scale=.0625,bias=bias,output_dtype=dtype) | |
| ref=original(x,w,xn,wn,ac,wc,out_features=n,in_features=k,**kw) | |
| out=kernel.gemv(x,w,xn,wn,ac,wc,**kw) | |
| torch.testing.assert_close(out,ref,rtol=0,atol=0) | |
| stream=torch.cuda.Stream();stream.wait_stream(torch.cuda.current_stream()) | |
| with torch.cuda.stream(stream): | |
| for _ in range(3):kernel.gemv(x,w,xn,wn,ac,wc,**kw) | |
| torch.cuda.current_stream().wait_stream(stream) | |
| graph=torch.cuda.CUDAGraph() | |
| with torch.cuda.graph(graph): captured=kernel.gemv(x,w,xn,wn,ac,wc,**kw) | |
| graph.replay();torch.cuda.synchronize() | |
| torch.testing.assert_close(captured,ref,rtol=0,atol=0) | |
| def test_rejects_bad_weight_shape(): | |
| x=torch.zeros(1,64,device='cuda',dtype=torch.uint8) | |
| with pytest.raises(RuntimeError,match='packed weight size'): | |
| kernel.gemv(x,x.flatten(),torch.ones(1,device='cuda'),torch.ones(2,device='cuda',dtype=torch.bfloat16),torch.zeros(16,device='cuda',dtype=torch.int8),torch.zeros(16,device='cuda',dtype=torch.int8),activation_scale=1,weight_scale=1) | |