跳至主要內容
深度学习
介绍一些机器学习、深度学习、LLM方向的算法理解(正在更新中)
建模算法
介绍一些数学建模或者传统数学算法模型
技巧总结
介绍一些科技、技术、工具的使用和技巧
日常感想
记录一下平日的所思所想,感触和生活记录
支教之旅
介绍在2022年和2023年参加的支教心里感触和记录
杂七杂八
记录除了这些东西之外的一些其他杂七杂八不好分类的东西
一套用于处理有序数据集合的 Python multiprocessing 多进程数据分割使用范例

前言

之前很多博文是写有关分布式训练过程,即将模型放到多个 GPU 上进行训练,而对于一些跑在 CPU 上的密集型任务处理时,应该使用 multiprocessing 模块进行处理。Python 的 multiprocessing 模块提供了一个与线程类似的 API,用于创建和管理进程。多进程可以利用多核 CPU 的优势,执行 CPU 密集型任务时可以显著提高性能,因为每个进程可以在不同的 CPU 核心上运行。


CK...大约 3 分钟技巧总结技巧Python多进程分布式开发
谈谈 Tokenization 如何注入攻击防御,防止原语料中存在 special tokens 被直接编码

前言

在自然语言处理(NLP)和机器学习领域,特别是在使用预训练的大语言模型(如BERT、GPT、Llama等)前,往往需要用特定的 tokenizer ,将原始语料文本分解成一个个 tokens ,以让模型理解,这一过程被称为 tokenization,tokenization 是文本预处理的关键步骤,它影响着模型的性能,"special tokens" 是指一些具有特殊意义的 tokens,它们不对应于实际的单词或短语,但在模型的架构和处理流程中扮演重要角色。例如,下面是一些常见的特殊标记及其用途:


CK...大约 8 分钟机器、深度学习深度学习模型训练Tokenization
详解 DeepSpeed Zero 的各个 Stage 状态及日常使用

引言

DeepSpeed 是一个由 Microsoft 开发的深度学习开源优化工具,它横跨模型训练、推理和模型压缩等领域。在本文中,我将只关注与训练相关的优化,而推理和压缩部分将留待今后探讨。如前文所述,我们可以通过在多个设备上复制整个模型(数据并行 Data Parallelism)或将模型拆分,并将其不同部分存储在不同设备上(模型并行 Model Parallelism / 流水线并行 Pipeline Parallelism)来执行分布式训练。一般来说,DP 比 MP 的计算效率更高;但是,如果模型太大,单个 GPU 设备的可用显存无法容纳,那么只能使用模型并行。


CK...大约 14 分钟机器、深度学习深度学习模型训练分布式训练DeepSpeed
深度学习模型训练显存占用及DP、MP、PP分布式训练策略

引言

在训练深度学习模型时,常常遇到两个问题:1. 训练速度过慢,2. GPU计算资源(显存)不足。为了解决这两个问题,我们常常选择分布式训练的策略,将模型训练任务分布到多个GPU,甚至多个节点上的多个GPU。Pytorch 与 tensorflow 分布提供了一定的分布式训练策略。 本文章主要介绍 Microsoft 开发的 DeepSpeed library,看该技术是透过何种优化让 deep learning 的训练过程有更高的效率同时使用更少的 GPU 显存。


CK...大约 9 分钟机器、深度学习深度学习模型训练分布式训练
如何不中断连接保持linux服务器持续运行 —— screen 使用介绍

在 linux 服务器上跑模型的时候,有时会在终端会话中持续了一段时间后超时断开,或者因为意外情况断网,如果正常在命令行终端执行程序时,此时会中断程序的进行,这很恼火,这就意味着要让程序持续运行,就必须得保持主机和服务器的连接,程序跑一晚上,主机就得开一晚上,那我还要服务器干什么,为了解决这个问题, screen 是个及其有用的方法。


CK...大约 6 分钟技巧总结linux服务器技巧
如何理解深度学习领域中的端到端 (end to end)

前情提要

我已经有一年多没有更新自己的博客了,说来实在可惜,原本让我引以为傲的博客网站成为了久久不变的一堆代码,甚至让我自己都不再敢点了进来。这期间,不断有更新博客的想法,但几个问题一直困扰着我:


CK...大约 11 分钟机器、深度学习深度学习概念理解