当前位置: 首页 > news >正文

A100用transformers推理gpt-oss

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
http://www.lryc.cn/news/614665.html

相关文章:

  • 第六章第四节 PWM驱动LED呼吸灯 PWM驱动舵机 PWM驱动直流电机
  • 校招秋招春招小米在线测评小米测评题库|测评解析和攻略|题库分享
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘huggingface_hub’问题
  • Numpy科学计算与数据分析:Numpy高效数据处理与优化
  • Mac 电脑放在环境变量中的通用脚本
  • 免费PDF批量加密工具
  • 从零掌握 Java AWT:原理、实战与性能优化
  • 【沉浸式解决问题】pycharm关闭科学模式
  • 杰理ac791 [Info]: [LL_S]Recv - LL_CHANNEL_MAP_REQ
  • Python从入门到精通计划Day07: Python数据卷轴术:文件魔法与防御结界全指南
  • nlp-语义分析
  • 在 Vue 中使用 ReconnectingWebSocket实现即时通讯聊天客服功能
  • Java 使用 SSHJ 执行 SSH 命令和 SFTP 文件上传和下载
  • 【前端后端部署】将前后端项目部署到云服务器
  • Redis(④-消息队列削峰)
  • 吴恩达 深度学习笔记
  • Coze Studio 概览(九)--插件管理
  • 配电线路故障定位在线监测装置的技术解析与应用价值
  • 应急响应流程
  • 基于 C++ 的湍流数值模拟理论报告
  • 从零构建桌面写作软件的书籍管理系统:Electron + Vue 3 实战指南
  • 中小业务遭遇网络攻击,防护能力不足的解决办法​
  • electron 静默安装同时安装完成后自动启动(nsis)
  • Spark在什么情况下CBO才会判断失误,如何避免
  • 服务器登上去,显示 failed to send WATCHDOG 重启有效吗?
  • Uber的MySQL实践(一)——学习笔记
  • I/O原理与服务。
  • 智慧交通场景下 mAP↑28%:陌讯多模态融合算法实战解析
  • OpenAI 开源模型 GPT-OSS MCP服务器深度解密:从工具集成到系统提示全自动化,浏览器+Python无缝协同的底层逻辑
  • 微软Azure AI Foundry正式上线GPT-5系列模型