战略性新兴领域教材,新形态融媒体教材
大语言模型(Large Language Models,LLMs)是自然语言处理(Natural Language Processing,NLP)中的一个重要分支,基于深度学习,通过使用训练的模型来分析自然语言文本的语义和推理生成新的文本,大语言模型通常由多个深度神经网络组成,包括词向量嵌入层、语言模型层和生成器等。大语言模型以大量语料、大量训练以及大规模参数为主要特点,其训练数据通常来自海量的自然语言文本数据,包括大型文本语料库、开源托管代码库和社交网络数据等;大模型训练所需的算力也非常高,特别是预训练模型需要大量的推理卡协同训练;大模型的参数量巨大,起步都在60亿以上;在训练过程中,模型会学习自然语言文本的语法、语义和上下文信息,从而可以对自然语言文本进行理解和预测。
随着ChatGPT和Sora的发布和迅速流行,大语言模型从相对专业的领域走进大众的生活,其背后的原理、训练过程、使用场景逐步被人们所了解。大语言模型的应用非常广泛,包括语义分析、语音识别、机器翻译、问答系统、自然语言生成、视频生成等。例如,在智能客服中,大语言模型可以对用户的问题进行自然语言层面的理解,并给出相应符合常识或专业特点的答案;在教育领域,大语言模型可以帮助学生更好地理解和掌握知识,提高学习效率;在翻译领域,大语言模型使得翻译更加准确;在文本生成视频领域,给出一段提示词,大模型可以在较短时间内生成一段符合用户预期的视频等。
本教程面向从事大语言模型应用的操作者和开发者,通过开发环境的搭建、大语言模型应用基础以及多个案例的介绍和实际操作指引,使得读者能够掌握大语言模型的算力基础环境安装、模型安装部署、推理代码开发、微调、量化等知识,课程同时也结合Chat应用、语音交互、知识库、AI Agent等应用的开发,给出了完整的源代码和运行过程描述,为读者对人工智能相关知识的进一步学习打下基础。
本课程分为三大篇章,循序渐进地讲解大语言模型的基础知识、实践过程和编程技巧,从基础到实践再到提高,逐步深入展开。全书共分14个模块,以应用实践为主要目标,除大语言模型概述、开发环境搭建两个模块外,其他模块都包含了设计目标、开发环境、原理学习、实验步骤、小结部分以及思考练习题,力求使每章内容的目标明确、原理清晰、源代码完整、运行环境完备、知识能够得到及时回顾。
第一篇:大模型基础知识篇,分为3个模块。
模块1大语言模型概述。介绍大语言模型的基本概念、应用场景、发展历程和安装、微调、量化等主要操作,还介绍了大语言模型依赖的CUDA、PyTorch、Anaconda和Transformers等常用组件。
模块2开发环境搭建。介绍了大语言模型的开发、运行环境的安装步骤,如推理卡硬件设备的安装、推理卡驱动、CUDA以及Python虚拟环境在Centos、Ubuntu和Windows三种操作系统上的安装过程。
模块3大语言模型应用基础。介绍大语言模型的发展历史、相关技术原理,如Transformer架构、自注意力机制等,为了让读者对大语言模型应用有一个较为完整的认识,本章搭建一个ChatGLM3模型应用示例,并给出了一段简单但完整的大语言模型的推理代码供读者学习和实践,同时也介绍了对GPU资源的监控方法。
通过对大模型基础知识篇的学习,读者可以掌握大语言模型的基础理论,能够自行搭建一套开发环境,部署国产大语言模型,初步具备大语言模型的基本操作技能。
第二篇:大模型初级应用篇。分为4个模块。
模块4 GLM4应用与微调。介绍国产大模型GLM4的安装部署和微调步骤,读者经过学习实践,可以了解微调的基础理论,掌握微调语料的整理过程、格式转换以及P-Tuning和LoRA两种微调技术。
模块5 Llama3应用与微调。介绍流行度非常高的开源模型Llama3的安装部署、量化装载和微调步骤,读者经过学习实践,可以掌握Llama3的SFT和LoRA两种微调方案以及对微调效果的验证技术。
模块6 Gemma2模型应用。介绍Google开发的大语言模型Gemma2的安装、推理、微调量化应用,基于Transformers库开发Gemma2模型的推理和微调,使用Ollama工具进行量化应用,使得读者能够了解Gemma2的基本情况、推理、微调和量化原理和过程。
模块7 文生视频大模型应用。介绍多模态大模型的概况和文生视频模型的基本情况、工作原理,通过对Allegro和CogVideoX两种开源模型的详细讲解,指导读者在较低算力条件下实践文本生成视频。
通过对大模型初级应用篇的学习,读者可初步掌握大语言模型的安装、应用、语料整理、微调、量化等常见操作以及文生视频大模型的操作步骤,经过学习,读者可具备大语言模型的初级应用和训练技能。
第三篇:大模型高级应用篇。分为7个模块。
模块8大模型Chat应用。介绍基于国产大语言模型ChatGLM3的Chat开发应用,读者可以掌握大语言模型的安装过程、原理、应用,其开发任务是一个Chat应用,除了大语言模型服务所用到的技术外,还涉及开发客户端界面的Streamlit技术,通过本模块的学习,读者可以实践一个基于大语言模型的Chat应用开发、调试及部署过程。
模块9知识库与大模型集成应用。介绍大语言模型如何与知识库相互整合,解决大语言模型存在的“幻觉”等问题,详细描述了知识库的原理、文本向量化存储与条目召回等实现技术,结合大语言模型对知识库检索结果的归纳总结能力,形成完整的检索增强生成系统应用,并给出实现代码。
模块10翻译模型应用。介绍大语言模型在翻译领域的应用开发方法。在文件翻译方面,PDF文件格式比较特殊,是一种流式指令而非面向文本的格式,直接翻译有一定困难,本章给出的解决方案是将PDF先转换成HTML文件,然后再用英译汉专用模型Helsinki-NLP/opus-mt-en-zh和通用大语言模型进行翻译,得到最终的HTML翻译结果,翻译的过程涉及专用模型的使用和大模型的提示词相关知识的应用。
模块11通义千问语音模型应用。介绍国产大语言模型Qwen-Audio-Chat的安装与应用,提供一个支持语音交互的应用示例,使得读者掌握一种与语音相关的大语言模型的安装过程、原理、应用的开发。
模块12大语言模型量化应用。大语言模型的量化是将运行在GPU上的模型移植到低算力的CPU上进行推理等应用的过程。本模块介绍了在只有CPU而没有GPU的情况下,如何使用编译llama.cpp源码生成目标程序,在Windows上运行大语言模型的过程,并开发针对量化的Chat应用,使得读者掌握在笔记本电脑等低算力条件下安装运行大语言模型的方法以及应用程序的开发。
模块13 AI Agent应用:介绍AI Agent(人工智能助理)的发展情况,将Microsoft Autogen开发框架与国产大模型相结合,实践Autogen在AI Agent领域的应用,其中实验过程包含了Docker环境的安装、最简运行环境测试以及多轮会话应用的开发。
模块14 OCR应用:介绍OCR的基本功能和原理,实践使用PaddleOCR进行影印版或扫描版PDF中文本的识别过程,同时还介绍了生成PDF文件的步骤。
通过对大模型高级应用篇的学习,读者可以掌握7个常见场景的应用开发方法,提高大模型领域的编程能力。
本书三个篇章涵盖了大语言模型的运行环境、理论基础和模型在推理、微调和一些专用场景的应用,使用了ChatGLM3、GLM4、Qwen-Audio、LLama3、Gemma2等大语言模型,教程还介绍了Allegro、CogVideoX等文生视频模型的使用方法,也涉及了LangChain等大语言模型应用开发框架和AI Agent应用。在实践模块中,都对本模块的设计目标进行了阐述,详细介绍了应用运行的原理,给出了源代码及运行方法、运行结果,内容完整,各模块自成体系,学习过程可不按顺序进行。
模块1 大语言模型概述 …………………………………………………………………… 3
1.1 基本情况 ………………………………………………………………………… 4
1.2 应用场景 ………………………………………………………………………… 4
1.3 发展历程 ………………………………………………………………………… 5
1.4 主要操作 ………………………………………………………………………… 7
1.5 常用组件 ………………………………………………………………………… 8
模块2 开发环境搭建 …………………………………………………………………… 11
2.1 硬件设备安装…………………………………………………………………… 12
2.2 运行环境安装(CentOS) ……………………………………………………… 13
2.3 运行环境安装(Ubuntu) ……………………………………………………… 18
2.4 运行环境安装(Windows)……………………………………………………… 22
模块3 大语言模型应用基础 …………………………………………………………… 25
3.1 设计目标………………………………………………………………………… 26
3.2 开发环境………………………………………………………………………… 26
3.3 原理学习………………………………………………………………………… 26
3.4 实验步骤………………………………………………………………………… 29
模块4 GLM4应用与微调 ……………………………………………………………… 41
4.1 设计目标………………………………………………………………………… 42
4.2 开发环境………………………………………………………………………… 42
4.3 原理学习………………………………………………………………………… 42
4.4 实验步骤………………………………………………………………………… 44
模块5 LLama3应用与微调……………………………………………………………… 54
5.1 设计目标………………………………………………………………………… 55
5.2 开发环境………………………………………………………………………… 55
5.3 原理学习………………………………………………………………………… 55
模块6 Gemma2m模型应用与微调………………………………………………… 72
6.1 设计目标………………………………………………………………………… 73
6.2 开发环境………………………………………………………………………… 73
6.3 原理学习………………………………………………………………………… 74
6.4 实验步骤………………………………………………………………………… 75
模块7 文生视频大模型应用 …………………………………………………………… 84
7.1 设计目标………………………………………………………………………… 85
7.2 开发环境………………………………………………………………………… 85
7.3 原理学习………………………………………………………………………… 85
7.4 实验步骤………………………………………………………………………… 87
模块8 大模型 Chat应用 ………………………………………………………………… 95
8.1 设计目标………………………………………………………………………… 96
8.2 开发环境………………………………………………………………………… 96
8.3 原理学习………………………………………………………………………… 96
8.4 实验步骤………………………………………………………………………… 99
模块9 知识库与大模型集成应用 ……………………………………………………… 107
9.1 设计目标 ……………………………………………………………………… 108
9.2 开发环境 ……………………………………………………………………… 108
9.3 原理学习 ……………………………………………………………………… 109
9.4 实验步骤 ……………………………………………………………………… 112
模块10 翻译模型应用 ………………………………………………………………… 120
10.1 设计目标……………………………………………………………………… 121
10.2 开发环境……………………………………………………………………… 121
10.3 原理学习……………………………………………………………………… 121
10.4 实验步骤……………………………………………………………………… 126
模块11 通义千问语音模型应用 ……………………………………………………… 134
11.1 设计目标……………………………………………………………………… 135
11.2 开发环境……………………………………………………………………… 135
11.3 原理学习……………………………………………………………………… 135
11.4 实验步骤……………………………………………………………………… 138
模块12 大语言模型量化应用 ………………………………………………………… 155
12.1 设计目标……………………………………………………………………… 156
12.2 开发环境……………………………………………………………………… 156
12.3 原理学习……………………………………………………………………… 156
12.4 实验步骤……………………………………………………………………… 158
模块13 AIAgent应用 ………………………………………………………………… 166
13.1 设计目标……………………………………………………………………… 167
13.2 开发环境……………………………………………………………………… 167
13.3 原理学习……………………………………………………………………… 167
13.4 实验步骤……………………………………………………………………… 170
模块14 OCR应用 ……………………………………………………………………… 176
14.1 设计目标……………………………………………………………………… 177
14.2 开发环境……………………………………………………………………… 177
14.3 原理学习……………………………………………………………………… 177
14.4 实验步骤……………………………………………………………………… 180
参考文献 ………………………………………………………………………………… 188