大模型简单入门及特定环境下的应用

什么是大模型

大模型是指包含超大规模参数(通常在十亿个以上)的神经网络模型,具有以下特征:

  1. 巨大的规模:大模型包含数十亿个参数,模型大小可以达到数百GB甚至更大。这种巨大的模型规模为其提供了强大的表达能力和学习能力。

  2. 多任务学习:大模型通常会一起学习多种不同的NLP任务,如机器翻译、文本摘要、问答系统等。这可以使模型学习到更广泛和泛化的语言理解能力。

  3. 强大的计算资源:训练大模型通常需要数百甚至上千个GPU,以及大量的时间,通常在几周到几个月。这可以加速训练过程而保留大模型的能力。

  4. 丰富的数据:大模型需要大量的数据来进行训练,只有大量的数据才能发挥大模型的参数规模优势。

大模型在自然语言处理领域得到广泛应用,并正在彻底改变NLP任务的状态,催生出更强大、更智能的语言技术。大模型是AI发展的重要方向之一。同时,大模型也具有在各种自然语言处理任务中表现出色的能力,例如文本分类、情感分析、摘要生成、翻译等。大模型可以用于自动写作、聊天机器人、虚拟助手、语音助手、自动翻译等多个应用领域。

截止现在,大模型的应用已经不仅局限于语言模型了,音频学习生成模型及视频生成模型的应用都已经达到了很高的可用性,至此,语言、音频、视频三方面的大模型已经基本摆脱了人们对这类技术人工智障的刻板印象。

研究对象

因为现阶段各家大模型百花齐放,且具体的效果也都有所不同,我们通过比较最终选择了清华大学和智谱AI联合研发训练的ChatGLM3-6研究的基础, 官方提供了许多类型的web_demo和训练的示例脚本,使我们的深入研究有了良好的代码示范

硬件要求

本次实验共使用了两种配置的硬件设备

1.Ubuntu操作系统+两张A4000单张显存16G

2.MacOS操作系统+M2max+32G统一内存

经过实测两张显卡都是可以成功跑起来ChatGLM3-6B的模型

基础搭建

官方在GitHub仓库中有基础的demo可以供我们使用https://github.com/THUDM/ChatGLM3

1.下载大模型的权重文件,可以在huggingface.cohttps://huggingface.co/THUDM/chatglm3-6b的下载页面找到

2.下载好之后直接在电脑的环境变量中设置MODEL_PATH,source生效

3.进入demo的项目目录中,先使用conda或本机自带的python环境安装好requirements.txt中的依赖库

4.进入basic_demo中,官方给我们提供了几种不同的命令行demo和web demo

5.直接使用streamlit run web_demo_streamlit.py命令启动一个web demo,浏览器会自动跳转,或者手动用浏览器打开相应的链接,我们就可以获取到一个搭建在本地的ChatGLM了

如何训练大模型

大模型训练的一般步骤

1.数据收集与预处理:

数据收集:收集大量的训练数据,这些数据可以是文本、图像、声音或其他类型的数据。数据的质量和多样性对于训练出一个泛化能力强的模型至关重要。数据预处理:对收集到的数据进行清洗、格式化、归一化等操作,确保数据的质量,并减少训练过程中的噪声。

2.模型选择:

根据任务需求选择合适的模型架构。例如,对于自然语言处理任务,Transformer架构已被证明是非常有效的。

3.训练策略:

分布式训练:由于大模型通常需要巨大的计算资源,因此分布式训练变得必不可少。这涉及到将模型参数分布在多个处理器上,并行地进行计算。优化器选择:选择合适的优化算法,如Adam、SGD等,以及调整学习率、批次大小等超参数。正则化技术:使用如Dropout、权重衰减等技术减少过拟合。损失函数:选择合适的损失函数来评估模型的性能,并根据该函数来指导模型的训练。

4.评估与调优:

在训练过程中定期评估模型的性能,使用验证集来调整超参数。实施早停(Early Stopping)策略,当模型在验证集上的性能不再提升时停止训练,以防止过拟合。

