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

做网页到哪个网站找素材旅游最新利好消息

做网页到哪个网站找素材,旅游最新利好消息,品牌策划公司的市场,做彩票网站是违法吗模型微调是指在一个已经训练好的模型的基础上#xff0c;针对特定任务或者特定数据集进行再次训练以提高性能的过程。微调可以在使其适应特定任务时产生显着的结果。 RoBERTa#xff08;Robustly optimized BERT approach#xff09;是由Facebook AI提出的一种基于Transfor…模型微调是指在一个已经训练好的模型的基础上针对特定任务或者特定数据集进行再次训练以提高性能的过程。微调可以在使其适应特定任务时产生显着的结果。 RoBERTaRobustly optimized BERT approach是由Facebook AI提出的一种基于Transformer架构的预训练语言模型。它是对Google提出的BERTBidirectional Encoder Representations from Transformers模型的改进和优化。 “Low-Rank Adaptation”低秩自适应是一种用于模型微调或迁移学习的技术。一般来说我们只是使用LORA来微调大语言模型但是其实只要是使用了Transformers块的模型LORA都可以进行微调本文将介绍如何利用PEFT库使用LORA提高微调过程的效率。 LORA可以大大减少了可训练参数的数量节省了训练时间、存储和计算成本并且可以与其他模型自适应技术(如前缀调优)一起使用以进一步增强模型。 但是LORA会引入额外的超参数调优层(特定于LORA的秩、alpha等)。并且在某些情况下性能不如完全微调的模型最优这个需要根据不同的需求来进行测试。 首先我们安装需要的包 !pip install transformers datasets evaluate accelerate peft数据预处理 import torchfrom transformers import RobertaModel, RobertaTokenizer, AutoModelForSequenceClassification, TrainingArguments, Trainer, DataCollatorWithPaddingfrom peft import LoraConfig, get_peft_modelfrom datasets import load_datasetpeft_model_name roberta-base-peftmodified_base roberta-base-modifiedbase_model roberta-basedataset load_dataset(ag_news)tokenizer RobertaTokenizer.from_pretrained(base_model)def preprocess(examples):tokenized tokenizer(examples[text], truncationTrue, paddingTrue)return tokenizedtokenized_dataset dataset.map(preprocess, batchedTrue, remove_columns[text])train_datasettokenized_dataset[train]eval_datasettokenized_dataset[test].shard(num_shards2, index0)test_datasettokenized_dataset[test].shard(num_shards2, index1)# Extract the number of classess and their namesnum_labels dataset[train].features[label].num_classesclass_names dataset[train].features[label].namesprint(fnumber of labels: {num_labels})print(fthe labels: {class_names})# Create an id2label mapping# We will need this for our classifier.id2label {i: label for i, label in enumerate(class_names)}data_collator DataCollatorWithPadding(tokenizertokenizer, return_tensorspt)训练 我们训练两个模型一个使用LORA另一个使用完整的微调流程。这里可以看到LORA的训练时间和训练参数的数量能减少多少 以下是使用完整微调 training_args TrainingArguments(output_dir./results,evaluation_strategysteps,learning_rate5e-5,num_train_epochs1,per_device_train_batch_size16,) 然后进行训练 def get_trainer(model):return Trainer(modelmodel,argstraining_args,train_datasettrain_dataset,eval_dataseteval_dataset,data_collatordata_collator,)full_finetuning_trainer get_trainer(AutoModelForSequenceClassification.from_pretrained(base_model, id2labelid2label),)full_finetuning_trainer.train()下面看看PEFT的LORA model AutoModelForSequenceClassification.from_pretrained(base_model, id2labelid2label)peft_config LoraConfig(task_typeSEQ_CLS, inference_modeFalse, r8, lora_alpha16, lora_dropout0.1)peft_model get_peft_model(model, peft_config)print(PEFT Model)peft_model.print_trainable_parameters()peft_lora_finetuning_trainer get_trainer(peft_model)peft_lora_finetuning_trainer.train()peft_lora_finetuning_trainer.evaluate()可以看到 模型参数总计:125,537,288而LORA模型的训练参数为:888,580我们只需要用LORA训练~0.70%的参数!这会大大减少内存的占用和训练时间。 在训练完成后我们保存模型 tokenizer.save_pretrained(modified_base)peft_model.save_pretrained(peft_model_name)最后测试我们的模型 from peft import AutoPeftModelForSequenceClassificationfrom transformers import AutoTokenizer# LOAD the Saved PEFT modelinference_model AutoPeftModelForSequenceClassification.from_pretrained(peft_model_name, id2labelid2label)tokenizer AutoTokenizer.from_pretrained(modified_base)def classify(text):inputs tokenizer(text, truncationTrue, paddingTrue, return_tensorspt)output inference_model(**inputs)prediction output.logits.argmax(dim-1).item()print(f\n Class: {prediction}, Label: {id2label[prediction]}, Text: {text})# return id2label[prediction]classify( Kederis proclaims innocence Olympic champion Kostas Kederis today left hospital ahead of his date with IOC inquisitors claiming his ...)classify( Wall St. Bears Claw Back Into the Black (Reuters) Reuters - Short-sellers, Wall Streets dwindling\band of ultra-cynics, are seeing green again.) 模型评估 我们还需要对PEFT模型的性能与完全微调的模型的性能进行对比看看这种方式有没有性能的损失 from torch.utils.data import DataLoaderimport evaluatefrom tqdm import tqdmmetric evaluate.load(accuracy)def evaluate_model(inference_model, dataset):eval_dataloader DataLoader(dataset.rename_column(label, labels), batch_size8, collate_fndata_collator)device torch.device(cuda if torch.cuda.is_available() else cpu)inference_model.to(device)inference_model.eval()for step, batch in enumerate(tqdm(eval_dataloader)):batch.to(device)with torch.no_grad():outputs inference_model(**batch)predictions outputs.logits.argmax(dim-1)predictions, references predictions, batch[labels]metric.add_batch(predictionspredictions,referencesreferences,)eval_metric metric.compute()print(eval_metric) 首先是没有进行微调的模型也就是原始模型 evaluate_model(AutoModelForSequenceClassification.from_pretrained(base_model, id2labelid2label), test_dataset)accuracy: 0.24868421052631579‘ 下面是LORA微调模型 evaluate_model(inference_model, test_dataset)accuracy: 0.9278947368421052 最后是完全微调的模型 evaluate_model(full_finetuning_trainer.model, test_dataset)accuracy: 0.9460526315789474 总结 我们使用PEFT对RoBERTa模型进行了微调和评估可以看到使用LORA进行微调可以大大减少训练的参数和时间但是在准确性方面还是要比完整的微调要稍稍下降。 本文代码 https://avoid.overfit.cn/post/26e401b70f9840dab185a6a83aac06b0 作者Achilles Moraites
http://www.pierceye.com/news/929429/

