FlexGen 在 Google Cloud 上的完整环境搭建指南:单 GPU 高吞吐 LLM 推理的 GCP 部署实战
推理引擎大模型【免费下载链接】FlexGenRunning large language models on a single GPU for throughput-oriented scenarios.项目地址https://gitcode.com/gh_mirrors/fl/FlexGen点击查看免费下载本文是一份面向 Google Cloud PlatformGCP环境的 FlexGen 端到端安装与部署指南覆盖从系统依赖、CUDA、Anaconda 到 FlexGen 及其基准测试依赖DeepSpeed、transformers的完整命令行操作流程并补充挂载本地 NVMe SSD、磁盘性能评测与显存/内存调优等实战要点。读完本文你可以在 GCP 实例上从零搭建起可运行 OPT-6.7B/30B/175B 高吞吐推理的 FlexGen 环境并理解各安装步骤与底层配置参数的作用。一、GCP 环境概览与准备工作FlexGen 的目标是在单张低成本 GPU上以高吞吐方式运行大规模语言模型如 OPT-175B其核心思路是通过将权重、注意力缓存与激活值按策略卸载offload到 CPU 甚至磁盘换取更大的有效批处理规模。官方性能测试使用的基础硬件即为GCP 上的 NVIDIA T416GB实例配 208GB DRAM 与 1.5TB SSD见 README.md因此 GCP 是 FlexGen 最典型的部署环境之一。在开始安装前建议确认以下几点实例规格至少一张 NVIDIA GPUT4/P100/V100 等均可若计划运行 OPT-30B 及以上模型请预留充足的 CPU 内存如官方测试使用的 208GB DRAM与 SSD 空间。系统Ubuntu 系 Linux文档中所有命令均基于 apt 包管理。磁盘优先选择带本地 NVMe SSD 的实例并将卸载目录挂载到 SSD 上以获得最佳性能具体方法见本文第五节。二、安装系统基础依赖首先更新软件源并安装编译工具链与 MPI 等基础组件来自 docs/gcp_setup.mdsudo apt update sudo apt install build-essential openmpi-bin wget build-essential gitbuild-essential提供 gcc/g 等编译工具FlexGen 源码安装pip install -e .及 DeepSpeed 的本地编译都依赖它。openmpi-binMPI 运行时用于 FlexGen 的分布式多 GPU/多节点流水线并行推理见 benchmark/flexgen/README.md 中bench_*_1x4.sh、bench_*_4x1.sh脚本。wget用于下载 CUDA 与 Anaconda 安装包。git用于克隆 FlexGen 仓库及第三方依赖。三、安装 CUDA 11.6 与 Anaconda3.1 安装 CUDA 11.6文档使用 CUDA 11.6 的本地安装器进行安装wget https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda_11.6.0_510.39.01_linux.run sudo sh cuda_11.6.0_510.39.01_linux.run注意下载的.run文件约 2GB建议预先确认磁盘空间。510.39.01为对应的 NVIDIA 驱动版本号安装时按提示选择驱动与 CUDA 工具包组件。CUDA 版本需与后文安装的 PyTorch cu116 轮子保持一致这是 GPU 端可用的前提。3.2 安装 Anaconda 并创建 conda 环境wget https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.sh bash Anaconda3-2022.10-Linux-x86_64.sh conda create -n flexgen python3.9 conda activate flexgen文档指定使用Python 3.9创建独立的flexgen环境避免与系统 Python 及包管理互相污染。从 pyproject.toml 可以看到FlexGen 声明requires-python 3.7Python 3.9 完全满足要求且与 torch/transformers 生态兼容性良好。可选安装 Lianmin 的 vim 插件非必需仅为个人开发环境偏好# git clone gitgithub.com:merrymercy/m-setup.git # bash m-setup/scripts/all.sh四、安装 PyTorchcu116 版本在激活的flexgen环境中安装与 CUDA 11.6 匹配的 PyTorchpip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116--extra-index-url指定 PyTorch 官方 cu116 轮子索引确保安装的是 GPU 版 PyTorch。版本兼容性README 要求PyTorch 1.12README.mdpyproject.toml 中同样声明了torch1.12依赖cu116 渠道默认安装的版本均满足该下限。安装完成后可用以下命令快速验证 GPU 可见python3 -c import torch; print(torch.__version__, torch.cuda.is_available())五、从源码安装 FlexGen 及其基准测试依赖5.1 克隆仓库并以开发模式安装 FlexGengit clone gitgithub.com:FMInference/FlexGen.git cd FlexGen pip3 install -e .pip3 install -e .editable 安装会把flexgen包以链接方式装入当前 conda 环境后续对仓库代码的改动即时生效便于研究与二次开发。根据 pyproject.toml运行时依赖包括torch1.12、transformers4.24、numpy、tqdm、pulp、attrs其中pulp用于策略优化器成本模型相关的线性规划求解。5.2 安装 DeepSpeed基准测试所需FlexGen 的性能对比基准中包含 DeepSpeed ZeRO-Inference 基线需从仓库自带的第三方源码安装cd FlexGen/benchmark/third_party/DeepSpeed sudo apt install libaio-dev pip3 install -e .libaio-dev是 Linux 异步 I/OAIO库的开发头文件DeepSpeed 的异步 I/O 算子async_io编译必需。若你只运行 FlexGen 本体不跑对比基准这一步可以跳过benchmark/third_party/DeepSpeed 目录下是完整的 DeepSpeed 源码副本。5.3 安装 transformers 与 acceleratecd FlexGen/benchmark/third_party/transformers pip3 install -e . pip3 install accelerate0.15.0仓库自带一份 transformers 源码副本以开发模式安装可保证与 FlexGen 基准脚本如benchmark/hf_ds/bench_hf.py所用版本一致。accelerate0.15.0用于 Hugging Face Accelerate 基线对比见 benchmark/batch_size_table.md 中的性能对照表固定版本以复现官方结果。安装完成后仓库根目录下的完整环境即可用于运行 benchmark/flexgen 中的基准套件cd FlexGen/benchmark/flexgen python3 bench_suite.py 30b_1x1 # OPT-30B 单 GPU 基准 python3 bench_suite.py 30b_1x1_comp # 带 int4 压缩的 OPT-30B 基准六、安装后的快速验证与核心参数说明6.1 先跑一个小模型验证环境环境就绪后建议先用可完全放入 GPU 的小模型验证安装是否成功python3 -m flexgen.flex_opt --model facebook/opt-1.3b该命令会从 Hugging Face 自动下载权重并执行一次文本生成与吞吐基准测试见 README.md。6.2 理解--percent卸载策略参数运行大模型时需要显式指定卸载策略。--percent接收6 个整数依次为位置含义1权重weight放在 GPU 的百分比2权重放在 CPU 的百分比3注意力缓存attention cache放在 GPU 的百分比4注意力缓存放在 CPU 的百分比5激活值activations放在 GPU 的百分比6激活值放在 CPU 的百分比来源见 flexgen/flex_opt.py。每组权重/缓存/激活的 GPU 与 CPU 百分比之和为 100剩余部分自动落到磁盘对应源码中w_disk_percent、cache_disk_percent、act_disk_percent的计算见 flexgen/flex_opt.py。例如# OPT-30B权重全部放 CPU缓存与激活全放 GPU python3 -m flexgen.flex_opt --model facebook/opt-30b --percent 0 100 100 0 100 06.3 关联的常用命令行参数结合 flexgen/flex_opt.py 的参数定义以下参数在实际调优中高频使用参数默认值说明--offload-dir~/flexgen_offload_dir张量卸载到磁盘的目录应指向快速 SSD见第五节--gpu-batch-size4GPU 上的批处理大小增大可提升吞吐--num-gpu-batches1GPU 上缓存的批次数与--gpu-batch-size共同决定有效批量--pin-weightTrue是否将权重页锁定pinned内存置 0 可降低约 20% 的 CPU 权重内存占用--compress-weightFalse启用权重 int4 压缩可降低约 70% 的权重内存--compress-cacheFalse启用注意力缓存压缩--cpu-cache-computeFalse在 CPU 上计算注意力缓存以减少 GPU 占用例如完全把权重卸载到磁盘、几乎不占用 GPU/CPU 内存的配置python3 -m flexgen.flex_opt --model facebook/opt-175b --percent 0 0 100 0 100 0 --offload-dir YOUR_SSD_FOLDER6.4 生成 API 验证也可以直接运行官方示例 flexgen/apps/completion.py 验证两句话的补全流程# OPT-6.7B约需 15GB GPU 显存 python3 -m flexgen.apps.completion --model facebook/opt-6.7b # OPT-30B约需 90GB CPU 内存 python3 -m flexgen.apps.completion --model facebook/opt-30b --percent 0 100 100 0 100 0七、GCP 上的磁盘与性能优化7.1 将卸载目录挂载到本地 NVMe SSDFlexGen 的磁盘卸载性能直接受 I/O 速度影响。官方建议将默认卸载目录~/flexgen_offload_dir放在快速 SSD 上见 benchmark/flexgen/README.md。GCP 实例自带本地 NVMe 时可直接使用仓库提供的挂载脚本sudo bash scripts/mount_nvme_gcp.sh ~/该脚本scripts/mount_nvme_gcp.sh将 4 块 NVMe 盘/dev/nvme0n1/dev/nvme0n4组建为条带化striped逻辑卷并挂载到flexgen_offload_dir实现多盘并行读写。AWS 实例可参考 scripts/mount_nvme_aws.sh。7.2 磁盘性能评测与系统调优仓库的 docs/disk_commands.txt 提供了 GCP 上常用的三条系统级调优命令# 1. 清理内存中的磁盘缓存释放 page cache sudo sysctl -w vm.drop_caches3 # 2. 评测磁盘写性能4KB 块大小写 200 万个块 dd if/dev/zero ofbenchfile bs4k count2000000 # 3. 限制某个进程的内存占用例如限制 python3 为 13GB sudo systemd-run --scope --propertyMemoryLimit13G python3第一条命令在反复跑卸载到磁盘的基准测试时可避免 page cache 污染测试结果。第二条命令用于粗略评估 SSD 的 4KB 随机写带宽这是磁盘卸载场景下最关键的指标之一。第三条命令用于模拟内存受限环境验证 FlexGen 在给定 DRAM 预算下的卸载策略。7.3 内存不足OOM时的降级手段若 GPU/CPU 内存不足README 给出了三档由快到慢的调整方案README.md--pin-weight 0关闭权重页锁定降低约 20% 的 CPU 权重内存追加--compress-weight启用权重压缩降低约 70% 的权重内存--percent 0 0 100 0 100 0将所有权重卸载到磁盘几乎不占 GPU/CPU 内存。这三档方案可叠加组合按实际资源余量灵活选用。八、小结按照本文的安装顺序——系统依赖 → CUDA 11.6 → Anaconda Python 3.9 → PyTorch cu116 → FlexGen 源码安装 → DeepSpeed/transformers 基准依赖即可在 GCP 实例上完整复现 README.md 中展示的单 GPU 高吞吐推理能力与 benchmark/batch_size_table.md 中的性能对比实验。安装完成后再结合本地 NVMe 挂载、磁盘缓存清理与--percent卸载策略调优你就能在自己的 GCP 预算内以最小成本运行 OPT-30B 乃至 OPT-175B 级别的模型批处理任务。赞分享推理引擎大模型【免费下载链接】FlexGenRunning large language models on a single GPU for throughput-oriented scenarios.项目地址https://gitcode.com/gh_mirrors/fl/FlexGen点击查看免费下载相关推荐whichllm高级配置自定义基准测试权重与硬件性能阈值whichllm高级配置自定义基准测试权重与硬件性能阈值 whichllm是一款帮助用户找到在本地硬件上实际运行并表现最佳的LLM工具它基于真实、时效性强的推理引擎大模型Discourse Docker高级技巧自定义模板与hooks深度应用指南Discourse Docker高级技巧自定义模板与hooks深度应用指南 想要充分发挥Discourse论坛的潜力吗掌握Discourse Docker的后端DevOps老 Mac 免费再战五年OpenCore Legacy Patcher 让旧电脑装上新版 macOS 的完整流程老 Mac 免费再战五年OpenCore Legacy Patcher 让旧电脑装上新版 macOS 的完整流程 OpenCore Legacy Patche推理引擎大模型上一篇Salt 开发指南面向 AI Agent 的模块编写、状态机与仓库协作规范下一篇【亲测免费】 推荐开源项目AndroidCupsPrint - 打印自由触手可得创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

