PatrickStar

PatrickStar

通过基于块的内存管理并行训练大型语言模型

PatrickStar通过其创新的块状内存管理技术,使大型预训练模型训练更加高效且资源节约。该技术优化了内存使用,让硬件资源较少的环境下也能有效训练庞大模型,显著提升训练效率和模型规模,支持多节点超大模型的训练。

PatrickStar大模型并行训练异构训练GPU内存优化深度学习Github开源项目

PatrickStar 项目介绍

认识 PatrickStar

在自然语言处理领域,预训练模型(PTM)已经成为学术研究和工业应用的热点。然而,训练这些模型需要巨大的硬件资源,使得它们仅对AI领域中的少部分人群可用。为了改变这一现状,PatrickStar旨在让PTM训练变得人人可及。

在训练PTM的过程中,内存溢出错误(Out-of-memory error, OOM)常常是工程师们的噩梦。为了解决这个问题,通常我们需要引入更多的GPU来存储模型参数。然而,PatrickStar提供了一个更优的解决方案。通过异构训练方法(DeepSpeed Zero Stage 3也使用类似技术),PatrickStar能够充分利用CPU和GPU的内存,使用户能够用更少的GPU训练更大的模型。

系统设计

PatrickStar的核心思想是:在训练过程中,非模型数据(主要是激活值)会不断变化,而当前的异构训练方案常常是静态地将模型数据分割到CPU和GPU上。为了更好地利用GPU资源,PatrickStar提出了一种基于块的动态内存管理模块,进行动态内存调配。PatrickStar的内存管理支持卸载除当前计算部分以外的所有模型数据到CPU,以节省GPU资源。此外,基于块的内存管理在扩展到多个GPU时,对于集体通信非常高效。

项目成果

在实验中,PatrickStar v0.4.3能够在微信数据中心的节点上使用8个Tesla V100 GPU和240GB GPU内存训练一个具有180亿(18B)参数的模型,比DeepSpeed的能力强两倍。此外,PatrickStar即使在相同大小的模型上也表现优异。

我们还在NVIDIA的A100 SuperPod单节点上评估了PatrickStar v0.4.3,它能在1TB CPU内存下,用8个A100 GPU训练68B的模型,比DeepSpeed v0.5.7处理的规模大6倍以上。更重要的是,除了模型规模之外,PatrickStar在效率上远胜于DeepSpeed。

在多个SuperPod节点上,PatrickStar成功在32个GPU上训练GPT3-175B模型。这是首次在如此小的GPU集群上运行GPT3,而微软则使用了10,000个V100来进行相同的工作。

我们还用PatrickStar训练了CLUE-GPT2模型,其损失和准确率曲线表现优异。

安装方法

使用以下命令即可安装PatrickStar:

pip install .

注意,PatrickStar要求gcc版本不低于7。您也可以使用NVIDIA的NGC镜像,推荐使用以下镜像:

docker pull nvcr.io/nvidia/pytorch:21.06-py3

使用指南

PatrickStar基于PyTorch,因此方便将现有的PyTorch项目迁移过来。以下是一个PatrickStar的使用示例:

from patrickstar.runtime import initialize_engine config = { "optimizer": { "type": "Adam", "params": { "lr": 0.001, "betas": (0.9, 0.999), "eps": 1e-6, "weight_decay": 0, "use_hybrid_adam": True, }, }, ... } def model_func(): return MyModel(...) model, optimizer = initialize_engine(model_func=model_func, local_rank=0, config=config) ... for data in dataloader: optimizer.zero_grad() loss = model(data) model.backward(loss) optimizer.step()

PatrickStar的配置格式与DeepSpeed配置JSON相同,主要包括优化器参数、损失标量以及一些PatrickStar特有的配置。

详细的使用说明可参阅指导文档

开源协议

本项目基于BSD 3-Clause开源协议。

联系我们

如果您有任何问题或需要支持,请联系以下邮箱:

本项目由微信AI团队和腾讯NLP Oteam共同支持。

编辑推荐精选

OmniParser

OmniParser

帮助AI理解电脑屏幕 纯视觉GUI元素的自动化解析方案

开源工具通过计算机视觉技术实现图形界面元素的智能识别与结构化处理,支持自动化测试脚本生成和辅助功能开发。项目采用模块化设计,提供API接口与多种输出格式,适用于跨平台应用场景。核心算法优化了元素定位精度,在动态界面和复杂布局场景下保持稳定解析能力。

OmniParser界面解析交互区域检测Github开源项目
Grok3

Grok3

埃隆·马斯克旗下的人工智能公司 xAI 推出的第三代大规模语言模型

Grok3 是由埃隆·马斯克旗下的人工智能公司 xAI 推出的第三代大规模语言模型,常被马斯克称为“地球上最聪明的 AI”。它不仅是在前代产品 Grok 1 和 Grok 2 基础上的一次飞跃,还在多个关键技术上实现了创新突破。

腾讯元宝

腾讯元宝

腾讯自研的混元大模型AI助手

腾讯元宝是腾讯基于自研的混元大模型推出的一款多功能AI应用,旨在通过人工智能技术提升用户在写作、绘画、翻译、编程、搜索、阅读总结等多个领域的工作与生活效率。

AI助手AI对话AI工具腾讯元宝智能体热门 AI 办公助手
Windsurf Wave 3

Windsurf Wave 3

Windsurf Editor推出第三次重大更新Wave 3

新增模型上下文协议支持与智能编辑功能。本次更新包含五项核心改进:支持接入MCP协议扩展工具生态,Tab键智能跳转提升编码效率,Turbo模式实现自动化终端操作,图片拖拽功能优化多模态交互,以及面向付费用户的个性化图标定制。系统同步集成DeepSeek、Gemini等新模型,并通过信用点数机制实现差异化的资源调配。

AI IDE
Cursor

Cursor

增强编程效率的AI代码编辑器

Cursor作为AI驱动的代码编辑工具,助力开发者效率大幅度提升。该工具简化了扩展、主题和键位配置的导入,可靠的隐私保护措施保证代码安全,深受全球开发者信赖。此外,Cursor持续推出更新,不断优化功能和用户体验。

AI开发辅助编程AI工具CursorAI代码编辑器
Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
Manus

Manus

全面超越基准的 AI Agent助手

Manus 是一款通用人工智能代理平台,能够将您的创意和想法迅速转化为实际成果。无论是定制旅行规划、深入的数据分析,还是教育支持与商业决策,Manus 都能高效整合信息,提供精准解决方案。它以直观的交互体验和领先的技术,为用户开启了一个智慧驱动、轻松高效的新时代,让每个灵感都能得到完美落地。

飞书知识问答

飞书知识问答

飞书官方推出的AI知识库 上传word pdf即可部署AI私有知识库

基于DeepSeek R1大模型构建的知识管理系统,支持PDF、Word、PPT等常见文档格式解析,实现云端与本地数据的双向同步。系统具备实时网络检索能力,可自动关联外部信息源,通过语义理解技术处理结构化与非结构化数据。免费版本提供基础知识库搭建功能,适用于企业文档管理和个人学习资料整理场景。

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
DeepEP

DeepEP

DeepSeek开源的专家并行通信优化框架

DeepEP是一个专为大规模分布式计算设计的通信库,重点解决专家并行模式中的通信瓶颈问题。其核心架构采用分层拓扑感知技术,能够自动识别节点间物理连接关系,优化数据传输路径。通过实现动态路由选择与负载均衡机制,系统在千卡级计算集群中维持稳定的低延迟特性,同时兼容主流深度学习框架的通信接口。

下拉加载更多