ChatGLM4重磅开源! 连忙实操测试一波,效果惊艳,真的好用!附带最新相关资料和喂饭级实操推理教程!!

本文目录

  • GLM4重磅开源啦

  • GLM4系列版本介绍

  • GLM4大模型能力测评结果

  • 经典测评任务结果

  • 长文本能力

  • 工具调用能力

  • 多模态能力

  • 手把手实操GLM-4-9B-Chat推理预测&&效果展示

  • GLM4运行硬件和环境要求

  • 配置对应的库环境

  • 使用peft+bitsandbytes 进行4位量化推理

  • 进行大模型的推理

  • 显存占用情况

  • 手把手实操 多模态版本GLM-4V-9B-Chat推理预测&&效果展示

  • 多模态GLM-4V-9B对应的硬件资源

  • 进行4位量化加载

  • 准备测试图片

  • 进行推理预测

  • 参考文档

GLM4重磅开源啦

GLM-4-9B是智谱AI在24年6月5日推出的开源预训练模型,属于GLM-4系列。之前已开源chatglm1~chatglm3等多个版本。

GLM4在语义理解、数学、推理、编程和知识等领域的测试中表现优异。GLM-4-9B-Chat是其人类偏好对齐版本,支持多轮对话、网页浏览、代码执行、自定义工具调用(function call)以及长文本推理(最大128K上下文)。该系列模型还支持26种语言,包括日语、韩语和德语,并推出了支持1M上下文长度(约200万中文字符)的版本。

GLM-4系列版本介绍

GLM-4-9B 系列模型主要包含:

glm4大模型能力测评结果

经典测评任务结果

长文本能力

在1M的token上下文长度进行大海捞针实验,

在 LongBench-Chat 上对长文本能力进行了进一步评测,结果如下:

工具调用能力

多模态能力

GLM-4V-9B 是一个多模态语言模型,具备视觉理解能力,其相关经典任务的评测结果如下:

可以看出GLM4的性能相比GLM3-6b,有着大幅度提升,具有以下亮点:

  1. 上下问长度最高支持1M。

  2. 支持多达26种语言。

  3. 工具调用能力(function call)提升巨大,逼近GPT4。

  4. 从评测的结果来看,基础通用能力超越llama3 ,提升40%。

下面我将给大家实操利用对话版本 GLM-4-9B-Chat(128K)和多模态版本 GLM-4V-9B-Chat来进行模型的推理和效果展示;

手把手实操GLM-4-9B-Chat推理预测&&效果展示

GLM4运行硬件和环境要求

下图是glm4对应不同输入token的显存占用情况。为了能够更好的节省资源,这里我将采用4位量化的方式来GLM4进行推理测试。

配置对应的库环境
from IPython.display import clear_output  
!pip install  accelerate  
!pip install  colorama sentencepiece streamlit transformers_stream_generator cpm_kernels tiktoken  
!pip install   git+https://github.com/huggingface/peft  #使用最新版本非常重要,否则可能报错  
!pip install  optimum  
!pip install  safetensors  
!pip install  transformers  
!pip install  bitsandbytes==0.41.3   
clear_output()  
import warnings   
warnings.filterwarnings('ignore')  
import torch   
import transformers  
import peft   
import accelerate   
print(peft.__version__, transformers.__version__, torch.__version__,accelerate.__version__)  
# 0.11.2.dev0 4.41.2 2.1.2 0.30.1  

编写代码小技巧: 在运行大模型前先把各个库对应的版本信息进行打印,避免环境不兼容,节约调试的时间。

使用peft+bitsandbytes 进行4位量化推理
from transformers import AutoTokenizer,AutoConfig, AutoModel, BitsAndBytesConfig  
import torch  
from transformers import AutoModelForCausalLM, AutoTokenizer  bnb_config=BitsAndBytesConfig(  load_in_4bit=True,  bnb_4bit_compute_dtype=torch.float16,  bnb_4bit_use_double_quant=True,   bnb_4bit_quant_type="nf4",   llm_int8_threshold=6.0,  llm_int8_has_fp16_weight=False,  )  
tokenizer = AutoTokenizer.from_pretrained("THUDM/glm-4-9b-chat",trust_remote_code=True)  
model = AutoModelForCausalLM.from_pretrained(  "THUDM/glm-4-9b-chat",  quantization_config=bnb_config,  torch_dtype=torch.float16,  low_cpu_mem_usage=True,  trust_remote_code=True  
).eval()  
model  

其中glm4_6b的网络框架如下:

进行大模型的推理测试
问题1:简单问好
%%time   
query = "你好"  
inputs = tokenizer.apply_chat_template([{"role": "user", "content": query}],  add_generation_prompt=True,  tokenize=True,  return_tensors="pt",  return_dict=True  )  
inputs = inputs.to("cuda")  
gen_kwargs = {"max_length": 2500, "do_sample": True, "top_k": 10,"temperature":0.3,}  
with torch.no_grad():  outputs = model.generate(**inputs, **gen_kwargs)  outputs = outputs[:, inputs['input_ids'].shape[1]:]  print(tokenizer.decode(outputs[0], skip_special_tokens=True))  

