【优质书籍推荐】ChatGLM3大模型本地化部署、应用开发与微调

  大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理解,而且能够帮助新手快速入门。

  本文深入讲解了大模型巨作:《ChatGLM3大模型本地化部署、应用开发与微调》,希望能对学习大模型的同学们有所帮助。

文章目录

  • 1. 前言
  • 2. 书籍推荐
    • 2.1 内容简介
    • 2.2 本书作者
    • 2.3 本书目录
    • 2.4 适合读者
  • 3. 购买链接

1. 前言

  在人工智能的浪潮中,自然语言处理(NLP)技术正以前所未有的速度发展。ChatGLM3,作为当前领先的语言模型之一,不仅在理解语言的深度和广度上取得了显著成就,更在本地化部署、应用开发和模型微调方面展现出巨大的潜力和应用价值。

  而在《ChatGLM3大模型本地化部署、应用开发与微调》一书,旨在为读者提供一个全面深入的指南,以助于理解和掌握ChatGLM3模型的本地化部署策略、应用开发的技巧以及模型微调的方法。本书不仅适合NLP领域的研究人员和开发者,也适合对人工智能、机器学习和深度学习有兴趣的广大读者。

  随着技术的不断进步,ChatGLM3模型的本地化部署成为了一个重要的议题。本地化不仅能够减少对网络的依赖,提高应用的响应速度,而且还能更好地满足数据安全的需求。在数据隐私和合规性日益受到重视的今天,本地化部署允许企业在确保数据不出本地环境的前提下,充分利用ChatGLM3的强大功能。

在这里插入图片描述

2. 书籍推荐

2.1 内容简介

  本书旨在全面介绍大模型时代的来临,并重点探讨如何利用ChatGLM3等大模型开发智能应用系统。首先对大模型的历史发展、概念特征以及应用前景进行了阐述,为读者奠定基础知识。

  接下来,书中详细讲解了如何搭建深度学习环境,安装并使用ChatGLM3这一先进的大模型。通过Gradio等工具,实现了ChatGLM3的便捷在线部署。

  除了独立使用ChatGLM3以外,书中还将其与LangChain框架相结合,用于知识图谱抽取和智能问答任务。对LangChain中Template和Chain的使用方法也有深入探讨。此外,还介绍了ChatGLM3在增强生成、思维链和提示工程等领域的实践应用。

  书中对GLM模型的源码进行了解析,并基于此实现了文本生成功能。针对大模型微调技术,如LoRA、QLoRA等,也有详尽的原理讲解和实践指导。另外,揭示了ChatGLM3如何调用和注册官方工具函数的内部机制。

  最后,书中提供了多个实战案例,包括构建美妆助手、财务报表信息抽取、财务智能问答等,帮助读者掌握在实际场景中应用大模型的能力。

  总的来说,本书内容全面且实用,为读者打开通往大模型智能应用开发的大门。

2.2 本书作者

  王晓华,高校计算机专业讲师,研究方向为云计算、大数据与人工智能。著有《PyTorch语音识别实战》《从零开始大模型开发与微调:基于PyTorch与ChatGLM》《PyTorch 2.0深度学习从零开始学》《Python机器学习与可视化分析实战》《谷歌JAX深度学习从零开始学》《Spark 3.0大数据分析与挖掘:基于机器学习》《TensorFlow深度学习应用实践》《OpenCV+TensorFlow深度学习与计算机视觉实战》《TensorFlow知识图谱实战》《TensorFlow人脸识别实战》《TensorFlow语音识别实战》《TensorFlow+Keras自然语言处理实战》《TensorFlow 2.0卷积神经网络实战》《Keras实战:基于TensorFlow2.2的深度学习实践》《TensorFlow 2.0深度学习从零开始学》《深度学习的数学原理与实现》。
在这里插入图片描述

2.3 本书目录