opencodex Provider Workspace 账户体系 A 门审计:从账户切换器到多账号状态治理的源码级复盘

opencodex Provider Workspace 账户体系 A 门审计:从账户切换器到多账号状态治理的源码级复盘

【免费下载链接】opencodex Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code 项目地址: https://gitcode.com/gh_mirrors/ope/opencodex 点击…

2026/9/25 6:03:47 阅读更多 →
Atlas 300V 24G推理加速卡实战:YOLO模型部署全流程解析

Atlas 300V 24G推理加速卡实战:YOLO模型部署全流程解析

1. 一张24G的推理卡,到底算不算“运算加速卡”最近后台好几个朋友都在问同一个问题:"Atlas 300V 24G是不是运算加速卡?"还有人直接问"能不能拿它部署YOLO"。这问题听起来简单,但背后的误解不少。我最初拿到这…

2026/9/25 6:03:47 阅读更多 →
Atlas 300V 24G部署YOLO全流程:从CANN安装到ONNX转OM

Atlas 300V 24G部署YOLO全流程:从CANN安装到ONNX转OM

上周有个做安防项目的朋友给我发了张设备图,紧接着就是一个直球问题:Atlas 300V 24G 是运算加速卡吗?他真正想问的是,这东西能不能把手上的 YOLO 检测模型接过来,替换掉机房那几台老旧 GPU 服务器。这个问题看着简单&a…

