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

怎么做钓鱼网站呢学习前端的网站

怎么做钓鱼网站呢,学习前端的网站,百度如何推广网站,中国核工业二三建设有限公司招聘在Mac M1/M2上使用Hugging Face Transformers进行中文文本分类(完整指南) 前言 随着Apple Silicon芯片(M1/M2)的普及,越来越多的开发者希望在Mac上运行深度学习任务。本文将详细介绍如何在Mac M1/M2设备上使用Huggin…

在Mac M1/M2上使用Hugging Face Transformers进行中文文本分类(完整指南)

前言

随着Apple Silicon芯片(M1/M2)的普及,越来越多的开发者希望在Mac上运行深度学习任务。本文将详细介绍如何在Mac M1/M2设备上使用Hugging Face Transformers库进行中文文本分类任务,包括环境配置、数据处理、模型训练和性能优化等完整流程。

环境准备

1. 硬件和系统要求

设备:Apple M1/M2系列芯片的Mac
系统:macOS 12.3 (Monterey)或更高版本
Python:3.8或更高版本

2. 安装必要的库

# 创建虚拟环境
python -m venv .venv
source .venv/bin/activate# 安装支持MPS的PyTorch
pip install --pre torch torchvision --extra-index-url https://download.pytorch.org/whl/nightly/cpu# 安装其他依赖
pip install transformers datasets evaluate

数据处理

1. 加载和预处理数据集

我们使用中文情感分析数据集ChnSentiCorp:

from datasets import load_from_disk
from transformers import AutoTokenizer# 加载数据集
dataset = load_from_disk('./data/ChnSentiCorp')# 缩小数据集规模
dataset['train'] = dataset['train'].shuffle().select(range(1500))
dataset['test'] = dataset['test'].shuffle().select(range(100))# 初始化tokenizer
tokenizer = AutoTokenizer.from_pretrained('hfl/rbt3')# 编码函数
def encode_data(data):return tokenizer.batch_encode_plus(data['text'], truncation=True)# 应用编码
dataset = dataset.map(encode_data, batched=True, batch_size=1000, num_proc=4, remove_columns=['text'])# 过滤过长的句子
dataset = dataset.filter(lambda x: len(x['input_ids']) <= 512, batched=True)

2. 数据格式转换

from transformers import DataCollatorWithPadding# 数据整理器
data_collator = DataCollatorWithPadding(tokenizer)

模型加载与配置

1. 加载预训练模型

from transformers import AutoModelForSequenceClassification
import torch# 检查MPS是否可用
device = torch.device("mps" if torch.backends.mps.is_available() else "cpu")
print(f"Using device: {device}")# 加载模型
model = AutoModelForSequenceClassification.from_pretrained('./model/rbt3', num_labels=2)
model = model.to(device)

2. 自定义训练器(适配MPS)

from transformers import Trainerclass MPSReadyTrainer(Trainer):def prediction_step(self, model, inputs, prediction_loss_only=False, ignore_keys=None):inputs = {k: v.to('mps') for k, v in inputs.items()}return super().prediction_step(model, inputs, prediction_loss_only, ignore_keys)

训练配置

1. 设置训练参数

from transformers import TrainingArgumentstraining_args = TrainingArguments(output_dir='./out/rbt3',evaluation_strategy="steps",eval_steps=30,save_strategy='steps',save_steps=30,learning_rate=5e-5,per_device_train_batch_size=16,  # M1/M2建议较小batch sizeper_device_eval_batch_size=16,num_train_epochs=10,logging_dir='./log/rbt3',no_cuda=True,use_mps_device=True,fp16=False  # MPS暂不支持混合精度
)

2. 定义评估指标

from evaluate import loaddef compute_metrics(eval_pred):metric = load('accuracy')logits, labels = eval_predif isinstance(logits, torch.Tensor):predictions = logits.argmax(dim=-1)else:predictions = torch.from_numpy(logits).argmax(dim=-1)return metric.compute(predictions=predictions, references=labels)

训练与评估

1. 初始化训练器

trainer = MPSReadyTrainer(model=model,args=training_args,train_dataset=dataset['train'],eval_dataset=dataset['test'],compute_metrics=compute_metrics,data_collator=data_collator
)

2. 开始训练

print("========== 开始训练 ==========")
trainer.train()print("========== 最终评估 ==========")
trainer.evaluate()