目 录
第1章 大模型时代的开端 1
1.1 大模型的历史与发展 1
1.1.1 大模型的“涌现” 1
1.1.2 深度学习与大模型的起源 3
1.1.3 大模型的概念与特点 4
1.1.4 大模型开启了深度学习的新时代 5
1.2 为什么要使用大模型 6
1.2.1 大模型与普通模型的区别 7
1.2.2 为什么选择ChatGLM 8
1.2.3 大模型应用场合与发展趋势 9
1.3 本章小结 102章 PyTorch 2.0深度学习环境搭建 11
2.1 安装Python开发环境 12
2.1.1 Miniconda的下载与安装 12
2.1.2 PyCharm的下载与安装 14
2.1.3 softmax函数练习 18
2.2 安装PyTorch 2.0 19
2.2.1 NVIDIA 10/20/30/40系列显卡选择的GPU版本 19
2.2.2 PyTorch 2.0 GPU NVIDIA运行库的安装 19
2.2.3 Hello PyTorch 22
2.3 Hello ChatGLM3 23
2.3.1 ChatGLM3简介与安装 23
2.3.2 CPU版本的ChatGLM3推演 25
2.3.3 GPU(INT4或INT8量化)版本的ChatGLM3推演 26
2.3.4 GPU(half或float量化)版本的ChatGLM3推演 28
2.3.5 离线状态的ChatGLM3的使用 29
2.3.6 ChatGLM的高级使用 30
2.4 本章小结 313章 基于gradio的云上自托管ChatGLM3部署实战 32
3.1 gradio的基本使用详解 32
3.1.1 从gradio的Interface开始 33
3.1.2 gradio输入与输出组件 35
3.1.3 启动gradio的launch 41
3.1.4 gradio中多样化的输入和输出组件 42
3.1.5 gradio中常用的几个组件 45
3.1.6 使用gradio搭建视频上色服务 57
3.2 基于gradio的猫狗分类可视化训练与预测实战 59
3.2.1 运行环境与数据集的准备 60
3.2.2 模型的设计 63
3.2.3 PyTorch模型训练的基本流程 64
3.2.4 可视化训练流程 65
3.2.5 使用训练好的模型完成gradio可视化图像分类 67
3.3 基于网页端的ChatGLM3部署和使用 69
3.3.1 使用gradio搭建ChatGLM3网页客户端 70
3.3.2 使用ChatGLM3自带的网页客户端 71
3.4 基于私有云服务的ChatGLM3部署和使用 72
3.4.1 使用FastAPI完成ChatGLM3私有云交互端口的搭建(重要) 73
3.4.2 基于streamlit的ChatGLM3自带的网页客户端 74
3.5 本章小结 744章 使用ChatGLM3与LangChain实现知识图谱抽取和智能问答 75
4.1 当ChatGLM3遇见LangChain 76
4.1.1 LangChain的基本构成、组件与典型场景 76
4.1.2 确认统一地址的ChatGLM3部署方案 78
4.1.3 使用ChatGLM3构建LangChain的LLM终端 78
4.1.4 从一个简单的提示模板开始 81
4.1.5 ChatGLM3格式化提示词的构建与使用 82
4.2 ChatGLM3+ LangChain搭建专业问答机器人 84
4.2.1 使用LangChain的LLM终端完成文本问答 84
4.2.2 数据准备与基础算法分析 86
4.2.3 使用LangChain完成提示语Prompt工程 87
4.2.4 基于ChatGLM3的LLM终端完成专业问答 88
4.3 使用ChatGLM3的LLM终端搭建知识图谱抽取与智能问答 89
4.3.1 基于ChatGLM3的LLM终端完成知识图谱抽取 89
4.3.2 基于ChatGLM3的LLM终端完成智能问答 91
4.4 本章小结 925章 适配ChatGLM3终端的Template与Chain详解 93
5.1 基于输入模板的人机交互 93
5.1.1 提示模板的4种类型 94
5.1.2 可嵌套的提示模板 95
5.2 Template中示例的最佳选择 97
5.2.1 基于长度的输出示例 97
5.2.2 基于相似度的输出示例 99
5.3 使用Chain提高ChatGLM3的能力 100
5.3.1 Chain的数学计算方法 101
5.3.2 多次验证检查器 101
5.4 LangChain中的记忆功能 102
5.4.1 ConversationChain会话链的使用 102
5.4.2 系统memory的使用 103
5.5 基于ChatGLM3终端撰写剧情梗概、评论与宣传文案实战 105
5.5.1 对过程进行依次调用的顺序链SimpleSequentialChain 105
5.5.2 对过程进行依次调用的顺序链SequentialChain 107
5.5.3 对顺序链添加额外参数的方法 109
5.6 本章小结 1116章 ChatGLM3多文本检索的增强生成实战 112
6.1 使用自然语言处理方法对目标进行查找 113
6.1.1 数据集的准备 113
6.1.2 分别基于BM25与LLM终端进行目标查找的方法 114
6.1.3 建立工业级标准化输出:LLM终端与BM25结合 116
6.2 基于LLM终端完成文本内容抽取与文本问答 118
6.2.1 读取目标内容 118
6.2.2 LangChain对文档的读取与分割方法 119
6.2.3 基于LangChain的文本分块 123
6.2.4 找到最近似问题的文本段落 124
6.2.5 使用LLM终端完成智能文本问答 125
6.3 使用LLM终端完成反向问题推断 127
6.3.1 文本问题提取实战 127
6.3.2 存储提取后的内容 130
6.4 本章小结 1317章 构建以人为本的ChatGLM3规范化Prompt提示工程 132
7.1 提示工程模板构建的输入与输出格式 132
7.1.1 提示模板的输入格式 133
7.1.2 提示模板的输出格式 135
7.2 提示工程模板高级用法 138
7.2.1 提示模板的自定义格式 138
7.2.2 提示模板的FewShotPromptTemplate格式 139
7.2.3 部分格式化的提示模板详解 140
7.3 结合提示工程的网页搜索服务实战 142
7.3.1 网页搜索的API实现 142
7.3.2 网页问答提示模板的实现 143
7.3.3 结合网页搜索的LLM终端问答实战 144
7.4 本章小结 1458章 使用ChatGLM3的思维链构建 146
8.1 思维链初探 146
8.1.1 思维链源于人类使用自然语言的概念来理解事物 147
8.1.2 思维链的优势与应用场景 147
8.2 思维链详解及其实战 149
8.2.1 思维链详解 149
8.2.2 基于ChatGLM3的思维链实战 150
8.3 本章小结 1529章 GLM源码分析与文本生成实战 153
9.1 GLM组件详解 154
9.1.1 GLM模型架构重大突破:旋转位置编码 154
9.1.2 添加旋转位置编码的注意力机制 156
9.1.3 新型的激活函数GLU详解 156
9.1.4 GLM“三角掩码”与“错位”输入输出格式详解 157
9.2 GLM整体架构详解与文本生成实战 159
9.2.1 调整架构顺序的GLMBlock 159
9.2.2 自定义GLM模型(单文本生成版) 162
9.3 本章小结 16710章 低资源单GPU微调ChatGLM3实战 168
10.1 什么是大模型微调 168
10.1.1 大模型微调的作用 169
10.1.2 大模型微调技术有哪些 169
10.1.3 参数高效微调详解 170
10.2 ChatGLM3大模型微调的准备内容 171
10.2.1 从数据准备看ChatGLM3微调:有监督微调详解 172
10.2.2 从实施看ChatGLM3微调:LoRA详解 173
10.2.3 适配ChatGLM3微调的辅助库:PEFT详解 174
10.3 虚拟客服多轮问答实战 180
10.3.1 ChatGLM3数据输入结构和处理函数 181
10.3.2 ChatGLM3微调训练 186
10.3.3 ChatGLM3微调推理 189
10.4 加速的秘密:accelerate训练方法与模型量化详解 191
10.4.1 加速器accelerate详解与完整代码编写 192
10.4.2 加速的秘密1:大模型的量化技术 195
10.4.3 加速的秘密2:大模型的INT8量化方案 196
10.4.4 加速的秘密3:大模型ChatGLM3中的量化源码分析与实践 198
10.5 更快的量化训练方案:QLoRA基础内容详解 200
10.5.1 加速的秘密4:基于bitsandbytes的ChatGLM3量化QLoRA实现 200
10.5.2 加速的秘密5:QLoRA详解 202
10.5.3 微调的目的:让生成的结果更聚焦于任务 205
10.6 QLoRA微调文本生成实战 207
10.6.1 数据处理 207
10.6.2 损失函数设计 210
10.6.3 基于QLoRA的ChatGLM3文本生成微调实战 211
10.6.4 基于QLoRA的ChatGLM3文本生成 213
10.7 本章小结 21511章 会使用工具的ChatGLM3 216
11.1 ChatGLM3调用工具源码详解与实战 216
11.1.1 Python调用工具详解 217
11.1.2 ChatGLM3工具调用流程详解 218
11.1.3 大模型ChatGLM3工具调用实战详解 220
11.1.4 大模型ChatGLM3工具调用原理详解 223
11.1.5 ChatGLM3消息传递方式详解 230
11.2 ChatGLM3官方工具注册与调用源码分析与实战 231
11.2.1 Python中的装饰器与回调函数 231
11.2.2 ChatGLM3官方工具函数的注册源码分析详解 233
11.2.3 大模型ChatGLM3官方工具调用的判定依据详解 236
11.2.4 ChatGLM3官方工具函数的调用分析详解 237
11.2.5 ChatGLM3调用工具分析与实战演示 238
11.3 ChatGLM3实战:构建个人助理之美妆助手 240
11.3.1 背景和参考资料设定 240
11.3.2 美妆助手的使用实战 246
11.4 本章小结 24712章 上市公司财务报表非结构化信息抽取实战 249
12.1 超长文本处理功能的ChatGLM3与真实财务报表的处理 250
12.1.1 ChatGLM3-6B-32K模型的获取与缓存 250
12.1.2 超大规模的20202023年真实中国股票市场年度财务报表数据库的建立 250
12.2 单报表非结构化信息抽取实战 253
12.2.1 单报表数据探查与提取信息结构化处理 253
12.2.2 单报表数据非结构化信息抽取的实现 254
12.3 本章小结 25613章 上市公司财务报表智能问答与财务预警实战 257
13.1 基于ChatGLM3的非结构化数据抽取与大规模财务报表数据库的建立 257
13.1.1 逐行代码讲解使用ChatGLM3对关键数据进行抽取 258
13.1.2 大规模上市公司财务报表目标字段抽取函数的建立 260
13.1.3 大规模上市公司财务报表目标字段数据库的建立 262
13.2 基于自然语言的上市公司财务报表智能问答与财务预警实战 264
13.2.1 使用自然语言结合ChatGLM3实现上市公司财务报表智能问答与预警解决方案1 264
13.2.2 使用自然语言结合ChatGLM3-6B实现上市公司财务报表智能问答与预警解决方案2 267
13.2.3 使用自然语言结合ChatGLM3实现上市公司财务报表智能问答与预警解决方案3 270
13.3 本章小结 272
附录 大模型的“幻觉” 273

