Hugging Face 是一个人工智能研究实验室和中心,建立了一个由学者、研究人员和爱好者组成的社区。 在很短的时间内,Hugging Face 就在人工智能领域占据了重要地位。 科技巨头 包括谷歌、亚马逊和英伟达在内的人工智能初创公司 Hugging Face 都进行了大量投资,使其估值大幅提升 的美元4.5亿元. 在本指南中,我们将介绍 Transformer、LLM 以及 Hugging Face 库如何在培育开源 AI 社区方面发挥重要作用。 我们还将通过 Python 示例来介绍 Hugging Face 的基本功能,包括管道、数据集、模型等。 NLP 中的 Transformer2017年,康奈尔大学发表了一篇有影响力的论文,介绍了 变形金刚。 这些是 NLP 中使用的深度学习模型。 这一发现推动了大型语言模型的发展,例如 ChatGPT. 大型语言模型或 LLM 是使用 Transformer 来理解和创建类人文本的人工智能系统。 然而,创建这些模型的成本很高,通常需要数百万美元,这限制了大公司的使用。 拥抱脸,始于 2016 年,旨在让每个人都能接触到 NLP 模型。 尽管是一家商业公司,但它提供了一系列开源资源,帮助人们和组织以经济实惠的方式构建和使用变压器模型。 机器识别 是关于教计算机通过识别模式来执行任务,而深度学习(机器学习的一个子集)创建了一个独立学习的网络。 Transformer 是一种深度学习架构,可以有效、灵活地使用输入数据,由于训练时间要求较少,使其成为构建大型语言模型的流行选择。 拥抱脸部如何促进 NLP 和 LLM 项目Hugging Face 通过提供以下功能,让与法学硕士的合作变得更加简单:
通过 Hugging Face 可以获得的一个很棒的资源是 打开 LLM 排行榜。 作为一个综合平台,它系统地监控、排名和衡量一系列大型语言模型 (LLM) 和聊天机器人的效率,为开源领域的进步提供敏锐的分析 LLM 基准通过四个指标来衡量模型:
基准使用“25-shot”、“10-shot”、“5-shot”和“0-shot”等术语来描述,表示模型在评估过程中给出的提示示例的数量衡量其在各个领域的表现和推理能力。 在“少样本”范式中,为模型提供了少量示例来帮助指导他们的响应,而在“零样本”设置中,模型没有收到任何示例,并且必须仅依靠其预先存在的知识来做出适当的响应。 拥抱脸的组成部分管道'管道' 是 Hugging Face 变压器库的一部分,该功能有助于轻松利用 Hugging Face 存储库中提供的预训练模型。 它为一系列任务提供了直观的 API,包括情感分析、问答、掩码语言建模、命名实体识别和摘要。 Pipelines 集成了三个中央 Hugging Face 组件:
这些管道不仅减少了大量的编码,还提供了一个用户友好的界面来完成各种 NLP 任务。 使用 Hugging Face 库的 Transformer 应用程序Hugging Face 库的一大亮点是 Transformers 库,它通过将模型与必要的预处理和后处理阶段连接起来,简化了 NLP 任务,从而简化了分析过程。 要安装并导入该库,请使用以下命令:
完成此操作后,您可以从情感分析开始执行 NLP 任务,将文本分类为积极或消极情绪。 该库强大的 pipeline() 函数充当包含其他管道的中心,并促进音频、视觉和多模态领域中特定于任务的应用程序。 实际应用文字分类使用 Hugging Face 的 pipeline() 函数,文本分类变得轻而易举。 以下是启动文本分类管道的方法:
如需亲身体验,请将字符串或字符串列表输入到管道中以获得预测,可以使用 Python 的 Pandas 库将其直观地可视化。 下面是一个 Python 片段演示了这一点:
输出
命名实体识别(NER)NER 对于从文本中提取称为“命名实体”的现实世界对象至关重要。 利用 NER 管道有效识别这些实体:
输出
问题回答问答涉及从给定上下文中提取特定问题的精确答案。 初始化问答管道并输入您的问题和上下文以获得所需的答案:
输出
除了文本分类、NER 和问题回答之外,Hugging Face 的管道功能还为不同的任务提供了一系列预构建的管道。 以下是可用任务子集的详细信息: 表:拥抱面部管道任务
有关详细说明和更多任务,请参阅 Hugging Face 网站上的管道文档. 为什么 Hugging Face 将重点转向 RustHugging Face (HF) 生态系统开始在其库中使用 Rust,例如安全传感器和标记器。 Hugging Face 最近还发布了一个新的机器学习框架,名为 蜡烛。 与使用 Python 的传统框架不同,Candle 是使用 Rust 构建的。 使用 Rust 的目标是在支持 GPU 操作的同时增强性能并简化用户体验。 Candle 的主要目标是促进无服务器推理,使轻量级二进制文件的部署成为可能,并将 Python 从生产工作负载中删除,因为 Python 有时会因其开销而减慢进程。 该框架是一种解决方案,旨在克服 PyTorch 等完整机器学习框架在集群上创建实例时体积大且速度慢的问题。 让我们探讨一下为什么 Rust 比 Python 更受欢迎。
安全张量安全张量 受益于 Rust 的速度和安全特性。 Safetensors 涉及张量(一个复杂的数学实体)的操作,Rust 确保操作不仅快速,而且安全,避免内存处理不当可能引起的常见错误和安全问题。 分词器分词器 处理将句子或短语分解成更小的单元,例如单词或术语。 Rust 通过加快执行时间来帮助这个过程,确保标记化过程不仅准确而且快速,从而提高了效率 自然语言处理 任务。 Hugging Face 标记器的核心是子词标记化的概念,在单词和字符级标记化之间取得微妙的平衡,以优化信息保留和词汇量。 它通过创建子标记(例如“##ing”和“##ed”)来发挥作用,保留语义丰富性,同时避免词汇量臃肿。 子词标记化涉及一个训练阶段,以确定字符和单词级标记化之间最有效的平衡。 它超越了单纯的前缀和后缀规则,需要对大量文本语料库中的语言模式进行全面分析,以设计高效的子词标记器。 生成的分词器擅长通过将新词分解为已知的子词来处理新词,从而保持高水平的语义理解。 代币化组件标记化器库将标记化过程分为几个步骤,每个步骤都解决标记化的不同方面。 让我们深入研究这些组件:
要开始使用 Hugging Face 标记器,请使用以下命令安装库 分词器库使用 锈 它继承了 C++ 的语法相似性,同时在编程语言设计中引入了新颖的概念。 与 Python 绑定相结合,它可确保您在 Python 环境中工作时享受较低级语言的性能。 数据集数据集是人工智能项目的基石。 Hugging Face 提供了各种各样的数据集,适用于各种 NLP 任务等等。 为了有效地利用它们,了解加载和分析它们的过程至关重要。 下面是一个经过充分注释的 Python 脚本,演示了如何探索 Hugging Face 上可用的数据集:
该脚本使用 load_dataset 函数加载 SQuAD 数据集,这是问答任务的常用选择。 利用预先训练的模型并将其整合在一起预训练模型构成了许多深度学习项目的支柱,使研究人员和开发人员能够快速启动他们的计划,而无需从头开始。 Hugging Face 有助于探索各种预训练模型,如下代码所示:
加载模型和分词器后,我们现在可以继续创建一个函数,该函数将一段文本和一个问题作为输入,并返回从文本中提取的答案。 我们将利用分词器将输入文本和问题处理为与模型兼容的格式,然后将处理后的输入输入到模型中以获得答案:
在代码片段中,我们从 Transformers 包中导入必要的模块,然后使用 from_pretrained 方法加载预训练的模型及其相应的分词器。 我们选择在 SQuAD 数据集上微调的 BERT 模型。 让我们看一下此函数的示例用例,其中我们有一段文本,我们希望从中提取问题的具体答案:
在此脚本中,我们构建了一个 get_answer 函数,该函数接受文本和问题,对它们进行适当的标记,并利用预先训练的 BERT 模型从文本中提取答案。 它演示了 Hugging Face 的 Transformers 库的实际应用,以构建一个简单但功能强大的问答系统。 为了更好地掌握这些概念,建议使用 谷歌 Colab 笔记本. 结论通过其广泛的开源工具、预先训练的模型和用户友好的管道,它使经验丰富的专业人士和新手能够以轻松和理解的方式深入探索广阔的人工智能世界。 此外,由于 Rust 的速度和安全特性,集成 Rust 的举措突显了 Hugging Face 致力于促进创新,同时确保人工智能应用的效率和安全性的承诺。 Hugging Face 的变革性工作不仅使高级人工智能工具的使用变得民主化,而且还为人工智能领域的学习和发展营造了一个协作环境,促进了人工智能触手可及的未来。 |
|
来自: 一介书生五十后 > 《Chat GPT》