当前位置: 首页 > news >正文

永康网站建设zjyuxun百度seo服务

永康网站建设zjyuxun,百度seo服务,赣州明珠网科技,做设计有哪些免费网站诸神缄默不语-个人CSDN博文目录 本文属于huggingface.transformers全部文档学习笔记博文的一部分。 全文链接#xff1a;huggingface transformers包 文档学习笔记#xff08;持续更新ing…#xff09; 本部分网址#xff1a;https://huggingface.co/docs/transformers/m…诸神缄默不语-个人CSDN博文目录 本文属于huggingface.transformers全部文档学习笔记博文的一部分。 全文链接huggingface transformers包 文档学习笔记持续更新ing… 本部分网址https://huggingface.co/docs/transformers/main/en/accelerate 本文介绍如何使用huggingface.accelerate官方文档https://huggingface.co/docs/accelerate/index进行分布式训练。 此外还参考了accelerate的安装文档https://huggingface.co/docs/accelerate/basic_tutorials/install 一个本文代码可用的Python环境Python 3.9.7, PyTorch 2.0.1, transformers 4.31.0, accelerate 0.22.0 parallelism能让我们实现在硬件条件受限时训练更大的模型训练速度能加快几个数量级。 文章目录 1. 安装与配置2. 在代码中使用 1. 安装与配置 安装pip install accelerate 配置accelerate config 然后它会给出一些问题通过上下键更换选项用Enter确定 选错了也没啥关系反正能改 用accelerate env命令可以查看配置环境。 2. 在代码中使用 用accelerate之前的脚本具体讲解可见我之前写的博文用huggingface.transformers.AutoModelForSequenceClassification在文本分类任务上微调预训练模型 用的是原生PyTorch那一版因为Trainer会自动使用分布式训练。metric部分改成新版并用全部数据来训练 from tqdm.auto import tqdmimport torch from torch.utils.data import DataLoader from torch.optim import AdamWimport datasets,evaluate from transformers import AutoTokenizer,AutoModelForSequenceClassification,get_schedulerdatasetdatasets.load_from_disk(download/yelp_full_review_disk)tokenizerAutoTokenizer.from_pretrained(/data/pretrained_models/bert-base-cased)def tokenize_function(examples):return tokenizer(examples[text], paddingmax_length,truncationTrue,max_length512)tokenized_datasetsdataset.map(tokenize_function, batchedTrue)#Postprocess dataset tokenized_datasetstokenized_datasets.remove_columns([text]) #删除模型不用的text列tokenized_datasetstokenized_datasets.rename_column(label, labels) #改名label列为labels因为AutoModelForSequenceClassification的入参键名为label #我不知道为什么dataset直接叫label就可以啦……tokenized_datasets.set_format(torch) #将值转换为torch.Tensor对象small_train_datasettokenized_datasets[train].shuffle(seed42) small_eval_datasettokenized_datasets[test].shuffle(seed42)train_dataloaderDataLoader(small_train_dataset,shuffleTrue,batch_size32) eval_dataloaderDataLoader(small_eval_dataset,batch_size64)modelAutoModelForSequenceClassification.from_pretrained(/data/pretrained_models/bert-base-cased,num_labels5)optimizerAdamW(model.parameters(),lr5e-5)num_epochs3 num_training_stepsnum_epochs*len(train_dataloader) lr_schedulerget_scheduler(namelinear,optimizeroptimizer,num_warmup_steps0,num_training_stepsnum_training_steps)devicetorch.device(cuda:1) if torch.cuda.is_available() else torch.device(cpu) model.to(device)progress_bar tqdm(range(num_training_steps))model.train() for epoch in range(num_epochs):for batch in train_dataloader:batch{k:v.to(device) for k,v in batch.items()}outputsmodel(**batch)lossoutputs.lossloss.backward()optimizer.step()lr_scheduler.step()optimizer.zero_grad()progress_bar.update(1)metricevaluate.load(accuracy) model.eval() for batch in eval_dataloader:batch{k:v.to(device) for k,v in batch.items()}with torch.no_grad():outputsmodel(**batch)logitsoutputs.logitspredictionstorch.argmax(logits, dim-1)metric.add_batch(predictionspredictions, referencesbatch[labels])print(metric.compute())懒得跑完了总之预计要跑11个小时来着非常慢。 添加如下代码 from accelerate import Acceleratoraccelerator Accelerator()#去掉将模型和数据集放到指定卡上的代码#在建立好数据集、模型和优化器之后 train_dataloader, eval_dataloader, model, optimizer accelerator.prepare(train_dataloader, eval_dataloader, model, optimizer )#训练阶段将loss.backward()替换成 accelerator.backward(loss)添加后的代码我用全部数据集出来预计训练时间是4小时3张卡但我懒得跑这么久了我就还是用1000条跑跑把整个流程跑完意思一下 用accelerate launch Python脚本路径运行 验证部分的情况见代码后面 from tqdm.auto import tqdmimport torch from torch.utils.data import DataLoader from torch.optim import AdamWimport datasets from transformers import AutoTokenizer,AutoModelForSequenceClassification,get_schedulerfrom accelerate import Acceleratoraccelerator Accelerator()datasetdatasets.load_from_disk(download/yelp_full_review_disk)tokenizerAutoTokenizer.from_pretrained(/data/pretrained_models/bert-base-cased)def tokenize_function(examples):return tokenizer(examples[text], paddingmax_length,truncationTrue,max_length512)tokenized_datasetsdataset.map(tokenize_function, batchedTrue)#Postprocess dataset tokenized_datasetstokenized_datasets.remove_columns([text]) #删除模型不用的text列tokenized_datasetstokenized_datasets.rename_column(label, labels) #改名label列为labels因为AutoModelForSequenceClassification的入参键名为label #我不知道为什么dataset直接叫label就可以啦……tokenized_datasets.set_format(torch) #将值转换为torch.Tensor对象small_train_datasettokenized_datasets[train].shuffle(seed42).select(range(1000)) small_eval_datasettokenized_datasets[test].shuffle(seed42).select(range(1000))train_dataloaderDataLoader(small_train_dataset,shuffleTrue,batch_size32) eval_dataloaderDataLoader(small_eval_dataset,batch_size64)modelAutoModelForSequenceClassification.from_pretrained(/data/pretrained_models/bert-base-cased,num_labels5)optimizerAdamW(model.parameters(),lr5e-5)train_dataloader, eval_dataloader, model, optimizer accelerator.prepare(train_dataloader, eval_dataloader, model, optimizer )num_epochs3 num_training_stepsnum_epochs*len(train_dataloader) lr_schedulerget_scheduler(namelinear,optimizeroptimizer,num_warmup_steps0,num_training_stepsnum_training_steps)progress_bar tqdm(range(num_training_steps))model.train() for epoch in range(num_epochs):for batch in train_dataloader:outputsmodel(**batch)lossoutputs.lossaccelerator.backward(loss)optimizer.step()lr_scheduler.step()optimizer.zero_grad()progress_bar.update(1)验证部分是这样的直接用原来的验证部分就也能跑但是因为脚本会被运行2遍所以验证部分也会运行2遍。 所以我原则上建议用accelerate的话就光训练验证的部分还是单卡实现。 如果还是想在训练过程中看一下验证效果可以正常验证也可以将验证部分限定在if accelerator.is_main_process:里这样就只有主进程通常是第一个GPU会执行验证代码而其他GPU不会这样就只会打印一次指标了。
http://www.w-s-a.com/news/106870/