2.4 适合读者

  《ChatGLM3大模型本地化部署、应用开发与微调》是一本专门针对大模型初学者、研究人员和开发人员而编写的权威指南。无论您是刚踏入大模型领域的新手,还是已具备一定基础的研究人员,亦或是致力于大模型应用开发的工程师,本书都将为您提供全面的理论知识和实践技能。

  对于初学者而言,本书将从大模型的基本原理出发,循序渐进地介绍核心概念、关键技术和主要应用场景,为您打下扎实的理论基础。随书配套的实践案例将引导您动手操作,快速上手并体验大模型的魅力。

  对于有一定基础的研究人员,本书将深入探讨大模型的前沿理论和算法,如注意力机制、transformer架构、预训练技术等,并介绍大模型在自然语言处理、计算机视觉、决策智能等领域的最新研究进展。

  对于应用开发人员,本书将提供实用的开发指南,包括大模型的本地化部署策略、API集成方法、微调调优技巧等,帮助开发者高效地将大模型技术应用于实际项目场景中。

  同时,本书内容严谨全面,不仅适合大模型从业人员自学,也可作为高等院校或高职高专相关专业的大模型课程教材,为培养新一代的大模型人才提供权威指导。无论您是哪一类读者,相信通过本书的学习,定能助您掌握大模型的方方面面,成为大模型领域的佼佼者。

