《从零开始大模型开发与微调 :基于PyTorch与ChatGLM》简介

内 容 简 介

大模型是深度学习自然语言处理皇冠上的一颗明珠,也是当前AI和NLP研究与产业中最重要的方向之一。本书使用PyTorch 2.0作为学习大模型的基本框架,以ChatGLM为例详细讲解大模型的基本理论、算法、程序实现、应用实战以及微调技术,为读者揭示大模型开发技术。

本书共18章,内容包括人工智能与大模型、PyTorch 2.0深度学习环境搭建、从零开始学习PyTorch 2.0、深度学习基础算法详解、基于PyTorch卷积层的MNIST分类实战、PyTorch数据处理与模型展示、ResNet实战、有趣的词嵌入、基于PyTorch循环神经网络的中文情感分类实战、自然语言处理的编码器、预训练模型BERT、自然语言处理的解码器、强化学习实战、只具有解码器的GPT2模型、实战训练自己的ChatGPT、开源大模型ChatGLM使用详解、ChatGLM高级定制化应用实战、对ChatGLM进行高级微调。

本书适合PyTorch深度学习初学者、大模型开发初学者、大模型开发人员学习,也适合高等院校人工智能、智能科学与技术、数据科学与大数据技术、计算机科学与技术等专业的师生作为教学参考书。

写作本书的原因

PyTorch作为最新的、应用最为广泛的深度学习开源框架,自然引起了广泛的关注,它吸引了大量程序设计和开发人员进行相关内容的开发与学习。掌握PyTorch程序设计基本技能的程序设计人员成为当前各组织和单位热切寻求的热门人才。他们的主要工作就是利用获得的数据集设计不同的人工神经模型,利用人工神经网络强大的学习能力提取和挖掘数据集中包含的潜在信息,编写相应的PyTorch程序对数据进行处理,对其价值进行进一步开发,为商业机会的获取、管理模式的创新、决策的制定提供相应的支持。随着越来越多的组织、单位和行业对深度学习应用的重视,高层次的PyTorch程序设计人员必将成为就业市场上紧俏的人才。

与其他应用框架不同,PyTorch并不是一个简单的编程框架,深度学习也不是一个简单的名词,而是需要相关研究人员对隐藏在其代码背后的理论进行学习,掌握一定的数学知识和理论基础的。特别是随着PyTorch 2.0的推出,更好、更快、更强成为PyTorch 2.0所追求的目标。

研究人员探索和发展深度学习的目的是为了更好地服务于人类社会,而人工智能的代表—清华大学开发的ChatGLM是现阶段人工智能最高端的研究成果,它可以模拟人类智能的某些方面,例如语言理解、智能问答、自然语言处理等。相较于其他人工智能产品,ChatGLM有着更加强大的算法、更多的数据基础以及更强的训练和优化,使得ChatGLM可以实现更加准确和高效的决策和预测,为人类社会带来巨大的价值。

在医疗领域,ChatGLM可以帮助医生更准确地诊断疾病,提高治疗的效果和效率。在交通领域,ChatGLM可以辅助驾驶员进行驾驶决策,减少交通事故的发生。在金融领域,ChatGLM可以帮助银行和证券公司进行风险控制和投资决策。在教育领域,ChatGLM可以根据学生的学习情况和兴趣爱好,提供个性化的学习方案和资源。

在这个人工智能风起云涌的时代,借由PyTorch 2.0与ChatGLM推出之际,本书为了满足广大人工智能程序设计和开发人员学习最新的PyTorch程序代码的需要,对涉及深度学习的结构与编程技巧循序渐进地做了介绍与说明,以深度学习实战内容为依托,从理论开始介绍PyTorch程序设计模式,多角度、多方面地对其中的原理和实现提供翔实的分析;同时,以了解和掌握最强的人工智能模型ChatGLM,进行可靠的二次开发和微调为目标,使读者能够在开发者的层面掌握ChatGLM程序设计方法和技巧,为开发出更强大的人工智能大模型打下扎实的基础。

本书的内容

本书共18章,所有代码均采用Python语言编写,这也是PyTorch 2.0框架推荐使用的语言。

第1章介绍人工智能的基本内容,初步介绍深度学习应用与大模型的发展方向,介绍最强的人工智能大模型—清华大学ChatGLM的应用前景,旨在说明使用深度学习和人工智能实现大模型是未来科技的发展方向,也是必然趋势。

第2章介绍PyTorch 2.0的安装和常用的类库。Python是易用性非常强的语言,可以很方便地将公式和愿景以代码的形式表达出来,而无须学习过多的编程知识。还将手把手地向读者演示第一个深度学习模型的完整使用示例。

第3章演示使用PyTorch框架进行手写体识别的实际例子,完整地对MNIST手写体项目进行分类,同时讲解模型的标签问题以及本书后期常用的损失函数计算等内容。