5.模型压缩与优化:

训练完成后,可能需要对模型进行压缩,如知识蒸馏,以减少模型的大小,使其更易于部署。对模型进行优化,如使用量化和剪枝等技术,以减少模型在推理时的资源消耗。

6.安全与隐私:

在训练过程中确保数据的安全和隐私,特别是在处理敏感数据时。对模型进行鲁棒性测试,确保其不会受到对抗性攻击的影响。

7.伦理与偏见:

检查模型是否存在偏见,确保模型的决策是公正的。遵循伦理标准,确保模型的用途符合社会主义核心价值观。

大模型训练方式

大模型训练在训练方式上简单可分为两大类

1.全量训练

全量训练是指从零开始训练一个模型,通常使用大规模的数据集。这个过程包括以下几个步骤:数据准备:收集并预处理大量的数据,确保数据的质量和多样性。模型设计:设计模型的架构,选择合适的层数、神经元数量等。参数初始化:随机初始化模型的权重。训练:使用优化算法(如SGD、Adam等)训练模型,通过多次迭代调整权重。评估与调优:在训练过程中定期评估模型性能,并根据需要对模型进行调优。全量训练通常需要大量的计算资源和时间,因为模型需要从随机权重开始学习所有必要的特征。这种方法适用于没有预训练模型可用或者任务非常特殊的情况。

2.微调

微调是利用已经在大规模数据集上预训练好的模型,在特定任务的较小数据集上进行再训练的过程。微调的步骤通常包括:预训练模型:选择一个在大规模数据集上预训练好的模型,如BERT、GPT等。任务特定数据集:准备一个针对特定任务的数据集,这个数据集通常比预训练数据集小很多。模型适配:根据任务需求对预训练模型进行适当的修改,如添加或移除顶层、调整输出层等。再训练:使用较小的学习率在任务特定数据集上对模型进行训练,以适应新的任务。性能评估:评估模型在新任务上的性能,并进行必要的调优。微调的好处是可以利用预训练模型已经学到的丰富特征,通常只需要较少的数据和计算资源就可以达到较好的性能。这种方法在自然语言处理、计算机视觉等领域非常流行。

垂直领域训练的难点

在我们现在接触到的大模型中,大部分都是通用大模型,可以对我们提出的大部分问题进行回答,且能保证一定的准确性,但是这样的大模型在对处理与我们工作强相关的专项内容会出现很多问题,且大模型回答问题中会包含一个“思考”的过程,这种场景对于我们问的比较宽泛的问题会有好处,比如说我们对大模型说“你好”,在多种对话场景下,大模型的回答可能会因为语境或者历史问题的记录出现不同的答案。但是这对于我们在特定的场景下,例如唯一的问题对应唯一的答案,大模型的“思考”对于我们来说就是一种灾难。

曲线救国的解决方案

基于垂直领域训练的一些痛点,比如说需要大量的问题设置、需要更强的GPU,都是我们现阶段暂时不太好处理的问题,且我们需要的是一个一个精确化的问题尽量对应一个精准的答案,在这种场景下,将语言大模型接入langchain,加载本地文件,切分为向量数据库,形成一个知识库就变成了现阶段解决方案了

简单来说

1.我们先将开始的ChatGLM3-6B以api的形式启动,让他作为一个后端的接口

2.使用langchain来加载我们本地的文件

3.将本地的文件进行语句切分,生成一个向量数据库

4.使用langchainRetrievalQA模块对问题进行封装

5.使用ChatGLM3-6B查询向量数据库中的相关内容

最终效果

我们将等级保护的指导书文件夹导入,加载到向量数据库

然后他的回答会跟我们预期一样,唯一的问题对应唯一的答案,且稳定性很高,不会出现同样的问题问多次会出现不同的答案。

相比之下经过我们微调的模型的表现就有点差强人意,找不到问题和答案的对应关系,回答的问题时对时错

以上问题的原始数据是这样的,孰强孰弱大家自行辨别

读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值