Training Llama 2 Model on Single GPU with int8 Quantization and LoRA
Training Llama 2 Model on Single GPU with int8 Quantization and LoRALlama 2概述Llama 2 是一个包含预训练和微调的生成式文本模型的集合,其规模从 70 亿到 700 亿个参数不等。Llama2模型是由Hugo Touvron, Louis Martin, Kevin Stone, Peter Albert等人在Llama 2: Open Foundation and Fine-Tuned Chat Models中提出的。
该论文的摘要如下:
在这项工作中,我们开发并发布了Llama 2,这是一组从70亿到700亿参数的预训练和微调的大型语言模型(LLMs)。我们的微调LLMs,称为Llama 2-Chat,针对对话用例进行了优化。我们的模型在我们测试的大多数基准上胜过开源聊天模型,并且基于我们对有用性和安全性的人类评估,可能是闭源模型的合适替代品。我们提供了关于微调和改进Llama 2-Chat安全性的方法的详细描述,以便社区能够在我们的工作基础上构建,并有助于LLMs的负责任发展。
在此处查看所有Llam ...
LONGNET - Scaling Transformers to 1,000,000,000 Tokens
LONGNET:将Transformer扩展到10亿个标记在本篇文章中,我们将详细讨论一个近期发布的先进模型——“LongNet”。该模型由微软亚洲研究院研发,于大约两周前正式公布。LongNet基于Transformer模型构建,其核心理念在于拓展Transformer的应用规模。值得一提的是,研究团队成功地将其扩展至处理10亿个令牌的规模。对于熟悉语言模型的人来说,会明白序列长度对模型性能的影响,因为序列长度决定了在执行注意力机制时,能够关联的令牌数量,从而影响模型可以获取的上下文信息长度。例如,我们希望像GPT这样的模型能拥有更长的上下文,使得模型可以参考更久之前的单词来预测下一个令牌。而LongNet就成功地将这个能力扩展到了10亿个令牌。以下图为例,可以清晰看出,GPT的序列长度仅为512,而Power Transformer的序列长度可扩展至12、000、64、262、000、甚至1000万,然而LongNet将序列长度扩展至惊人的10亿个令牌。试想一下,我们可以将所有维基百科的文本信息输入到模型中,模型可以利用所有这些令牌进行注意力计算。接下来,让我们首先来了解一下Lon ...
Prompt Engineering
Prompt EngineeringPrompt Engineering, 也被称为上下文提示,是指在不更新模型权重的情况下,与LLM(语言模型)进行交互以引导其产生期望输出的方法。它是一门实证科学,提示工程方法的效果在不同模型之间可能会有很大的差异,因此需要进行大量的实验和试探。
本文仅关注自回归语言模型的提示工程,不涉及填空测试、图像生成或多模态模型。在本质上,提示工程的目标是实现模型的对齐和可操控性。您可以查阅我之前关于可控文本生成的帖子。
基本提示方法zero-shot学习和few-shot学习是两种最基本的提示模型方法,这些方法由许多LLM论文首创,并且通常用于评估LLM性能。
zero-shot学习zero-shot学习是将任务文本直接输入模型并要求获得结果。
(所有情感分析示例来自于SST-2数据集)
12Text: i'll bet the video game is a lot more fun than the film.Sentiment:
few-shot学习few-shot学习通过提供一组高质量的示例演示,每个示例都包含目标任务的输入和期望输出。当模型首先看到 ...
ColoredLogger-彩色打印日志到控制台并记录到文件
彩色打印日志到控制台并记录到文件本文档介绍了一个名为 ColoredLogger 的日志记录器类,它可以根据不同的消息类型以不同的颜色打印日志,并将日志记录到文件中。该类使用了 colorama 库来实现在控制台中显示带颜色的文本。为了使控制台输出的日志更加易于阅读和理解,我们通常会使用彩色的输出。同时,将日志记录到文件中可以方便我们后续的调试和分析。在Python中,我们可以使用logging和colorama库来实现这样的功能。
以下是一个如何使用这两个库的详细介绍。
功能
可以根据不同的消息类型以不同的颜色打印日志消息。
将日志消息记录到文件中,使用标准的 logging 模块进行记录。
在控制台中显示带颜色的日志消息。
原理logging库提供了强大的日志记录功能,允许我们将日志记录到控制台、文件或者其他输出设备,并提供了详细的配置选项。
colorama库可以使我们在控制台输出彩色的文本。它提供了对ANSI颜色编码的支持,可以在几乎所有的平台和终端中使用。
我们先初始化colorama,然后定义了一个ColoredLogger类,它包含了各种彩色的输出样式和对应的日志级别 ...
详解梯度下降算法
梯度梯度是一个在微积分中使用的重要概念,它用于衡量函数在给定点上的方向导数沿各个方向最大时的最大值。对于一个标量函数,梯度的方向是函数增长最快的方向,而梯度的反方向则是函数减小最快的方向。
定义对于在点$x \in \mathbb{R}^n$可微的函数$f: \mathbb{R}^n \rightarrow \mathbb{R}$,其梯度被定义为一个向量,其各个分量为函数在该点上的偏导数。对于函数$f(x_1, x_2, …, x_n)$,它的梯度可以表示为:
$$\nabla f(x) = \left[ \frac{\partial f}{\partial x_1}, \frac{\partial f}{\partial x_2}, …, \frac{\partial f}{\partial x_n} \right]^T$$
这里,$\nabla f(x)$表示$f(x)$的梯度,$\frac{\partial f}{\partial x_i}$表示$f$关于$x_i$的偏导数,$T$表示矩阵转置。
物理含义梯度有一个重要的物理含义。在二维空间中,可以把函数$f(x, y)$看作地形 ...
Hexo博客添加可交互式足迹地图
在Blog中添加可交互式足迹地图这篇文章将向你展示如何在基于Hexo和Next的GitHub Pages博客中创建一个交互式的世界地图页面,这个地图将展示你曾经访问过的城市,你可以根据你对每个城市访问的频率在地图上显示不同颜色的标记,你还可以点击这些标记来显示更多关于这个城市的信息。
准备工作你需要安装以下工具:
Node.js 和 NPM
Hexo
确保你的博客已经被部署到GitHub Pages,并且你在本地的开发环境已经正确设置。
步骤一:创建新页面在你的Hexo项目的根目录下,运行以下命令:
1hexo new page "travel"
这个命令将在source目录下创建一个名为”travel”的文件夹,并在该文件夹下创建一个index.md文件。
步骤二:安装 Leaflet在你的Hexo项目的根目录下,运行以下命令:
1npm install leaflet
然后在index.md文件的最顶部引入Leaflet的CSS和JS:
123456789---title: Travel---<!-- 引入 Leaflet 的 CSS --><link r ...
SUP Experience
Stand-Up Paddleboarding (SUP)Stand-Up Paddleboarding (SUP) is a water activity that originated from modern surfing in Hawaii. Surfers stand on a floating board and use a single paddle to propel themselves forward in the water. This sport has rapidly gained popularity worldwide in recent years and has become a beloved water activity for many people.
Experience 🌊If you are interested in stand-up paddleboarding, consider taking a dedicated course to learn and experience this activity. I recently p ...
SUP体验
立式单桨冲浪 (SUP)立式单桨冲浪 (Stand-Up Paddleboarding, 简称SUP) 是一项起源于夏威夷现代冲浪运动的水上活动。冲浪者站在漂浮在水面上的木板上,通过使用单桨来推动自己在水中前进。这项运动近年来在世界各地迅速流行起来,成为许多人喜爱的水上活动之一。
体验 🌊如果你对立式单桨冲浪感兴趣,不妨考虑参加一个专门的课程来了解和体验这项活动。我最近参加了一个位于新加坡东海岸的立式单桨冲浪课程,以下是我的体验分享。
课程持续了两个小时,教练非常详细地介绍了SUP的基本知识和技巧。他们解释了如何站在板上保持平衡,正确使用桨来推动自己在水中前进,以及如何转向和控制板的方向。虽然一开始我感到有些不稳定,但很快就适应了这种站立的姿势,并且能够轻松地掌握桨的使用技巧。
.fancybox {
display: inline-block;
}
课程的安排非常合理,适合初学者。在教练的指导下,我能够很快上手,并且只掉进海里一次 😅,这让我感到有些尴尬。不过,SUP是一项非常有趣和挑战性的活动,掉进水里也是学习过程中的一部分。我相信随着 ...
SUP体验
立式单桨冲浪 (SUP)立式单桨冲浪 (Stand-Up Paddleboarding, 简称SUP) 是一项起源于夏威夷现代冲浪运动的水上活动。冲浪者站在漂浮在水面上的木板上,通过使用单桨来推动自己在水中前进。这项运动近年来在世界各地迅速流行起来,成为许多人喜爱的水上活动之一。
体验 🌊如果你对立式单桨冲浪感兴趣,不妨考虑参加一个专门的课程来了解和体验这项活动。我最近参加了一个位于新加坡东海岸的立式单桨冲浪课程,以下是我的体验分享。
课程持续了两个小时,教练非常详细地介绍了SUP的基本知识和技巧。他们解释了如何站在板上保持平衡,正确使用桨来推动自己在水中前进,以及如何转向和控制板的方向。虽然一开始我感到有些不稳定,但很快就适应了这种站立的姿势,并且能够轻松地掌握桨的使用技巧。
.fancybox {
display: inline-block;
}
课程的安排非常合理,适合初学者。在教练的指导下,我能够很快上手,并且只掉进海里一次 😅,这让我感到有些尴尬。不过,SUP是一项非常有趣和挑战性的活动,掉进水里也是学习过程中的一部分。我相信随着 ...
DSSM 模型详解
DSSM (Deep Structured Semantic Models) 模型详解一、模型简介DSSM(Deep Structured Semantic Models)是微软提出的一个深度学习模型,用于学习文本的语义表达。DSSM首次在信息检索领域中被提出,用于处理查询-文档匹配任务,但很快被应用到了各种其他场景,如广告点击率预测,推荐系统等。
二、模型结构DSSM模型主要由三个部分构成:
输入层:在这一层,将输入的文本(查询或者文档)转化为词向量。
深度神经网络:输入层之后是一系列全连接层,它们学习输入的语义表示。
输出层:最后,输出层将深度神经网络的输出转化为概率分布,用于表示查询与文档之间的语义匹配度。
三、在推荐系统中的应用DSSM可应用在推荐系统中,它可以学习用户的行为特征与物品特征的语义匹配度,用于评估用户对物品的兴趣。在实际应用中,通常将用户行为序列作为查询,将候选物品的特征作为文档,通过DSSM学习用户的实时兴趣,并将兴趣与物品的匹配度用于排序。
四、模型实现以下是一个使用PyTorch实现的DSSM模型的示例:
123456789101112131415161 ...