【NLP】Datawhale-AI夏令营Day6-7打卡:大模型

本文涉及的产品
NLP自然语言处理_基础版,每接口每天50万次
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_高级版,每接口累计50万次
简介: 【NLP】Datawhale-AI夏令营Day6-7打卡:大模型


1. 学习内容

AI夏令营第三期–基于论文摘要的文本分类与关键词抽取挑战赛教程

✅ 大模型的概念

语言本质上是一个错综复杂的人类表达系统,受到语法规则的约束。因此,开发能够理解和精通语言的强大 AI 算法面临着巨大挑战。过去二十年,语言建模方法被广泛用于语言理解和生成,包括统计语言模型和神经语言模型。

近些年,研究人员通过在大规模语料库上预训练 Transformer 模型产生了预训练语言模型(PLMs),并在解决各类 NLP 任务上展现出了强大的能力。并且研究人员发现模型缩放可以带来性能提升,因此他们通过将模型规模增大进一步研究缩放的效果。有趣的是,当参数规模超过一定水平时,这个更大的语言模型实现了显著的性能提升,并出现了小模型中不存在的能力,比如上下文学习。为了区别于 PLM,这类模型被称为大型语言模型(LLMs)

从 2019 年的谷歌 T5 到 OpenAI GPT 系列,参数量爆炸的大模型不断涌现。可以说,LLMs 的研究在学界和业界都得到了很大的推进,尤其去年 11 月底对话大模型 ChatGPT 的出现更是引起了社会各界的广泛关注。LLMs 的技术进展对整个 AI 社区产生了重要影响,并将彻底改变人们开发和使用 AI 算法的方式。

通常,大型语言模型(LLM)是指包含数千亿(或更多)参数的语言模型,这些参数是在大量文本数据上训练的,例如模型 GPT-3、PaLM、Galactica 和 LLaMA。具体来说,LLM 建立在 Transformer 架构之上,其中多头注意力层堆叠在一个非常深的神经网络中。现有的 LLM 主要采用与小语言模型类似的模型架构(即 Transformer)和预训练目标(即语言建模)。

LLM 在很大程度上扩展了模型大小、预训练数据和总计算量(扩大倍数)。他们可以更好地理解自然语言,并根据给定的上下文(例如 prompt)生成高质量的文本。这种容量改进可以用标度律进行部分地描述,其中性能大致遵循模型大小的大幅增加而增加。然而根据标度律,某些能力(例如,上下文学习)是不可预测的,只有当模型大小超过某个水平时才能观察到。

像chatgpt、claude AI、文心一言、讯飞星火和通义千问一样的,这种模型通过对大量的文本数据进行学习,可以理解和生成人类的自然语言,甚至可以编程、写数学题。

✅ 大模型的原理

大语言模型的语言生成的原理叫做自回归模型,是统计上一种处理时间序列的方法。

例如现在有一个句子:“我早上去了星巴克”,将其拆分为“我”、“早上”、“去了”、“星巴克”这四个词(我们叫做 token)。大语言模型是这样去学习的:第一个单词是,输入到模型中。经过了一个Transformer模块后,它输出希望被训练成第一个字,也就是“我”。在第二个位置,它的输入是“我”,它的输出是“早上”,第三个位置输入是“早上”,输出是“去了”,这样不断地一轮一轮迭代,每个细胞能够根据我现在的这个单词,去预测下一个单词。最后这个模型就能够学到,“我早上去了星巴克”的下一句话应该是“星巴克里的咖啡很好喝”,它认为生成“星巴克里的咖啡很好喝”比“我明天要去乘飞机”这样一句话合理得多。

自回归模型的关键是根据你前面已经出现过的内容,来推测它的下一个字,下一句话应该是怎样生成的,在这样不断的迭代过程中,它就能学会如何去生成一句话、一个段落,以及一篇文章。

总的来说,LLM可以理解为大规模的语言模型。从历史的角度来看,前面说的BERT和GPT并没有达到足够大的规模。直到GPT-2、GPT-3出现了,它们才达到了较大的量级。大家发现语言模型爆炸式增长,从一个细胞长成一个脑子,这种程度上的增长才带来了LLMs。所以我们一般理解LLMs,语言模型规模大到了至少到GPT-1或2阶段,它的参数量能够突破1亿或者10亿阶段才能称之为大模型

✅ 大模型的训练步骤

OpenAI 开发 ChatGPT 的三个主要步骤:大尺寸预训练+指令微调+RLHF

1️⃣ 大尺寸预训练: 在这个阶段,模型在大规模的文本数据集上进行预训练。这是一个非监督学习的过程,模型需要预测在给定的文本序列中下一个词是什么。预训练的目标是让模型学会理解和生成人类语言的基本模式。

2️⃣ 指令微调: 在预训练之后,模型会在一个更小但专门针对特定任务的数据集上进行微调。这个数据集通常由人工生成,包含了模型需要学会的任务的特定指令。例如,如果我们想要让模型学会如何进行数学计算,我们就需要提供一些包含数学问题和对应解答的数据。