第4章系统介绍深度学习的基础知识—反向传播神经网络的原理和实现。这是整个深度学习领域最为基础的内容,也是最为重要的理论部分。本章通过独立编写代码的形式为读者实现这个神经网络中最重要的算法。

第5章介绍卷积神经网络的使用,主要介绍使用卷积对MNIST数据集进行识别。这是一个入门案例,但是包含的内容非常多,例如使用多种不同的层和类构建一个较为复杂的卷积神经网络。同时也介绍了一些具有个性化设置的卷积层。

第6章主要讲解PyTorch 2.0数据处理与模型训练可视化方面的内容,这是本书中非常重要的基础,也是数据处理中非常重要的组成部分,通过编写相应的程序来实现模型对输入数据的处理,能够使得读者更加深入地了解PyTorch框架的运行原理。

第7章介绍卷积神经网络的核心内容,讲解基于Block堆积的ResNet模型的构建方法,这为后面搭建更多基于模块化的深度学习模型打下基础。

第8~9章是PyTorch自然语言处理的基础部分,从词向量开始,到使用卷积和循环神经网络完成自然语言处理的情感分类项目,循序渐进地引导读者使用深度学习完成自然语言处理实战。

第10章介绍深度学习另一个重要的模块—注意力模型,本章的理论部分非常简单,讲解得也很清晰,但其内容对整个深度学习模型具有里程碑意义。

第11~12章是自然语言处理的补充内容,分别介绍使用现有的预训练模型进行自然语言处理以及自然语言处理解码器的部分。第12章和第10章相互衔接,主要是对当前的新模型Transformer进行介绍和说明,分别从其架构入手,对编码器和解码器进行详细介绍。同时,本章还介绍各种ticks和小的细节,有针对性地对模型优化做了说明。

第13~15章是对强化学习部分的讲解,同时详细讲解深度学习中具有开创性质的GPT2模型的构成架构和源码设计,并基于以上两部分完成了一个简化版的ChatGPT设计,这是为后续进行语言模型微调打下基础。

第16~18章是本书有关大模型的核心内容。第16章讲解人工智能大模型ChatGLM的使用与自定义方法。第17章讲解ChatGLM高级定制化应用,包括专业客服问答机器人、金融信息抽取实战以及一些补充内容;其中金融信息抽取使用了基于知识链的多专业跨领域文档挖掘的方法,这是目前ChatGLM甚至是自然语言处理大模型方面最为前沿的研究方向。第18章讲解ChatGLM模型的本地化处理和ChatGLM的高级微调方法,极具参考价值。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

启动1000万个虚拟线程需要多少时间?需要多少平台线程?

之前,在Java新特性专栏中,我们简单介绍了Java 21正式发布的虚拟线程。 昨天,正好看到一个讲解此内容的视频,非常不错,所以DD这里给大家翻译好了,感兴趣的可以看看。可以进一步了解虚拟线程。 什么是虚拟线…

什么是Docker CLI

Docker CLI(命令行界面)是一个工具,允许用户通过命令行或终端与Docker进行交互。Docker是一个开源平台,用于开发、运送和运行应用程序。Docker使用容器化技术来打包应用程序及其依赖项,以确保在不同环境中的一致性和隔…

配置Sentinel 控制台

1.遇到的问题 服务网关 | RuoYi 最近调试若依的微服务版本需要用到Sentinel这个组件,若依内部继承了这个组件连上即用。 Sentinel是阿里巴巴开源的限流器熔断器,并且带有可视化操作界面。 在日常开发中,限流功能时常被使用,用…

Python UI自动化 —— pytest常用运行参数解析、pytest执行顺序解析

pytest常用Console参数: -v 用于显示每个测试函数的执行结果-q 只显示整体测试结果-s 用于显示测试函数中print()函数输出-x 在第一个错误或失败的测试中立即退出-m 只运行带有装饰器配置的测试用例-k 通过表达式运行指定的测试用例-h 帮助 首先来看什么参数都没加…

微信小程序实现文章内容详情

方案一、使用微信小程序官方提供的webview 前提已经在微信公众平台开发管理配置好了安全域名即: 方案二、把网页转成pdf直接展示 前提已经在微信公众平台开发管理配置好了安全域名即: 实现思路是发起网络请求拿到pdf下载地址,然后wx.download…

深度学习模型笔记

加载和保存模型参数 保存模型参数 net MLP() # 此处省略训练过程,在训练之后,保存模型参数 # 保存字典格式的模型参数,模型参数名 torch.save(net.state_dict(), mlp.params) 加载模型参数 clone MLP() # 加载模型参数 clone.load_state…

【C++】Map和Set -- 详解

一、关联式容器 在初阶阶段,我们已经接触过 STL 中的部分容器,比如:vector、list、deque、forward_list(C11)等,这些容器统称为 序列式容器 ,因为其底层为线性序列的数据结构,里面存…

计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)

