当前位置: 首页 > news >正文

python常用库-pandas、Hugging Face的datasets库(大模型之JSONL(JSON Lines))

文章目录

  • python常用库pandas、Hugging Face的datasets库(大模型之JSONL(JSON Lines))
    • 背景
    • 什么是JSONL(JSON Lines)
    • 通过pandas读取和保存JSONL文件
      • pandas读取和保存JSONL文件
    • Hugging Face的datasets库
    • Hugging Face的datasets库 和 pandas 我应该用哪个
    • 参考

python常用库pandas、Hugging Face的datasets库(大模型之JSONL(JSON Lines))

背景

在当今的数据交换领域,各种格式层出不穷,其中 Comma Separated Values(CSV)格式作为一种常见的数据交换格式,被广泛用于表示具有相同字段列表的记录集。而 JavaScript Object Notation(JSON)则已成为事实上的数据交换格式标准,取代了曾在 21 世纪初备受瞩目的 XML。JSON 不仅具有自我描述性,而且易于人类阅读。

在处理和分析大型数据集时,JSON Lines 格式成为了一种受欢迎的选择。

与传统的 JSON 格式相比,JSON Lines 不需要一次性加载整个文件,而是可以逐行读取和处理数据。这种特性使得 JSON Lines 非常适用于处理大型数据集,无需担心内存限制或性能问题。

每一行表示一个单独的条目这一特点使得 JSON Lines 格式化的文件具有可流式处理的特性。您可以根据需要读取任意多行来获取相同数量的记录。在网络爬虫等需要处理大量数据的场景中,JSON Lines 格式无疑是一种非常实用的选择。

JSONL(JSON Lines)在大模型时代,通常用于保存模型训练的数据集。

什么是JSONL(JSON Lines)

官网:https://jsonlines.org/

JSON Lines 特点

  • 采用 UTF-8 编码;
  • 每行必须是一个有效的 JSON 对象;
  • 在每个 JSON 对象,采用 \n 或 \r\n 作为行分隔符;

建议约定:

  • JSON Lines文件通常使用文件扩展名 .jsonl 保存
  • 建议使用像 gzip 或 bzip2 这样的流压缩器以节省空间,生成 .jsonl.gz 或 .jsonl.bz2 文件
  • MIME 类型可以是 application/jsonl,但这 还没有被标准化
  • 文本编辑程序将文本文件的第一行称为“第1行”。JSON Lines文件中的第一个值也应称为“第1个值”

通过pandas读取和保存JSONL文件

微调任何人工智能模型的第一步是准备训练数据集。

很多时候,我们需要把一些我们常见的格式,如csv等,转换为更适合训练 AI 模型的 JSONL(JSON Lines)格式。

目前大模型很多的数据格式都是jsonl和json的,通常我们使用json的文件相对较多,对于jsonl的处理,我们其中每一行都是一个独立的JSON对象。这种格式非常适合于那些需要逐行读取和写入数据的场景,比如日志文件处理。Pandas是一个强大的Python数据分析库,它提供了读取和保存JSONL文件的功能,使得处理这种格式的数据变得简单快捷。

pandas读取和保存JSONL文件

在使用Python的数据处理库pandas时,可以轻松地读取和写入JSONL格式的文件。

当处理大型JSONL文件时,我们可能不希望一次性将所有数据加载到内存中。Pandas的read_json方法支持分块读取:

chunk_size = 1000  # 每次读取1000行
chunks = pd.read_json('large_data.jsonl', lines=True, chunksize=chunk_size)for chunk in chunks:print(chunk)# 可以在这里对每个块进行处理

Hugging Face的datasets库

官方地址:https://huggingface.co/docs/datasets/index

Hugging Face中的datasets库为数据处理提供了强大且灵活的工具,能够帮助开发者和研究人员更高效地处理各种类型的数据集。通过其丰富的特性和广泛的社区支持,datasets库已成为机器学习项目中不可或缺的重要工具之一。

Hugging Face是用来处理数据集的一个python库。当微调一个模型时候,需要在以下三个方面使用该库,如下。

  • 从Huggingface Hub上下载和缓冲数据集(也可以本地哟!)
  • 使用Dataset.map()预处理数据
  • 加载和计算指标

