仅需5行代码,从HuggingFace到昇腾人工智能计算中心

今日话题

Optimum Ascend 

HuggingFace Transformers用户的福音来了,昇腾推出高阶迁移工具Optimum Ascend ,只需几行代码可以让Transformers用户能够简单直接地在昇腾人工智能计算中心进行模型训练、微调和评估。 

具体操作如下:

01

 安装Optimum Ascend:

直接执行以下两行代码即可成功安装Optimum Ascend。

git clone https://gitee.com/ascend/transformers.git -b optimum && cd transformers

pip install -e .

02

完成自动迁移:

使用Optimum.ascend自带的自动迁移方式在NPU上使用Transformers,具体操作是在训练脚本中引入以下头文件,然后运行即可。

import torch_npu

from torch_npu.contrib import transfer_to_npu

from optimum.ascend import transfor_to_npu

通过上述描述可以看出,用户只需要5行代码即可完成迁移,从而可以进行模型的训练和评估。

近日,某用户基于昇腾人工智能计算中心完成了T5和CodeT5模型的训练微调,训练速度比主流GPU提升10%。相比于零散的算力,计算中心提供多机多卡训练环境,提升模型训练稳定性,缩短模型迭代周期。同时计算中心提供普惠算力,一定程度上降低模型研发成本。

案例介绍

昇腾系列处理器是基于华为达芬奇架构的 NPU。昇腾训练处理器具有超高算力,性能最高可达 320 TFLOPS FP16,并且支持DeepSpeed框架。

图片

1)准备环境

开通计算中心账号,在开发环境创建一个notebook实例,创建时选择Pytorch1.8的镜像,打开后进入终端。(或准备一台昇腾服务器,并且安装好了训练卡驱动,torch,torch_npu和6.0.1版本以上的CANN)。用户需要导入以下包:

import torch

import torch_npu

import transfer_to_npu

图片

2)安装原生Transformers框架(要求Transformers版本为4.25.1,

PyTorch版本为1.8.1。)

git clone https://gitee.com/ascend/transformers.git -b optimum && cd transformers

pip install -e .

图片

3)选择有监督训练

from optimum.ascend import transfor_to_npu

from transformers import T5ForConditionalGeneration, T5Tokenizer

model = T5ForConditionalGeneration.from_pretrained("t5-small")

tokenizer = T5Tokenizer.from_pretrained("t5-small")

input_ids = tokenizer('translate English to German: The house is wonderful.', return_tensors='pt').input_ids

labels = tokenizer('Das Haus ist wunderbar.', return_tensors='pt').input_ids

# the forward function automatically creates the correct decoder_input_ids loss = model(input_ids=input_ids, labels=labels).loss

图片

4)模型搭建

借助T5ForConditionalGeneration模型来搭建一个简单的由文本到SQL语句的翻译模型。其Pytorch实现如下:

class T5ForTextToSQL(torch.nn.Module):

    '''

    A basic T5 model for Text-to-SQL task.

    '''

    def __init__(self):

        super(T5ForTextToSQL, self).__init__()

        self.t5 = T5ForConditionalGeneration.from_pretrained('t5-small')

        

    def forward(se

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值