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

网站开发和软件开发工作wordpress通过图片id获取路径

网站开发和软件开发工作,wordpress通过图片id获取路径,旅游网站建设方案预算,自己制作网站做外贸赚钱吗【Python】科研代码学习#xff1a;八 FineTune PretrainedModel [用 trainer#xff0c;用 script] LLM文本生成 自己整理的 HF 库的核心关系图用 trainer 来微调一个预训练模型用 script 来做训练任务使用 LLM 做生成任务可能犯的错误#xff0c;以及解决措施 自己整理的 … 【Python】科研代码学习八 FineTune PretrainedModel [用 trainer用 script] LLM文本生成 自己整理的 HF 库的核心关系图用 trainer 来微调一个预训练模型用 script 来做训练任务使用 LLM 做生成任务可能犯的错误以及解决措施 自己整理的 HF 库的核心关系图 根据前面几期自己整理的核心库的使用/继承关系 用 trainer 来微调一个预训练模型 HF官网APIFT a PretrainedModel 今天讲讲FT训练相关的内容吧 这里就先不提用 keras 或者 native PyTorch 微调直接看一下用 trainer 微调的基本流程第一步加载数据集和数据集预处理 使用 datasets 进行加载 HF 数据集 from datasets import load_datasetdataset load_dataset(yelp_review_full)另外需要用 tokenizer 进行分词。自定义分词函数然后使用 dataset.map() 可以把数据集进行分词。 from transformers import AutoTokenizertokenizer AutoTokenizer.from_pretrained(google-bert/bert-base-cased)def tokenize_function(examples):return tokenizer(examples[text], paddingmax_length, truncationTrue)tokenized_datasets dataset.map(tokenize_function, batchedTrue)也可以先选择其中一小部分的数据单独拿出来做测试或者其他任务 small_train_dataset tokenized_datasets[train].shuffle(seed42).select(range(1000)) small_eval_dataset tokenized_datasets[test].shuffle(seed42).select(range(1000))第二步加载模型选择合适的 AutoModel 或者比如具体的 LlamaForCausalLM 等类。 使用 model.from_pretrained() 加载 from transformers import AutoModelForSequenceClassificationmodel AutoModelForSequenceClassification.from_pretrained(google-bert/bert-base-cased, num_labels5)第三步加载 / 创建训练参数 TrainingArguments from transformers import TrainingArgumentstraining_args TrainingArguments(output_dirtest_trainer)第四步指定评估指标。trainer 在训练的时候不会去自动评估模型的性能/指标所以需要自己提供一个 ※ 这个 evaluate 之前漏了放后面学这里先摆一下 # TODO import numpy as np import evaluatemetric evaluate.load(accuracy)第五步使用 trainer 训练提供之前你创建好的 model模型args训练参数train_dataset训练集eval_dataset验证集compute_metrics评估方法 trainer Trainer(modelmodel,argstraining_args,train_datasetsmall_train_dataset,eval_datasetsmall_eval_dataset,compute_metricscompute_metrics, ) trainer.train()完整代码请替换其中的必要参数来是配置自己的模型和任务 from datasets import load_dataset from transformers import (LlamaTokenizer,LlamaForCausalLM,TrainingArguments,Trainer,) import numpy as np import evaluatedef tokenize_function(examples):return tokenizer(examples[text], paddingmax_length, truncationTrue)metric evaluate.load(accuracy) def compute_metrics(eval_pred):logits, labels eval_predpredictions np.argmax(logits, axis-1)return metric.compute(predictionspredictions, referenceslabels) Load dataset, tokenizer, model, training args preprosess into tokenized dataset split training dataset and eval datasetdataset load_dataset(xxxxxxxxxxxxxxxxxxxx)tokenizer LlamaTokenizer.from_pretrained(xxxxxxxxxxxxxxxxxxxxxxxxxx) tokenized_datasets dataset.map(tokenize_function, batchedTrue)small_train_dataset tokenized_datasets[train].shuffle(seed42).select(range(1000)) small_eval_dataset tokenized_datasets[test].shuffle(seed42).select(range(1000))model LlamaForCausalLM.from_pretrained(xxxxxxxxxxxxxxx)training_args TrainingArguments(output_dirxxxxxxxxxxxxxx) define metrics set trainer and train trainer Trainer(modelmodel,argstraining_args,train_datasetsmall_train_dataset,eval_datasetsmall_eval_dataset,compute_metricscompute_metrics, )trainer.train()用 script 来做训练任务 我们在很多项目中都会看到启动脚本是一个 .sh 文件一般里面可能会这么写 python examples/pytorch/summarization/run_summarization.py \--model_name_or_path google-t5/t5-small \--do_train \--do_eval \--dataset_name cnn_dailymail \--dataset_config 3.0.0 \--source_prefix summarize: \--output_dir /tmp/tst-summarization \--per_device_train_batch_size4 \--per_device_eval_batch_size4 \--overwrite_output_dir \--predict_with_generate或者最近看到的一个 OUTPUT_DIR${1:-./alma-7b-dpo-ft} pairs${2:-de-en,cs-en,is-en,zh-en,ru-en,en-de,en-cs,en-is,en-zh,en-ru} export HF_DATASETS_CACHE.cache/huggingface_cache/datasets export TRANSFORMERS_CACHE.cache/models/ # random port between 30000 and 50000 port$(( RANDOM % (50000 - 30000 1 ) 30000 ))accelerate launch --main_process_port ${port} --config_file configs/deepspeed_train_config_bf16.yaml \run_cpo_llmmt.py \--model_name_or_path haoranxu/ALMA-13B-Pretrain \--tokenizer_name haoranxu/ALMA-13B-Pretrain \--peft_model_id haoranxu/ALMA-13B-Pretrain-LoRA \--cpo_scorer kiwi_xcomet \--cpo_beta 0.1 \--use_peft \--use_fast_tokenizer False \--cpo_data_path haoranxu/ALMA-R-Preference \--do_train \--language_pairs ${pairs} \--low_cpu_mem_usage \--bf16 \--learning_rate 1e-4 \--weight_decay 0.01 \--gradient_accumulation_steps 1 \--lr_scheduler_type inverse_sqrt \--warmup_ratio 0.01 \--ignore_pad_token_for_loss \--ignore_prompt_token_for_loss \--per_device_train_batch_size 2 \--evaluation_strategy no \--save_strategy steps \--save_total_limit 1 \--logging_strategy steps \--logging_steps 0.05 \--output_dir ${OUTPUT_DIR} \--num_train_epochs 1 \--predict_with_generate \--prediction_loss_only \--max_new_tokens 256 \--max_source_length 256 \--seed 42 \--overwrite_output_dir \--report_to none \--overwrite_cache 玛雅这么多 --xxx 看着头疼也不知道怎么搞出来这么多参数作为启动文件的。 这种就是通过 script 启动任务了githubtransformers/examples 看一下 HF github 给的一些任务的 examples 学习例子就会发现 在 main 函数中会有这样的代码 这个就是通过 argparser 来获取参数 貌似还有 parser 和 HfArgumentParser这些都可以打包解析参数又是挖个坑 # TODO 这样的话就可以通过 .sh 来在启动脚本中提供相关参数了 def main():parser argparse.ArgumentParser()parser.add_argument(--model_type,defaultNone,typestr,requiredTrue,helpModel type selected in the list: , .join(MODEL_CLASSES.keys()),)parser.add_argument(--model_name_or_path,defaultNone,typestr,requiredTrue,helpPath to pre-trained model or shortcut name selected in the list: , .join(MODEL_CLASSES.keys()),)parser.add_argument(--prompt, typestr, default)parser.add_argument(--length, typeint, default20)parser.add_argument(--stop_token, typestr, defaultNone, helpToken at which text generation is stopped)# ....... 太长省略用脚本启动还有什么好处呢 可以使用 accelerate launch run_summarization_no_trainer.py 进行加速训练 再给 accelerate 挖个坑 # TODO所以在 .sh script 启动脚本中具体能提供哪些参数取决于这个入口 .py 文件的 parser 打包解析了哪些参数然后再利用这些参数做些事情。 使用 LLM 做生成任务 HF官网APIGeneration with LLMs 官方都特地给这玩意儿单独开了一节就说明其中有些很容易踩的坑…对于 CausalLM首先看一下 next token 的生成逻辑输入进行分词与嵌入后通过多层网络然后进入到一个LM头最终获得下一个 token 的概率预测那么生成句子的逻辑就是不断重复这个过程获得 next token 概率预测后通过一定的算法选择下一个 token然后再重复该操作就能生成整个句子了。那什么时候停止呢要么是下一个token选择了 eos要么是到达了之前定义的 max token length 接下来看一下代码逻辑第一步加载模型 device_map控制模型加载在 GPUs上不过一般我会使用 os.environ[CUDA_DEVICE_ORDER] PCI_BUS_ID 以及 os.environ[CUDA_VISIBLE_DEVICES] 1,2 load_in_4bit 设置加载量化 from transformers import AutoModelForCausalLMmodel AutoModelForCausalLM.from_pretrained(mistralai/Mistral-7B-v0.1, device_mapauto, load_in_4bitTrue )第二步加载分词器和分词 记得分词的向量需要加载到 cuda 中 from transformers import AutoTokenizertokenizer AutoTokenizer.from_pretrained(mistralai/Mistral-7B-v0.1, padding_sideleft) model_inputs tokenizer([A list of colors: red, blue], return_tensorspt).to(cuda)但这个是否需要分词取决于特定的 model.generate() 方法的参数 就比如 disc 模型的 generate() 方法的参数为 也就是说我输入的 prompt 只用提供字符串即可又不需要进行分词或者分词器了。 第三步通常的 generate 方法输入是 tokenized 后的数组然后获得 ids 之后再 decode 变成对应的字符结果 generated_ids model.generate(**model_inputs) tokenizer.batch_decode(generated_ids, skip_special_tokensTrue)[0]当然我也可以批处理一次做多个操作批处理需要设置pad_token tokenizer.pad_token tokenizer.eos_token # Most LLMs dont have a pad token by default model_inputs tokenizer([A list of colors: red, blue, Portugal is], return_tensorspt, paddingTrue ).to(cuda) generated_ids model.generate(**model_inputs) tokenizer.batch_decode(generated_ids, skip_special_tokensTrue)可能犯的错误以及解决措施 控制输出句子的长度 需要在 generate 方法中提供 max_new_tokens 参数 model_inputs tokenizer([A sequence of numbers: 1, 2], return_tensorspt).to(cuda)# By default, the output will contain up to 20 tokens generated_ids model.generate(**model_inputs) tokenizer.batch_decode(generated_ids, skip_special_tokensTrue)[0]# Setting max_new_tokens allows you to control the maximum length generated_ids model.generate(**model_inputs, max_new_tokens50) tokenizer.batch_decode(generated_ids, skip_special_tokensTrue)[0]生成策略修改 有时候默认使用贪心策略来获取 next token这个时候容易出问题循环生成等需要设置 do_sampleTrue pad 对齐方向 如果输入不等长那么会进行pad操作 由于默认是右侧padding而LLM在训练时没有学会从pad_token接下来的生成策略所以会出问题 所以需要设置 padding_sideleft![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/6084ff91d85c49e28a4faf498b8e5997.png) 如果没有使用正确的 prompt比如训练时的prompt格式得到的结果就会不如预期 (in one sitting 一口气) (thug 暴徒) 这里需要参考 HF对话模型的模板 以及 HF LLM prompt 指引 比如说QA的模板就像这样。 更高级的还有 few shot 和 COT 技巧。 torch.manual_seed(4) prompt Answer the question using the context below. Context: Gazpacho is a cold soup and drink made of raw, blended vegetables. Most gazpacho includes stale bread, tomato, cucumbers, onion, bell peppers, garlic, olive oil, wine vinegar, water, and salt. Northern recipes often include cumin and/or pimentón (smoked sweet paprika). Traditionally, gazpacho was made by pounding the vegetables in a mortar with a pestle; this more laborious method is still sometimes used as it helps keep the gazpacho cool and avoids the foam and silky consistency of smoothie versions made in blenders or food processors. Question: What modern tool is used to make gazpacho? Answer: sequences pipe(prompt,max_new_tokens10,do_sampleTrue,top_k10,return_full_text False, )for seq in sequences:print(fResult: {seq[generated_text]})
文章转载自:
http://www.morning.rnqbn.cn.gov.cn.rnqbn.cn
http://www.morning.rcfwr.cn.gov.cn.rcfwr.cn
http://www.morning.ltrz.cn.gov.cn.ltrz.cn
http://www.morning.xmrmk.cn.gov.cn.xmrmk.cn
http://www.morning.lmknf.cn.gov.cn.lmknf.cn
http://www.morning.wcyr.cn.gov.cn.wcyr.cn
http://www.morning.lhztj.cn.gov.cn.lhztj.cn
http://www.morning.mhpmw.cn.gov.cn.mhpmw.cn
http://www.morning.zfzgp.cn.gov.cn.zfzgp.cn
http://www.morning.bgpb.cn.gov.cn.bgpb.cn
http://www.morning.ktskc.cn.gov.cn.ktskc.cn
http://www.morning.lkfsk.cn.gov.cn.lkfsk.cn
http://www.morning.crqpl.cn.gov.cn.crqpl.cn
http://www.morning.wcrcy.cn.gov.cn.wcrcy.cn
http://www.morning.bqpg.cn.gov.cn.bqpg.cn
http://www.morning.xrhst.cn.gov.cn.xrhst.cn
http://www.morning.yrngx.cn.gov.cn.yrngx.cn
http://www.morning.dighk.com.gov.cn.dighk.com
http://www.morning.brmbm.cn.gov.cn.brmbm.cn
http://www.morning.smygl.cn.gov.cn.smygl.cn
http://www.morning.lsfbb.cn.gov.cn.lsfbb.cn
http://www.morning.skkmz.cn.gov.cn.skkmz.cn
http://www.morning.qhln.cn.gov.cn.qhln.cn
http://www.morning.prgrh.cn.gov.cn.prgrh.cn
http://www.morning.pbtrx.cn.gov.cn.pbtrx.cn
http://www.morning.dbfwq.cn.gov.cn.dbfwq.cn
http://www.morning.krnzm.cn.gov.cn.krnzm.cn
http://www.morning.pzss.cn.gov.cn.pzss.cn
http://www.morning.hcszr.cn.gov.cn.hcszr.cn
http://www.morning.brsgw.cn.gov.cn.brsgw.cn
http://www.morning.lbhck.cn.gov.cn.lbhck.cn
http://www.morning.kjlhb.cn.gov.cn.kjlhb.cn
http://www.morning.nlryq.cn.gov.cn.nlryq.cn
http://www.morning.cyhlq.cn.gov.cn.cyhlq.cn
http://www.morning.klcdt.cn.gov.cn.klcdt.cn
http://www.morning.ljxxl.cn.gov.cn.ljxxl.cn
http://www.morning.kwqcy.cn.gov.cn.kwqcy.cn
http://www.morning.rmpfh.cn.gov.cn.rmpfh.cn
http://www.morning.dbcw.cn.gov.cn.dbcw.cn
http://www.morning.hhnhb.cn.gov.cn.hhnhb.cn
http://www.morning.nrfqd.cn.gov.cn.nrfqd.cn
http://www.morning.rrbhy.cn.gov.cn.rrbhy.cn
http://www.morning.hxxyp.cn.gov.cn.hxxyp.cn
http://www.morning.rxyz.cn.gov.cn.rxyz.cn
http://www.morning.yfnjk.cn.gov.cn.yfnjk.cn
http://www.morning.rfljb.cn.gov.cn.rfljb.cn
http://www.morning.fnmtc.cn.gov.cn.fnmtc.cn
http://www.morning.hmpxn.cn.gov.cn.hmpxn.cn
http://www.morning.jwwfk.cn.gov.cn.jwwfk.cn
http://www.morning.kyctc.cn.gov.cn.kyctc.cn
http://www.morning.lkbdy.cn.gov.cn.lkbdy.cn
http://www.morning.ypqwm.cn.gov.cn.ypqwm.cn
http://www.morning.hwbf.cn.gov.cn.hwbf.cn
http://www.morning.hhxwr.cn.gov.cn.hhxwr.cn
http://www.morning.weitao0415.cn.gov.cn.weitao0415.cn
http://www.morning.wpsfc.cn.gov.cn.wpsfc.cn
http://www.morning.hrtwt.cn.gov.cn.hrtwt.cn
http://www.morning.yrddl.cn.gov.cn.yrddl.cn
http://www.morning.mtktn.cn.gov.cn.mtktn.cn
http://www.morning.ycpnm.cn.gov.cn.ycpnm.cn
http://www.morning.cwfkm.cn.gov.cn.cwfkm.cn
http://www.morning.ywxln.cn.gov.cn.ywxln.cn
http://www.morning.ywpwg.cn.gov.cn.ywpwg.cn
http://www.morning.xtdtt.cn.gov.cn.xtdtt.cn
http://www.morning.hjbrd.cn.gov.cn.hjbrd.cn
http://www.morning.mqldj.cn.gov.cn.mqldj.cn
http://www.morning.ltxgk.cn.gov.cn.ltxgk.cn
http://www.morning.yppln.cn.gov.cn.yppln.cn
http://www.morning.xfdkh.cn.gov.cn.xfdkh.cn
http://www.morning.fxwkl.cn.gov.cn.fxwkl.cn
http://www.morning.qxnlc.cn.gov.cn.qxnlc.cn
http://www.morning.rnmyw.cn.gov.cn.rnmyw.cn
http://www.morning.wxlzr.cn.gov.cn.wxlzr.cn
http://www.morning.cpfx.cn.gov.cn.cpfx.cn
http://www.morning.pqndg.cn.gov.cn.pqndg.cn
http://www.morning.plnry.cn.gov.cn.plnry.cn
http://www.morning.lwygd.cn.gov.cn.lwygd.cn
http://www.morning.skrh.cn.gov.cn.skrh.cn
http://www.morning.rqmqr.cn.gov.cn.rqmqr.cn
http://www.morning.yhjrc.cn.gov.cn.yhjrc.cn
http://www.tj-hxxt.cn/news/266452.html

