掌握未来:2025年秋招LLM及多模态模型面试精华

news2024/11/25 11:07:04

目录

  1. 大模型常用微调方法LoRA和Ptuning的原理
  2. 介绍Stable Diffusion的原理
  3. 为何现在的大模型大部分是Decoder-only结构
  4. 如何缓解LLMs复读机问题
  5. 为什么Transformer块使用LayerNorm而不是BatchNorm
  6. Transformer为何使用多头注意力机制
  7. 监督微调SFT后LLM表现下降的原因
  8. 微调阶段样本量规模增大导致的OOM错误
  9. 连接文本和图像的CLIP架构简介
  10. Attention计算复杂度以及如何改进
  11. BERT用于分类任务的优点及后续改进工作

01. 大模型常用微调方法LORA和Ptuning的原理

Lora方法的核心是在大型语言模型上对指定参数增加额外的低秩矩阵,也就是在原始PLM旁边增加一个旁路,做一个降维再升维的操作。并在模型训练过程中,固定PLM的参数,只训练降维矩阵A与升维矩阵B。

Ptuning方法的核心是使用可微的virtual token替换了原来的discrete tokens,且仅加入到输入层,并使用prompt encoder(BiLSTM+MLP)对virtual token进行编码学习。

02. 介绍一下stable diffusion的原理

Stable Diffusion 总共包含三个主要的组件,其中每个组件都拥有一个独立的神经网络:

在这里插入图片描述

1)Clip Text 用于文本编码。
输入:文本
输出:77 个 token 嵌入向量,其中每个向量包含 768 个维度

2)UNet + Scheduler 在信息(潜)空间中逐步处理 / 扩散信息。
输入:文本嵌入和一个由噪声组成的初始多维数组(结构化的数字列表,也叫张量 tensor)。
输出:一个经过处理的信息阵列

3)自编码解码器(Autoencoder Decoder),使用处理过的信息矩阵绘制最终图像的解码器。
输入:处理过的信息矩阵,维度为(4, 64, 64)
输出:结果图像,各维度为(3,512,512)

03. 为何现在的大模型大部分是Decoder only结构

大模型从模型架构上主要分为三种:Only-encoder, Only-Decoder, Encoder-Decoder三种模型架构

  • Only-encoder:例如BERT,通过在大规模无标签文本上进行预训练,然后在下游任务上进行微调,具有强大的语言理解能力和表征能力。

  • Only-Decoder: 例如GPT,通过在大规模无标签文本上进行预训练,然后在特定任务上进行微调,具有很强的生成能力和语言理解能力。

  • Encoder-Decoder:例如T5(Text-to-Text Transfer Transformer)可以用于多种自然语言处理任务,如文本分类、机器翻译、问答等。

而LLM之所以主要都用Decoder-only架构,除了训练效率和工程实现上的优势外,在理论上是因为Encoder的双向注意力会存在低秩问题,这可能会削弱模型表达能力,就生成任务而言,引入双向注意力并无实质好处。而Encoder-Decoder架构之所以能够在某些场景下表现更好,大概只是因为它多了一倍参数。所以,在同等参数量、同等推理成本下,Decoder-only架构就是最优选择了。

04. 如何缓解 LLMs 复读机问题

- 多样性训练数据:在训练阶段,尽量使用多样性的语料库来训练模型,避免数据偏差和重复文本的问题。 - 引入噪声:在生成文本时,可以引入一些随机性或噪声,例如通过采样不同的词或短语,或者引入随机的变换操作,以增加生成文本的多样性。 - 温度参数调整:温度参数是用来控制生成文本的多样性的一个参数。通过调整温度参数的值,可以控制生成文本的独创性和多样性,从而减少复读机问题的出现。 - 后处理和过滤:对生成的文本进行后处理和过滤,去除重复的句子或短语,以提高生成文本的质量和多样性。 - Beam搜索调整:在生成文本时,可以调整Beam搜索算法的参数。Beam搜索是一种常用的生成策略,它在生成过程中维护了一个候选序列的集合。通过调整Beam大小和搜索宽度,可以控制生成文本的多样性和创造性。 - 人工干预和控制:对于关键任务或敏感场景,可以引入人工干预和控制机制,对生成的文本进行审查和筛选,确保生成结果的准确性和多样性。

