前言
之前很多博文是写有关分布式训练过程,即将模型放到多个 GPU 上进行训练,而对于一些跑在 CPU 上的密集型任务处理时,应该使用 multiprocessing
模块进行处理。Python 的 multiprocessing
模块提供了一个与线程类似的 API,用于创建和管理进程。多进程可以利用多核 CPU 的优势,执行 CPU 密集型任务时可以显著提高性能,因为每个进程可以在不同的 CPU 核心上运行。
之前很多博文是写有关分布式训练过程,即将模型放到多个 GPU 上进行训练,而对于一些跑在 CPU 上的密集型任务处理时,应该使用 multiprocessing
模块进行处理。Python 的 multiprocessing
模块提供了一个与线程类似的 API,用于创建和管理进程。多进程可以利用多核 CPU 的优势,执行 CPU 密集型任务时可以显著提高性能,因为每个进程可以在不同的 CPU 核心上运行。
在自然语言处理(NLP)和机器学习领域,特别是在使用预训练的大语言模型(如BERT、GPT、Llama等)前,往往需要用特定的 tokenizer ,将原始语料文本分解成一个个 tokens ,以让模型理解,这一过程被称为 tokenization,tokenization 是文本预处理的关键步骤,它影响着模型的性能,"special tokens" 是指一些具有特殊意义的 tokens,它们不对应于实际的单词或短语,但在模型的架构和处理流程中扮演重要角色。例如,下面是一些常见的特殊标记及其用途:
DeepSpeed 是一个由 Microsoft 开发的深度学习开源优化工具,它横跨模型训练、推理和模型压缩等领域。在本文中,我将只关注与训练相关的优化,而推理和压缩部分将留待今后探讨。如前文所述,我们可以通过在多个设备上复制整个模型(数据并行 Data Parallelism)或将模型拆分,并将其不同部分存储在不同设备上(模型并行 Model Parallelism / 流水线并行 Pipeline Parallelism)来执行分布式训练。一般来说,DP 比 MP 的计算效率更高;但是,如果模型太大,单个 GPU 设备的可用显存无法容纳,那么只能使用模型并行。
在训练深度学习模型时,常常遇到两个问题:1. 训练速度过慢,2. GPU计算资源(显存)不足。为了解决这两个问题,我们常常选择分布式训练的策略,将模型训练任务分布到多个GPU,甚至多个节点上的多个GPU。Pytorch 与 tensorflow 分布提供了一定的分布式训练策略。 本文章主要介绍 Microsoft 开发的 DeepSpeed library,看该技术是透过何种优化让 deep learning 的训练过程有更高的效率同时使用更少的 GPU 显存。
我已经有一年多没有更新自己的博客了,说来实在可惜,原本让我引以为傲的博客网站成为了久久不变的一堆代码,甚至让我自己都不再敢点了进来。这期间,不断有更新博客的想法,但几个问题一直困扰着我:
线性模型(linear model)是通过学习一个属性的线性组合来进行预测的函数。线性模型形式简单,可解释性高,蕴含着机器学习中的重要思想,所以将线性模型列为机器学习的第一个模型。
陈坤
人生苦短,我用 Python!
作为一门以简洁、优美为代表的语言,Python 受到众多开发者的喜爱。相信有部分 Python 的开发者们,知道“Python 之禅”即“The Zen of Python”,通过 import this
语句就可以看到,Python 创建者对 Python 语言书写规范的建议:
作为一名 LaTeX 深度爱好者,却因为常常忘记 LaTex 相关语法而被迫停止写作去浪费一定的时间查询相关内容,但长久以来,我发现自己常常查询的也就是这些常用而难以熟记的语法,现将其总结如下:
问题的理想解法,理想解法亦称为 TOPSIS 法,是一种有效的多指标评价方法。这种方法。通过构造评价问题的正理想解和负理想解, 即各指标的最优解和最劣解,通过计算每个方案到理想方案的相对贴近度,即靠近正理想解和远离负理想解的程度,来对方案进行排序,从而选出最优方案。