深度学习之本地部署大模型ChatGLM3-6B【大模型】【报错】

文章目录

  • 0.前言
  • 1.模型下载
  • 2.配置环境
    • 2.1 下载项目文件
    • 2.2 配置环境
  • 3.开始推理
  • 4.总结

0.前言

本博客将介绍ChatGLM3-6B大模型在Ubuntu上的本地部署教程

1.模型下载

  • 由于毛毛张的服务器服务无法科学上网,所以模型的相关文件必须现在本地下载好,再上传到服务器上,目前有两个开源的比较好的下载模型文件的地方:Huggineg Face(需要科学上网)和Model Scope(中国网站)

  • 传送门:

    • Hugging Face ChatGLM3-6B 下载地址
    • ModelScope ChatGLM3-6B 下载地址
  • 然后最近看到网上说大模型的模型文件使用git-lfs来进行下载,可以理解为用来下载大文件的git,需要自己单独安装,但是毛毛张不推荐

    • 原因1:毛毛张测试了一下,还不如用自己的下载器手动下载,因为大模型的权重文件基本上都很大,用这个命令安装也不会告诉你用多久才能下载完
    • 原因2:官网的模型权重文件一般都存在两种格式,一个是适用于pytorch的(下图红色方框2),一个是适用于tensorflow的(下图红色方框1),没必要全部下载,自己需要哪一个就下载哪一个就行了,具体的大模型的模型文件中各个文件的作用请参照毛毛张的这篇博客:大模型中的模型文件的说明

在这里插入图片描述

  • 所以下载过程毛毛张就不过多赘述了

2.配置环境

2.1 下载项目文件

  • ChatGLM3-6B有一个非常详细的本地部署项目文件,里面已经做好了集成,大家只需要本地下载好,然后修改相应的路径调用即可
    • 传送门:https://github.com/zzx030702/ChatGLM3

2.2 配置环境

  • 又到了头疼的一步,不同的人和电脑会出现不同的配置环境报错的问题,只有一步一步见到什么问题解决什么问题了

  • 大家把模型文件下载和官网的微调项目文件下载之后就可以将文件传送到服务器上

  • 并在项目文件中新建一个model文件夹,然后将模型文件移动到改文件夹下,如下图所示
    在这里插入图片描述

  • 接下来就可以开始配置环境了

  • 大模型本地部署的所需要的环境配置已经全部保存在requirements.txt文件当中

    • 配置命令:

      $ conda create -n chatglm python==3.10 # 创建虚拟环境
      $ cd ~/mySata/zzx/ChatGLM3 # 虚拟环境创建完毕之后就可以使用cd命令到大模型项目文件夹下
      $ conda activate chatglm # 激活虚拟环境
      $ pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple # 并在虚拟环境中安装本地推理需要的包
      

