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

做健身网站步骤用html制作个人博客

做健身网站步骤,用html制作个人博客,网站的优化哪个好,帮平台做推广怎么赚钱今天给大家带来了一篇超级详细的教程,手把手教你如何对大语言模型进行微调(Fine Tuning)#xff01;#xff08;代码和详细解释放在后文#xff09; 目录 大语言模型进行微调(Fine Tuning)需要哪些步骤#xff1f; 大语言模型进行微调(Fine Tuning)训练过程及代码 大语言…今天给大家带来了一篇超级详细的教程,手把手教你如何对大语言模型进行微调(Fine Tuning)代码和详细解释放在后文 目录 大语言模型进行微调(Fine Tuning)需要哪些步骤 大语言模型进行微调(Fine Tuning)训练过程及代码 大语言模型进行微调(Fine Tuning)需要哪些步骤 大语言模型进行微调(Fine Tuning)的主要步骤 准备训练数据集 首先你需要准备一个高质量的训练数据集,最好是与你的应用场景相关的数据。可以是文本数据、对话数据等,格式一般为JSON/TXT等。 选择合适的基础模型 接下来需要选择一个合适的基础预训练模型,作为微调的起点。常见的有GPT、BERT、T5等大模型,可根据任务场景进行选择。 ⚙️ 设置训练超参数 然后是设置训练的各种超参数,比如学习率、批量大小、训练步数等等。选择合理的超参数对模型效果影响很大哦。 ‍ 加载模型和数据集 使用HuggingFace等库,把选定的基础模型和训练数据集加载进来。记得对数据集进行必要的前处理和划分。 ⚡ 开始模型微调训练 有了模型、数据集和超参数后,就可以开始模型微调训练了!可以使用PyTorch/TensorFlow等框架进行训练。 保存微调后的模型 训练结束后,别忘了把微调好的模型保存下来,方便后续加载使用哦。 在测试集上评估模型 最后在准备好的测试集上评估一下微调后模型的效果。看看与之前的基础模型相比,是否有明显提升? 大语言模型进行微调(Fine Tuning)训练过程及代码 那如何使用 Lamini 库加载数据、设置模型和训练超参数、定义推理函数、微调基础模型、评估模型效果呢 首先导入必要的库 import os import lamini import datasets import tempfile import logging import random import config import os import yaml import time import torch import transformers import pandas as pd import jsonlinesfrom utilities import * from transformers import AutoTokenizer from transformers import AutoModelForCausalLM from transformers import TrainingArguments from transformers import AutoModelForCausalLM from llama import BasicModelRunner这部分导入了一些必需的Python库,包括Lamini、Hugging Face的Datasets、Transformers等。 加载Lamini文档数据集 dataset_name lamini_docs.jsonl dataset_path f/content/{dataset_name} use_hf False dataset_path lamini/lamini_docs use_hf True这里指定了数据集的路径,同时设置了use_hf标志,表示是否使用Hugging Face的Datasets库加载数据。 设置模型、训练配置和分词器 model_name EleutherAI/pythia-70m training_config { ... } tokenizer AutoTokenizer.from_pretrained(model_name) tokenizer.pad_token tokenizer.eos_token train_dataset, test_dataset tokenize_and_split_data(training_config, tokenizer)这部分指定了基础预训练模型的名称,并设置了训练配置(如最大长度等)。然后,它使用AutoTokenizer从预训练模型中加载分词器,并对分词器进行了一些调整。最后,它调用tokenize_and_split_data函数对数据进行分词和划分训练/测试集。 加载基础模型 base_model AutoModelForCausalLM.from_pretrained(model_name) device_count torch.cuda.device_count() if device_count 0:device torch.device(cuda) else:device torch.device(cpu) base_model.to(device)这里使用AutoModelForCausalLM从预训练模型中加载基础模型,并根据设备(GPU或CPU)将模型移动到相应的设备上。 定义推理函数 def inference(text, model, tokenizer, max_input_tokens1000, max_output_tokens100):...这个函数用于在给定输入文本的情况下,使用模型和分词器进行推理并生成输出。它包括对输入文本进行分词、使用模型生成输出以及解码输出等步骤。 尝试使用基础模型进行推理 test_text test_dataset[0][question] print(Question input (test):, test_text) print(fCorrect answer from Lamini docs: {test_dataset[0][answer]}) print(Models answer: ) print(inference(test_text, base_model, tokenizer))这部分使用上一步定义的inference函数,在测试数据集的第一个示例上尝试使用基础模型进行推理。它打印了输入问题、正确答案和模型的输出。 设置训练参数 max_steps 3 trained_model_name flamini_docs_{max_steps}_steps output_dir trained_model_name training_args TrainingArguments(# Learning ratelearning_rate1.0e-5,# Number of training epochsnum_train_epochs1,# Max steps to train for (each step is a batch of data)# Overrides num_train_epochs, if not -1max_stepsmax_steps,# Batch size for trainingper_device_train_batch_size1,# Directory to save model checkpointsoutput_diroutput_dir,# Other argumentsoverwrite_output_dirFalse, # Overwrite the content of the output directorydisable_tqdmFalse, # Disable progress barseval_steps120, # Number of update steps between two evaluationssave_steps120, # After # steps model is savedwarmup_steps1, # Number of warmup steps for learning rate schedulerper_device_eval_batch_size1, # Batch size for evaluationevaluation_strategysteps,logging_strategysteps,logging_steps1,optimadafactor,gradient_accumulation_steps 4,gradient_checkpointingFalse,# Parameters for early stoppingload_best_model_at_endTrue,save_total_limit1,metric_for_best_modeleval_loss,greater_is_betterFalse )这一部分设置了训练的一些参数,包括最大训练步数、输出模型目录、学习率等超参数。 为什么要这样设置这些训练超参数: learning_rate1.0e-5 学习率控制了模型在每个训练步骤中从训练数据中学习的速度。1e-5是一个相对较小的学习率,可以有助于稳定训练过程,防止出现divergence(发散)的情况。 num_train_epochs1 训练的轮数,即让数据在模型上循环多少次。这里设置为1,是因为我们只想进行轻微的微调,避免过度训练(overfitting)。 max_stepsmax_steps 最大训练步数,会覆盖num_train_epochs。这样可以更好地控制训练的总步数。 per_device_train_batch_size1 每个设备(GPU/CPU)上的训练批量大小。批量大小越大,内存占用越高,但训练过程可能更加稳定。 output_diroutput_dir 用于保存训练过程中的检查点(checkpoints)和最终模型的目录。 overwrite_output_dirFalse 如果目录已存在,是否覆盖它。设为False可以避免意外覆盖之前的结果。 eval_steps120, save_steps120 每120步评估一次模型性能,并保存模型。频繁保存可以在训练中断时恢复。 warmup_steps1 学习率warmup步数,一开始使用较小的学习率有助于稳定训练早期阶段。 per_device_eval_batch_size1 评估时每个设备上的批量大小。通常与训练时相同。 evaluation_strategysteps, logging_strategysteps 以步数为间隔进行评估和记录日志,而不是以epoch为间隔。 optimadafactor 使用Adafactor优化器,适用于大规模语言模型训练。 gradient_accumulation_steps4 梯度积累步数,可以模拟使用更大批量大小的效果,节省内存。 load_best_model_at_endTrue 保存验证集上性能最好的那个检查点,作为最终模型。 metric_for_best_modeleval_loss, greater_is_betterFalse 根据验证损失评估模型,损失越小越好。 model_flops (base_model.floating_point_ops({input_ids: torch.zeros((1, training_config[model][max_length]))})* training_args.gradient_accumulation_steps )print(base_model) print(Memory footprint, base_model.get_memory_footprint() / 1e9, GB) print(Flops, model_flops / 1e9, GFLOPs)print(base_model) print(Memory footprint, base_model.get_memory_footprint() / 1e9, GB) print(Flops, model_flops / 1e9, GFLOPs)这里还计算并打印了模型的内存占用和计算复杂度(FLOPs)。 最后,使用这些参数创建了一个Trainer对象,用于实际进行模型训练。 trainer Trainer(modelbase_model,model_flopsmodel_flops,total_stepsmax_steps,argstraining_args,train_datasettrain_dataset,eval_datasettest_dataset, )训练模型几个步骤 training_output trainer.train()这一行代码启动了模型的微调训练过程,并将训练输出存储在training_output中。 保存微调后的模型 save_dir f{output_dir}/final trainer.save_model(save_dir) print(Saved model to:, save_dir) finetuned_slightly_model AutoModelForCausalLM.from_pretrained(save_dir, local_files_onlyTrue) finetuned_slightly_model.to(device)这部分将微调后的模型保存到指定的目录中。 然后,它使用AutoModelForCausalLM.from_pretrained从保存的模型中重新加载该模型,并将其移动到相应的设备上。 使用微调后的模型进行推理 test_question test_dataset[0][question] print(Question input (test):, test_question) print(Finetuned slightly models answer: ) print(inference(test_question, finetuned_slightly_model, tokenizer)) test_answer test_dataset[0][answer] print(Target answer output (test):, test_answer)这里使用之前定义的inference函数,在测试数据集的第一个示例上尝试使用微调后的模型进行推理。 打印了输入问题、模型输出以及正确答案。 加载并运行其他预训练模型 finetuned_longer_model AutoModelForCausalLM.from_pretrained(lamini/lamini_docs_finetuned) tokenizer AutoTokenizer.from_pretrained(lamini/lamini_docs_finetuned) finetuned_longer_model.to(device) print(Finetuned longer models answer: ) print(inference(test_question, finetuned_longer_model, tokenizer))bigger_finetuned_model BasicModelRunner(model_name_to_id[bigger_model_name]) bigger_finetuned_output bigger_finetuned_model(test_question) print(Bigger (2.8B) finetuned model (test): , bigger_finetuned_output)这部分加载了另一个经过更长时间微调的模型,以及一个更大的2.8B参数的微调模型。它使用这些模型在测试数据集的第一个示例上进行推理,并打印出结果。
http://www.hkea.cn/news/14377234/