3️⃣ RLHF(Reinforcement Learning from Human Feedback,人类反馈强化学习):这是一个强化学习过程,模型会根据人类提供的反馈进行学习和优化。首先,我们会收集一些模型的预测结果,并让人类评估这些结果的好坏。然后,我们会使用这些评估结果作为奖励,训练模型优化其预测性能。通过这种方式,模型可以学会生成更符合人类期望的结果。

通过这三个步骤,模型能够在理解和生成人类语言的基础上,更好地完成特定任务,更好地符合人类的期望。

✅ Prompt

Prompt顾名思义表示「提示」,比如在高中时代,英语考试中的完形填空,有 4 个提示选项,我们只需要在 4 个里面选择合适的一个作为答案即可。在大语言模型中,提示模型输出我们想要的答案,这里就需要Prompt。

✅ 大模型微调的概念

将预训练好的语言模型(LM)在下游任务上进行微调已成为处理 NLP 任务的一种范式。与使用开箱即用的预训练 LLM (例如:零样本推理) 相比,在下游数据集上微调这些预训练 LLM 会带来巨大的性能提升。

但是,随着模型变得越来越大,在消费级硬件上对模型进行全部参数的微调(full fine-tuning)变得不可行。此外,为每个下游任务独立存储和部署微调模型变得非常昂贵,因为微调模型(调整模型的所有参数)与原始预训练模型的大小相同。

因此,近年来研究者们提出了各种各样的参数高效迁移学习方法(Parameter-efficient Transfer Learning),即固定住Pretrain Language model(PLM)的大部分参数,仅调整模型的一小部分参数来达到与全部参数的微调接近的效果(调整的可以是模型自有的参数,也可以是额外加入的一些参数)。

目前所称的大语言模型,一般指指令微调大模型,即经过预训练——指令微调——人类反馈强化学习全过程训练的大模型,对人类指令具备较强的理解和执行能力,而不是进行简单的文本生成。例如,当你询问“中国的首都是什么?”时,你的指令即你的问题,通用模型将会简单地对你的问题进行最大概率预测地生成,例如回答“中国的首都是什么?这是一个人尽皆知的问题…”而指令微调大模型会理解你的指令,知道你想要模型对你的问题给出答案,从而回答“北京”。ChatGPT 与 GPT-3 就是鲜明的例子。GPT-3 是通用大模型,因此对你的输入只能进行最大概率预测地输出;而 ChatGPT 是指令微调大模型,可以理解并执行你的指令,例如帮助你写代码,帮助你判断问题等。

正如其名,指令微调大模型与通用大模型最大的区别在于进行了指令微调,即训练模型理解并执行指令的能力。指令微调一般会给模型特定的指令及执行指令后的输出,要求模型学习遵循指令的能力。这里的指令可以有很多种类型,包括回答问题、续写、创作等。具体而言,指令微调时通常有两个输入,一个是你要求模型执行的指令,另一个是执行该指令所必须的输入。例如,当你要求模型执行指令“续写我的话”,那么你还需要输入该指令中指代的话,例如“今天天气很好,我们去”。而指令微调的输出一般是模型执行该指令后的输出,例如对于上述示例,输出应该为“郊游吧”。

本任务中,我们所要对大模型进行的即是指令微调。通过训练模型在特定指令(在本任务中,即要求其判断文献是否医学领域文献)下的指令执行能力,来使用大模型完成本任务。我们也需要按照指令微调的格式进行数据集的建立。使用 LoRA 进行指令微调时,数据集一般有三个元素:instruction,input,output。instruction 即指令,即上文中我们所提到的第一个输入——要求模型执行的指令。input 即上文中我们提到的第二个输入——执行该指令所必须的输入。output 即指令微调的输出。

  • instruction:指令,Please judge whether it is a medical field paper according to the given paper title and abstract, output 1 or 0, the following is the paper title and abstract -->
  • “–>”:加上一个箭头就是让大模型明白,下次再遇到这种问题,就是我们想让大模型进行二分类任务。
  • input:prompt。对于这个任务来说那就是 title+abstract+author 拼接成的字符串了。
  • output:response,即大模型的回答,0 or 1。
    如果是对于任务二的关键词生成,那么我们应该将指令修改为要求模型根据给定文献的标题、摘要生成关键词,输入不变,输出更改为文献的关键词:
  • instruction:指令,Please extract keywords from the given paper title and abstract in the text below, separated by commas -->
  • “–>”:加上一个箭头就是让大模型明白,下次再遇到这种问题,就是我们想让大模型进行关键词抽取任务。
  • input:prompt。对于这个任务来说那就是 title+abstract+author 拼接成的字符串了。
  • output:response,即大模型的回答,具体抽取出的关键词。

2. 实践项目

同之前博客介绍的,仍然是任务一,文本分类任务。

【NLP】Datawhale-AI夏令营Day3打卡:Bert模型

3. 实践代码

完整Topline源码获取可以联系Datawhale官方或者群内助教 💭

4. 遇到的问题和解决方法

问题1:导入peft失败

直接conda安装peft时遇到报错:

Solving environment: unsuccessful initial attempt using frozen solve. Retrying with flexible solve. 
PackagesNotFoundError: The following packages are not available from current channels: 
 -- peft

解决1:

http://gitclone.com镜像安装peft

pip install git+https://gitclone.com/github.com/huggingface/peft.git -i https://pypi.mirrors.ustc.edu.cn/simple --trusted-host=pypi.mirrors.ustc.edu.cn

问题2:导入transformers_modules失败

ModuleNotFoundError: No module named 'transformers_modules'

后面发现是前面的微调出了问题。

5. 实践成绩

8.22 Roberta-base模型Topline返回分数:0.98619(损失函数为二元交叉熵(BCE))

8.20 Roberta-base模型Topline返回分数:1(损失函数为交叉熵(CE))

8.19凌晨 bert模型Baseline返回分数:0.89562(batch_size=1, epochs = 10)

8.19 bert模型Baselin返回分数:0.99452 (batch_size=8, epochs = 10)

相关文章
|
1天前
|
人工智能 API 开发工具
【重磅发布】 免费领取阿里云百炼AI大模型100万Tokens教程出炉,API接口实战操作,DeepSeek-R1满血版即刻体验!
阿里云百炼是一站式大模型开发及应用构建平台,支持开发者和业务人员轻松设计、构建大模型应用。通过简单操作,用户可在5分钟内开发出大模型应用或在几小时内训练专属模型,专注于创新。
174 87
【重磅发布】 免费领取阿里云百炼AI大模型100万Tokens教程出炉,API接口实战操作,DeepSeek-R1满血版即刻体验!
|
10天前
|
人工智能 开发框架 机器人
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
AstrBot 是一个开源的多平台聊天机器人及开发框架,支持多种大语言模型和消息平台,具备多轮对话、语音转文字等功能。
2321 13
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
|
12天前
|
机器学习/深度学习 存储 人工智能
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
MNN-LLM App 是阿里巴巴基于 MNN-LLM 框架开发的 Android 应用,支持多模态交互、多种主流模型选择、离线运行及性能优化。
939 14
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
|
8天前
|
人工智能 数据可视化 搜索推荐
免费+数据安全!手把手教你在PC跑DeepSeek-R1大模型,小白也能秒变AI大神!
本地部署AI模型(如DeepSeek R1)保障数据隐私、节省成本且易于控制,通过Ollama平台便捷安装与运行,结合可视化工具(如Chatbox)及Python代码调用,实现高效、个性化的AI应用开发与使用。
105 3
免费+数据安全!手把手教你在PC跑DeepSeek-R1大模型,小白也能秒变AI大神!
|
4天前
|
人工智能 算法 调度
DeepSeek杀疯了!国产AI大模型如何重构未来技术版图?
【爆款导读】当ChatGPT还在为每月10亿访问量沾沾自喜时,中国AI军团已悄然完成弯道超车。2025年开年,DeepSeek以雷霆之势横扫中美应用商店双榜,上线72小时突破千万DAU,开发者生态激增300%。通过优化算法降低成本、多模态能力提升效率,DeepSeek不仅在用户数量上取得突破,更在实际应用场景中展现强大实力。其开源策略推动技术民主化,助力更多开发者参与AI开发,成为AI军备竞赛中的佼佼者。
149 20
|
24天前
|
机器学习/深度学习 人工智能 自然语言处理
Baichuan-M1-14B:AI 助力医疗推理,为患者提供专业的建议!百川智能开源业内首个医疗增强大模型,普及医学的新渠道!
Baichuan-M1-14B 是百川智能推出的首个开源医疗增强大模型,专为医疗场景优化,支持多语言、快速推理,具备强大的医疗推理能力和通用能力。
181 16
Baichuan-M1-14B:AI 助力医疗推理,为患者提供专业的建议!百川智能开源业内首个医疗增强大模型,普及医学的新渠道!
|
1天前
|
人工智能 自然语言处理 语音技术
Ai好记全面接入DeepSeek大模型!重塑知识管理新体验
Ai好记融合DeepSeek大模型,带来知识管理新纪元。视频秒变知识胶囊,外语资料自动转母语,一键构建思维导图。六大核心能力包括结构化笔记、AI播客、全平台解析等,全面提升学习和工作效率。立即登录aihaoji.com体验!
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
以史为鉴,未雨绸缪:身处“大模型掀起的AI浪潮中”的感悟和思考
本文旨在帮助读者更深入地理解大模型和AI技术,重点介绍关键技术革新的背景与影响,特别是本次大模型时代和新一轮AI浪潮的推动因素与发展历程。
|
1月前
|
存储 人工智能 自然语言处理
|
27天前
|
人工智能 测试技术 Python
VideoChat-Flash:上海AI Lab开源高效处理超长视频的多模态大模型
VideoChat-Flash 是上海人工智能实验室等机构推出的多模态大模型,通过分层压缩技术高效处理长视频,支持长达数小时的视频输入,推理速度提升5-10倍。
74 1
VideoChat-Flash:上海AI Lab开源高效处理超长视频的多模态大模型

热门文章

最新文章