动手学深度学习 v2.04 索引和切片 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.1.5 节省内存 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 2.1.6 转换为其他Python对象 计算机 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 12.4.2 内存 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 12.4.3 存储器 org/wiki/Alan_Turing 22 https://en.wikipedia.org/wiki/Donald_O._Hebb 1.5. 深度学习的发展 33 表1.5.1: 数据集vs计算机内存和计算能力 年代 数据规模 内存 每秒浮点运算 1970 100 (鸢尾花卉) 1 KB 100 KF (Intel 8080) 1980 1 K (波士顿房价) 100 KB 1 MF (Intel 80186)0 码力 | 797 页 | 29.45 MB | 1 年前3
从推荐模型的基础特点看大规模推荐类深度学习系统的设计 袁镱1:短时间内只有部分item和user 被命中,只有部分参数被⽤到 参数按需 获取/更新 Storage 异步训练流⽔线和多级存储:提升性能,降低内存成本 � 问题: � Learner线程中参数拉取和参数更新对性能影响⼤ � 内存成为主要资源瓶颈。由于需要等待全部参数 就绪,Parameter Server难以利⽤速度慢的存储 介质 样本读取 样本解析 参数拉 取 训练 Batch⼊队列 Batch⼊队列 � 效果: � 在不影响训练效果的情况下,降低参数准备与更新耗时,提 ⾼训练速度。训练耗时下降超50% � 异步storage线程,⽀持基于冷热数据的多级存储。内存消 耗下降30%-70% 磁盘 训练 Lookup+ pooling 算⼦融合 Unique keys Storage 近期训练 参数管理 需保持顺 序,以保证 训练效果 样本读取 显存(A100最⼤80GB)放不下TB级的模型 � GPU多线程并⾏计算能⼒对稀疏数据不友好 � ⽅案 � 原有:内存能够存储的参数->对应的样本量Group � 新增:显存能够存储的参数->对应的样本量Pass � 新增:GPU并⾏操作友好->CSR格式的显存数据访问 SSD磁盘 10TB 全部参数 内存 1TB 即将⽤到的参数 显存 32/40/80GB 正在训练的参数 分布式训练的慢机与同步问题0 码力 | 22 页 | 6.76 MB | 1 年前3
AI大模型千问 qwen 中文文档一个纯 C/C++ 实现,不依赖任何外部库,并且针对 x86 架构提供了 AVX、AVX2 和 AVX512 加速支持。此 外,它还提供了 2、3、4、5、6 以及 8 位量化功能,以加快推理速度并减少内存占用。对于大于总 VRAM 容量的大规模模型,该库还支持 CPU+GPU 混合推理模式进行部分加速。本质上,llama.cpp 的用途在于运行 GGUF(由 GPT 生成的统一格式)模型。欲了解更多详情,请参阅官方 即激活感知权重量化,是一种针对 LLM 的低比 特权重量化的硬件友好方法。而 AutoAWQ 是一个易于使用的工具包,专门用于 4 比特量化模型。相较于 FP16,AutoAWQ 能够将模型的运行速度提升 3 倍,并将内存需求降低至原来的 1/3。AutoAWQ 实现了激活 感知权重量化(AWQ)算法,可用于 LLM 的量化处理。在本文档中,我们将向您展示如何在 Transformers 框 架下使用量化模型,以及如何对您自己的模型进行量化。 、q6_k 和 q8_0 。欲了解更多信息,请访问 llama.cpp 。 1.10 vLLM 我们建议您在部署 Qwen 时尝试使用 vLLM 。它易于使用,且具有最先进的服务吞吐量、高效的注意力键值 内存管理(通过 PagedAttention 实现)、连续批处理输入请求、优化的 CUDA 内核等功能。要了解更多关于 vLLM 的信息,请参阅 论文 和 文档 。 1.10.1 安装 默认情况下,你可以通过0 码力 | 56 页 | 835.78 KB | 1 年前3
【PyTorch深度学习-龙龙老师】-测试版202112概念。张量的视图就是人们理解张量的方式,比如 shape 为[2,3,4,4]的张量?,从逻辑上可 以理解为 2 张图片,每张图片 4 行 4 列,每个位置有 RGB 3 个通道的数据;张量的存储体 现在张量在内存上保存为一段连续的内存区域,它类似于向量的一维结构,无法表达高维 预览版202112 4.7 维度变换 23 数据结构。因此对于同样的存储,可以有不同的维度理解方式,比如上述张量?,可以在 不改变张量的存储的条件下,将张量 5, 6, 7],… [88, 89, 90, 91], [92, 93, 94, 95]]]]) 在存储数据时,内存并不支持这个维度层级概念,只能以平铺方式按序写入内存,因此这 种层级关系需要人为管理,也就是说,每个张量维度结构需要人为跟踪。为了方便表达, 这里把张量 shape 列表中相对靠左侧的维度叫作大维度,shape 列表中相对靠右侧的维度叫 列表中相对靠右侧的维度叫 作小维度,比如[2,4,4,3]的张量中,图片数量维度与通道数量相比,图片数量叫作大维度, 通道数叫作小维度。在优先写入小维度的存储设定下,上述张量的内存布局为 1 2 3 4 5 6 7 8 9 … … … 93 94 95 数据在创建时按着初始的维度顺序写入,改变张量的视图仅仅是改变了张量的理解方 式,并不会改变张量的存储顺序,这在一定程度上是从计算效率考虑的,大量数据的写入0 码力 | 439 页 | 29.91 MB | 1 年前3
TensorFlow on Yarn:深度学习遇上大数据多⼈多服务器使用混乱,计算资源如何划分?� • 没有GPUs集群资源管理和调度(内存、CPU、GPU、 端⼝),集群资源负载不均� • 训练数据⼿动分发,训练模型⼿动保存� • 进程遗留问题,需要⼿动杀死� • 缺乏作业统⼀管理,不便对作业运⾏状态跟踪� • 日志查看不⽅便� � 总结:� TensorFlow使用现状及痛点 • 集群资源的管理(目前支持CPU、内存,需要扩展GPU 资源管理)� • 作业的统⼀管理、状态跟踪� --worker-memory 8192M \ #每个worker需要的内存� --worker-cores 1 \ #每个worker需要的CPU核数� --worker-gpus 2 \ #每个worker需要的GPU卡数� --ps-num 2 \ #ps数量� --ps-memory 1024M \ #每个ps需要的内存� --ps-cores 1 \ #每个ps需要的CPU核数� Spark解决⽅案� • Coordinator负责协调生成ClusterSpec(扩展的TensorFlow gRPC server) • Worker通过读取RDD获取训练样本 • RDD的数据cache到内存或者磁盘供多次迭代训练使用 SparkFlow介绍 SparkFlow与TensorFlow on Yarn对比:� SparkFlow TensorFlow on Yarn 通过RDD读取训练样本数据,关心0 码力 | 32 页 | 4.06 MB | 1 年前3
亚马逊AWSAI Services Overview的人工智能&深度学习 围绕数据的“飞轮” 机器学习 深度学习 人工智能 更多的用户 更好的产品 更多的数据 更好的分析 对象存储 数据库 数据仓库 数据流分析 商业智能 Map/Reduce 内存数据库 数据检索 点击流 用户活动 内容生成 购买 点击 喜好 传感器数据 机器学习& 人工智能 大数据 更多的用户 更好的产品 更多的数据 更好的分析 围绕数据的“飞轮” 算法 数据 ▪ 这款新实例类型包含了高达 8个 NVIDIA Tesla K80 Accelerators, 每个运行一对 NVIDIA GK210 GPUs. ▪ 每块GPU 提供 12 GiB 内存 (内存存取带宽达到240 GB/秒), 以及 2,496 个并行处理核心 Instance Name GPU Count vCPU Count Memory Parallel Processing 16xlarge 16 64 732 GiB 39,936 192 GiB 20 Gigabit 深度学习框架 – MXNet 概述 MXNet • 节省以及资源效率 • 工程中廉价的GPUs、较小的内存以及网络的限制 • 速度 • 线性的扩展能力 • 简单 • 混合了声明式(declarative)和命令式()代码的特点 为什么选择 MXNet ? MXNet: 可扩展的深度学习框架0 码力 | 56 页 | 4.97 MB | 1 年前3
微博在线机器学习和深度学习实践-黄波曝光,互动,点击,真实阅读等多种数据流接入并多流拼接 • 如何解决日志延时问题 • 延迟等待机制,先到先走 • 定时轮寻,最长N分钟等待 • Kafka 堆积监控,实时报警 • 如何解决内存问题 • 调整内存参数 • 关闭多余的监控点 • 如何异常处理 • 自动化监控与修复系统 • Checkpoint 节点异常修复 3 在线机器学习-实时样本生成 • 在线机器学习模型训练:Flink/Blink+WeiPS 发,锁粒度优化,性能提升5-10倍 • 缓存优化:使用堆外内存与LRU过期机制,解决GC引起的性能损耗,性能提升3-5倍 • 分区优化:支持多种分区策略(RANGE/HASH/MOD),解决数据倾斜导致的流量热点瓶颈问题,性能提升2-5倍 • 存储优化:自定义存储方式(ByRow&ByKey),基于row进行矩阵压缩存储,参数内存占用减少90% 3 在线机器学习-参数服务器 模型验证 离线训练0 码力 | 36 页 | 16.69 MB | 1 年前3
谭国富:深度学习在图像审核的应用应用场景 add conv w x b 公共计算库 X86 优化 Android 优化 iOS 优化 GPU 优化 内存池 硬件设备 网络模型 • 越来越多的应用场景,云服务,Android,iOS, 闸机嵌入式 • 越来越复杂的限制条件, 内存,功耗,延迟 • 越来越多的数据量,图像从百万到千万,数据从图像到视频 • 越来越复杂的网络结构,从Resnet,ResNeXt,DenseNet,DPN,SENET proto model graph. pb 深度网络计算图 caffe Tensor Flow 公共计算库 X86 优化 Android 优化 iOS 优化 GPU 优化 内存池 硬件设备 xx-arm-gpu-sdk.c xx-android-arm.c xx-randroid-sdk.java xx-ios-arm-sdk.m xx-x86-sdk.cpp Rapidnet0 码力 | 32 页 | 5.17 MB | 1 年前3
全连接神经网络实战. pytorch 版cuda 来训练网络 y = y . cuda () . . . . . . 我们不用担心数据释放的问题,因为 cuda 会自动管理不再引用它的内存空间,因此每轮训 练完以后,cuda 内的内存都会被重新赋值使用,而不会使 cuda 的内存不断增长。 需要注意的是,把数据移动到 cuda 中也是比较浪费时间的,所以实际情况如何选择网络训 练设备也是需要慎重考虑的。 本节源码参见 chapter2-20 码力 | 29 页 | 1.40 MB | 1 年前3
Keras: 基于 Python 的深度学习库3.3.8 如何获取中间层的输出? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.3.9 如何用 Keras 处理超过内存的数据集? . . . . . . . . . . . . . . . . . . . . 32 3.3.10 在验证集的误差不再下降时,如何中断训练? . . . . . . . . . . . “sample”, “batch”, “epoch” 分别是什么? • 如何保存 Keras 模型? • 为什么训练误差比测试误差高很多? • 如何获取中间层的输出? • 如何用 Keras 处理超过内存的数据集? • 在验证集的误差不再下降时,如何中断训练? • 验证集划分是如何计算的? • 在训练过程中数据是否会混洗? • 如何在每个 epoch 后记录训练集和验证集的误差和准确率? • get_3rd_layer_output([x, 0])[0] # 测试模式 = 1 时的输出 layer_output = get_3rd_layer_output([x, 1])[0] 3.3.9 如何用 Keras 处理超过内存的数据集? 你可以使用 model.train_on_batch(x,y) 和 model.test_on_batch(x,y) 进行批量训练 与测试。请参阅 模型文档。 或 者, 你 可 以0 码力 | 257 页 | 1.19 MB | 1 年前3
共 26 条
- 1
- 2
- 3