车辆跟踪及测距 该项目一个基于深度学习和目标跟踪算法的项目,主要用于实现视频中的目标检测和跟踪。该项目使用了 YOLOv5目标检测算法和 DeepSORT 目标跟踪算法,以及一些辅助工具和库,可以帮助用户快速地在本地或者云端上实现视频目标检测和…

双向电平电压转换器TXS0102DCTR应用电路设计

1、TXS0102简介 TXS0102DCTR是一个2位双向电压电平转换器,主要用途是与数据I/O(例如I2C或1-wire)上的开漏驱动器连接(其中数据是双向的且无可用的控制信号),在混合电压系统之间建立数字开关兼容性。它使用…

保存 uboot图像配置

一. 简介 本文学习如何保存经过图像配置,与加载 自己的配置文件。 之前几篇文章学习了:uboot 经过图形化配置 dns 命令功能。地址如下: uboot通过图像化界面配置 dns命令-CSDN博客 uboot通过图像化界面配置 dns命令验证-CSDN博客 二. 保…

【C++基础入门】42.C++中同名覆盖引发的问题

一、父子间的赋值兼容 子类对象可以当作父类对象使用&#xff08;兼容性) 子类对象可以直接赋值给父类对象子类对象可以直接赋值给父类对象父类指针可以直接指向子类对象父类引用可以直接引用子类对象 下面看一个子类对象兼容性的代码&#xff1a; #include <iostream>…

大模型在数据分析场景下的能力评测

“你们能对接国产大模型吗&#xff1f;” “开源的 LLaMA 能用吗&#xff0c;中文支持怎么样&#xff1f;” “私有化部署和在线服务哪个更合适&#xff1f;” 自 7 月 14 日发布 AI 数智助理 Kyligence Copilot 后&#xff0c;我们收到了很多类似上面的咨询&#xff0c;尤其…

如何处理单据保存/审核时提示:“更新即时库存时,基本单位数量与辅单位数量为一正一负,即时库存更新不成功

文章目录 如何处理单据保存/审核时提示:“更新即时库存时,基本单位数量与辅单位数量为一正一负,即时库存更新不成功问题描述前提问题分析&#xff1a;解决方案 如何处理单据保存/审核时提示:“更新即时库存时,基本单位数量与辅单位数量为一正一负,即时库存更新不成功 问题描述…

使用C# RDLC环境搭建

搭建C# RDLC环境 在vs环境中&#xff0c;菜单扩展>管理扩展 用来打开报表文件的 用来新建报表文件的 搜索Microsoft Reporting Services Projects 选择第一个进行下载 安装完以上两个即可进行报表文件的创建和预览 reportview组件 推荐nuget安装&#xff1a;Install-…

前后端交互—跨域与HTTP

跨域 代码下载 同源策略 同源策略(英文全称 Same origin policy)是浏览器提供的一个安全功能。 MDN 官方给定的概念:同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这 是一个用于隔离潜在恶意文件的重要安全机制。 通俗的理解:浏览器规定&a…

拆贡献+统计非法可能不统计非法贡献:ARC150D

https://atcoder.jp/contests/arc150/tasks/arc150_d 先拆贡献成每个点&#xff0c;然后就只需要考虑这条链上的情况了 我们现在要求的是&#xff1a; 在所有点选完之前&#xff0c;最后一个点被选了多少次 我们发现这很难做&#xff0c;但有个性质&#xff1a; 在所有点选…

CLion使用SSH远程连接Linux服务器

最近要一直用实验室的服务器写Linux下的C代码, 本来一直用VScode(SSH)连接服务器, 但是我以前还是用JetBrains的IDE用的多, 毕竟他家的IDE代码提示和功能在某些细节上更加丰富。所以这次我使用了Clion里的远程连接(同样也是SSH工具)连接上了我的服务器, 实现了和VScode上同样的…

计算机网络-计算机网络体系结构-应用层

目录 一、网络应用模型 客户/服务器模型(Client/Server) P2P模型(Peer-to-peer) 二、域名解析系统(DNS) 域名 域名服务器 解析过程 三、文件传输协议(FTP) FTP控制原理 四、电子邮件 组成结构 协议 SMTP MIME POP3 IMAP 五、万维网和HTTP协议 概述 HTTP 报…

Python---for循环中的两大关键字break和continue

之前在while循环中&#xff0c;也是用到两个关键字。 相关链接&#xff1a; 所以&#xff0c;在循环结构中都存在两个关键字&#xff1a;break和continue break&#xff1a;主要功能是终止整个循环 break&#xff1a;代表终止整个循环结构 continue&#xff1a;代表中止当…

selenium元素定位之xpath

一、找父级节点parent xpath&#xff1a;//span[text()保存]/parent::button 说明&#xff1a;先找到span标签&#xff0c;再找到父级button 一、找同级的上方标签preceding-sibling xpath&#xff1a;//span[text()保存]/parent::button/preceding-sibling::button[1] 说明…