相关文章:

  • 网站投入费用上海jsp网站建设
  • 深圳品牌网站设计推广旅游网站建设解决方案
  • 网站服务方案seo网络营销外包
  • 网站建设方案书 腾讯网站建设时怎么附加数据库
  • 青岛网站建设服务器域名是干嘛用的
  • 新乐市做网站网站开发前后端分离
  • 网站开发设计比赛wordpress建站 域名
  • 建站平台在线提交功能个人网站首页设计优秀作品
  • 网站如何做流动字幕移动广告平台
  • 帝国cms怎么做网站声明seo网络营销招聘
  • 做网站前端要会什么做瑜珈孕妇高清图网站
  • 重庆网站建站企业logo设计报价
  • 奉贤建设机械网站制作自己的网站学校
  • 网站创建人是seo链接优化建议
  • 网站开发东莞做电力 公司网站
  • 做ppt需要知道网站网络工程师考什么内容
  • 建设局网站功能简介施工企业经营情况汇报材料
  • 为什么使用html5网站网站建设怎么进后台
  • 全功能多国语言企业网站网页链接 提取码:qqcd
  • 网站防火墙怎么做中国空间网站
  • 天津市市建设与管理局网站网站建设设计服务
  • 贵阳网站制作维护公司建设网站的报告
  • phpcms做网站好吗做蔬菜配送有什么网站可下载了解
  • 学校网站结构图不更新网站如何做排名
  • 网站版面布局对seo保定哪家做网站专业
  • 网站品质网站建设要准备些什么
  • 中文域名网站 被搜索wordpress网站打包app
  • 科普互联网站建设wordpress分享到微信二维码
  • 那里有专业注册网站建设的国外h5汇总网站
  • 学校安全教育网站建设wordpress 调用分类名称