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

news2024/9/20 1:19:07

文章目录

  • 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_pretrained
        tokenizer_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_module
        final_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_file
        resolved_module_file = cached_file(
      File "/home/flyvideo/anaconda3/envs/toolbench/lib/python3.10/site-packages/transformers/utils/hub.py", line 469, in cached_file
        raise 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.coloradmin.cn/o/1533338.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

混合电压供电系统 3V/5V 器件 I/O 口互连

混合电压供电系统 3V/5V 器件 I/O 口互连

五、分支结构

一、程序的组织结构 无论程序是大是小&#xff0c;都可以用顺序结构、选择结构和循环结构表示 二、单分支结构 单分支结构&#xff1a;如果表达式的值是True就执行代码&#xff0c;如果表达式的值是False就跳过语句执行后面语句 ageint(input(请输入你的年龄&#xff1a;)) i…

【蓝桥杯嵌入式】四、各种外设驱动(十)USART+DMA通信方式和串口通信协议的设计与使用

温馨提示&#xff1a;本文不会重复之前提到的内容&#xff0c;如需查看&#xff0c;请参考附录 【蓝桥杯嵌入式】附录 目录 重点提炼&#xff1a; 一、需求分析 1、需要的外设资源分析&#xff1a; 2、外设具体分析&#xff1a; CubeMX配置中&#xff0c;我们需要改动的参…

【媒体宣传】企业活动发布会邀请媒体报道的好处与优势?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 企业活动发布会邀请媒体报道具有多种好处与优势&#xff0c;这些都有助于提升企业的知名度、形象和影响力。以下是一些主要的好处与优势&#xff1a; 提升品牌知名度&#xff1a;媒体报…

金融知识分享系列之:支撑阻力

金融知识分享系列之&#xff1a;支撑阻力 一、支撑阻力原理二、支撑阻力作用1.识别市场资金的预期2.作为入场和平仓的重要参考 三、寻找支撑阻力四、延伸思考五、支撑阻力总结 一、支撑阻力原理 支撑阻力核心要素&#xff1a; 锚定效应订单驱动 支撑阻力原理&#xff1a; 市…

Java代码基础算法练习-求给定3个数, 进行从小到大排序-2024.03.20

任务描述&#xff1a; 输入三个整数 x,y,z(0<x<1000&#xff0c;0<y<1000&#xff0c;0<z<1000)&#xff0c;请把这三个数由小到大输出。 任务要求&#xff1a; 代码示例&#xff1a; package march0317_0331;import java.util.Scanner;public class m24…

JVM第八讲:GC - Java 垃圾回收基础知识

GC - Java 垃圾回收基础知识 本文是JVM第八讲&#xff0c; Java 垃圾回收基础知识。垃圾收集主要是针对堆和方法区进行&#xff1b;程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的&#xff0c;只存在于线程的生命周期内&#xff0c;线程结束之后也会消失&#xff0…

外包干了14天,技术退步明显。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;2019年我通过校招踏入了成都一家软件公司&#xff0c;开始了我的职业生涯。那时的我&#xff0c;满怀热血和憧憬&#xff0c;期待着在这个行业中闯出一片天地。然而&#xff0c;随着时间的推移&#xff0c;我发现自己逐渐陷入…

HarmonyOS 应用开发案例

本帖下方集中了HarmonyOS Next应用开发时&#xff0c;会遇到的常见应用案例。后续会持续更新大量案例&#xff0c;帮助开发者快速学习。欢迎感兴趣的同学加入Q&#xff1a;454901491 72.手写绘制及保存图片案例&#xff08;0319更新&#xff09;&#xff08;点此查看源码实现&…

【spring】@ConditionalOnResource注解学习

ConditionalOnResource 介绍 ConditionalOnResource 是Spring框架中的一个条件化注解&#xff0c;它允许你根据类路径中是否存在指定的资源来决定是否加载特定的Bean定义或配置类。这个注解可以用于类级别或方法级别。 具体Conditional使用请看这篇文章【spring】Conditional…

在线培训考试系统的作用分析

随着互联网技术的迅猛发展&#xff0c;在线培训考试系统在提高教育培训效果方面发挥着重要的作用。该系统充分利用了信息技术的优势&#xff0c;为教育培训提供了新的方式和工具&#xff0c;促进学习者的主动参与和持续学习&#xff0c;提升培训效果。 自主学习机会 在线培训考…

前端项目,个人笔记(六)【无限滚动 + 拦截器】

目录 1、无限滚动 2、使用pinia进行用户数据持久化 3、完善个人笔记三中的拦截器 请求拦截器&#xff1a; 响应拦截器&#xff1a; 1、无限滚动 使用elementplus中提供的&#xff1a; 代码&#xff1a; <div class"body" v-infinite-scroll"load"…

8.测试教程-自动化测试selenium-3

文章目录 1.unittest框架解析2.批量执行脚本2.1构建测试套件2.2用例的执行顺序2.3忽略用例执行 3.unittest断言4.HTML报告生成5.异常捕捉与错误截图6.数据驱动 大家好&#xff0c;我是晓星航。今天为大家带来的是 自动化测试selenium第三节 相关的讲解&#xff01;&#x1f600…

[C/C++] -- 链表

C/C 中链表是一种常见的数据结构&#xff0c;用于存储和组织数据。链表由节点&#xff08;Node&#xff09;组成&#xff0c;每个节点包含数据和指向下一个节点的指针。链表相对于数组的优势在于可以动态地分配内存&#xff0c;插入和删除操作效率高&#xff0c;但访问元素的随…

Word 操作

个性化设置 打开Microsoft Office后&#xff0c;可以在账户中设置Office的主题和背景。 如图所示&#xff0c;即可完成。 导航 如图所示&#xff0c;在Microsoft Office打开的docx文档中&#xff0c;鼠标点击左下角红框所示的地方&#xff0c;就会出现导航栏目。 护眼颜色 …

中央空调的计费方式

中央空调如何计费 电费计量型中央空调计费方法 计费原理:电费计量型就是通过计量空调末端的用电量&#xff0c;再根据用电量换算为冷量&#xff0c;统计中央空调系统中各用户的总冷量&#xff0c;再根据各用户的冷量比例来分摊费用。 优点: 电量参数容易计量&#xff0c;管理…

蓝桥杯-数的潜能-求快速幂

题目 思路 --将数字拆分成加和的形式&#xff0c;并且相乘。数据范围到10的18次方&#xff0c;暴力肯定不行&#xff0c;要找规律。拆分成1肯定不行&#xff0c;对乘法没有贡献&#xff0c;2可以&#xff0c;3也可以&#xff0c;4、5、6等大于3的数字都可以用2和3来表示。所以…

【博士每天一篇文献-综述】Brain network communication_ concepts, models and applications

阅读时间&#xff1a;2023-12-1 1 介绍 年份&#xff1a;2023 作者&#xff1a;Caio Seguin&#xff0c;Olaf Sporns印第安纳大学心理与脑科学系 期刊&#xff1a; nature reviews neuroscience 引用量&#xff1a;33 中文翻译参考&#xff1a;https://swarma.org/?p44524 …

【算法】差分算法(空调)

可用于求一个数组要变为另一个数组最少要改变多少次的次数 Farmer John 的 N 头奶牛对他们牛棚的室温非常挑剔。 有些奶牛喜欢温度低一些&#xff0c;而有些奶牛则喜欢温度高一些。 Farmer John 的牛棚包含一排 N 个牛栏&#xff0c;编号为 1…N&#xff0c;每个牛栏里有一头…

Emacs之极速复制文件名、绝对路径等快捷键(一百三十三)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…