性能优化技巧

  1. 调整batch size:M1/M2芯片建议使用8-32的batch size
  2. 禁用pin_memory:在TrainingArguments中设置dataloader_pin_memory=False
  3. 减少数据加载线程:设置num_proc=2或更低
  4. 简化模型:使用更小的预训练模型如’rbt3’而非’bert-base’

常见问题解决

  1. MPS不可用错误
    • 确保安装了正确版本的PyTorch
    • 检查macOS版本≥12.3
    • 运行python -c "import torch; print(torch.backends.mps.is_available())"确认

  2. 内存不足错误
    • 减小batch size
    • 缩短序列长度(max_length=256)

  3. 数据类型不匹配
    • 确保所有张量都通过.to(device)转移到MPS

结语

本文详细介绍了在Apple Silicon Mac上使用Hugging Face Transformers进行中文文本分类的完整流程。通过合理配置和优化,可以在Mac设备上高效地进行NLP模型训练。希望这篇指南能帮助开发者充分利用M1/M2芯片的性能优势。

完整代码已上传GitHub:项目链接
问题讨论欢迎在评论区留言


文章转载自:

http://tmqZvCTh.Lbfgq.cn
http://lEoFD6mr.Lbfgq.cn
http://lzTwiKn6.Lbfgq.cn
http://v3D3lspx.Lbfgq.cn
http://k9WC7qNa.Lbfgq.cn
http://jqORINF2.Lbfgq.cn
http://926s72VF.Lbfgq.cn
http://9LsXEEqW.Lbfgq.cn
http://zRsWKReq.Lbfgq.cn
http://84kVnfL4.Lbfgq.cn
http://sZE4PMsr.Lbfgq.cn
http://xrc8DjaT.Lbfgq.cn
http://6kyVHw6w.Lbfgq.cn
http://7FqSbO7J.Lbfgq.cn
http://Vn72WQlB.Lbfgq.cn
http://WJnXVX7s.Lbfgq.cn
http://o8QzSipq.Lbfgq.cn
http://38F1e0U7.Lbfgq.cn
http://5sh6hBhx.Lbfgq.cn
http://aMd9Y2jx.Lbfgq.cn
http://lQzsORn1.Lbfgq.cn
http://7aQrvE2C.Lbfgq.cn
http://KnEiXilI.Lbfgq.cn
http://KqF2qEeh.Lbfgq.cn
http://x0VUkjGY.Lbfgq.cn
http://3SDLXmzG.Lbfgq.cn
http://mjRorfZl.Lbfgq.cn
http://PdlqUxkL.Lbfgq.cn
http://98g7f3YX.Lbfgq.cn
http://fkUfeczz.Lbfgq.cn
http://www.dtcms.com/wzjs/750472.html

相关文章:

  • 找到做网站的公司两学一做网站飘窗
  • 网站建设公司排行杭州用商标做网站名字
  • app 微商城网站建设电商网站开发计划书
  • 佛山茂名网站建设wordpress 获取图片路径
  • 建设历史文化旅游宣传网站wordpress网页移动端
  • 给人做ppt的网站安徽网站建设公司
  • 曲阳县做网站做视频网站违法
  • 建设银行网站银行登录国外优秀的网站
  • 网站中留言板怎么做装修平台app有哪些
  • 台州做鞋子网站道可道在线设计平台
  • 中国网站建设市场分析报告wordpress 注册
  • 长沙市旅游景点欧美seo查询
  • 做冻品海鲜比较大的网站有哪些域名打不开网站
  • 哪家外贸网站做的好wordpress最新版本下载
  • 网站建设免费建站文字头像在线制作
  • 青海省建设厅查询网站网站ip被屏蔽怎么办
  • 网站怎么搬家到快云vps里面去啊wordpress播放视频
  • 一般网站的跳出率做网站怎么建站点
  • 东莞网站设计找哪里医疗器械三证是哪三证
  • 多媒体网站开发实战贵阳网上注册公司流程
  • 山西品牌网站建设如何找外贸网站建设公司
  • 辖网站建设 网站设计手机网站模板代码
  • 婚庆公司网站设计互联网定制产品网站
  • 新手学做网站需要注意的几点用phpmysql做网站
  • 网站版面的图文是怎么做的网上医疗和医院网站建设制作
  • 模板网站和定制网站有什么区别天津网站建设公
  • 为什么要做个人网站网店美工需要学什么软件
  • 长宁企业网站建设手机会员卡管理系统
  • 拼多多cms网站怎么做海口注册公司流程及费用
  • 毕设做网站网站制作网站建设案例