05. 为什么transformer块使用LayerNorm而不是BatchNorm

Batch Normalization 是对这批样本的同一维度特征做归一化, Layer Normalization 是对这单个样本的所有维度特征做归一化。LN不依赖于batch的大小和输入sequence的长度,因此可以用于batchsize为1和RNN中sequence的normalize操作。

  • 为什么BN在NLP中效果差

    • BN计算特征的均值和方差是需要在batch_size维度,而这个维度表示一个特征,比如身高、体重、肤色等,如果将BN用于NLP中,其需要对每一个单词做处理,让每一个单词是对应到了MLP中的每一个特征明显是违背直觉得;
    • BN是对单词做缩放,在NLP中,单词由词向量来表达,本质上是对词向量进行缩放。词向量是什么?是我们学习出来的参数来表示词语语义的参数,不是真实存在的。
  • 为什么LayerNorm单独对一个样本的所有单词做缩放可以起到效果

    • layner-norm 针对每一个样本做特征的缩放。换句话讲,保留了N维度,在C/H/W维度上做缩放。
    • layner-norm 也是在对同一个特征下的元素做归一化,只不过这里不再是对应N(或者说batch size),而是对应的文本长度。

06. Transformer为何使用多头注意力机制

多头保证了transformer可以注意到不同子空间的信息,捕捉到更加丰富的特征信息。论文原作者发现这样效果确实好,更详细的解析可以查阅[Multi-head Attention](https://www.zhihu.com/question/341222779)

07. 监督微调SFT后LLM表现下降的原因

SFT(Supervised Fine-Tuning)是一种常见的微调技术,它通过在特定任务的标注数据上进行训练来改进模型的性能。然而,SFT可能会导致模型的泛化能力下降,这是因为模型可能过度适应于微调数据,而忽视了预训练阶段学到的知识。这种现象被称为灾难性遗忘,可以使用一些策略,如:

  • 使用更小的学习率进行微调,以减少模型对预训练知识的遗忘。
  • 使用正则化技术,如权重衰减或者早停,以防止模型过度适应微调数据。
  • 使用Elastic Weight Consolidation(EWC)等技术,这些技术试图在微调过程中保留模型在预训练阶段学到的重要知识。

08. 微调阶段样本量规模增大导致的OOM错误

全参数微调的显存需求取决于多个因素,包括模型的大小(参数数量),批次大小,序列长度,以及是否使用了混合精度训练等。对于GPT-3这样的大模型,如果想要在单个GPU上进行全参数微调,可能需要数十GB甚至上百GB的显存。

当样本量规模增大时,可能会出现OOM(Out of Memory)错误,这是因为模型需要更多的内存来存储和处理数据。为了解决这个问题,可以尝试以下方法:

  • 减小批量大小:这可以减少每次训练需要处理的数据量,从而减少内存使用。
  • 使用梯度累积:这种方法可以在不减小批量大小的情况下,减少内存使用。
  • 使用模型并行:这种方法可以将模型的不同部分放在不同的设备上进行训练,从而减少每个设备需要的内存。

09. 连接文本和图像的CLIP架构简介

CLIP 把自然语言级别的抽象概念带到计算机视觉里了。确定一系列query,然后通过搜索引擎搜集图像,最后通过50万条query,搜索得到4亿个图像文本对。然后将Text Decoder从文本中提取的语义特征和Image Decoder从图像中提取的语义特征进行匹配训练。

10. Attention计算复杂度以及如何改进

- 代码中的to_qkv()函数,即用于生成q、k、v三个特征向量

在这里插入图片描述

self.to_qkv = nn.Linear(dim, inner_dim * 3, bias=False)
self.to_out = nn.Linear(inner_dim, dim)

  • 在标准的Transformer中,Attention计算的时间复杂度为O(N^2),其中N是输入序列的长度。为了降低计算复杂度,可以采用以下几种方法:
    • 使用自注意力机制,减少计算复杂度。自注意力机制不需要计算输入序列之间的交叉关系,而是计算每个输入向量与自身之间的关系,从而减少计算量。
    • 使用局部注意力机制,只计算输入序列中与当前位置相关的子序列的交互,从而降低计算复杂度。
    • 采用基于近似的方法,例如使用随机化和采样等方法来近似计算,从而降低计算复杂度。
    • 使用压缩注意力机制,通过将输入向量映射到低维空间来减少计算量,例如使用哈希注意力机制和低秩注意力机制等。

11. BERT用于分类任务的优点,后续改进工作有哪些?

在分类任务中,BERT的结构中包含了双向的Transformer编码器,这使得BERT能够更好地捕捉文本中的双向上下文信息,从而在文本分类任务中表现更好。BERT的后续改进工作主要包括以下方面:

  • 基于BERT的预训练模型的改进,例如RoBERTa、ALBERT等;
  • 通过调整BERT的架构和超参数来进一步优化模型性能,例如Electra、DeBERTa等;
  • 改进BERT在特定任务上的应用方法,例如ERNIE、MT-DNN等;
    在这里插入图片描述

如何学习AI大模型?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

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

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

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

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

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

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

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

在这里插入图片描述

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

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

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

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

在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【大数据】Spark弹性分布式数据集RDD详细说明

文章目录 整体介绍一、定义与特性二、操作与转换三、存储级别与持久化四、依赖关系与容错机制五、优化与性能调优 常见操作支持的数据格式1.文本文件 (Text Files)2. CSV 文件3. JSON 文件4. Parquet 文件5. Sequence Files6.Hadoop文件读取A. 读取HDFS上的文本文件B. 使用Hado…

深度学习基础—人脸识别

在人脸识别领域,常常有两个词容易被混淆,人脸验证和人脸识别。人脸验证是输入一个人的照片和名字(或者ID),验证这个人是否和名字相符。人脸识别是输入一个人的照片,识别这个人是否是数据库中存在的人。人脸…

VScode中配置可编写C/C++代码

VScode的下载 下载地址:https://code.visualstudio.com/ 安装中文插件 重启后,生效!!! 下载和配置MinGW-w64 https://github.com/niXman/mingw-builds-binaries/releases 这里可以自行选择线程模型WIN32或posix&a…

【Linux报错】“-bash: cd: too many arguments“

问题描述 今天使用 cd 想要调整某个文件目录时,发现以下报错 原因分析: arguments 是参数的意思,该报错提示参数过多,意味着系统识别到了多余参数 本质原因:你的命令中输入了多余的 ”空格“ ,检查一…

手写Spring第三篇番外,反射的基本使用

上一篇发出去之后,我有一个朋友说 beanDefinition.getBeanClass().newInstance() 这句代码太突兀了,就像是在甜甜的睡梦中,突然脚踩悬崖惊醒。 像我这种插朋友两刀的人必须安排了,不止安排 newInstance 还把反射基本用法也给安排了…

耳夹式耳机哪个品牌音质好?耳夹式蓝牙耳机排行榜!

当下,耳夹式蓝牙耳机愈发受到大众的青睐。不管是在上下班的途中、进行运动锻炼之时,还是休闲居家的日子里,这种耳机都能为使用者带来极为便捷的体验。不过,市面上的耳夹式蓝牙耳机品牌繁杂多样,产品品质也是良莠不齐&a…

【win10】VMware Workstation 16安装win10专业版及安装VMware Tools操作说明

参考链接 VMware虚拟机安装win10系统教程(巨细)_vmware安装win10-CSDN博客https://blog.csdn.net/gdidea/article/details/129523700 win10专业版安装说明 下载win10安装包 百度网盘 链接: https://pan.baidu.com/s/1kf4ORdXYgcqwAz2j86LSZw?pwdk4…

MySQL(八)——索引

文章目录 索引索引的数据结构索引的具体结构页的概念独立表空间文件页的结构页文件头和页文件尾页主体页目录数据页头 B树在索引中的应用索引分类按数据结构分按字段特性分按物理存储分按字段个数分 索引语法创建索引查看索引删除索引 索引优化SQL执行频率慢查询日志profile详情…

【机器学习导引】ch3-线性模型-2

优化理论:梯度下降(Gradient Descent) 梯度下降法的基本思路 梯度下降法是一种优化算法,目的是找到函数 f ( x ) f(x) f(x) 的最小值。图中提到“如果能找到一个序列 x 0 , x 1 , x 2 , … x_0, x_1, x_2, \dots x0​,x1​,x2​…

有手就会!低代码让你告别繁琐开发流程

近几年,随着低代码与无代码相关话题的火热,逻辑编排作为其重要构成部分也备受关注,集团内外不乏优秀的实践。之前在做技术调研时发现了不少业内逻辑编排相关的方案,陆续整理记录下来。今天先为大家带来低代码开发领域的 JNPF。 1.…

如何有效恢复受污染除砷树脂的功能?

在半导体制造领域,砷是一种常见的杂质元素。然而,砷的存在不仅会严重影响芯片的性能和可靠性,还会对生产环境和人体健康构成威胁。通过使用高效的除砷树脂,可以有效地去除水中的砷元素。 然而,一旦除砷树脂受到污染&am…

一个月学会Java 第10天 详讲static和面向对象——继承与Java世上最厉害的IDE——IDEA

Day10 详讲static和面向对象——继承与Java世上最厉害的IDE——IDEA 今天的篇幅会比较长,因为牵扯到不少的内容还有面向对象的内容 第一章 static 首先我们先来填一下坑,之前挖的,说后面要详细讲解static这个关键字的作用,那在这之…

二叉树的构建与遍历

在介绍二叉树的篇章中,我们用方法简单创建了一个二叉树,如下代码: public treeNode creattree(){treeNode Anew treeNode(A);treeNode Bnew treeNode(B);treeNode Cnew treeNode(C);treeNode Dnew treeNode(D);treeNode Enew treeNode(E);tr…

新大话西游图文架设教程

开始架设 1. 架设条件 新大话西游架设需要准备: linux 系统服务器,建议 CentOs 7.6或以上版本游戏源码,。 2. 安装宝塔面板 宝塔是一个服务器运维管理软件,安装命令: yum install -y wget && wget -O in…

zabbix7.0配置中文界面

Zabbix 是一个广泛使用的开源监控解决方案,支持多种语言界面。本文将详细介绍如何配置 Zabbix 以使用中文界面,从而提高用户体验和可读性。 1. 环境准备 在开始配置之前,请确保你已经安装并运行了 Zabbix 服务器、前端和数据库。如果你还没有…

成品婚恋交友相亲源码打包APP小程序H5公众号可打包小程序APP公众号H5源码交付支持二开

聊天交友系统开发专业语聊交友app开发搭建同城交友源码开发婚恋交友系统相亲app小程序H5婚恋交友小程序的定制开发与行业新机遇婚恋交友app红娘连线系统app小程序开发一站式开发系统源码:婚恋交友H5与小程序开发详解 电商运营技术服务源码系统php相亲交友平台APP婚恋…

前端优化之路:git commit 校验拦截

但是想要做到高效落地执行,就需要做些别的功课,先展示下成果图 需要了解git hooks,它是git的钩子,就像vue拥有自己的钩子一样。 官方文档:https://git-scm.com/docs/githooks 项目安装 husky,建议稳定版本…

Linux进程间通信(个人笔记)

Linux进程通信 1.进程通信介绍1.1进程间通信目的1.2进程间通信发展1.3进程间通信的具体分类 2.管道2.1匿名管道2.1.1代码实例2.1.2 fork共享管道原理2.1.3 管道的读写规则与特点2.1.4 进程池 2.2 命名管道2.2.1 命名管道的创建2.2.2匿名管道与命名管道的区别2.2.3代码实例 3.Sy…

Spring Boot洗衣店订单系统:数据驱动的决策

3系统分析 3.1可行性分析 通过对本洗衣店订单管理系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本洗衣店订单管理系统采用JAVA作为开发语言,S…

如何安装Llama3.1 —— 附一键安装包!

一键安装包文末领取! 下载地址 软件:Llama版本:3.1语言:简体中文大小:645 MB安装环境:Win10及以上版本(64bit) 软件简介 ‌‌LLaMA模型是Meta研发的大语言模型‌,旨在帮助研究人员推进他们…