机器学习调优方法总结 本项目旨在利用包含 79 个解释变量的数据集,预测爱荷华州埃姆斯市住宅的最终价格。数据集提供了房屋的详细信息,如地理位置、面积、房间数量、建筑材料等。我们将通过数据预处理、特征工程、模型选择和训练、模型评估等步骤,构建一个准确的房价预测模型。
Transformer问题总结及实现 优化1:稀疏注意力机制:背景是:在传统的注意力机制的情况下,每一个token需要注意到所有的token,计算复杂度是O(N^2)(这里动手计算一下Q*K^T就明白了),所以呢,这个时候,不要求每一个token注意到所有的token,只要求它注意到和它相邻的前后k个token,这个时候算法复杂度是O(N * K),在处理长序列的时候,可以减少内存的消耗;2.d指的是编码向量的维度;这就要追溯到QK是怎么得到的,Q = x * Wq K = x*Wk,这里x是常数,因为Wq和Wk是独立的,所以Q和K是独立的。
大模型微调---文章6 答案:MAM Adapter是将prefix tuning,adapter,lora三种高效微调方法进行了整合。答案:将不同的PELT方法作为子模块,并通过门控机制学习激活最适合当前数据或任务的方法答案:3.1:Bitfit:仅微调bias3.2:prefix tuning:在每一个层的前端加入可迭代的前缀向量(软提示)3.3:prompt tuning:仅在输入端的向量前端加入可迭代的前缀向量(软提示)
大模型微调---文章5 答案:Lora是抵秩分解,主要原因是在微调之后发现各种线性层并不是满秩,都是具有很低的本征秩,主要作用在Attention模块中的4种权重矩阵,通过消融实验发现同时调整Wq和Wv会产生最佳效果答案:思想是:先将模型进行量化处理,减少模型参数的内存占用,然后使用Lora方法在低秩近似空间中对模型进行微调。技术原理是:量化+Lora答案:量化是将模型的高精度权重(如32位浮点数)转化为低精度格式(8位或者4位)。量化的方法:后量化:在模型训练完成后,将模型的权重量化为更低的精度。
大模型微调---文章4 答案:Adapter是轻量级微调+模块化设计,具体体现在只增加少量的参数,但是不改变原始模型的主干结构。答案:Adapter Drop是为了推理加速,因为在Adapter fusion中加入了大量的参数,在模型推理过程中,会变慢,所以就随机地丢弃Transformer较低的层来加速推理。
大模型微调--文章3 答案:自然语言理解,是自然语言处理(NLP)中的一个重要子领域,涉及理解和处理人类语言的语义和语法,以便机器能够从文本中提取有意义的信息。NLU任务通常涉及对文本的深层次理解,包括解析句子结构、理解上下文、推理隐含意义。答案:prefix tuning是在每一层中插入可学习的前缀嵌入序列,而不是直接影响输入,在transformer每一层都添加前缀;p-tuning是直接在输入层中插入可学习的提示词(软提示),优化这些提示词以提高任务性能,仅在输入层进行更改,在其他层没有操作。
大模型微调--文章2 答案:冻结不需要更新的参数答案:bitfit的主要思想是改变某些层中的bias参数答案:离散的模板在自然语言处理(NLP)任务中,尤其是在与预训练语言模型交互时,是指以自然语言文本形式编写的固定提示或框架,用来引导模型生成特定的输出。这种模板是由人类直接设计或通过自动化方法生成的,由于其离散性和固定性,称为“离散的模板”。离散性是因为它们由固定的、不可分割的自然语言单元组成,具有明确的边界,并且在使用时作为一个整体来使用,不可分割。答案:指的是在输入数据的前面加上可以预训练的向量,在整个过程中进行迭代。
Datawhale开源学习--大模型应用开发(2.0)--Task3 在研究RAG之前,先来研究一下为什么需要RAG,原因主要是下面三点:1.大模型预训练知识的局限性:对于大模型预训练的数据是从网络上公开的资源,对于一些实时的或者非公开的资源,大模型无法获取,当然也就没有这方面的知识;2.数据安全性:为了能够使大模型具有某方面的能力,需要将数据纳入训练,对于企业来说,数据的泄露是致命的;3.大模型幻觉:大模型在它不擅长的领域中,会出现胡说八道的情况。
深度学习框架相关-Python模块的介绍和使用---torch '''1.torch模块,是一个开源的深度学习框架,主要用于构建和训练神经网络。PyTorch 的设计目标是提供灵活且高效的工具集,用于深度学习和科学计算;2.下面主要介绍torch模块的五个功能:数据加载和处理,GPU加速,建立网络模型,模型的保存和加载,梯度更新和参数优化;3.才学疏浅,文章持续修改更新;'''
基础库-Python常用模块的介绍和使用---pandas 二维表格结构,类似于excel中的表格或者数据库中的表格。它可以包含不同类型的数据,具有行标签和列标签。2.2:df.drop_duplicates() 删除重复行。支持从各种格式导入和导出数据,包括:csv,excel,sql,json等。1.1:df.isnull().sum() 查找缺失值。2.1:df.duplicated() 检测重复数据。1.2:df.dropna() 删除缺失值。基于列的选择:df[["name1","name2"]]基于行的选择:df.loc;5.处理数据的缺失和不一致。
git团队协作 创建两个相同的文件夹,文件夹1用来拉代码,拉取最新的代码之后,文件夹2的更改修改到文件夹1中,然后再用文件夹1来提交即可。第五步:git pull origin 分支名(LLM_rulers)第六步:git stash pop。(第四步):git stash。
基础库-Python常用模块的介绍和使用---numpy 3.矩阵分解:np.linalg.svd(A);7.2:分布函数:numpy.random.normal(loc=0.0, scale=1.0, size=None) 均值,期望和形状。规则2:如果两个数组的形状在任何维度上都不匹配,但其中一个维度大小是1,那么扩展这个维度匹配另一个维度的大小。2.数组的形状变换:arr.reshape()、arr.T、arr.tolist()规则1:如果两个数组的维度不同,那么就在维度比较小的数组前面补1,直到维度相同。2.矩阵求逆:np.linalg.inv(A)
Datawhale开源学习--大模型应用开发(1.0) 答:GPT模型主要是decoder-only模型架构,缺少了原始Transformer架构中的交叉注意力结构。当前绝大多数大语言模型结构都采用了类似 GPT 架构,使用基于 Transformer 架构构造的仅由解码器组成的网络结构,采用自回归的方式构建语言模型。但是在位置编码、层归一化位置以及激活函数等细节上各有不同。(如下图所示)