3.开始推理

  • 在使用大模型进行推理的时候要确保自己的电脑有足够的显存,CPU调用需要32G内存, GPU调用方式需要13G显存

  • 环境配置成功后,大家可以新建一段test.py代码感受一下chatglm3-6b的推理能力

    from transformers import AutoTokenizer, AutoModel
    tokenizer = AutoTokenizer.from_pretrained("./model/chatglm3-6b", trust_remote_code=True)
    model = AutoModel.from_pretrained("./model/chatglm3-6b", trust_remote_code=True, device='cuda')
    model = model.eval()
    response, history = model.chat(tokenizer, "你好", history=[])
    print(response)response, history = model.chat(tokenizer, "晚上睡不着应该怎么办", history=history)
    print(response)
    
  • 但是大家这一步运行之后绝对不会那么顺利,毛毛张部署的时候出现了一个报错:

    The above exception was the direct cause of the following exception:Traceback (most recent call last):File "/home/flyvideo/mySata/zzx/ChatGLM3/test.py", line 2, in <module>tokenizer = AutoTokenizer.from_pretrained("./model/chatglm3-6b", trust_remote_code=True)File "/home/flyvideo/anaconda3/envs/toolbench/lib/python3.10/site-packages/transformers/models/auto/tokenization_auto.py", line 719, in from_pretrainedtokenizer_class = get_class_from_dynamic_module(class_ref, pretrained_model_name_or_path, **kwargs)File "/home/flyvideo/anaconda3/envs/toolbench/lib/python3.10/site-packages/transformers/dynamic_module_utils.py", line 485, in get_class_from_dynamic_modulefinal_module = get_cached_module_file(File "/home/flyvideo/anaconda3/envs/toolbench/lib/python3.10/site-packages/transformers/dynamic_module_utils.py", line 292, in get_cached_module_fileresolved_module_file = cached_file(File "/home/flyvideo/anaconda3/envs/toolbench/lib/python3.10/site-packages/transformers/utils/hub.py", line 469, in cached_fileraise EnvironmentError(
    OSError: We couldn't connect to 'https://huggingface.co' to load this file, couldn't find it in the cached files and it looks like THUDM/chatglm3-6b is not the path to a directory containing a file named tokenization_chatglm.py.
    Checkout your internet connection or see how to run the library in offline mode at 'https://huggingface.co/docs/transformers/installation#offline-mode'
    
    • 关键信息是:OSError: We couldn't connect to 'https://huggingface.co' to load this file, couldn't find it in the cached files and it looks like THUDM/chatglm3-6b is not the path to a directory containing a file named tokenization_chatglm.py.

    • 报错原因找不到下载的Tokenizer文件,经过毛毛张排查这个应该是官方文件的一个bug

    • 解决办法:修改tokenizer_config.json文件中的THUDM/chatglm3-6b--tokenization_chatglm.ChatGLMTokenizertokenization_chatglm.ChatGLMTokenizer,修改后如下图所示

      在这里插入图片描述

  • 下面是毛毛张在实际推理过程中的显存截图:

    在这里插入图片描述

4.总结

  • 大模型在本地部署的时候会出现各种各样的报错,除了上面那个报错问题之外,还有一些包的版本问题,或者环境配置问题,各种各样的,所以大家尽量按照官网的说明去配置环境
  • 大家配置完毕之后就可以开始看项目文件中的README.md文件进行微调或者其它的任务了,毛毛张任务那个文件对于ChatGLM的推理和微调的一些代码执行说明的非常详细,再说就是废话了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/280738.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

抖店怎么入驻?2024最新入驻流程,新手必看!

我是电商珠珠 最近&#xff0c;很多新手都来问我&#xff0c;入驻抖店的话有没有什么学习资料啊&#xff0c;入驻都需要什么资质啊等等&#xff0c;我也整理了一份&#xff0c;新手入门必备资料&#xff0c;需要的可以来找我拿。 下面我来说说抖店的入驻资质&#xff0c;以及…

C++ —— 内存管理

目录 1. C内存分布 2. C 内存管理方式 2.1 new 和 delete 操作内置类型 2.2 new 和 delete 操作自定义类型 3. operator new与operator delete函数 4. new和delete的实现原理 5. malloc/free 和 new/delete 的区别 1. C内存分布 首先看一段代码&#xff1a; int globalV…

Vue 3响应式系统详解:ref、toRefs、reactive及更多

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

停车管理系统asp.net+sqlserver

停车管理系统asp.netsqlserver 说明文档 运行前附加数据库.mdf&#xff08;或sql生成数据库&#xff09; 主要技术&#xff1a; 基于asp.net架构和sql server数据库&#xff0c; 功能模块&#xff1a; 停车管理系统asp.net sqlserver 用户功能有菜单列表 我的停车记录 专…

赋能数据收集:从机票网站提取特价优惠的JavaScript技巧

背景介绍 在这个信息时代&#xff0c;数据的收集和分析对于旅游行业至关重要。在竞争激烈的市场中&#xff0c;实时获取最新的机票特价信息能够为旅行者和旅游企业带来巨大的优势。 随着机票价格的频繁波动&#xff0c;以及航空公司和旅行网站不断推出的限时特价优惠&#xff…

汽车KL15、KL30、ACC的区别

文章目录 前言一、KL30是什么&#xff1f;二、KL15是什么&#xff1f;KL15信号的演变 三、为啥用KL15、KL30呢&#xff1f; 前言 相信刚接触汽车电子的伙伴都会有一个疑惑&#xff0c;什么是KL15?什么是KL30? 内心一脸懵逼…… KL是德语Klemme的缩写&#xff0c;指的是ECU的…

【Flutter 面试题】Flutter如何进行本地存储和缓存数据?

【Flutter 面试题】Flutter如何进行本地存储和缓存数据&#xff1f; 文章目录 写在前面口述回答补充说明实际案例完整代码示例运行结果详细说明 写在前面 &#x1f64b; 关于我 &#xff0c;小雨青年 &#x1f449; CSDN博客专家&#xff0c;GitChat专栏作者&#xff0c;阿里云…

两个免费的wordpress主模板

wordpress免费网站主题 蓝色高端大气上档次的wordpress免费网站主题&#xff0c;首页大图wordpress模板。 https://www.wpniu.com/themes/31.html WP免费模板 用粉色高端大气上档次的WP免费模板&#xff0c;建个网站也不错的。 https://www.wpniu.com/themes/16.html

npm ERR! code ELIFECYCLE 解决办法

npm ERR! code ELIFECYCLE 解决办法 问题分析可能原因解决方法 问题 使用Vue脚手架构建项目的时候出现npm ERR! code ELIFECYCLE 分析可能原因 vue-cli-service 并没有加入到环境变量里 解决方法 ./node_modules/.bin/vue-cli-service serve

Day74:WEB攻防-机制验证篇重定向发送响应状态码跳过步骤验证码回传枚举

目录 验证码突破-回传显示&规律爆破 某目标回显显示 某APP验证码爆破 验证目标-重定向用户&重定向发送 某CMS重定向用户 某CMS重定向发送 验证逻辑-修改响应包&跳过步骤URL 某APP修改响应包 某APP跳过步骤URL 实战SRC验证逻辑挖掘分享案例 短信验证码回…

SpringCloud Alibaba Nacos 服务注册和配置中心

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅&#xff0c;从传统的模块之间调用&#xff0c;一步步的升级为 SpringCloud 模块之间的调用&#xff0c;此篇文章为第十二篇&#xff0c;即介绍 SpringCloud Alibaba Nacos 服务注册和配置中心。 二、Nacos 简介 2.1 为…

HarmonyOS(鸿蒙)应用开发——(一)

目录 1 创建hellopro项目 2 了解ArkTS 3 了解ArkTS的组件 4 组件介绍 4.1 常用基础组件&#xff1a; 4.1.1 Text 4.1.2 Button 4.1.3 TextInput 4.2 容器组件 4.2.1 Column 4.2.2 Row 5 案例——实现一个简易登录页面 5.1 在实现预览效果之前&#xff0c;我们…

MCU技术的创新浪潮与产业变革

MCU技术的创新浪潮与产业变革 一、MCU技术的创新发展 MCU&#xff0c;即微控制器&#xff0c;作为现代电子设备的核心部件&#xff0c;一直在不断地创新与发展。随着科技的进步&#xff0c;MCU的性能得到了极大的提升&#xff0c;功能也越来越丰富。从8位到32位&#xff0c;再…

【SpringMVC】知识汇总

SpringMVC 短暂回来&#xff0c;有时间就会更新博客 文章目录 SpringMVC前言一、第一章 SpingMVC概述二、SpringMVC常用注解1. Controller注解2. RequestMapping注解3. ResponseBody注解4. RequestParam5. EnableWebMvc注解介绍6. RequestBody注解介绍7. RequestBody与RequestP…

echart多折线图堆叠 y轴和实际数据不对应

当使用 ECharts 绘制堆叠折线图时&#xff0c;有时会遇到 y 轴与实际数据不对应的问题。 比如明明值是50&#xff0c;但折线点在y轴的对应点却飙升到了二百多 解决办法&#xff1a; 查看了前端代码发现在echart的图表中有一个‘stack’的属性&#xff0c;尝试把他删除之后y轴的…

探索vLLM:释放超大规模语言模型的力量

背景 vLLM是伯克利大学LMSYS组织开源的大语言模型高速推理框架,旨在极大地提升实时场景下的语言模型服务的吞吐与内存使用效率。vLLM是一个快速且易于使用的库,用于 LLM 推理和服务,可以和HuggingFace 无缝集成。vLLM利用了全新的注意力算法「PagedAttention」,有效地管理注…

分布式游戏服务器

1、概念介绍 分布式游戏服务器是一种专门为在线游戏设计的大型系统架构。这种架构通过将游戏服务器分散部署到多台计算机&#xff08;节点&#xff09;上&#xff0c;实现了数据的分散存储和计算任务的并行处理。每个节点都负责处理一部分游戏逻辑和玩家请求&#xff0c;通过高…

应急响应靶机训练-Web3题解

前言 接上文&#xff0c;应急响应靶机训练-Web3。 前来挑战&#xff01;应急响应靶机训练-Web3 题解 首先登录用户administrator 寻找隐藏用户 找到隐藏用户hack6618$ 然后去找apache的日志文件 分析得出两个IP地址 192.168.75.129 192.168.75.130 然后更换hack6618$的…

Offline RL : SEABO: A Simple Search-Based Method for Offline Imitation Learning

NIPS 2024 paper Intro 离线强化学习一般需要带奖励标签的数据&#xff0c;而现实中这种标签获取困难。本文提出一种基于搜索的离线方法SEABO。SEABO以无监督学习的方式&#xff0c;对最接近专家演示的transaction较大的奖励&#xff0c;否则分配较小的奖励。 Method SEAB…

Flume-transaction机制源码分析

一、整体流程 FileChannel主要是由WAL预写日志和内存队列FlumeEventQueue组成。 二、Transaction public interface Transaction {// 描述transaction状态enum TransactionState { Started, Committed, RolledBack, Closed }void begin();void commit();void rollback();voi…