3. 购买链接

  本书的京东购买链接为:ChatGLM3大模型本地化部署、应用开发与微调(人工智能技术丛书)](https://item.jd.com/14575684.html)

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

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

相关文章

01.Kafka简介与基本概念介绍

1 Kafka 简介 Kafka 是最初由 Linkedin公司开发,是一个分布式、支持分区(partition)的、多副本(replica)的,基于 Zookeeper 协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于 hadoop 的…

vue快速入门(四十三)axios模块的安装与引入

步骤很详细,直接上教程 上一篇 在项目目录打开终端 输入以下命令安装axios npm i axios重新打开项目即可完成按照 测试 源码 main.js import Vue from vue import App from ./App.vue//全局引入axios // 引入axios import axios from axios; // 挂载到vue原型…

【Java EE】 文件IO的使用以及流操作

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

从零开始安装 stable diffusion webui v1.9.3 (windows10)

从零开始安装 stable diffusion webui v1.9.3 (windows10) CUDA 安装 CUDA 12.1 | https://developer.nvidia.com/cuda-toolkit-archive CUDNN 8.x | https://developer.nvidia.com/rdp/cudnn-archive 安装路径 F:/CUDA/v12.1 安装git git官网 | https://git-scm.com/ 安…

python--使用pika库操作rabbitmq实现需求

Author: wencoo Blog:https://wencoo.blog.csdn.net/ Date: 22/04/2024 Email: jianwen056aliyun.com Wechat:wencoo824 QQ:1419440391 Details:文章目录 目录正文 或 背景pika链接mqpika指定消费数量pika自动消费实现pika获取队列任务数量pi…

广工电工与电子技术实验报告-8路彩灯循环控制电路

实验代码 module LED_water (clk,led); input clk; output [7:0] led; reg [7:0] led; integer p; reg clk_1Hz; reg [7:0] current_state, next_state; always (posedge clk) begin if(p25000000-1)begin …

C# Web控件与数据感应之 ListControl 类

目录 关于数据感应 ListControl 类类型控件 范例运行环境 数据感应通用方法 设计 实现 调用示例 数据源 调用 小结 关于数据感应 数据感应也即数据捆绑,是一种动态的,Web控件与数据源之间的交互,诸如 System.Web.UI.WebControls 里…

MySQL库表占用空间排序

在进行数据库备份恢复时,经常会碰到耗时很长的问题。大概率是因为某些库表的占用空间太大。 以下语句按照库表占用空间大小,进行降序排序: SELECT table_schema AS Database,table_name AS Table,ROUND((data_length index_length) / 1024…

swiper使用方法?

组件 首先 recat -vant组件 带小点点的 可以实现跳转的一个效果 import { Swiper } from react-vant; 每个 Swiper.Item 代表一张轮播卡片,可以通过 autoplay 属性设置自动轮播的间隔。 import React from react; import { Swiper } from react-vant; import { i…

SpringBoot+layuimini实现左侧菜单动态展示

layuimini左侧菜单动态显示 首先我们看一下layuimini的原有菜单显示格式 {"homeInfo": {"title": "首页","href": "page/welcome-2.html?t2"},"logoInfo": {"title": "LAYUI MINI","…

软件工程物联网方向嵌入式系统复习笔记--嵌入式系统硬件平台

2 嵌入式系统硬件平台 2.1 嵌入式系统硬件平台概述 2.1.1 整体构架 台式计算机硬件平台整体构架 嵌入式系统硬件平台整体构架 作业:看门狗和实时时钟是什么? 看门狗(Watchdog) 我的理解: 概念:看门狗实…

阿斯达年代记三强争霸服务器没反应 安装中发生错误的解决方法

阿斯达年代记三强争霸服务器没反应 安装中发生错误的解决方法 最近刚上线的由影视剧改编的游戏《阿斯达年代记三强争霸》可谓是在游戏圈内引起了轩然大波,这是一款由网石集团与龙工作室联合开发的MMORPG游戏,游戏背景设定在一个名为阿斯大陆的区域&…

Qt 6 开源版(免费) -- 安装图解

Qt6起,两项重大改变(并非指技术): 必须在线安装,不再提供单独的安装包主推收费的商业版 当然的,为了引流、培养市场,提供了一个免费的开源版本。 开源版相对于收费的商业版,主体是…

Spark RDD的分区与依赖关系

Spark RDD的分区与依赖关系 RDD分区 RDD,Resiliennt Distributed Datasets,弹性式分布式数据集,是由若干个分区构成的,那么这每一个分区中的数据又是如何产生的呢?这就是RDD分区策略所要解决的问题,下面我…

C语言基础:初识指针(二)

当你不知道指针变量初始化什么时,可以初始化为空指针 int *pNULL; 我们看NULL的定义,可以看出NULL是0被强制转化为Void* 类型的0;实质还是个0; 如何避免野指针: 1. 指针初始化 2. 小心指针越界 3. 指针指向空间…

springboot笔记一:idea社区版本创建springboot项目的方式

社区idea 手动maven 创建springboot项目 创建之后修改pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:sc…

苹果发布开源模型;盘古大模型5.0将亮相;英伟达将收购 Run:ai

苹果首次发布开源语言模型 近期&#xff0c;苹果在 Hugging Face 发布了 OpenELM 系列模型。OpenELM 的关键创新是逐层扩展策略&#xff0c;该策略可在 transformer 模型的每一层中有效地分配参数&#xff0c;从而提高准确性。 与具有统一参数分配的传统语言模型不同&#xff…

elasticsearch-8.1.0安装记录

目录 零、版本说明一、安装二、使用客户端访问 零、版本说明 centos [rootnode1 ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)elasticsearch elasticsearch-8.1.0-linux-x86_64一、安装 systemctl stop firewalld.servicesystemctl disable firewal…

ubuntu开启message文件

环境&#xff1a;ubuntu 20.04 1、首先需要修改 /etc/rsyslog.d/50-default.conf 文件&#xff1b;源文件中message被注释&#xff0c;如下图&#xff1a; 2、打开注释&#xff1a; 3、重启服务 systemctl restart rsyslog.service 如此即可&#xff01;

element -ui 横向时间轴,时间轴悬浮对应日期

效果&#xff1a; <el-tabs v-model"activeName" type"card" tab-click"handleClick"><el-tab-pane label"周期性巡视" name"zqxxs" key"zqxxs" class"scrollable-tab-pane"><div v-if…