工具集基础用例演示篇
第1章 HuggingFace简介
HuggingFace是一个开源社区,提供了开源的AI研发框架、工具集、可在线加载的数据集仓库和预训练模型仓库。
1. 前HuggingFace时代的弊端
在前HuggingFace时代,AI系统的研发没有统一的标准,往往凭借研发人员各自的喜好随意设计研发的流程,缺乏统一的规范,设计的质量取决于研发人员个人的经验水平。这增加了项目实施的风险,因为独立设计的研发流程往往没有经历过完整的工程验证,不一定如设想般可行。
另一方面,研发流程设计由研发人员个人设计还有一个弊端:项目和研发人员个人形成了强绑定,容易造成“祖传代码”问题。在项目交接时难度大,后续人员需要完整地学习前人的个人习惯,成本较大,导致很难让后续的研发人员介入。
2. HuggingFace标准研发流程
由于以上问题的存在,HuggingFace提出了一套可以依照的标准研发流程,按照该框架实施工程,能够在一定程度上规避以上提出的问题,降低了项目实施的风险及项目和研发人员的耦合度,让后续的研发人员能够更容易地介入,即把HuggingFace的标准研发流程变成所有研发人员的公共知识,不需要额外地学习。
HuggingFace把AI项目的研发大致分为以下几部分,如图1-1所示。
图1-1 HuggingFace标准研发流程
HuggingFace能处理文字、语音和图像数据,由于本书的主题是自然语言处理,所以主要关注文字类任务。
图1-1是一个粗略的流程,现在稍微细化这个流程,看一看各个步骤中更具体的内容,针对自然语言处理任务细化的HuggingFace标准研发流程,如图1-2所示。
图1-2 针对自然语言处理任务细化的HuggingFace标准研发流程
可以看出,HuggingFace的标准研发流程和传统的一般项目研发流程很相似,所以HuggingFace的学习成本较低,值得所有研发人员学习掌握。
3. HuggingFace工具集
针对流程中的各个节点,HuggingFace都提供了很多工具类,能够帮助研发人员快速地实施。HuggingFace提供的工具集如图1-3所示。
图1-3 各个步骤HuggingFace提供的工具集
从图1-3可以看出,HuggingFace提供的工具集基本囊括了标准流程中的各个步骤,使用HuggingFace工具集能够极大地简化代码复杂度,让研发人员能把更多的精力集中在具体的业务问题上,而不是陷入琐碎的细节中。
我们常说这世上不存在“银弹”,针对具体的项目,需要有各自的优化点,正所谓没有最好的,只有最合适的,所以在研发具体的项目时需要灵活应对,但依然应该尽量遵守标准研发流程。
4. HuggingFace社区活跃度
HuggingFace的官方主页网址为https://huggingface.co,访问后可以通过导航访问HuggingFace主GitHub仓库,截至本书写作时间,已经获得了68 059颗星。
包括Meta、Google、Microsoft、Amazon在内的超过5000家组织机构在为HuggingFace开源社区贡献代码、数据集和模型。
HuggingFace的模型仓库已经共享了超过60 000个模型,数据集仓库已经共享了超过8000个数据集,基于开源共享的精神,这些资源的使用都是完全免费的。
HuggingFace代码库也在快速更新中,HuggingFace开始时以自然语言处理任务为重点,所以HuggingFace大多数的模型和数据集也是自然语言处理方向的,但图像和语音的功能模型正在快速更新中,相信未来逐渐会把图像和语音的功能完善并标准化,如同自然语言处理一样。