现在上GB的数据集是非常常见的,例如训练BERT和GPT2的数据集。加载如此之大的数据集对内存大要求很高。预训练GPT2的数据集包含8百万个文档和40GB的文本。如果你有尝试加载过这些数据,就会知道这有多么的麻烦!

Datasets针对大数据加载的痛点做了很多工作,在加载数据上使用内存映射的方法,使得加载数据不再受内存大小的限制,只要磁盘空间够大,就能够快速加载大数据文件

只需要在load_dataset()函数中指定加载数据的类型(csv或tsv表格数据、text文本数据、json或json lines格式数据已经pandas保存的pickle文件)以及设置参数data_files来指定一个或多个文件即可。

Hugging Face的datasets库 和 pandas 我应该用哪个

Hugging Face的datasets库

  • 专用性:datasets库专为处理和加载各类自然语言处理(NLP)任务的数据集而设计,支持从Hugging Face Hub直接下载和加载多个公共数据集,比如GLUE、SQuAD、IMDB等1。
  • 高效性:该库使用内存映射(memory mapping)和缓存机制,能够高效处理大规模数据集,并支持GPU加速5。
  • 便捷性:通过简单的一行代码即可加载数据集,具备多线程处理能力,适合需要快速迭代的深度学习项目^6。
  • 灵活性:可以方便地进行数据集的处理和变换(例如过滤、切分、映射)1。
  • 与Transformers兼容:适合与Hugging Face的Transformers库结合使用,便于直接应用于模型训练和验证3。

Pandas

  • 多功能性:Pandas是一个通用的数据处理库,不仅限于NLP领域,适合处理各种数据格式(如CSV、Excel、JSON等),非常适合一般的数据分析任务。
  • 灵活的数据操作:Pandas提供了丰富的数据操作功能(如数据清洗、变换、合并、重塑等),在结构化数据的处理上非常强大2。
  • 更广的应用场景:如果你的数据分析不仅限于NLP,比如数据可视化、数据科学等场景,Pandas则是更合适的选择。
  • 学习曲线:对于新的数据科学家来说,Pandas的学习曲线相对较平缓,因为它的应用场景更广泛且有丰富的学习资源。

总结:
如果你的项目更多地涉及到深度学习和模型训练,建议优先使用datasets库;如果涉及到多样化的数据处理和分析任务,则Pandas更为合适。

参考

【大模型-驯化】成功搞懂大模型的jsonl数据格式处理和写入,通过pandas读取和保存JSONL文件
https://blog.csdn.net/lov1993/article/details/142494045
Hugging Face教程 - 5、huggingface的datasets库使用
参考URL: https://zhuanlan.zhihu.com/p/564816807

相关文章:

  • 使用matlab读取txt文件中的2进制数据
  • 中联教育 - 嵌入式BI助力财经数据分析服务
  • 相机--RGB相机
  • 《TCP/IP 详解 卷1:协议》第3章:链路层
  • 在 Linux 上构建 Kubernetes 单节点集群:Minikube 安装与实战指南
  • 5分钟学会网络服务搭建,飞凌i.MX9352 + Linux 6.1实战示例
  • C++ TCP程序增加TLS加密认证
  • DPO(Direct Preference Optimization)详解-1
  • VirtualBox给Rock Linux9.x配置网络
  • vueflow
  • shell中与>和<相关的数据流重定向操作符整理
  • Spring Cloud Alibaba 学习 —— 简单了解常用技术栈
  • 新能源汽车与油车销量
  • iOS 集成网易云信IM
  • 强化学习的前世今生(五)— SAC算法
  • 1.2 HarmonyOS NEXT分布式架构核心技术解析
  • JVM 性能调优
  • 鸿蒙OSUniApp 移动端直播流播放实战:打造符合鸿蒙设计风格的播放器#三方框架 #Uniapp
  • Linux之文件进程间通信信号
  • 多商户系统源码性能调优实战:从瓶颈定位到高并发架构设计!
  • 二级建造师注册查询系统/新站seo外包
  • 电子元器件商城网站建设/汕头seo推广外包
  • 嘉兴服饰网站建设/百度公司招聘官网最新招聘
  • 做企业网站的研究现状/seo如何优化关键词上首页
  • 企业做营销型网站/新东方教育培训机构
  • 做问卷的网站有哪些内容/免费建网站软件下载