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

net域名做网站怎么样建设网站的基本工作流程

net域名做网站怎么样,建设网站的基本工作流程,自己编程怎么做网站教程,鞍山网站页设计制作一、基础知识 1.1导入库 torch 是一个深度学习框架,用于处理张量和神经网络。modelscope是由阿里巴巴达摩院推出的开源模型库。 AutoTokenizer 是ModelScope 库的类,分词器应用场景包括自然语言处理(NLP)中的文本分类、信息抽取…

一、基础知识

1.1导入库

  • torch 是一个深度学习框架,用于处理张量和神经网络
  • modelscope是由阿里巴巴达摩院推出的开源模型库
    • AutoTokenizer 是ModelScope 库的类,分词器应用场景包括自然语言处理(NLP)中的文本分类、信息抽取、问答、摘要、翻译和文本生成等任务。它通过提供一个统一的接口,使得开发者可以快速且方便地加载和使用不同的预训练模型,而不需要深入了解每个模型的细节‌;
    •  AutoModel 是ModelScope 库的类,允许用户在不知道具体模型细节的情况下,根据给定的模型名称或模型类型自动加载相应的预训练模型
    • snapshotdownload 是 ModelScope 提供的一个函数,便于下载模型文件

1.2下载模型

   model_dir=snapshot_download("ZhipuAI/chatglm3-6b",revision"v1.0.0")

model_dir是模型下载后的存储路径。使用snapshot_download 函数下载指定版本的模型。有两种方式,

  • 第一种方式,使用本地的模型路径
  model_dir=snapshot_download("本地路径/chatglm3-6b",revision"v1.0.0")
  • 第二种方式,默认从modelscope下载 ZhipuAI/chatglm3-6b 的 v1.0.0 版本,见示例代码。这种方式需要在终端使用pip install modelscope来安装。snapshot_download 函数中的模型名称和版本可以通过搜索魔搭社区来查找。

魔搭社区汇聚各领域最先进的机器学习模型,提供模型探索体验、推理、训练、部署和应用的一站式服务。https://www.modelscope.cn/models

1.3加载分词器

tokenizer=AutoTokenizer.from_pretrained(model_dir,trust_remote_code=True)

使用 AutoTokenizer.frompretrained 方法加载预训练的分词器。其中,trustremotecode=True 表示信任远程代码。

1.4加载模型

with torch.no_grad():model=AutoModel.from_pretrained(model_dir,trust_remote_code=True).cpu().float()

1.4.1with torch.nograd()

with torch.nograd():表示在这个上下文中不计算梯度,以节省内存和计算资源。

Python中的with语句是一种用于简化资源管理的语法结构,通过上下文管理器协议(实现__enter__和__exit__方法)自动确保资源的获取和释放,常用于文件操作、数据库连接、线程锁等场景‌。

with 上下文管理器 as 变量:# 执行代码块

1.4.2AutoModel.frompretrained方法

AutoModel.frompretrained方法加载预训练的模型。其中,

  • .trustremotecode=True表示信任远程代码。
  • .cpu() 将模型移动到 CPU 上。
  • .float() 将模型的参数转换为浮点数类型。

针对当前模型,若使用GPU,可以将.cpu() 替换为.cuda()。此时,.float()是首选,float32提供较高的精度;.half()是float16,与float相比,内存减半。还可以通过.quantize()来选择模型量化方式:

  • .quantize(8)是INT8量化,表示将模型的权重和激活值量化为8位整数
  • .quantize(4)是INT4量化,表示将模型的权重和激活值量化为4位整数,但不是所有的硬件都支持INT4量化。(示例如下)
with torch.no_grad():model=AutoModel.from_pretrained(model_dir,trust_remote_code=True).quantize(8).cuda()

1.5设置模型为评估模式

model=model.eval()

model.eval() 将模型设置为评估模式,不启用 Batch Normalization 和 Dropout ,确保模型在测试和推理阶段的行为与训练阶段有所不同,从而提高结果的稳定性和准确性。。Batch Normalization 在训练过程中会对每一特征维做归一化操作,对每一批量输入算出 mean 和 std,而在 eval 模式下 BN 层将能够使用全部训练数据的均值和方差,即测试过程中不再针对测试样本计算mean和std,而是直接用训练好的值。

1.6第一次交互

responses,history=model.chat(tokenizer,"你好",history=[])
print(responses)
  • 使用 model.chat() 方法与模型进行交互,输入是 “你好”,初始历史记录为空列表 []
  • print(responses) 打印模型的回复。其中,responses 是模型的回复,history 是更新后的历史记录。

