2024-10-13
深度学习
00

为什么在获取输入词向量之后需要对矩阵乘以embedding size的开方?

在自然语言处理(NLP)任务中,词向量(Word Embedding)是一种将单词表示为固定大小向量的技术,通常使用的方法包括Word2Vec、GloVe和Transformer中的embedding层。无论使用哪种方法,将输入转化为词向量后,通常需要对其做归一化或缩放处理,而其中一种常见操作是在获取词向量矩阵后,乘以embedding size的开方。本文将深入探讨这种操作的原因与意义,并通过公式和代码示例详细解释。

2024-10-13
深度学习
00

为什么在多头注意力中需要对每个 Head 进行降维

在 Transformer 模型中,多头注意力机制(Multi-Head Attention)是一个非常重要的组成部分。它通过并行地计算多个注意力头(Attention Head)来增强模型的表示能力。然而,为了控制计算复杂度和内存使用量,通常对每个注意力头进行降维。本文将详细分析这种设计背后的原因,并通过公式和代码展示多头注意力的实现过程。

2024-10-13
深度学习
00

如何在计算 Attention Score 时对 Padding 做 Mask 操作

在使用神经网络进行自然语言处理任务时,输入序列通常会有不同的长度。为了使得这些序列能够批处理输入,通常需要对较短的序列进行填充(Padding)操作。然而,在计算 Attention Score 时,这些填充部分不应参与运算。本文将详细讲解如何在计算 Attention Score 时对 Padding 做 Mask 操作。

2024-10-13
深度学习ban
00

该文章已加密,点击 阅读全文 并输入密码后方可查看。

2024-10-13
深度学习
00

Transformer中的Attention机制:为何选择点乘而非加法?

Transformer模型在自然语言处理中的广泛应用主要得益于其核心机制——Attention机制。Attention机制通过衡量不同单词之间的相关性,使模型能够捕捉长距离依赖关系。在Attention计算中,通常选择使用**点乘(Dot Product)**来衡量Query和Key之间的相关性。一个常见的问题是:为什么选择点乘而不是加法?本文将详细探讨两者在计算复杂度和效果上的差异,并给出相关代码示例。

2024-10-13
深度学习
00

为什么Transformer中Q和K使用不同的权重矩阵生成?

在Transformer架构中,自注意力机制依赖于查询(Query)、键(Key)、和值(Value)之间的关系。查询和键是生成注意力权重的关键元素,而值则是实际进行加权的元素。我们具体来分析为什么在生成Q和K时要使用不同的权重矩阵,而不能直接用同一个值进行自身点乘。

2024-10-13
深度学习
00

Transformer 为什么使用多头注意力,而不是单头?

在现代深度学习中,Transformer 模型的多头注意力(Multi-Head Attention)机制被证明是自然语言处理和其他领域中极其强大的工具。一个常见的问题是:为什么 Transformer 使用多头注意力,而不是简单地使用一个头的注意力? 本文将从公式推导和代码实现的角度进行详细且专业的讲解。

2024-10-12
提示词工程
00

提示词:推荐博客的软文撰写者

2024-10-12
深度学习
00

如何理解多模态模型Qwen2-VL中的MIN_PIXELS和MAX_PIXELS

在多模态模型Qwen2-VL中,MIN_PIXELSMAX_PIXELS 的设定决定了图像输入的最小和最大像素限制。这些设定帮助模型在保证图像质量的前提下,控制计算成本和资源消耗。本文将结合源码详细介绍这些变量的意义及其实现细节。完整代码可以在 Qwen2-VL的GitHub仓库 中找到。

2024-10-11
课程学习
00
2024-10-11
深度学习
00

项目概述

本项目旨在构建一个基于InternVL2-40B模型的多模态API服务。该服务使用Docker环境,利用lmdeploy库进行模型部署,并通过API接口接收图像和文本输入,生成描述性文本输出。

环境准备

相关资源链接

2024-10-11
课程学习
00

文献是记录有( )和( )的一切载体【多选】

image.png

按照国际标准,“文献”的定义是“记录有知识和信息的一切载体”,按载体说,包括纸草文献、泥板文献、甲骨文献、金文文献、石刻文献、简牍文献、纸质文献、音像文献、机读文献等。

2024-10-10
深度学习ban
00

该文章已加密,点击 阅读全文 并输入密码后方可查看。

2024-10-10
深度学习
00

vllm 的 api方式 【显存占用有问题】

启动镜像并安装必要环境

首先,使用以下命令启动 Docker 镜像,并挂载指定目录到容器中:

bash
展开代码
docker run --gpus all -it --shm-size 16G --rm -v /root/xiedong/Qwen2-VL-7B-Instruct:/Qwen2-VL-7B-Instruct --net host qwenllm/qwenvl:2-cu121 bash

接下来,在容器内安装必要的依赖包:

bash
展开代码
pip install git+https://github.com/huggingface/transformers@21fac7abba2a37fae86106f87fcf9974fd1e3830 pip install accelerate pip install -U qwen-vl-utils # 根据你的 CUDA 版本安装 vllm CUDA_VERSION=cu121 pip install 'vllm==0.6.1' --extra-index-url https://download.pytorch.org/whl/${CUDA_VERSION}
2024-10-10
Python
00

如何在 Linux 上使用 Python 快速搭建 HTTP 服务来共享图片

在许多开发和数据处理场景中,快速共享文件,尤其是图片文件,是一项重要的需求。本文将介绍如何在 Linux 系统上使用 Python 的内置库快速搭建一个 HTTP 服务,以便其他服务器或客户端可以通过 URL 访问和下载指定目录中的图片。

为什么选择 Python 的 HTTP 服务?

Python 是一种简单易学且功能强大的编程语言,其内置的 http.server 模块可以帮助我们轻松创建一个 HTTP 服务器。与其他复杂的网络框架相比,http.server 提供了一个快速的解决方案,适合需要临时文件共享或开发测试的场景。

2024-10-09
Linux运维
00

使用 Docker 容器下载 laion_aesthetics_1024_33M_9.parquet 文件示例

我下载了一个示例文件 laion_aesthetics_1024_33M_9.parquet 并存放在 /ssd/xiedong/parquet_test 目录中,接下来,我将通过启动 Docker 容器来完成该文件的数据下载。

核心思路是:每个容器配备一个配置文件,配置文件内定义了下载设置(如输入和输出文件位置等)。容器启动后会依据配置文件执行任务,任务完成后容器自动关闭。

2024-10-09
深度学习
00

下载并配置Qwen2-VL-72B-Instruct-GPTQ-Int4模型

首先,下载Qwen2-VL-72B-Instruct-GPTQ-Int4模型到指定路径(例如:/root/xiedong/Qwen2-VL-72B-Instruct-GPTQ-Int4)。该路径可以根据实际情况调整。

2024-10-09
深度学习
00

部署 Qwen2-VL-72B-Instruct-GPTQ-Int4 模型

在之前的文章 【深度学习】LLaMA-Factory部署Qwen2-VL 中,已经介绍了如何部署未量化的模型。本篇将讨论如何部署量化过的模型,即 Qwen2-VL-72B-Instruct-GPTQ-Int4。

2024-10-09
Linux运维
00

AutoGPTQ 安装教程与问题解决

参考教程:

官方教程地址:[AutoGPTQ 教程](https://github.com/AutoGPTQ/AutoGPTQ/blob/main/README_zh.md

2024-10-09
单片机
00

初始化:

c
展开代码
void OLED_Init(void) { oled_port_init(); delay(4000); //初始化之前的延时很重要! OLED_WR_Byte_(0xAE, OLED_CMD); //--display off OLED_WR_Byte_(0x00, OLED_CMD); //---set low column address OLED_WR_Byte_(0x10, OLED_CMD); //---set high column address OLED_WR_Byte_(0x40, OLED_CMD); //--set start line address OLED_WR_Byte_(0xB0, OLED_CMD); //--set page address OLED_WR_Byte_(0x81, OLED_CMD); // contract control OLED_WR_Byte_(0xFF, OLED_CMD); //--128 OLED_WR_Byte_(0xA1, OLED_CMD); //set segment remap OLED_WR_Byte_(0xA6, OLED_CMD); //--normal / reverse OLED_WR_Byte_(0xA8, OLED_CMD); //--set multiplex ratio(1 to 64) OLED_WR_Byte_(0x3F, OLED_CMD); //--1/32 duty OLED_WR_Byte_(0xC8, OLED_CMD); //Com scan direction OLED_WR_Byte_(0xD3, OLED_CMD); //-set display offset OLED_WR_Byte_(0x00, OLED_CMD); // OLED_WR_Byte_(0xD5, OLED_CMD); //set osc division OLED_WR_Byte_(0x80, OLED_CMD); // OLED_WR_Byte_(0xD8, OLED_CMD); //set area color mode off OLED_WR_Byte_(0x05, OLED_CMD); // OLED_WR_Byte_(0xD9, OLED_CMD); //Set Pre-Charge Period OLED_WR_Byte_(0xF1, OLED_CMD); // OLED_WR_Byte_(0xDA, OLED_CMD); //set com pin configuartion OLED_WR_Byte_(0x12, OLED_CMD); // OLED_WR_Byte_(0xDB, OLED_CMD); //set Vcomh OLED_WR_Byte_(0x30, OLED_CMD); // OLED_WR_Byte_(0x8D, OLED_CMD); //set charge pump enable OLED_WR_Byte_(0x14, OLED_CMD); // OLED_Clear(); OLED_WR_Byte_(0xAF, OLED_CMD); //--turn on oled panel }