输出效果:

问题2: 鲁迅为什么暴打周树人?

问题3: 长江和嘉陵江相汇在什么地方?

问题4:树上有10只鸟,开枪打死了2只,树上还剩下几只?

可以看出上面的几个问题,GLM4都回答的不错,没有掉进我们设置的陷阱中,非常不错。

显存占用情况

手把手实操 多模态版本GLM-4V-9B-Chat推理预测&&效果展示

多模态GLM-4V-9B对应的硬件资源

下图是glm4对应不同输入token的显存占用情况。

进行4位量化加载
from transformers import AutoTokenizer,AutoConfig, AutoModel, BitsAndBytesConfig  
import torch  
from transformers import AutoModelForCausalLM, AutoTokenizer  
bnb_config=BitsAndBytesConfig(  load_in_4bit=True,  bnb_4bit_compute_dtype=torch.float16,  bnb_4bit_use_double_quant=True, #QLoRA 设计的 Double Quantization  bnb_4bit_quant_type="nf4", #QLoRA 设计的 Normal Float 4 量化数据类型  llm_int8_threshold=6.0,  llm_int8_has_fp16_weight=False,  )  
tokenizer = AutoTokenizer.from_pretrained("THUDM/glm-4v-9b",trust_remote_code=True)  
model = AutoModelForCausalLM.from_pretrained(  "THUDM/glm-4v-9b",  quantization_config=bnb_config,  torch_dtype=torch.float16,  low_cpu_mem_usage=True,  trust_remote_code=True  
).eval()  
准备测试图片
!wget https://copyright.bdstatic.com/vcg/creative/426a8f2904bd65bab5eee5474b769374.jpg  
from IPython.display import display  
from PIL import Image  
display(Image.open('426a8f2904bd65bab5eee5474b769374.jpg'))  

这是待理解的图片

进行推理预测
%%time   
import torch  
from PIL import Image  
query = '描述这张图片'  
image = Image.open("426a8f2904bd65bab5eee5474b769374.jpg").convert('RGB')  
inputs = tokenizer.apply_chat_template([{"role": "user", "image": image, "content": query}],  add_generation_prompt=True, tokenize=True, return_tensors="pt",  return_dict=True)  # chat mode  
inputs = inputs.to("cuda")  
gen_kwargs = {"max_length": 2500, "do_sample": True, "top_k": 10,}  
with torch.no_grad():  outputs = model.generate(**inputs, **gen_kwargs)  outputs = outputs[:, inputs['input_ids'].shape[1]:]  print(tokenizer.decode(outputs[0]))  

多模态GLM4输出的效果:

可以看出非常准确地识别出图片的内容,并做出合理解释,太酷啦!

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

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

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

相关文章

【大模型报告】2024年中国AI大模型场景探索及产业应用调研报告【免费下载】

1.行业概况 市场规模: 2023年中国AI大模型行业规模达到147亿元,预计到2028年将突破1000亿元,复合增速超过50%。 应用价值: AI大模型技术能够提升生产要素的产出效率,并提高数据要素在生产要素组合中的地位。 应用路…

本地生活便民信息服务小程序源码系统 PHP+MySQL组合开发 带完整的安装代码包以及搭建部署教程

系统概述 地方门户分类信息网站源码系统是一个基于PHP和MySQL开发的强大平台,旨在帮助用户轻松搭建地方性的分类信息网站。该系统集成了众多实用功能,支持用户自由发帖、浏览和搜索各类信息,如二手交易、求职招聘、房屋租售、生活服务、商家…

Git核心概念图例与最常用内容操作(reset、diff、restore、stash、reflog、cherry-pick)

文章目录 简介前置概念.git目录objects目录refs目录HEAD文件 resetreflog 与 reset --hardrevert(撤销指定提交)stashdiff工作区与暂存区差异暂存区与HEAD差异工作区与HEAD差异其他比较 restore、checkout(代码撤回)merge、rebase、cherry-pick 简介 本文将介绍Git几个核心概念…

ubuntu22.04下GStreamer源码编译单步调试

前言 本文会通过介绍在linux平台下的GStreamer的源码编译和单步调试example实例。官网介绍直接通过命令行来安装gstreamer可以参考链接:Installing on Linux。 这种方法安装后,基于gstreamer的程序,单步调试的时候并不会进入到gstreamer源码…

李飞飞:不要数字孪生,要数字表兄弟,一张照片生成机器人训练场景

我们很多人都听说过数字孪生(digital twin),在英伟达等公司的大力推动下,这种高效运营工作流程的方法已经在很多工业场景中得到应用。 但你听说过数字表亲(digital cousin)吗? 近日&#xff0…

2024年【浙江省安全员-C证】复审考试及浙江省安全员-C证证考试

题库来源:安全生产模拟考试一点通公众号小程序 浙江省安全员-C证复审考试是安全生产模拟考试一点通总题库中生成的一套浙江省安全员-C证证考试,安全生产模拟考试一点通上浙江省安全员-C证作业手机同步练习。2024年【浙江省安全员-C证】复审考试及浙江省…

vue3环境变量和模式

文章目录 一、vite文档介绍环境变量1.环境变量1.1创建文件 2.NODE_ENV 和 模式**2.1process.env.NODE_ENV(Node.js 环境变量)**2.2 **模式(mode)** 二、loadEnv获取环境变量(针对在env文件夹下)2.1创建环境…

FPGA图像处理之三行缓存

文章目录 一、前言二、FPGA实现三行缓存的架构三、Verilog代码实现四、仿真验证五、输入图像数据进行仿真验证 一、前言 在 FPGA 做图像处理时,行缓存是一个非常重要的一个步骤,因为图像输入还有输出都是一行一行进行的,即处理完一行后再处理…

Linux 安装 JDK 环境

最近有小伙伴不怎么会在 Linux 服务器安装 JDK 环境,小格子给大家总结分享一下,下次直接看这篇文章就可以了。下面以 CentOS 为例。 1. 下载 JDK 安装包 由于 JDK1.8.202 是最后一个免费版本,建议下载此版本。由于在 Oracle 官方网站下载需…

JS | JS之元素偏移量 offset 系列属性详解

目录 一、offset 概述 定位父级 offsetParent 偏移量 offsetWidth offsetHeight offsetLeft offsetTop 计算页面偏移 注意事项 二、offset 与 style 区别 偏移offset 样式style 三、案例 ★ 案例:获取鼠标在盒子内的坐标 ★ 案例:模态框…

软件测试学习笔记丨Pytest的使用

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/22158 1. 简介 pytest是一个成熟的全功能python测试框架测试用例的skip和xfail,自动失败重试等处理能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/ap…

2024互联网大厂营收排名:京东/阿里/华为前三,超多技术岗都在热招!

2024年已经过去一大半,各大互联网大厂的竞争如火如荼,营收都取得了不俗的成绩,京东、阿里、华为分别占领前三! 第四第五名则为华为和拼多多。 根据排行榜里的公司名单,小码特意为大家整理了一批各大厂的招聘岗位。 阿…

【论文#快速算法】Fast Intermode Decision in H.264/AVC Video Coding

目录 摘要1.前言2.帧间模式决策概览2.1 H.264/AVC中的帧间模式决策2.2 发现和动机 3.同质性和平稳性的确定3.1 同质性区域的确定3.2 稳定性区域的决定3.3 整体算法 4.实验结果4.1 IPPP序列的测试4.2 IBBP序列测试 5.结论 《Fast Intermode Decision in H.264/AVC Video Coding》…

基础数据结构——数组(动态数组,二维数组,缓存与局部性原理)

1.概述 在计算机科学中,数组是由一组元素(值或变量)组成的数据结构,每个元素有至少一个索引或键来标识 因为数组内的元素是连续存储的,所以数组中元素的地址,可以通过其索引计算出来,例如&…

生产力工具|vscode for mac的安装python库和使用虚拟环境(一)

一、在vscode中运行python代码(mac或windows) (一)在vscode中安装Python插件 若想在vscode中高效率的编辑Python代码,需要安装Python插件,点击下图中红框内的按钮: 然后在左上角的搜索框中输入…

Vue前端开发2.1 单文件组件

文章目录 一、单文件组件概念二、单文件组件构成1. 模板(Template)2. 样式(Style)3. 逻辑(Script) 三、单文件组件演示1. 创建Vue项目2. 启动Vue项目3. 用VS Code打开项目4. 清空样式文件代码5. 创建欢迎组…

【redis】热点key问题

【redis】热点key问题 【一】什么是热点key问题【二】什么样的key被称为热key【三】热点Key问题的危害【四】如何监控发现热点key【五】热点Key的解决方案【1】使用二级缓存【2】将热key分散到不同的服务器中【3】热key拆分【4】将核心/非核心业务做Redis的隔离 【六】业界已有…

Nature 正刊丨细菌免疫蛋白直接感知两种不同的噬菌体蛋白

01摘要 真核先天免疫系统使用模式识别受体通过检测病原体相关的分子模式来感知感染,然后触发免疫反应。细菌也进化出了类似的免疫蛋白,可以感知其病毒捕食者的某些成分,即噬菌体1,2,3,4,5,6。尽管不同的免疫蛋白可以识别不同的噬菌体编码的触…

log4j2.xml

log4j2.xml 1、log4j2.xml使用2、日志器的流程解析2.1、几个重要的类2.2、整体流程图 3、部分源码3.1、通过简单例子看源码3.2、log4j2.xml配置指导 如侵权&#xff0c;请联系&#xff0c;无心侵权&#xff5e; 如有错误&#xff0c;也请指正。 1、log4j2.xml使用 <?xml v…

Anaconda虚拟环境安装cuda和pytorch

首先电脑上要有Anaconda&#xff0c;使用conda创建一个虚拟环境,并激活 conda create yolov8 conda activate yolov8winR输入cmd&#xff0c;在命令窗口输入 NVIDIA-smi可以查看到自己电脑支持的cuda环境&#xff0c;如下图 再打开torch的官网 pytorch官网 查看目前支持的版…