1.7第二次交互

responses,history=model.chat(tokenizer,"快乐学习大模型开发的方法",history=history)
print(responses)
  • 使用 model.chat()  方法与模型进行交互,输入是 “快乐学习大模型开发的方法”,历史记录是上一次交互的历史记录。
  • print(responses) 打印模型的回复。

二、大模型问答交互【CPU版】

2.1代码

import torch
from modelscope import AutoTokenizer,AutoModel,snapshot_download#终端运行pip install modelscope
#模型下载的默认路径为C:\Users\Administrator\.cache\modelscope\hub\models\
model_dir=snapshot_download("ZhipuAI/chatglm3-6b",revision="v1.0.0")
tokenizer=AutoTokenizer.from_pretrained(model_dir,trust_remote_code=True)with torch.no_grad():model=AutoModel.from_pretrained(model_dir,trust_remote_code=True).cpu().float()model=model.eval()
responses,history=model.chat(tokenizer,"你好",history=[])
print(responses)
responses,history=model.chat(tokenizer,"快乐学习大模型开发的方法",history=history)
print(responses)

2.2运行结果

2.3问题与解决

问题一:'torchvision' has no attribute 'extension'

解决一:重新安装torchvision

pip uninstall torchvision
pip install torchvision

问题二:TypeError: ChatGLMTokenizer._pad() got an unexpected keyword argument 'padding_side'

解决二:transformers版本问题,安装4.41.2版本

pip install transformers==4.41.2

三、大模型问答交互【GPU版】

3.1代码

import torch
from modelscope import AutoTokenizer,AutoModel,snapshot_download#终端运行pip install modelscope
#模型下载的默认路径为C:\Users\Administrator\.cache\modelscope\hub\models\
model_dir=snapshot_download("ZhipuAI/chatglm3-6b",revision="v1.0.0")
tokenizer=AutoTokenizer.from_pretrained(model_dir,trust_remote_code=True)with torch.no_grad():model=AutoModel.from_pretrained(model_dir,trust_remote_code=True).quantize(8).cuda()model=model.eval()
responses,history=model.chat(tokenizer,"你好",history=[])
print(responses)
responses,history=model.chat(tokenizer,"快乐学习大模型开发的方法",history=history)
print(responses)

3.2运行结果

3.3问题与解决

问题一:AssertionError:Torch not complied with CUDA enable

解决一:PyTorch和CUDA版本不匹配

问题二:TypeError: ChatGLMTokenizer._pad() got an unexpected keyword argument 'padding_side'

解决二:安装transformers版本问题,安装4.41.2版本

pip install transformers==4.41.2
http://www.dtcms.com/wzjs/552382.html

相关文章:

  • 网站搭建详细流程二级建造师考试试题
  • 淘宝网站开发实训报告网站建设大型
  • 做建材的网站做路线图的网站
  • 江苏省网站备案邯郸市永年区做网站的公司
  • 安徽外贸网站建设做招聘网站需要资质吗
  • 网站开发与维护专业要学什么什么网站不能备案
  • 超大免费网站空间广告字制作哪家好
  • 高端网站建设公司兴田德润可以不asp.net网站开发源码
  • 如何将网站地图提交给百度企业系统化管理的优势
  • 网站开发定价自响应式网站是什么意思
  • 中小企业网站提供了什么iphone下载网页视频
  • 合肥网站建设市场wordpress不能编辑文章
  • 电商素材网站怎么做售房网站
  • 苏州公司网站建设唐山快速建站的公司
  • 游戏运营备案官方网站工作总结个人范文
  • 网站keywords标签怎么写博客网站搭建
  • 俄文手机网站制作wordpress 数据库插件
  • 设计网站账号广州工商注册流程
  • 做网站备案必须是个人还是公司网站建设行业研究
  • 留言网站建设杭州九鸿科技网站开发
  • 网站建设目的及意义素材网站开发
  • 做充气气模产品一般去哪些网站自己做的网站背景怎么设置
  • 外贸推广用中文网站做支付行业招代理一般上什么网站
  • 如何建立一个网站分享教程软件开发项目验收报告
  • 哈尔滨网站建设方案微信号 网站模板
  • 招生门户网站建设方案建设企业银行电脑版怎么下载
  • 网站站点风格如何开个公司网站
  • 大连模板网站制作推荐工业设计公司属于什么行业
  • 石家庄营销推广网站wordpress 图片 空间
  • 一个备案号多个网站义乌建设局网站打不开