2026/9/25 6:03:47 阅读更多 →

最新新闻

心脏病数据分析系统:Java全栈实战拆解与重难点解析

心脏病数据分析系统:Java全栈实战拆解与重难点解析

心脏病数据分析系统这类项目,本质上是一个典型的 Java 全栈实战案例,但又不完全是“增删改查脚手架”。它真正的技术含量集中在统计聚合、关联分析、可视化报表和医疗数据的处理细节上。如果你是因为找毕设参考、做技术练手、或者想转行医疗信息化方向而…

2026/9/26 7:59:06 阅读更多 →
一次推送跑完 3 个阶段:Baserow CI/CD 流水线与 Docker 镜像构建拆解

一次推送跑完 3 个阶段:Baserow CI/CD 流水线与 Docker 镜像构建拆解

一次推送跑完 3 个阶段:Baserow CI/CD 流水线与 Docker 镜像构建拆解 【免费下载链接】baserow Build databases, automations, apps & agents with AI — no code. Open source platform available on cloud and self-hosted. GDPR, HIPAA, SOC 2 compliant. B…

2026/9/26 7:59:06 阅读更多 →
物联网无线收发芯片选型指南:Sub-1G与2.4G方案对比及实战避坑

物联网无线收发芯片选型指南:Sub-1G与2.4G方案对比及实战避坑

