大语言模型的推理加速方案

验证码_哔哩哔哩 1. 大语言模型的推理加速方案 1.1. 为什么KV Cache不在training中使用只在inference中使用 回答:因为训练(Training)和推理(Inference)的计算方式完全不同。 ...

2025年11月4日 · 13 分钟 · sun510001

Ubuntu 批量压缩文件夹

安装软件 sudo apt-get update sudo apt-get install parallel sudo apt-get install pigz 建立一个可执行文件,如compress_dirs.sh #!/bin/bash # Function to compress a directory using pigz compress_dir() { local dir=$1 tar -cf - "$dir" | pigz > "${dir}.tar.gz" } export -f compress_dir # Check if at least one argument (the root directory) is provided if [ "$#" -lt 1 ]; then echo "Usage: $0 root_directory [exclude_folder1 exclude_folder2 ...]" exit 1 fi # Get the root directory root_directory=$1 shift # Get the folders to exclude exclude_folders=("$@") # Build the find command with exclusion criteria find_command="find \"$root_directory\" -maxdepth 1 -type d -not -path '$root_directory'" for folder in "${exclude_folders[@]}"; do find_command+=" -not -name \"$(basename "$folder")\"" done # Execute the find command and compress the directories using parallel with progress bar and increased parallelism eval "$find_command" | parallel --bar compress_dir 使用方法 ...

2024年6月10日 · 1 分钟 · sun510001

树莓派5 编译安装opencv和gstreamer插件

基于以下文章使用 树莓派4B 安装opencv完整教程基于python3(各种错误解决)-腾讯云开发者社区-腾讯云 下载opencv_4.9.0, opencv_contrib_4.9.0, 在opencv文件夹下建立编译地址 cd opencv mkdir build cd build 修改cmake命令 cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_C_EXAMPLES=ON \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D OPENCV_EXTRA_MODULES_PATH=/home/sun/Desktop/camera/downloads/opencv_contrib/modules \ -D BUILD_EXAMPLES=ON \ -D WITH_LIBV4L=ON \ -D WITH_GSTREAMER=ON \ -D PYTHON3_EXECUTABLE=/usr/bin/python3.11 \ -D PYTHON_INCLUDE_DIR=/usr/include/python3.11 \ -D PYTHON_LIBRARY=/usr/lib/aarch64-linux-gnu/libpython3.11.so \ -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include \ .. cmake结束的时候会打印出, 要安装的opencv的插件. 安装 make make install 查看安装是否成功 import cv2 print(cv2.__version__) print(cv2.getBuildInformation()) ...

2024年6月1日 · 1 分钟 · sun510001

傅里叶变换

B站首发!草履虫都能看懂的【傅里叶变换】讲解,清华大学李永乐老师教你如何理解傅里叶变换,辨清美颜和变声原理,!!_哔哩哔哩_bilibili 1. 傅里叶级数 傅里叶级数可以将 所有周期性函数 转换为 三角函数的组合. 周期性函数可以使用相位, 振幅和频率这三个参数表示. $$ \begin{align*} f(t)&=\frac{a_0}{2}+\sum a_n \cdot \sin(n\omega t+\varphi_n) \\&= \frac{a_0}{2}+\sum a_n\sin n\omega t + \sum b_n\cos n\omega t \\ &\Rightarrow 1\cdot \sin n\omega t \cdot \cos n\omega t \end{align*} $$ 经过变换, 函数就可以用 $1,\sin n\omega t , \cos n\omega t$ 这三个参数表示, 这三个参数互为标准正交基. 2. 傅里叶变换 傅里叶变换可以表示所有函数 (非周期函数可以理解为长度无限长的周期函数), 首先要搞懂欧拉公式 ...

2024年3月7日 · 2 分钟 · sun510001

卡尔曼滤波算法和应用

