A100本地vLLM部署gpt-oss,并启动远程可访问api

GPT-oss试用
gpt-oss有两个原生配置是目前(2025-8-8)Ampere系列显卡不支持的,分别是默认的MXFP4量化,以及Flash-attn V3。官方给出的vllm教程也是默认使用的是H系列显卡。因此,A100部署可能会遇到类似Sinks are only supported in FlashAttention 3的报错。

下载模型参数到本地

国内用魔塔更快,下载到本地xxxx目录下:

pip install modelscope
modelscope download --model openai-mirror/gpt-oss-120b --local_dir xxxxxx

新建conda环境

conda create -n vllm python=3.12 -yconda activate vllmpip install --upgrade uvexport TORCH_CUDA_ARCH_LIST="8.0"uv pip install --pre vllm==0.10.1+gptoss \--extra-index-url https://wheels.vllm.ai/gpt-oss/ \--extra-index-url https://download.pytorch.org/whl/nightly/cu128 \--index-strategy unsafe-best-match --force-reinstall --no-cache

这里官方给的pytorch是cu128,如果a100当前驱动低于12.8不确定会不会报错,我这里提前将GPU驱动(nvidia-smi)以及工具链(nvcc -V)都升级到了12.8,老一点的驱动可能也行。

启动vllm服务

分两种场景,看你是只需要本机访问api,还是需要可远程访问api。远程api:

export TORCH_CUDA_ARCH_LIST="8.0"
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6
VLLM_ATTENTION_BACKEND=TRITON_ATTN_VLLM_V1 vllm serve \/mnt/models/gpt-oss-120b \-tp 2 \--served-model-name gpt-oss-120b \--host 0.0.0.0 \--port 8005 \--api-key 12345

最关键的是VLLM_ATTENTION_BACKEND=TRITON_ATTN_VLLM_V1,不使用Flash-attn,因为gpt-oss默认使用V3,这在A100不受支持。其他设置为FLASHINFERdefaulttriton我这里测试都不行。这里--host 0.0.0.0是让该服务监听所有,远程可访问。如果只想本机可访问,改成--host 127.0.0.1即可。/mnt/models/gpt-oss-120b是你下载模型参数的目录,--port 8005这是服务的端口,不设置默认是8000,--api-key 12345设置访问该API服务需要用这个key验证,--served-model-name gpt-oss-120b这里是设置当使用API访问时,用什么model_name来识别该服务。-tp 2表示用两张卡。

API访问

这里给一个python脚本访问api的示例:

from openai import OpenAI
import jsonclient = OpenAI(base_url="http://localhost:8005/v1",api_key="12345"
)result = client.chat.completions.create(model="gpt-oss-120b",messages=[{"role": "system", "content": "Reasoning: high"},{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Explain what MXFP4 quantization is."}],max_tokens=2048
)print(result.choices[0].message.content)with open('./model_response.json', "w") as f:json.dump(result.model_dump(), f, indent=4, ensure_ascii=False)

这是本地访问。如果是远程访问,将localhost替换成你启动服务的服务器的IP即可。将模型输出保存为json,方便查看分析模型输出的组成部分。messages的第一行{"role": "system", "content": "Reasoning: high"}是用来指示思考深度的,共三个选择highmediumlow
启动的服务默认是支持流式输出的,这里给个流式返回的python示例:

from openai import OpenAIclient = OpenAI(base_url="http://localhost:8005/v1",api_key="12345"
)response = client.chat.completions.create(model="gpt-oss-120b",messages=[{"role": "system", "content": "Reasoning: high"},{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Explain what MXFP4 quantization is."}],max_tokens=2048,stream=True
)for chunk in response:# 有的 SDK 版本 chunk 可能是对象,也可能是字典# 尝试用 dict 访问if isinstance(chunk, dict):choices = chunk.get("choices", [])if choices:delta = choices[0].get("delta", {})content = delta.get("content")if content:print(content, end="", flush=True)else:# 如果是对象,尝试用属性访问try:delta = chunk.choices[0].deltacontent = getattr(delta, "content", None)if content:print(content, end="", flush=True)except Exception:passprint("\n--- done ---")

其中stream=True就标识了流式输出,跟openai的普通API类似。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/92420.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/92420.shtml
英文地址,请注明出处:http://en.pswp.cn/web/92420.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【华为机试】63. 不同路径 II

文章目录63. 不同路径 II题目描述示例 1:示例 2:提示:解题思路核心思想:动态规划(避开障碍)算法流程复杂度分析边界与细节方法对比代码实现Go 实现(含二维DP / 一维DP / 记忆化)测试…

C++ 模拟实现 map 和 set:掌握核心数据结构

C 模拟实现 map 和 set:掌握核心数据结构 文章目录C 模拟实现 map 和 set:掌握核心数据结构一、set 和 map 的结构1.1 set的结构1.2 map的结构二、对红黑树的改造2.1 改造红黑树的节点2.2 改造红黑树2.2.1 仿函数的使用2.2.2 插入函数的改造2.2.3 删除函…

根据ASTM D4169-23e1标准,如何选择合适的流通周期进行测试?

根据ASTM D4169-23e1标准及行业实践&#xff0c;选择流通周期&#xff08;DC&#xff09;需综合以下因素&#xff1a;一、核心选择依据‌产品属性与包装形式‌‌重量体积‌&#xff1a;轻小包裹&#xff08;<4.53kg且<0.056m&#xff09;适用DC2/3/4/6/9/13-17等周期&…

MySQL的触发器:

目录 触发器的概念&#xff1a; 创建触发器&#xff1a; 查看触发器&#xff1a; 查看当前数据库的所有触发器的定义&#xff1a; 查看当前数据中某个触发器的定义&#xff1a; 从系统information_schema的TRIGGERS表中查询"salary_check_trigger"触发器的信息…

基于ubuntu搭建gitlab

原文地址&#xff1a;基于ubuntu搭建gitlab – 无敌牛 欢迎参观我的网站&#xff1a;无敌牛 – 技术/著作/典籍/分享等 之前介绍了一个使用 git openssh-server 搭建一个极简 git 库的方法&#xff0c;感兴趣可以查看往期文章&#xff1a;手搓一个极简远端git库 – 无敌牛 。…

测试GO前沿实验室:为水系电池研究提供多维度表征解决方案

测试GO前沿实验室&#xff1a;为水系电池研究提供多维度表征解决方案随着全球能源转型加速&#xff0c;水系电池因其高安全性、低成本和环境友好特性&#xff0c;成为下一代储能技术的重要发展方向。测试狗前沿实验室针对水系电池研发中的关键科学问题&#xff0c;整合先进表征…

Spring Boot 中 YAML 配置文件详解

Spring Boot 中 YAML 配置文件详解 在 Spring Boot 项目中&#xff0c;配置文件是不可或缺的一部分&#xff0c;用于自定义应用行为、覆盖默认设置。除了传统的 properties 文件&#xff0c;Spring Boot 对 YAML&#xff08;YAML Ain’t Markup Language&#xff09;格式提供了…

Milvus安装可视化工具,attu,保姆级

安装包链接&#xff1a;GitHub - zilliztech/attu: Web UI for Milvus Vector Databasehttps://github.com/zilliztech/attu?tabreadme-ov-file 下滑 举例&#xff1a;windows&#xff1a;下载安装&#xff0c;然后就可以连接了&#xff08;安装完打开后如果需要输入用户名密码…

避免“卡脖子”!如何减少内存I/O延迟对程序的影响?

单来说&#xff0c;内存 IO 就像是计算机的 “数据高速公路”&#xff0c;负责在内存和其他设备&#xff08;如硬盘、CPU 等&#xff09;之间传输数据。它的速度和效率直接影响着计算机系统的整体性能。 你有没有想过&#xff0c;当你点击电脑上的一个应用程序&#xff0c;它是…

V4L2摄像头采集 + WiFi实时传输实战全流程

&#x1f4d6; 推荐阅读&#xff1a;《Yocto项目实战教程:高效定制嵌入式Linux系统》 &#x1f3a5; 更多学习视频请关注 B 站&#xff1a;嵌入式Jerry V4L2摄像头采集 WiFi实时传输实战全流程 1. 实战场景概述 目标&#xff1a; 嵌入式设备&#xff08;如RK3588/正点原子开发…

Java 之 设计模式

1.单例模式1. ​​饿汉式&#xff08;Eager Initialization&#xff09;​​​​核心原理​​&#xff1a;类加载时立即创建实例&#xff0c;通过静态变量直接初始化。​​代码示例​​&#xff1a;public class Singleton {private static final Singleton INSTANCE new Sing…

[激光原理与应用-185]:光学器件 - BBO、LBO、CLBO晶体的全面比较

一、相同点非线性光学晶体属性BBO、LBO、CLBO均为非中心对称晶体&#xff0c;具备非线性光学效应&#xff0c;广泛应用于激光频率转换&#xff08;如倍频、三倍频、和频、差频&#xff09;、光学参量振荡&#xff08;OPO&#xff09;及电光调制等领域。宽透光范围三者均覆盖紫外…

Android APN加载耗时优化可行性分析

背景 根据Android系统底层机制和行业实践,本文讨论 APN 加载耗时从4.2s降至0.8s的数据合理性和技术可行性,需结合具体优化手段和硬件环境综合分析。 以下是关键判断依据及行业参考: ⚙️ 一、APN加载耗时基准参考 未优化场景的典型耗时 首次开机或重置后:APN需从apns-con…

mysql进阶-sql调优

概述优化索引在MySQL初阶的课程中已经介绍了索引&#xff0c;我们知道InnoDB存储引擎使⽤B树作为索引默认的数据结构来组织数据&#xff0c;为频繁查询的列建⽴索引可以有效的提升查询效率&#xff0c;那么如何利⽤索引编写出⾼效的SQL查询语句&#xff1f;以及如何分析某个查询…

海量数据处理问题详解

1.从a&#xff0c;b两个文件各存放50亿个url&#xff08;每个url大小为64B&#xff09;&#xff0c;如何在内存为4G中查找a&#xff0c;b中相同的url 计算各文件存放大小&#xff1a;50亿*64B 大约为320G&#xff0c;而内存只有4G&#xff0c;显然存放不下&#xff0c;此时我们…

AI 记忆管理系统:工程实现设计方案

本文档为《从“健忘”到“懂我”&#xff1a;构建新一代AI记忆系统》中所述理念的详细工程实现方案。它将聚焦于技术选型、模块设计、数据流转和核心算法&#xff0c;为开发团队提供清晰的落地指引。 1. 系统架构与技术选型 为实现分层记忆与读写分离的设计理念&#xff0c;我们…

Linux驱动学习day26天(RS485)

一、原理通过芯片将232信号转换成485信号&#xff0c;485表示0和1的方法&#xff1a;Va - Vb 的电压差在2~6V时表示1&#xff0c;Va - Vb 的电压差在-2~-6V时表示0。这样传输不容易受到干扰&#xff0c;并且传输距离长。我们需要做的事情就是发送&#xff1a;使能DE(driver ena…

从零构建TransformerP1-了解设计

欢迎来到啾啾的博客&#x1f431;。 记录学习点滴。分享工作思考和实用技巧&#xff0c;偶尔也分享一些杂谈&#x1f4ac;。 有很多很多不足的地方&#xff0c;欢迎评论交流&#xff0c;感谢您的阅读和评论&#x1f604;。 目录引言1 概念回顾1.1 序列任务1.1.1 将序列变成模型…

JVM 终止机制详解:用户线程与守护线程

用户线程未执行完是否会阻止 JVM 终止&#xff1f;答案是&#xff1a;取决于线程类型。让我详细解释&#xff1a; 核心规则 #mermaid-svg-bg5xpyMAeRWNGGk2 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-bg5xpyMAe…

Linux Vim 常用快捷键

Vim中最常用的快捷键&#xff0c;熟练掌握它们可以大大提高编辑效率。移动光标h- 左移j- 下移k- 上移l- 右移w- 移动到下一个单词开头b- 移动到上一个单词开头e- 移动到单词末尾0- 移动到行首$- 移动到行尾gg- 移动到文件开头G- 移动到文件末尾:n- 跳转到第n行插入模式i- 在光标…