【Hello AI】安装和使用Deepytorch-面向生成式AI和大模型场景

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: Deepytorch是阿里云自研的AI加速器,面向生成式AI和大模型场景,提供了显著的训练和推理加速能力。本文主要介绍安装并使用Deepytorch的操作方法。

Deepytorch是阿里云自研的AI加速器,面向生成式AI和大模型场景,提供了显著的训练和推理加速能力。本文主要介绍安装并使用Deepytorch的操作方法。

前提条件

已创建阿里云GPU实例,且GPU实例需满足以下要求:

  • 操作系统为Alibaba Cloud Linux、CentOS 7.x、Ubuntu 18.04或更高版本。
  • 已安装NVIDIA Driver、CUDA 11.1或更高版本。
  • 已安装Pytorch且满足相应的版本要求。

支持的版本列表

Deepytorch支持多种PyTorch、CUDA以及Python版本。版本对应关系如下所示:

PyTorch Version

CUDA Runtime Version

Python Version

1.10.x

11.1/11.3

3.8/3.9

1.11.x

11.3

3.8/3.9/3.10

1.12.x

11.3/11.6

3.8/3.9/3.10

1.13.x

11.6/11.7

3.8/3.9/3.10

2.0.x

11.7/11.8

3.8/3.9/3.10/3.11

安装Deepytorch

以Deepgpu安装包2.0.2rcl版本为例,执行pip install命令即可安装Deepytorch。

说明Deepytorch属于Deepgpu工具包,系统会根据您当前的软件环境自动匹配对应的Deepytorch安装包。

pip install deepgpu==2.0.2rc1

使用Deepytorch

您仅需要在模型的训练脚本中增加一行代码,即可启用Deepytorch优化功能,增加的代码如下所示:

import deepytorch  # 导入deepytorch库

下文以开源项目(stanford_alpaca)为例,在两台8卡A800的机型测试平台上,展示如何使用Deepytorch训练llama-7b模型,以及使用Deeyptorch优化功能后的性能效果。官方默认的训练配置代码示例如下:

# https://github.com/tatsu-lab/stanford_alpaca
pip install deepspeed
deepspeed --hostfile=hostfile --master_addr=<your_master_addr> --num_nodes=2 --num_gpus=8 train.py \
    --model_name_or_path <your_path_to_hf_converted_llama_ckpt_and_tokenizer> \
    --data_path ./alpaca_data.json \
    --bf16 True \
    --output_dir <your_output_dir> \
    --num_train_epochs 1 \
    --per_device_train_batch_size 4 \
    --per_device_eval_batch_size 4 \
    --gradient_accumulation_steps 8 \
    --evaluation_strategy "no" \
    --save_strategy "steps" \
    --save_steps 2000 \
    --save_total_limit 1 \
    --learning_rate 2e-5 \
    --weight_decay 0. \
    --warmup_ratio 0.03 \
    --deepspeed "./configs/default_offload_opt_param.json" \
    --tf32 True