1. 状态转移矩阵 从当前状态到下一个状态的转换. 例子: 假设跟踪车辆形式 车辆的状态矩阵, 位置变量 $p_t$; 速度变量 $v_t$. $$ x_t=\begin{bmatrix} p_t \\ v_t \end{bmatrix} $$ 假设车辆有加速度变量 $u_t$; 这里 $\Delta t$ 是单位时间; 这里就可以从上一个单位时间的 $p_{t-1}v_{t-1}$ 推导出当前的 $p_tv_t$. $$ \begin{aligned}p_t=&p_{t-1}+v_{t-1}\times\Delta t+u_t\times\frac{\Delta t^2}{2}\\v_t=&v_{t-1}+u_t\times\Delta t\end{aligned} $$ 这里可以发现输出变量是输入变量的线性组合, 所以卡尔曼滤波器是线性滤波器, 只能描述状态与状态之间的线性关系. 由于是线性关系, 所以可以将公式写成矩阵的形式. $$ \left[\begin{array}{c}p_t \\v_t\end{array}\right]=\left[\begin{array}{cc}1 & \Delta t \\0 & 1\end{array}\right]\left[\begin{array}{c}p_{t-1} \\v_{t-1}\end{array}\right]+\left[\begin{array}{c}\frac{\Delta t^2}{2} \\\Delta t\end{array}\right] u_t $$ 提取公式中带时间参数矩阵之后, 就可以简化公式获得卡尔曼滤波器中的状态预测公式. $$ \begin{aligned}&F_t=\left[\begin{array}{cc}1 & \Delta t \\0 & 1\end{array}\right], B_t=\left[\begin{array}{c}\frac{\Delta t^2}{2} \\\Delta t\end{array}\right]\\&\hat{x}_t^{-}=F_t \hat{x}_{t-1}+B_t u_t\end{aligned} \quad\quad \text{(1)} $$ 这里的 $\hat{x}_t^{-}$ 表示, 这个值有 hat 符号是预测值, 并不是真实值; 右上角减号表示这个值是从 t-1 时刻的参数估计而来, 还需要 t 时刻的观测值进行修正. ...

2024年2月13日 · 7 分钟 · sun510001

Notion Mermaid 绘制思维导图流程图

Mermaid 可以画很多类型的图, 详细可以查看官方说明书 About Mermaid | Mermaid 1. 调出 Mermaid 绘制界面 在 Notion 页面中输入/code 插入代码块. 左上角代码类型选择 Mermaid, 右边的 Split 表示代码和思维导图同时表示, 类似于 Markdown 编辑器一边编辑一边预览. ...

2024年2月12日 · 2 分钟 · sun510001

Windows 安装 WSL2 Ubuntu

1. 安装Ubuntu 首先检查windows是否可以更新, 必须保持在可以更新的状态才可以下载ubuntu镜像. 管理员模式打开终端, 查看wsl可以安装的linux版本 PS C:\wsl_ubuntu> wsl --list --online 以下是可安装的有效分发的列表。 请使用“wsl --install -d <分发>”安装。 NAME FRIENDLY NAME Ubuntu Ubuntu Debian Debian GNU/Linux kali-linux Kali Linux Rolling Ubuntu-18.04 Ubuntu 18.04 LTS Ubuntu-20.04 Ubuntu 20.04 LTS Ubuntu-22.04 Ubuntu 22.04 LTS OracleLinux_8_5 Oracle Linux 8.5 OracleLinux_7_9 Oracle Linux 7.9 SUSE-Linux-Enterprise-Server-15-SP4 SUSE Linux Enterprise Server 15 SP4 openSUSE-Leap-15.4 openSUSE Leap 15.4 openSUSE-Tumbleweed openSUSE Tumbleweed 安装ubuntu 如果windows无法更新这里会出现错误代码: 0x80070005. PS C:\wsl_ubuntu> wsl --install -d Ubuntu-20.04 正在安装: Ubuntu 20.04 LTS 已安装 Ubuntu 20.04 LTS。 正在启动 Ubuntu 20.04 LTS… 启动ubuntu 安装完可能出现报错: WslRegisterDistribution failed with error: 0x800701bc 原因: linux内核没有更新. https://github.com/microsoft/WSL/issues/5393 解决方法: 更新linux内核 ...

2024年1月20日 · 5 分钟 · sun510001

不同任务下主干网络的选择

