HuggingFace自然语言处理详解:基于BERT中文模型的任务实战
上QQ阅读APP看书,第一时间看更新

前言 PREFACE

自然语言处理一直作为人工智能领域内的重要难题,历史上无数的科学家付出了巨大的心血对其进行研究。著名的图灵测试本质上也是一个自然语言处理任务。

在深度学习成为主流后,自然语言处理确立了主要的研究方向,尤其是在谷歌提出了Transformer和BERT模型以后,基于预训练模型的方法,已成为自然语言处理研究的主要方向。

随着自然语言处理研究的大跨步前进,问题也随之而来,首要的就是数据集格式缺乏统一规范,往往更换一个数据源,就要做复杂的数据适配工作,从工程角度来讲,这增加了项目的实施风险,作为工程人员有时会想,要是能有一个数据中心,它能把数据都管理起来,提供统一的数据接口就好了。

与数据集相应,预训练模型也缺乏统一的规范,它们往往由不同的实验室提供,每个实验室提供的下载方法都不同,下载之后的使用方法也各有区别,如果能把这些模型的下载方式和使用方式统一,就能极大地方便研究,也能降低项目实施的风险。

基于以上诉求,HuggingFace社区提供了两套工具集datasets和transformers,分别用于数据集管理和模型管理。基于HuggingFace工具集研发能极大地简化代码,把研发人员从细节的海洋中拯救出来,把更多的精力集中在业务本身上。

此外,由于数据集和模型都统一了接口,所以在更换时也非常方便,避免了项目和具体的数据集、模型的强耦合,从而降低了项目实施的风险。

综上所述,HuggingFace值得所有自然语言处理研发人员学习。本书将使用最简单浅显的语言,快速地讲解HuggingFace工具集的使用方法,并通过几个实例来演示使用HuggingFace工具集研发自然语言处理项目的过程。

通过本书的学习,读者能够快速地掌握HuggingFace工具集的使用方法,并且能够使用HuggingFace研发自己的自然语言处理项目。

本书主要内容

第1章介绍HuggingFace提出的标准研发流程和提供的工具集。

第2章介绍编码工具,包括编码工具的工作过程的示意,以及编码工具的用例。

第3章介绍数据集工具,包括数据集仓库和数据集的基本操作。

第4章介绍评价指标,包括评价指标的加载和使用方法。

第5章介绍管道工具,并演示使用管道工具完成一些常见的自然语言处理任务。

第6章介绍训练工具,并演示使用训练工具完成一个情感分类任务。

第7章演示第1个实战任务,完成一个中文情感分类任务。

第8章演示第2个实战任务,完成一个中文填空任务。

第9章演示第3个实战任务,完成一个中文句子关系推断任务。

第10章演示第4个实战任务,完成一个中文命名实体识别任务。

第11章演示使用TensorFlow框架完成中文命名实体识别任务。

第12章演示使用自动模型完成一个情感分类任务,并阅读源代码深入了解自动模型的工作原理。

第13章演示手动实现Transformer模型,并完成两个实验性质的翻译任务。

第14章演示手动实现BERT模型,并演示BERT模型的训练过程。

阅读建议

本书是一本对HuggingFace工具集的综合性讲解图书,既有基础知识,也有实战示例,还包括底层原理的讲解。

本书尽量以最简洁的语言书写,每个章节之间的内容尽量独立,读者可以跳跃阅读而没有障碍。

作为一本实战性书籍,读者要掌握本书的知识,务必结合代码调试,本书的代码也尽量以最简洁的形式书写,使读者阅读不感吃力。每个代码块即是一个单元测试,读者可以对每个程序的每个代码块按从上到下的顺序测试,从一个个小知识点聚沙成塔,融会贯通。

HuggingFace支持使用PyTorch、TensorFlow等深度学习框架进行计算,本书会以PyTorch为主进行讲解。对于使用TensorFlow的读者也不用担心,会有单独的一章讲解如何使用TensorFlow实现一个具体的例子。项目之间有很多的共同点,只要学会了一个例子,其他的都可以触类旁通。

本书源代码

扫描付费二维码,可获取本书源代码。

本书源代码在以下环境中测试通过,为避免不必要的异常调试,请尽量选择一致的版本。

Python 3.6

transformers 4.18

datasets 2.3

PyTorch 1.10

致谢

感谢我的好友L,在我写作的过程中始终鼓励、鞭策我,使我有勇气和动力完成本书的写作。

在本书的编写过程中,我虽已竭尽所能为读者呈现最好的内容,但疏漏之处在所难免,敬请读者批评指正。

李福林

2023年1月