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

网站自动秒收录工具网站建设的客户需求调查与分析

网站自动秒收录工具,网站建设的客户需求调查与分析,交换链接的其它叫法是,vr软件开发需要学什么[GLM4]是清华智谱团队最近开源的大语言模型。 以GLM4作为基座大模型#xff0c;通过指令微调的方式做高精度的命名实体识别#xff08;NER#xff09;#xff0c;是学习入门LLM微调、建立大模型认知的非常好的任务。 显存要求相对较高#xff0c;需要40GB左右。 知识点1通过指令微调的方式做高精度的命名实体识别NER是学习入门LLM微调、建立大模型认知的非常好的任务。 显存要求相对较高需要40GB左右。 知识点1什么是指令微调 大模型指令微调Instruction Tuning是一种针对大型预训练语言模型的微调技术其核心目的是增强模型理解和执行特定指令的能力使模型能够根据用户提供的自然语言指令准确、恰当地生成相应的输出或执行相关任务。 指令微调特别关注于提升模型在遵循指令方面的一致性和准确性从而拓宽模型在各种应用场景中的泛化能力和实用性。 在实际应用中我的理解是指令微调更多把LLM看作一个更智能、更强大的传统NLP模型比如Bert来实现更高精度的NLP任务。所以这类任务的应用场景覆盖了以往NLP模型的场景甚至很多团队拿它来标注互联网数据。 知识点2什么是命名实体识别 命名实体识别 (NER) 是一种NLP技术主要用于识别和分类文本中提到的重要信息关键词。这些实体可以是人名、地名、机构名、日期、时间、货币值等等。 NER 的目标是将文本中的非结构化信息转换为结构化信息以便计算机能够更容易地理解和处理。 NER 也是一项非常实用的技术包括在互联网数据标注、搜索引擎、推荐系统、知识图谱、医疗保健等诸多领域有广泛应用。 1.环境安装 本案例基于Python3.8请在您的计算机上安装好Python并且有一张英伟达显卡显存要求并不高大概10GB左右就可以跑。 我们需要安装以下这几个Python库在这之前请确保你的环境内已安装好了pytorch以及CUDA swanlab modelscope transformers datasets peft accelerate pandas tiktoken 一键安装命令 pip install swanlab modelscope transformers datasets peft pandas accelerate tiktoken 本案例测试于modelscope1.14.0、transformers4.41.2、datasets2.18.0、peft0.11.1、accelerate0.30.1、swanlab0.3.11、tiktoken0.7.0 2.准备数据集 本案例使用的是HuggingFace上的[chinese_ner_sft]数据集该数据集主要被用于训练命名实体识别模型。 chinese_ner_sft由不同来源、不同类型的几十万条数据组成应该是我见过收录最齐全的中文NER数据集。 这次训练我们不需要用到它的全部数据只取其中的CCFBDCI数据集中文命名实体识别算法鲁棒性评测数据集进行训练该数据集包含LOC地点、GPE地理、ORG组织和PER人名四种实体类型标注每条数据的例子如下 {text: 今天亚太经合组织第十二届部长级会议在这里开幕中国外交部部长唐家璇、外经贸部部长石广生出席了会议。,entities: [{start_idx: 23,end_idx: 25,entity_text: 中国,entity_label: GPE,entity_names: [地缘政治实体, 政治实体, 地理实体, 社会实体]},{start_idx: 25,end_idx: 28,entity_text: 外交部,entity_label: ORG,entity_names: [组织, 团体, 机构]},{start_idx: 30,end_idx: 33,entity_text: 唐家璇,entity_label: PER,entity_names: [人名, 姓名]}, ...], data_source: CCFBDCI } 其中text是输入的文本entities是文本抽取出的实体。我们的目标是希望微调后的大模型能够根据由text组成的提示词预测出一个json格式的实体信息 输入今天亚太经合组织第十二届部长级会议在这里开幕中国外交部部长唐家璇、外经贸部部长石广生出席了会议。大模型输出{entity_text:中国, entity_label:组织}{entity_text:唐家璇, entity_label:人名}... 现在我们将数据集下载到本地目录。下载方式是前往[chinese_ner_sft - huggingface]下载ccfbdci.jsonl到项目根目录下即可 3. 加载模型 这里我们使用modelscope下载GLM4-9b-Chat模型modelscope在国内所以直接用下面的代码自动下载即可不用担心速度和稳定性问题然后把它加载到Transformers中进行训练 from modelscope import snapshot_download, AutoTokenizer from transformers import AutoModelForCausalLM, TrainingArguments, Trainer, DataCollatorForSeq2Seq import torchmodel_id ZhipuAI/glm-4-9b-chat model_dir ./ZhipuAI/glm-4-9b-chat/# 在modelscope上下载GLM4模型到本地目录下 model_dir snapshot_download(model_id, cache_dir./, revisionmaster)# Transformers加载模型权重 tokenizer AutoTokenizer.from_pretrained(model_dir, use_fastFalse, trust_remote_codeTrue) model AutoModelForCausalLM.from_pretrained(model_dir, device_mapauto, torch_dtypetorch.bfloat16, trust_remote_codeTrue) model.enable_input_require_grads() # 开启梯度检查点时要执行该方法 4. 配置LoRA from peft import LoraConfig, TaskType, get_peft_modelconfig LoraConfig(task_typeTaskType.CAUSAL_LM,target_modules[query_key_value, dense, dense_h_to_4h, activation_func, dense_4h_to_h],inference_modeFalse, # 训练模式r8, # Lora 秩lora_alpha32, # Lora alaph具体作用参见 Lora 原理lora_dropout0.1, # Dropout 比例 )model get_peft_model(model, config) 5. 配置训练可视化工具 我们使用SwanLab来监控整个训练过程并评估最终的模型效果。 这里直接使用SwanLab和Transformers的集成来实现 from swanlab.integration.huggingface import SwanLabCallbackswanlab_callback SwanLabCallback(...)trainer Trainer(...callbacks[swanlab_callback], ) 如果你是第一次使用SwanLab那么还需要去[swanlab.cn]上注册一个账号在用户设置页面复制你的API Key然后在训练开始时粘贴进去即可 6. 完整代码 开始训练时的目录结构 |--- train.py |--- ccfbdci.jsonl train.py: import json import pandas as pd import torch from datasets import Dataset from modelscope import snapshot_download, AutoTokenizer from swanlab.integration.huggingface import SwanLabCallback from peft import LoraConfig, TaskType, get_peft_model from transformers import AutoModelForCausalLM, TrainingArguments, Trainer, DataCollatorForSeq2Seq import os import swanlabdef dataset_jsonl_transfer(origin_path, new_path):将原始数据集转换为大模型微调所需数据格式的新数据集messages []# 读取旧的JSONL文件with open(origin_path, r) as file:for line in file:# 解析每一行的json数据data json.loads(line)input_text data[text]entities data[entities]match_names [地点, 人名, 地理实体, 组织]entity_sentence for entity in entities:entity_json dict(entity)entity_text entity_json[entity_text]entity_names entity_json[entity_names]for name in entity_names:if name in match_names:entity_label namebreakentity_sentence f{{entity_text: {entity_text}, entity_label: {entity_label}}}if entity_sentence :entity_sentence 没有找到任何实体message {instruction: 你是一个文本实体识别领域的专家你需要从给定的句子中提取 地点; 人名; 地理实体; 组织 实体. 以 json 格式输出, 如 {entity_text: 南京, entity_label: 地理实体} 注意: 1. 输出的每一行都必须是正确的 json 字符串. 2. 找不到任何实体时, 输出没有找到任何实体. ,input: f文本:{input_text},output: entity_sentence,}messages.append(message)# 保存重构后的JSONL文件with open(new_path, w, encodingutf-8) as file:for message in messages:file.write(json.dumps(message, ensure_asciiFalse) \n)def process_func(example):对数据集进行数据预处理主要用于被dataset.map调用MAX_LENGTH 384 input_ids, attention_mask, labels [], [], []system_prompt 你是一个文本实体识别领域的专家你需要从给定的句子中提取 地点; 人名; 地理实体; 组织 实体. 以 json 格式输出, 如 {entity_text: 南京, entity_label: 地理实体} 注意: 1. 输出的每一行都必须是正确的 json 字符串. 2. 找不到任何实体时, 输出没有找到任何实体.instruction tokenizer(f|system|\n{system_prompt}|endoftext|\n|user|\n{example[input]}|endoftext|\n|assistant|\n,add_special_tokensFalse,)response tokenizer(f{example[output]}, add_special_tokensFalse)input_ids instruction[input_ids] response[input_ids] [tokenizer.pad_token_id]attention_mask (instruction[attention_mask] response[attention_mask] [1])labels [-100] * len(instruction[input_ids]) response[input_ids] [tokenizer.pad_token_id]if len(input_ids) MAX_LENGTH: # 做一个截断input_ids input_ids[:MAX_LENGTH]attention_mask attention_mask[:MAX_LENGTH]labels labels[:MAX_LENGTH]return {input_ids: input_ids, attention_mask: attention_mask, labels: labels} def predict(messages, model, tokenizer):对测试集进行模型推理得到预测结果device cudatext tokenizer.apply_chat_template(messages,tokenizeFalse,add_generation_promptTrue)model_inputs tokenizer([text], return_tensorspt).to(device)generated_ids model.generate(model_inputs.input_ids,max_new_tokens512)generated_ids [output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)]response tokenizer.batch_decode(generated_ids, skip_special_tokensTrue)[0]print(response)return responsemodel_id ZhipuAI/glm-4-9b-chat model_dir ./ZhipuAI/glm-4-9b-chat/# 在modelscope上下载GLM4模型到本地目录下 model_dir snapshot_download(model_id, cache_dir./, revisionmaster)# Transformers加载模型权重 tokenizer AutoTokenizer.from_pretrained(model_dir, use_fastFalse, trust_remote_codeTrue) model AutoModelForCausalLM.from_pretrained(model_dir, device_mapauto, torch_dtypetorch.bfloat16, trust_remote_codeTrue) model.enable_input_require_grads() # 开启梯度检查点时要执行该方法# 加载、处理数据集和测试集 train_dataset_path ccfbdci.jsonl train_jsonl_new_path ccf_train.jsonlif not os.path.exists(train_jsonl_new_path):dataset_jsonl_transfer(train_dataset_path, train_jsonl_new_path)# 得到训练集 total_df pd.read_json(train_jsonl_new_path, linesTrue) train_df total_df[int(len(total_df) * 0.1):] train_ds Dataset.from_pandas(train_df) train_dataset train_ds.map(process_func, remove_columnstrain_ds.column_names)# 配置LoRA config LoraConfig(task_typeTaskType.CAUSAL_LM,target_modules[query_key_value, dense, dense_h_to_4h, activation_func, dense_4h_to_h],inference_modeFalse, # 训练模式r8, # Lora 秩lora_alpha32, # Lora alaph具体作用参见 Lora 原理lora_dropout0.1, # Dropout 比例 )# 得到被peft包装后的模型 model get_peft_model(model, config)# 配置Transformers训练参数 args TrainingArguments(output_dir./output/GLM4-NER,per_device_train_batch_size4,per_device_eval_batch_size4,gradient_accumulation_steps4,logging_steps10,num_train_epochs2,save_steps100,learning_rate1e-4,save_on_each_nodeTrue,gradient_checkpointingTrue,report_tonone, )# 设置SwanLab与Transformers的回调 swanlab_callback SwanLabCallback(projectGLM4-NER-fintune,experiment_nameGLM4-9B-Chat,description使用智谱GLM4-9B-Chat模型在NER数据集上微调实现关键实体识别任务。,config{model: model_id,model_dir: model_dir,dataset: qgyd2021/chinese_ner_sft,}, )# 设置Transformers Trainer trainer Trainer(modelmodel,argsargs,train_datasettrain_dataset,data_collatorDataCollatorForSeq2Seq(tokenizertokenizer, paddingTrue),callbacks[swanlab_callback], )# 开始训练 trainer.train()# 用随机20条数据测试模型 test_df total_df[:int(len(total_df) * 0.1)].sample(n20)test_text_list [] for index, row in test_df.iterrows():instruction row[instruction]input_value row[input]messages [{role: system, content: f{instruction}},{role: user, content: f{input_value}}]response predict(messages, model, tokenizer)messages.append({role: assistant, content: f{response}})result_text f{messages[0]}\n\n{messages[1]}\n\n{messages[2]}test_text_list.append(swanlab.Text(result_text, captionresponse))# 记录测试结果 swanlab.log({Prediction: test_text_list}) # 关闭SwanLab记录 swanlab.finish() 看到下面的进度条即代表训练开始 7.训练结果演示 在SwanLab上查看最终的训练结果 可以看到在2个epoch之后微调后的GLM4的loss降低到了不错的水平——当然对于大模型来说真正的效果评估还得看主观效果。 可以看到在一些测试样例上微调后的GLM4能够给出准确的NER结果 至此你已经完成了qwen2指令微调的训练 8.推理训练好的模型 训好的模型默认被保存在./output/GLM4-NER文件夹下。 推理模型的代码如下 import torch from transformers import AutoModelForCausalLM, AutoTokenizer from peft import PeftModeldef predict(messages, model, tokenizer):device cudatext tokenizer.apply_chat_template(messages, tokenizeFalse, add_generation_promptTrue)model_inputs tokenizer([text], return_tensorspt).to(device)generated_ids model.generate(model_inputs.input_ids, max_new_tokens512)generated_ids [output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)]response tokenizer.batch_decode(generated_ids, skip_special_tokensTrue)[0]return responsemodel_dir ./ZhipuAI/glm-4-9b-chat/ lora_dir ./output/GLM4-NER/checkpoint-1700# 加载原下载路径的tokenizer和model tokenizer AutoTokenizer.from_pretrained(model_dir, use_fastFalse, trust_remote_codeTrue) model AutoModelForCausalLM.from_pretrained(model_dir, device_mapauto, torch_dtypetorch.bfloat16)# 加载训练好的Lora模型 model PeftModel.from_pretrained(model, model_idlora_dir)input_text 西安电子科技大学的陈志明爱上了隔壁西北工业大学苏春红他们约定好毕业后去中国的苏州定居。 test_texts {instruction: 你是一个文本实体识别领域的专家你需要从给定的句子中提取 地点; 人名; 地理实体; 组织 实体. 以 json 格式输出, 如; {entity_text: 南京, entity_label: 地理实体} 注意: 1. 输出的每一行都必须是正确的 json 字符串. 2. 找不到任何实体时, 输出没有找到任何实体. ,input: f文本:{input_text} }instruction test_texts[instruction] input_value test_texts[input]messages [{role: system, content: f{instruction}},{role: user, content: f{input_value}} ]response predict(messages, model, tokenizer) print(response) 输出结果为 {entity_text: 西安电子科技大学, entity_label: 组织} {entity_text: 陈志明, entity_label: 人名} {entity_text: 西北工业大学, entity_label: 组织} {entity_text: 苏春红, entity_label: 人名} {entity_text: 中国, entity_label: 地理实体} {entity_text: 苏州, entity_label: 地理实体} 如何学习AI大模型 我在一线互联网企业工作十余年里指导过不少同行后辈。帮助很多人得到了学习和成长。 我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限很多互联网行业朋友无法获得正确的资料得到学习提升故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。 第一阶段 从大模型系统设计入手讲解大模型的主要方法 第二阶段 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用 第三阶段 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统 第四阶段 大模型知识库应用开发以LangChain框架为例构建物流行业咨询智能问答系统 第五阶段 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型 第六阶段 以SD多模态大模型为主搭建了文生图小程序案例 第七阶段 以大模型平台应用与开发为主通过星火大模型文心大模型等成熟大模型构建大模型行业应用。 学会后的收获 • 基于大模型全栈工程实现前端、后端、产品经理、设计、数据分析等通过这门课可获得不同能力 • 能够利用大模型解决相关实际项目需求 大数据时代越来越多的企业和机构需要处理海量数据利用大模型技术可以更好地处理这些数据提高数据分析和决策的准确性。因此掌握大模型应用开发技能可以让程序员更好地应对实际项目需求 • 基于大模型和企业数据AI应用开发实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能 学会Fine-tuning垂直训练大模型数据准备、数据蒸馏、大模型部署一站式掌握 • 能够完成时下热门大模型垂直领域模型训练能力提高程序员的编码能力 大模型应用开发需要掌握机器学习算法、深度学习框架等技术这些技术的掌握可以提高程序员的编码能力和分析能力让程序员更加熟练地编写高质量的代码。 1.AI大模型学习路线图 2.100套AI大模型商业化落地方案 3.100集大模型视频教程 4.200本大模型PDF书籍 5.LLM面试题合集 6.AI产品经理资源合集 获取方式 有需要的小伙伴可以保存图片到wx扫描二v码免费领取【保证100%免费】
http://www.zqtcl.cn/news/407092/

