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

如何利用网站赚钱用织梦做网站能练技术吗

如何利用网站赚钱,用织梦做网站能练技术吗,wordpress 4.9优化,直播网站建设费用ipex-llm环境配置及模型下载 QLORA是一种高效微调方法#xff0c;可以将内存使用降低到足以在单个48GB GPU上微调一个拥有65B参数的模型#xff0c;同时保持完整的16位微调任务性能。QLORA通过一个冻结的、4位量化的预训练语言模型将梯度反向传播到低秩适配器#xff08;Lo…ipex-llm环境配置及模型下载 QLORA是一种高效微调方法可以将内存使用降低到足以在单个48GB GPU上微调一个拥有65B参数的模型同时保持完整的16位微调任务性能。QLORA通过一个冻结的、4位量化的预训练语言模型将梯度反向传播到低秩适配器Low Rank Adapters简称LoRA 1、安装需要的包 pip install transformers4.34.0 pip install peft0.5.0 pip install accelerate0.23.02、QLoRA 微调 2.1 低精度加载模型 model AutoModelForCausalLM.from_pretrained(pretrained_model_name_or_path meta-llama/Llama-2-7b-hf,load_in_low_bitnf4,optimize_modelFalse,torch_dtypetorch.float16,modules_to_not_convert[lm_head]) model model.to(xpu)指定 load_in_low_bit“nf4” 以应用 4 位 NormalFloat 优化。 根据 QLoRA 论文使用 “nf4” 量化比 “int4” 能达到更优的模型效果。 2.2 准备训练模型 可以应用ipex_llm.transformers.qlora中的prepare_model_for_kbit_training对模型进行预处理以进行训练的准备。 from ipex_llm.transformers.qlora import prepare_model_for_kbit_training model.gradient_checkpointing_enable() #可以进一步减少内存使用但速度较慢 model prepare_model_for_kbit_training(model)从预处理后的模型中创建一个 PEFT 模型并配置它的参数如下所示 from ipex_llm.transformers.qlora import get_peft_model from peft import LoraConfigconfig LoraConfig(r8, lora_alpha32, target_modules[q_proj, k_proj, v_proj], lora_dropout0.05, biasnone, task_typeCAUSAL_LM) model get_peft_model(model, config) 从ipex_llm.transformers.qlora导入与IPEX-LLM兼容的 PEFT 模型替代原先使用 bitandbytes 库和 cuda 的from peft import prepare_model_for_kbit_training, get_peft_model用法。其使用方法和用peft库进行 QLoRA 微调方法相同。 2.3 加载数据集 加载通用数据集 english quotes 来根据英语名言来微调我们的模型。 from datasets import load_dataset data load_dataset(Abirate/english_quotes) data data.map(lambda samples: tokenizer(samples[quote]), batchedTrue)2.5加载Tokenizer 分词器可以在 LLM 训练和推理中实现分词和去分词过程。您可以使用 Huggingface Transformers API来加载 LLM 推理需要的分词器它可以与 IPEX-LLM 加载的模型无缝配合使用。对于Llama 2对应的tokenizer类为LlamaTokenizer。 from transformers import LlamaTokenizer tokenizer LlamaTokenizer.from_pretrained(pretrained_model_name_or_pathmeta-llama/Llama-2-7b-chat-hf, trust_remote_codeTrue) tokenizer.pad_token_id 0 tokenizer.padding_side left2.6 训练 import transformers trainer transformers.Trainer(modelmodel,train_datasetdata[train],argstransformers.TrainingArguments(per_device_train_batch_size4,gradient_accumulation_steps 1,warmup_steps20,max_steps200,learning_rate2e-4,save_steps100,fp16True,logging_steps20,output_diroutputs, # 这里指定你自己的输出路径optimadamw_hf, # 尚不支持 paged_adamw_8bit优化# gradient_checkpointingTrue, # #可以进一步减少内存使用但速度较慢),data_collatortransformers.DataCollatorForLanguageModeling(tokenizer, mlmFalse), ) model.config.use_cache False # 消除警告进行推理时应重新启用 result trainer.train()最终的 LoRA 模型权重和配置文件会保存到 o u t p u t d i r / c h e c k p o i n t − m a x s t e p s / a d a p t e r m o d e l . b i n 和 {output_dir}/checkpoint-{max_steps}/adapter_model.bin和 outputd​ir/checkpoint−maxs​teps/adapterm​odel.bin和{output_dir}/checkpoint-{max_steps}/adapter_config.json。 3、合并模型 微调模型后可以将QLoRA模型权重和基本模型合并并导出为Hugging Face格式。 3.1 加载预训练模型 base_model AutoModelForCausalLM.from_pretrained(meta-llama/Llama-2-7b-hf,torch_dtypetorch.float16,device_map{: cpu},)在合并状态下应删除 load_in_low_bit“nf4”因为我们需要加载原始模型作为基本模型。 3.2 合并权重 from ipex_llm.transformers.qlora import PeftModel adapter_path ./outputs/checkpoint-200 lora_model PeftModel.from_pretrained(base_model,adapter_path,device_map{: cpu},torch_dtypetorch.float16,)我们用import PeftModel from ipex_llm.transformers.qlora替代from peft import PeftModel来导入 IPEX-LLM 兼容的 PEFT 模型。 为了验证LoRA权重和预训练模型权重有效合并我们提取第一层权重在 llama2模型中为attention中的queries来对比其差异。 first_weight base_model.model.layers[0].self_attn.q_proj.weight first_weight_old first_weight.clone() lora_weight lora_model.base_model.model.model.layers[0].self_attn.q_proj.weight assert torch.allclose(first_weight_old, first_weight)通过merge_and_unlaod方法可以将微调后的模型与预训练的模型进行合并并通过assert声明来验证权重是否发生变化。 lora_model lora_model.merge_and_unload() lora_model.train(False) assert not torch.allclose(first_weight_old, first_weight)如果返回一下输出并没有报错则说明模型合并成功。 Using pad_token, but it is not set yet. Using pad_token, but it is not set yet. 最后我们可以将合并的模型保存在指定的本地路径中。 output_path ./outputs/checkpoint-200-merged lora_model_sd lora_model.state_dict() deloreanized_sd {k.replace(base_model.model., ): vfor k, v in lora_model_sd.items()if lora not in k} base_model.save_pretrained(output_path, state_dictdeloreanized_sd) tokenizer.save_pretrained(output_path) 4、使用微调模型进行推理 model_path ./outputs/checkpoint-200-merged model AutoModelForCausalLM.from_pretrained(pretrained_model_name_or_path model_path,load_in_4bitTrue) model model.to(xpu) tokenizer LlamaTokenizer.from_pretrained(pretrained_model_name_or_path model_path)可以验证微调模型在增添新的数据集训练后是否能做出富有哲理的回答。 with torch.inference_mode():input_ids tokenizer.encode(The paradox of time and eternity is, return_tensorspt).to(xpu)output model.generate(input_ids, max_new_tokens32)output output.cpu()output_str tokenizer.decode(output[0], skip_special_tokensTrue)print(output_str)仅替换model_path参数来使用预训练模型重复该过程将预训练模型的答案与微调模型的答案进行比较 预训练模型 The paradox of time and eternity is that time is not eternal, but eternity is. nobody knows how long time is. The paradox of time and eternity is 微调模型 The paradox of time and eternity is that, on the one hand, we experience time as linear and progressive, and on the other hand, we experience time as cyclical. And the 可以看到微调模型的推理结果与新增数据集中有相同的词汇以及近似的文本风格。基于 IPEX-LLM 的优化我们可以在仅仅几分钟的训练之内达到这个效果。
http://www.pierceye.com/news/261485/