相关文章:

  • 公司网站开发制作备案中的网站
  • 怎么看网站的收录网站开发先前台和后台
  • 合肥市做网站多少钱wordpress网站布置视频
  • 中国建设人才网信息网站软件外包公司好不好
  • 网站建设与管理 市场分析上海网站建设公司排名
  • 怎么将公司网站设成首页网址关键词查询网站
  • 怎么用ps做网站ui邱县专业做网站
  • 国开行网站毕业申请怎么做大连旅顺口旅游攻略
  • 鲜花店网站源码成都专做婚介网站的公司
  • 合肥企业网站建设工哈尔滨公告
  • 华强北 做网站互联网服务平台入口
  • vi设计案例网站微信导航网站 dedecms
  • 青浦区做网站设计图片手绘图片
  • 做网站的基本功制作网站公司推荐
  • 阿里云快速建站教程个人网站 费用
  • 广东购物网站建设微信公众号制作模板免费
  • 阿里国际站韩语网站怎么做让移动网站
  • 北京外包做网站如何报价中国几大网络推广公司
  • 中国建设部网站关于资质wordpress 建app
  • 程序员找工作的网站哈尔滨建设信息网站
  • 公司 网站 方案高考写作网站
  • 网站后台如何登陆网站开发需求逻辑图
  • 市级档案网站建设情况分析server2008做DNS与网站
  • 公积金门户网站建设方案网站建设代理平台怎么做
  • 网站建设知识论文抖音开放平台是干什么的
  • 网站建设期末试卷大气简洁网站
  • 电子商务网站建设报告范文单位做网站怎么做
  • 优质的外国网站qq小程序在哪里打开
  • 商务网站建设与推广实训报告免费素材网站无水印
  • 外贸站seoapp开发公司历程概述