相关文章:

  • 网站的设计方案淘宝大数据查询平台
  • 深圳营销型网站建设 龙华信科网站项目有需要什么技术支持
  • 开源网站模板cms网店推广实训总结
  • 常见的电子商务网站有哪些建设校园门户网站信息意义
  • 象山经济开发区建设有限公司网站足球比赛直播app
  • 国外做mg动画的网站大全网站打不开 别的电脑能打开
  • 手机怎么创网站西宁企业做网站
  • 网站主机多大wordpress连接错误
  • 3d建站电商平台网站开发过程是什么
  • 优化核心系列网站wordpress下拉刷新
  • 深圳建站定制公司国外试用网站空间
  • 网站建设的原则有哪些内容建设网站的详细步骤
  • wordpress网站换字体宣传电脑的网站开发
  • 移动网站设计上机考试修改wordpress域名
  • 个体户 建设网站房子已交房 建设局网站查不到
  • 在自己的电脑建设空间网站百中搜优化软件
  • 专业房产网站建设公司wordpress导入项目
  • 网站安全建设必要性企业vi设计是什么意思
  • 建站工具有哪些社区兰州市城乡建设局网站通知公告
  • 深圳市移动端网站建设wordpress get_category_parents
  • 多用户商城(c2c)网站制作方案招聘网站如何做推广
  • 微信云网站用什么做做网站卖产品
  • 最专业的企业营销型网站建设简述无线网络优化的流程
  • 茶叶响应式网站做网站还有钱赚吗
  • 枣庄建设路小学网站资源下载wordpress
  • 青海建设厅网站首页建设一个网站论坛要多少钱
  • 网站稳定性深圳网站建设有限公司 2019
  • 西城专业网站建设公司哪家好优秀的网站建设解决方案
  • 做网站接广告手机百度引擎搜索入口
  • html5网站怎么建设后台怎么弄厦门微信网站建