相关文章:

  • 万户网站制作网站跳转怎么做
  • 网站开发全程设计做网站推广的公司发展前景
  • 电商设计网站培训建设网站域名
  • 石家庄免费专业做网站网站建设投标书服务方案范本
  • 怀孕单子图片在线制作北京seo服务行者
  • 网站备案 子域名云南商城网站建设
  • 上传到服务器的网站打开是空白网站报备流程
  • 如何用ps做网站标识一个叫mit做app的网站
  • 网站免费网站免费主流网站模板
  • 湖州市交通建设管理局网站牌具做网站可以吗
  • 湖南鸿泰电力建设有限公司网站西安做小程序的公司
  • 学校资源网站建设方案聊城网站建设
  • windows 做网站服务器python做的网站漏洞
  • 培训网站推荐网站内容该怎么做
  • 精通网站建设电子档朵朵软件网站建设
  • 铜山区规划建设局网站网站开发的甘特图
  • 访问网站速度慢中国最新军事新闻直播
  • 商城网站的psd模板免费下载哪里可以上传自己的php网站
  • 珠宝网站策划书网页设计的毕业设计
  • 最经典最常用的网站推广方式什么做网站赚钱
  • 广州哪家做网站化妆品网站方案
  • cms开源网站管理系统北京网站建设策划解决方案
  • 洛阳做多屏合一网站最新款淘宝客源码整网站程序模板+后台带自动采集商品功能带文章
  • 宁国新站seo中国建筑网官网监理工程师网站
  • 自己建网站多少钱福州建设企业网站
  • 容桂佛山做app网站wordpress 搜索 任意
  • dw做单页网站教程盐城网站建设价位
  • 赤峰建设业协会的官方网站wordpress博客伪静态
  • 2016个人做淘宝客网站网站备案备注信息
  • 加盟招商推广网站怎么做网站的防盗链