相关文章:

  • 如何网站关键词优化idc机房托管
  • 做网站 做好把我踢开WordPress Core 5.0
  • 飓风 网站建设ip形象设计报价明细
  • 太原网站seo外包信誉好的赣州网站建设
  • 英文网站如何做关键词网站关键词多少个好
  • 手机网站静态动态珠海网页搜索排名提升
  • 旅游公司网站建设方案宁德市住房和城乡建设局新网站
  • 网站开发购物店网站营销策略
  • 福建省建设局网站安顺市哪里可以做网站
  • 网站服务设计仿《爱美眉》网站 dede
  • 茌平网站建设哪个地方可学习网站建设
  • 便民的网站app怎么做acg的wordpress主题
  • 外贸网站高端定做网络营销培训
  • 电子通讯录网站建设08影院wordpress影视主题源码
  • 电商设计素材网站推荐然后建设自营网站
  • 网站方案设计网页兼容性 网站开发
  • 做网站怎么申请域名游戏软件开发需要学什么
  • 做外贸网站需要什么卡创app开发 杭州app开发公司
  • 哪个网站可以做视频外链怎样退订3d卫星街景会员费用
  • 烟台做网站建设电话设置网站默认编码
  • seo官网制作规划绍兴seo整站优化
  • 怎么做网站广告设计学习
  • 邵东平台网站建设中山手机台app
  • 学什么可以做网站免费qq空间网站
  • 网站套餐到期啥意思电子商务电商网站饿建设
  • 电商网站零售客户重庆旅游景点
  • 建设银行成都官网招聘网站自主建网站
  • 云南省建设厅定额网站房地产开发公司是做什么的
  • 哪个网站卖自己做的手工艺品有哪些好的做网站公司好
  • 做电影网站用什么主机好最新网站域名