A100本地用transformers推理gpt-oss
GPT-oss試用
gpt-oss有兩個原生配置是目前(2025-8-8)Ampere系列顯卡不支持的,分別是默認的MXFP4量化,以及Flash-attn V3。tranformers推理是比較慢的,可以用于研究模型本身,如果是本地部署,最好用vllm,見三步完成,A100本地vLLM部署gpt-oss,并啟動遠程可訪問api。
下載模型參數到本地
國內用魔塔更快,下載到本地xxxx目錄下:
pip install modelscope
modelscope download --model openai-mirror/gpt-oss-120b --local_dir xxxxxx
創建conda環境
conda create -n vllm python=3.12 -ypip install -U transformers
pip install -U accelerate
pip install -U torch
pip install -U kernels
注意到,這里跟官方給的安裝步驟不太一樣。官方安裝多一個triton
,里面包含了Triton kernels for MXFP4 compatibility
,也就是gpt-oss專用的一個量化技術 MXFP4
,這個量化在A100 GPU上是不被支持的。因此不能安裝,安裝反而會報錯。
模型generate推理
相信大家一般用的最多的還是generate推理,這里給個python示例:
from transformers import AutoModelForCausalLM, AutoTokenizermodel_name = "/mnt/models/gpt-oss-120b" # /mnt/models/gpt-oss-20btokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name,torch_dtype="auto", # autodevice_map="auto",attn_implementation="sdpa", # flash_attention_2 sdpa
)messages = [{"role": "system", "content": "Reasoning: low"},{"role": "user", "content": "Explain what MXFP4 quantization is."},
]inputs = tokenizer.apply_chat_template(messages,add_generation_prompt=True,return_tensors="pt",return_dict=True,
).to(model.device)outputs = model.generate(**inputs,max_new_tokens=1024,temperature=0.7
)print(tokenizer.decode(outputs[0]))
其中model_name
就是下載的模型參數目錄,attn_implementation
這里,不能選擇flash-attn。因為默認使用flash-attn V3,這不被a100支持,會報錯Sinks are only supported in FlashAttention 3
,用flash-attn 2也不行,即使是最新release的2.8.2(2025-8-8),也會報錯一些參數無法識別。messages的第一行{"role": "system", "content": "Reasoning: low"}
用來指定模型思考深度,gpt-oss有三個可選思考深度,但不能關閉。
最后,可以用transformers啟動服務,進行終端命令行對話:
transformers serve
transformers chat localhost:8000 --model-name-or-path /mnt/models/gpt-oss-120b