HuggingFace- Datasets里的概念

HuggingFace Datasets利用Arrow内存映射技术实现高效数据处理,通过缓存机制提高加载速度,提供Dataset和IterableDataset两种形式以适应不同大小的数据集。本文详细介绍了其内存映射、缓存指纹、数据集类型选择、流式处理、数据处理方法等核心概念,展示了如何利用HF Datasets进行自然语言处理任务的数据管理与优化。
摘要由CSDN通过智能技术生成

Arrow

Arrow让大量的数据可以被快速的处理和移动。它是一种在内存中列式存储的格式。他提供了几个明显的优势:

  • Arrow的标准格式允许零拷贝读取,这实际上消除了所有序列化开销。
  • Arrow是语言无关的,所以它支持不同的编程语言。
  • Arrow是面向列的,因此查询和处理数据片或数据列的速度更快。
  • Arrow允许无复制切换到标准机器学习工具,如NumPy, Pandas, PyTorch和TensorFlow。
  • Arrow支持许多的,可能嵌套的列类型。

内存映射

HF Datasets 作为本地缓存系统。它允许数据集由磁盘缓存支持,磁盘缓存是内存映射的,用于快速查找。这种架构允许在设备内存相对较小的机器上使用大型数据集。
例如,加载完整的英文维基百科数据集只需要几MB的RAM:

import os; import psutil; import timeit
from datasets import load_dataset

# Process.memory_info is expressed in bytes, so convert to megabytes 
mem_before = psutil.Process(os.getpid()).memory_info().rss / (1024 * 1024)
wiki = load_dataset("wikipedia", "202203
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值