1. 物联网无线收发芯片的底层逻辑与方案选型思路搞物联网硬件的人都有一个共识:有线方案再稳,也架不住场景碎片化。你不可能给每台共享单车拉根网线,也不可能给农田里的土壤传感器铺光纤。无线收发芯片就是解决“最后一百米”甚至“最后十公里…

2026/9/26 7:59:06 阅读更多 →
Win11共享打印句柄无效(0x00000012)故障深度解析

Win11共享打印句柄无效(0x00000012)故障深度解析

1. 这不是蓝屏,但比蓝屏更让人抓狂:一句“句柄无效”如何瘫痪整个办公室打印链2026年9月某个周一上午9:17,行政部小张刚把季度报表发到共享打印机队列,屏幕右下角突然弹出红色警告框:“操作失败:句柄无效&a…

2026/9/26 7:59:06 阅读更多 →
Twig `is odd` 奇偶测试:语法、源码实现与沙箱安全用法详解

Twig `is odd` 奇偶测试:语法、源码实现与沙箱安全用法详解

后端 【免费下载链接】Twig Twig, the flexible, fast, and secure template language for PHP 项目地址: https://gitcode.com/gh_mirrors/tw/Twig 点击查看 免费下载 导读 odd 是 Twig 模板语言内置的一个数值测试(test),用于…

2026/9/26 7:59:06 阅读更多 →
基于UniApp与Spring Boot的微信小程序问卷系统设计与实践

基于UniApp与Spring Boot的微信小程序问卷系统设计与实践

1. 项目背景与技术选型1.1 为什么会做一套小程序问卷系统去年接了一个企业内部的满意度调研需求,原本对方想用现成的第三方问卷平台,但聊下来发现几个问题:一是内部数据不能走外部服务,二是问卷题型比较特殊,需要嵌套逻…

2026/9/26 7:58:05 阅读更多 →

日新闻

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、…

2026/9/26 0:00:25 阅读更多 →
学校官网模拟全流程实践:从页面布局到后端接口与部署

学校官网模拟全流程实践:从页面布局到后端接口与部署

如果你正在找一门 Web 大作业的题目,或者刚开始接触 Web 前端开发想做点能拿来展示的东西,“学校官网模拟”几乎是最稳的选择。题目看着简单,但要把导航、新闻列表、轮播 Banner、二级页面、后台数据都串起来,其实已经把前端布局、…

2026/9/26 0:00:25 阅读更多 →
超级玛丽游戏源码C++:从零搭建横版跳跃游戏工程

超级玛丽游戏源码C++:从零搭建横版跳跃游戏工程

简介:这是一份面向游戏开发初学者与C进阶学习者的超级玛丽(超级马里奥)游戏源码,基于C面向对象编程实现,适合想通过经典项目理解游戏主循环、角色类设计、地图关卡加载与物理碰撞检测的读者参考。压缩包共49个文件&…

2026/9/26 0:00:25 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/25 19:27:14 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/25 11:15:26 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/25 20:29:09 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/25 20:29:43 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/25 20:29:31 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/25 19:27:26 阅读更多 →