相比较llama-7b模型本身默认的训练配置,使用Deepytorch优化功能训练该模型时,您仅需要简单修改训练脚本(train.py)即可,具体说明如下:

  • 优化前:使用llama-7b模型默认配置的train.py训练脚本(仅展示部分代码
import torch
import transformers
import utils
from torch.utils.data import Dataset
from transformers import Trainer
...
  • 优化后:使用Deepytorch优化功能的train.py训练脚本(仅展示部分代码)
import torch
import deepytorch   # 新增代码行
import transformers
import utils
from torch.utils.data import Dataset
from transformers import Trainer
...

模型训练完成后,显示结果如下所示,表示模型训练优化前后的一个轮次(epoch)的性能数据有所不同。

  • 优化前:模型的训练吞吐性能数据为16.0 samples/sec。

  • 优化后:模型的训练吞吐性能数据为18.461 samples/sec。

由上图对比可以看出,相比较llama-7b模型默认的训练配置(即优化前),使用Deepytorch优化功能(即优化后)训练该模型,其训练吞吐性能获得了显著提升。

好啦!小弹的分享到此为止。我们更欢迎您分享您对阿里云产品的设想、对功能的建议或者各种吐槽,请扫描提交问卷并获得社区积分或精美礼品一份。https://survey.aliyun.com/apps/zhiliao/P4y44bm_8

【扫码填写上方调研问卷】

欢迎每位来到弹性计算的开发者们来反馈问题哦~

相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
相关文章
|
1天前
|
机器学习/深度学习 人工智能 算法
AI大模型学习理论基础
本文探讨了AI大模型学习的理论基础,包括深度学习(模拟神经元工作原理,通过多层非线性变换提取特征)、神经网络结构(如前馈、循环和卷积网络)、训练方法(监督、无监督、强化学习)、优化算法(如SGD及其变种)、正则化(L1、L2和dropout防止过拟合)以及迁移学习(利用预训练模型加速新任务学习)。这些理论基础推动了AI大模型在复杂任务中的应用和人工智能的发展。
|
4天前
|
人工智能 搜索推荐 决策智能
【AI Agent系列】【阿里AgentScope框架】1. 深入源码:详细解读AgentScope中的智能体定义以及模型配置的流程
【AI Agent系列】【阿里AgentScope框架】1. 深入源码:详细解读AgentScope中的智能体定义以及模型配置的流程
37 0
|
4天前
|
数据采集 存储 人工智能
【AI大模型应用开发】【LangChain系列】实战案例4:再战RAG问答,提取在线网页数据,并返回生成答案的来源
【AI大模型应用开发】【LangChain系列】实战案例4:再战RAG问答,提取在线网页数据,并返回生成答案的来源
30 0
|
4天前
|
数据采集 存储 人工智能
【AI大模型应用开发】【LangChain系列】实战案例2:通过URL加载网页内容 - LangChain对爬虫功能的封装
【AI大模型应用开发】【LangChain系列】实战案例2:通过URL加载网页内容 - LangChain对爬虫功能的封装
15 0
|
4天前
|
人工智能 Python
【AI大模型应用开发】【LangChain系列】实战案例1:用LangChain写Python代码并执行来生成答案
【AI大模型应用开发】【LangChain系列】实战案例1:用LangChain写Python代码并执行来生成答案
9 0
|
4天前
|
人工智能 监控 数据处理
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】1. 快速上手数据集与测试评估过程
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】1. 快速上手数据集与测试评估过程
20 0
|
4天前
|
人工智能 监控 数据可视化
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】0. 一文全览Tracing功能,让你的程序运行过程一目了然
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】0. 一文全览Tracing功能,让你的程序运行过程一目了然
9 0
|
4天前
|
人工智能 API 开发者
【AI大模型应用开发】0.2 智谱AI API接入详细步骤和简单应用
【AI大模型应用开发】0.2 智谱AI API接入详细步骤和简单应用
23 0
|
4天前
|
数据采集 人工智能 数据可视化
【AI大模型应用开发】【LangChain系列】4. 从Chain到LCEL:探索和实战LangChain的巧妙设计
【AI大模型应用开发】【LangChain系列】4. 从Chain到LCEL:探索和实战LangChain的巧妙设计
17 0
|
4天前
|
存储 人工智能 JSON
【AI大模型应用开发】【LangChain系列】3. 一文了解LangChain的记忆模块(理论实战+细节)
本文介绍了LangChain库中用于处理对话会话记忆的组件。Memory功能用于存储和检索先前的交互信息,以便在对话中提供上下文。目前,LangChain的Memory大多处于测试阶段,其中较为成熟的是`ChatMessageHistory`。Memory类型包括:`ConversationBufferMemory`(保存对话历史数组)、`ConversationBufferWindowMemory`(限制为最近的K条对话)和`ConversationTokenBufferMemory`(根据Token数限制上下文长度)。
13 0