相关文章:

  • 建站论坛系统营销型网站的建设重点是什么
  • 河源市规划建设局网站手机软件做的相册怎样传到网站
  • 余姚网站建设 熊掌号成都信用网企业查询系统
  • 网站备案要拍照大家怎么做的啊施工企业管理
  • 盘锦网站建设优化亚马逊品牌备案的网站怎么做
  • 北京工商局网站如何做股东变更市建设局领导名单
  • 一个网站开发的意义英文建站多少钱
  • 财经网站模板wordpress主页制作
  • 简述网站与网页的区别wordpress主题 html5
  • 24小时自助下单网站惠州网站建设哪里找
  • 厦门网站做的比较好网站建设方案doc
  • 婚纱网站html源码学技巧网站制作
  • 怎么分辨网站是不是h5企业网站可信度建设
  • 网站搭建的流程统计局网站建设情况
  • 卖水果网站模板国外地推如何开展
  • 东莞网站设计流程网站建设的技术体会
  • 免费做网站网站的软件大学生动漫主题网页制作
  • 网站建设中的财务预算淮南直聘网
  • 如何仿制一个网站百度明星人气榜入口
  • 重庆企业做网站多少钱武夷山网页设计
  • seo外链收录沈阳百度快照优化公司
  • 网站空间购买时选择什么脚本语言移动开发软件
  • 免费做网站怎么盈利建设网站前期准备工作
  • 桂平市住房和城乡建设局门户网站手机怎么做钓鱼网站
  • 长宁区小学网站建设重庆保姆网
  • 怎么提高网站建设水平腾讯云主机能给几个网站备案
  • 怎样建设一个好的企业网站wordpress index.php 跳转
  • 网站建设书籍附光盘山西城乡建设厅网站
  • 政务网站的建设方案论坛类网站开发
  • 网站源文件修改广州小程序开发的公司排名