【AI实战】最强开源 6B 中文大语言模型ChatGLM2-6B,从零开始搭建

2023-11-03

【AI实战】最强开源 6B 中英文大语言模型ChatGLM2-6B,从零开始搭建


在这里插入图片描述

ChatGLM2-6B 简介

ChatGLM2-6B 是开源中英双语对话模型 ChatGLM-6B 的第二代版本,在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础之上,ChatGLM2-6B 引入了如下新特性:

  1. 更强大的性能:基于 ChatGLM 初代模型的开发经验,我们全面升级了 ChatGLM2-6B 的基座模型。ChatGLM2-6B 使用了 GLM 的混合目标函数,经过了 1.4T 中英标识符的预训练与人类偏好对齐训练,评测结果显示,相比于初代模型,ChatGLM2-6B 在 MMLU(+23%)、CEval(+33%)、GSM8K(+571%) 、BBH(+60%)等数据集上的性能取得了大幅度的提升,在同尺寸开源模型中具有较强的竞争力。
  2. 更长的上下文:基于 FlashAttention 技术,我们将基座模型的上下文长度(Context Length)由 ChatGLM-6B 的 2K 扩展到了 32K,并在对话阶段使用 8K 的上下文长度训练,允许更多轮次的对话。但当前版本的 ChatGLM2-6B 对单轮超长文档的理解能力有限,我们会在后续迭代升级中着重进行优化。
  3. 更高效的推理:基于 Multi-Query Attention 技术,ChatGLM2-6B 有更高效的推理速度和更低的显存占用:在官方的模型实现下,推理速度相比初代提升了 42%,INT4 量化下,6G 显存支持的对话长度由 1K 提升到了 8K。
  4. 更开放的协议:ChatGLM2-6B 权重对学术研究完全开放,在获得官方的书面许可后,亦允许商业使用。如果您发现我们的开源模型对您的业务有用,我们欢迎您对下一代模型 ChatGLM3 研发的捐赠。

ChatGLM2-6B 评测结果

我们选取了部分中英文典型数据集进行了评测,以下为 ChatGLM2-6B 模型在 MMLU (英文)、C-Eval(中文)、GSM8K(数学)、BBH(英文) 上的测评结果。

  • MMLU
    在这里插入图片描述
  • C-Eval

在这里插入图片描述

  • GSM8K
    在这里插入图片描述
  • BBH
    在这里插入图片描述

ChatGLM2-6B 搭建

  • 1、拉取docker镜像

    docker pull nvcr.io/nvidia/pytorch:21.08-py3
    

    【】需要 cuda 11.1 及以上版本

  • 2、创建docker

    nvidia-docker run -it -d \
        --name chatglm2 \
        -v /llm:/notebooks \
        -e TZ='Asia/Shanghai' \
        --shm-size 16G \
        nvcr.io/nvidia/pytorch:21.08-py3
    

    进入容器内:

    docker exec -it chatglm2  env LANG=C.UTF-8 /bin/bash
    
  • 3、下载代码

    cd /notebooks/
    git https://github.com/THUDM/ChatGLM2-6B.git
    
  • 4、下载模型权重文件

    cd ChatGLM2-6B/
    git clone https://huggingface.co/THUDM/chatglm2-6b
    
  • 5、按照依赖库

    pip install -r requirements.txt
    
  • 6、推理

    • 推理速度对比

      在这里插入图片描述

    • 显存占用
      在这里插入图片描述

    • 推理代码

      from transformers import AutoTokenizer, AutoModel
      tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True)
      model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True, device='cuda')
      model = model.eval()
      response, history = model.chat(tokenizer, "你好", history=[])
      print(response)
      你好									
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【AI实战】最强开源 6B 中文大语言模型ChatGLM2-6B,从零开始搭建 的相关文章

  • 区块链技术,正面临哪些难题与挑战?

    2018年对区块链来说 是关键的一年 在这一年 区块链出现在了大众视野 成为人工智能之后的下一个科技风口 区块链新技术的来临 正在融入多个领域并催生一批创业公司 从理论上讲 区块链技术的应用范畴 可以涵盖货币 金融 经济 社会的诸多领域 但
  • emqx增加用户认证功能

    1 关闭匿名登录 首先 关闭匿名登录 编辑配置文件 emqx conf 修改为 allow anonymous改为 false 即修改后是 allow anonymous false vim emqx etc emqx conf 操作演示