论文PDF: Battle of the Backbones: A Large-Scale Comparison of Pretrained Models across Computer Vision Tasks 爱可可 AI 前沿推介(11.2) 动机 当前计算机视觉系统的构建通常依赖于预训练或随机初始化的特征提取器作为骨干网络, 而选择合适的骨干网络是一个困难的问题, 因此需要一个方法来比较不同的预训练模型, 以帮助从业者做出明智的选择. ...

2023年11月6日 · 2 分钟 · sun510001

一些数据预处理的方法

1. 数据的预处理 对于缺失值 缺失量少,均值,中位数等填充; 缺失量多,离散化; 拟合模型填充. 对于异常值 基于统计的方法:3 sigma 聚类方法 isolation forest 等算法. 2. 特征工程 连续特征, 离散特征 特征组合, 生成新的特征 特征的归一化 (Normalization) 对于在一定范围内的特征 eg: 身高 线性函数归一化 (Min-Max Scaling) $X_{norm}=\frac{X-X_{min}}{X_{max}-X_{min}}$ 零均值归一化 (Z-Score Normalization) = 标准化 (Standardization) $z=\frac{x-\mu}{\sigma}$ $\mu$: 均值. $\sigma$: 标准差 $\sigma = \sqrt{\frac{\sum (x_i-\mu)^2}{N}}$ 优点: 在变量更新速度不一致的情况下, 归一化能更好的实现梯度下降 线性变换不会改变原始数据的数值排序 类别型特征 (Categorical Feature) 对于只在有限选项内取值的特征 eg: 性别, 血型 特征的选择 Filter(过滤法) 按照发散性或相关性对各个特征进行评分, 设定阈值或者待选择特征的个数进行筛选 就是, 算特征与特征之间的关系 Pearson()皮尔森相关系数: 单个变量之间的线性相关性,结果的取值区间为[-1,1] from scipy.stats import pearsonr 优点: 速度快 缺点: 只对线性关系敏感 卡方验证 类别型变量对类别型变量的相关性 最大信息系数 maximal information coefficient (MIC) from minepy import MINE Wrapper(包装法) 根据目标函数(往往是预测效果评分), 每次选择若干特征, 或者排除若干特征 Embedded(嵌入法) 先使用某些机器学习的模型进行训练, 得到各个特征的权值系数, 根据系数从大到小选择特征(类似于Filter, 只不过系数是通过训练得来的) word2vec 特征的降维

2023年10月7日 · 2 分钟 · sun510001

行为识别模型简介

1. 行为识别 Human Action Recognition (HAR) 行为识别模型有两个方向: 第三人称动作识别和第一人称动作识别. 使用的各方向和对应的方法大致如下图, 本篇文章只介绍第三人称动作识别 RGB 模态. 详细可以参考调研论文. [1] ...

2023年9月8日 · 7 分钟 · sun510001

OCR文本识别和CRNN算法简介

1. CRNN算法介绍 CRNN 全称为 Convolutional Recurrent Neural Network 主要用于端到端地对不定长的文本序列进行识别, 不用先对单个文字进行切割, 而是将文本识别转化为时序依赖的序列学习问题, 就是基于图像的序列识别. 对于无字典和有字典的场景都有较好的表现. (不过无字典精度差有字典10%以上) 模型结构简单, 性能比Transformer等模型更好. 2. 传统的文字识别模型 有些模型基于DCNN 缺点: 这些模型需要一个很强的词语检测模型. 需要将图片中的词语准确检测出来. 需要做一个大范围的分类(英文单词有90K个, 中文1百万) 3. 模型结构 ...

2023年8月26日 · 7 分钟 · sun510001

插值算法介绍

Enzo_Mi的个人空间-Enzo_Mi个人主页-哔哩哔哩视频 1. 双线性插值 双线性插值, 将目标尺寸图像的每个像素点映射回原图, 各像素点的值由它周围4个原图像素点进行线性插值获得. 1.1. 角对齐和边对齐区别 角对齐使用像素的中心点进行对齐(分割左右距离最远的中心点). 边对齐使用像素的边缘进行对齐(分割左右距离最远像素边缘). 下图(红点是原像素中心点, $(0,0)$ 点是左上角第一个红点; 蓝点是目标对齐点): ...

2023年8月12日 · 3 分钟 · sun510001