随机推荐

  • Windows下使用zsh——WSL(Debian)方法

    转载自我的个人博客 建议直接跳转个人博客查看 这个复制过来居然没有图 陈狗说windows下命令行太难用可以换成zsh 根据网上教程 GPT4的提示搞着玩 记录一下过程 我使用了WSL zsh的方法 也可以使用Git Bash zsh 1
  • 超详细超全超好理解的KMP算法

    定义 KMP算法是一种字符串匹配算法 用于在一个主串中查找一个模式串的出现位置 先看这个视频 再看下边的代码实现 油管阿三哥讲KMP查找算法 中英文字幕 人工翻译 简单易懂 https www bilibili com video BV18
  • Qt标准对话框按钮显示中文解决方案(原创)

    从网上搜了一堆解决方法 大多是考来考去 也没有解决我的问题 基本的方法是 在窗口实例化之前 加载和安装QTranslator 加载的qm文件从qt源文件中的ts文件中发布而来 例如 C Qt Qt5 13 0 5 13 0 Src qttr
  • 3D游戏编程作业四

    基本操作演练 首先是去unity商店下载一个skybox的资源包 然后创建一个materia 点击shader选择skybox并选择6sided 然后将相应位置的图片拖进去 点击add component 选择rendering 添加sky
  • VSCODE同步插件以及代码片段

    利用 share code 插件同步代码片段 利用 Settings Sync可以同步 VS code 配置 但它只能同步插件 利用 Settings Sync 再配合 share code 插件可以同步自定义代码片段 可以把 VS cod
  • BatchConfigTool批量配置工具

    海康批量配置工具BatchConfigTool是一款支持设备在线搜索 批量配置参数 批量升级等功能的软件 支持对大批量设备同时进行各参数的配置 极大的简化了操作过程 软件功能 1 对在线设备进行搜索 激活 修改设备的网络参数等 2 批量对设
  • hadoop 运行java 清洗数据 报错Failed to set permissions of path: \tmp\...

    清洗数据写好代码后 运行报错 ERROR org apache hadoop mapred TaskTracker Can not start task tracker because java io IOException Failed
  • 转载的关于 二级制的反码,补码,原码等,筛选过的.

    一 机器数和真值 在学习原码 反码和补码之前 需要先了解机器数和真值的概念 1 机器数 一个数在计算机中的二进制表示形式 叫做这个数的机器数 机器数是带符号的 在计算机用一个数的最高位存放符号 正数为0 负数为1 比如 十进制中的数 3 计
  • 关系数据库范式(1NF,2NF,3NF,BCNF,4NF,5NF)全解析

    1 范式的基本概念 设计关系数据库时 遵从不同的规范要求 设计出合理的关系型数据库 这些不同的规范要求被称为不同的范式 各种范式呈递次规范 越高的范式数据库冗余越小 没有冗余的数据库未必是最好的数据库 有时为了提高运行效率 就必须降低范式标
  • 【VHDL】分频器设计要求:25分频,占空比为50%

    VHDL 分频器设计要求 25分频 占空比为50 程序 LIBRARY IEEE USE IEEE STD LOGIC 1164 all entity DIV 25 IS PORT CLK IN STD LOGIC S1 S2 BUFFER
  • java引入包的关键字_java 包和导包关键字import

    包的概念 相当于 文件夹 person java package com jd public class person 注意该处为public 这样才能被访问 String name int age public person String
  • 用代码生成Glitch Art风格的抖音字体

    最近看到不少文章教大家用 photoshop 实现抖音的 logo 跟字体 我也非常喜欢这种风格的字体 于是趁着晚上的时间 动手用代码实现了下此类风格的字体特效 顺便开发了个小工具 地址见文末 本文主要是从 艺术手法 和 JS 前端 实现
  • UVA1347 Tour

    2021 5 22 刷题的时候突然看到手机推送 袁隆平院士逝世 心中一颤 后来得到辟谣 心情稍微放松几分 正在刷着辟谣的文章时 央视新闻发文 13点07分 袁隆平院士逝世 没过多久又看到吴孟超院士逝世的新闻 心情难以平复 特在本文的开头 向
  • 【华为OD机试】求满足条件的最长子串的长度(C++ Python Java)2023 B卷

    题目描述 给定一个字符串 只包含字母和数字 按要求找出字符串中的最长 连续 子串的长度 字符串本身是其最长的子串 子串要求 1 只包含1个字母 a z A Z 其余必须是数字 2 字母可以在子串中的任意位置 如果找不到满足要求的子串 如全是
  • 力扣17电话号码的字母组合(c++)

    力扣17电话号码的字母组合 c 力扣题目链接 思路 阅读完本题题目要求后 要解决如下3个问题 1 数字和字母如何映射 2 两个字母就两个for循环 三个字符我就三个for循环 以此类推 然后发现代码根本写不出来 3 输入1 按键等等异常情况
  • 从零开始搭建kafka开发环境

    Part1前言 最近选用kafka作为消息缓存 来低于大流量的数据 Kafka是一种高吞吐量的分布式发布订阅消息系统 有如下特性 通过O 1 的磁盘数据结构提供消息的持久化 这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能 高吞
  • 16位片内地址的I2C SLAVE接口设计

    8位片内地址的I2C SLAVE在OPENCORS org上面有 但是我没有找到16位的 我打算用B210的接EEPROM的I2C总线实现跟FPGA通讯就对照24C256的数据手册写了一个 以下代码2022 6 6更新已经实际运行通过 i2
  • YOLOv5——报错解决:UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xb2 in position 6:invalidstartbyte

    在提示报错的torch utils py文件58行 将原来的decode 改成decode encoding gbk
  • 一文读懂伪回归、协整、格兰杰

    一 什么叫做伪回归 若是所建立的回归模型在经济意义上没有因果关系 那么这个就是伪回归 例如路边小树年增长率和国民经济年增长率之间存在很大的相关系数 但是建立的模型却是伪回归 如果你直接用数据回归 那肯定存在正相关 而其实这个是没有意义的回归
  • 【AI实战】最强开源 6B 中文大语言模型ChatGLM2-6B,从零开始搭建

    AI实战 最强开源 6B 中英文大语言模型ChatGLM2 6B 从零开始搭建 ChatGLM2 6B 简介 ChatGLM2 6B 评测结果 ChatGLM2 6B 搭建 参考 ChatGLM2 6B 简介 ChatGLM2 6B 是开源
Powered by Hwhale