Transformers 2.0 版本发布

最新资讯2年前 (2023)发布 AI观察员
384 0 0

最先进的网络机器学习。跑🤗变压器直接在您的浏览器中,无需服务器!

现在,你可以直接在 Web 浏览器上运行 HuggingFace Transformers,实现各种 AI 功能了。

仅需 3 行 JavaScript 代码,即可快速集成使用。

该项目现已支持执行以下 AI 任务:

📝 NLP:文本分类、摘要、翻译和文本生成
🖼️ 视觉:图像分类、对象检测和分割
🗣️ 音频:自动语音识别
🐙 多模态:零示例图像分类

最先进的网络机器学习。跑🤗变压器直接在您的浏览器中,无需服务器!

Transformers.js 在功能上等同于 Hugging Face 的 transformers python 库,这意味着您可以使用非常相似的 API 运行相同的预训练模型。这些模型支持不同形式的常见任务,例如:

  • 📝 自然语言处理:文本分类、命名实体识别、问答、语言建模、摘要、翻译、多项选择和文本生成。
  • 🖼️ 计算机视觉:图像分类、对象检测和分割。
  • 🗣️ 音频:自动语音识别和音频分类。
  • 🐙 多模式:零镜头图像分类。

转换器.js使用 ONNX 运行时在浏览器中运行模型。最好的部分是,您可以使用以下方法轻松地将预训练的PyTorch,TensorFlow或JAX模型转换为ONNX。🤗最佳.

有关更多信息,请查看完整文档

快速浏览

从现有代码翻译非常简单!就像python库一样,我们支持API。管道将预训练模型与输入的预处理和输出的后处理组合在一起,使其成为使用库运行模型的最简单方法。pipeline

蟒蛇(原版) Javascript (我们的)
from transformers import pipeline

# Allocate a pipeline for sentiment-analysis
pipe = pipeline('sentiment-analysis')

out = pipe('I love transformers!')
# [{'label': 'POSITIVE', 'score': 0.999806941}]
import { pipeline } from '@xenova/transformers';

// Allocate a pipeline for sentiment-analysis
let pipe = await pipeline('sentiment-analysis');

let out = await pipe('I love transformers!');
// [{'label': 'POSITIVE', 'score': 0.999817686}]

还可以通过将模型 ID 或路径指定为函数的第二个参数来使用其他模型。例如:pipeline

// Use a different model for sentiment-analysis
let pipe = await pipeline('sentiment-analysis', 'nlptown/bert-base-multilingual-uncased-sentiment');

安装

要通过 NPM 安装,请运行:

npm i @xenova/transformers

或者,您可以使用 CDN 或静态托管在原版 JS 中使用它,而无需任何捆绑器。例如,使用 ES 模块,您可以使用以下内容导入库:

<script type="module">
    import { pipeline } from 'https://cdn.jsdelivr.net/npm/@xenova/transformers';
</script>

例子

想直接跳进去吗?开始使用我们的示例应用程序/模板之一:

平台 描述 源代码
反应 多语言翻译网站 链接
浏览器扩展 文本分类扩展 链接
电子 文本分类应用程序 链接
节点.js 情绪分析接口 链接
接下来.js 即将推出 链接

自定义用法

默认情况下,Transformers.js 使用托管的预训练模型预编译的 WASM 二进制文件,这些二进制文件应开箱即用。您可以按如下方式自定义此操作:

设置

import { env } from '@xenova/transformers';

// Specify a custom location for models (defaults to '/models/').
env.localModelPath = '/path/to/models/';

// Disable the loading of remote models from the Hugging Face Hub:
env.allowRemoteModels = false;

// Set location of .wasm files. Defaults to use a CDN.
env.backends.onnx.wasm.wasmPaths = '/path/to/files/';

有关可用设置的完整列表,请查看 API 参考

将模型转换为 ONNX

我们建议使用我们的转换脚本在单个命令中将 PyTorch、TensorFlow 或 JAX 模型转换为 ONNX。在幕后,它使用🤗最佳以执行模型的转换和量化。

python -m scripts.convert --quantize --model_id <model_name_or_path>

例如,使用以下方法转换和量化 bert-base-uncased

python -m scripts.convert --quantize --model_id bert-base-uncased

这会将以下文件保存到:./models/

bert-base-uncased/
├── config.json
├── tokenizer.json
├── tokenizer_config.json
└── onnx/
    ├── model.onnx
    └── model_quantized.onnx

支持的任务/模型

以下是Transformers.js当前支持的所有任务和模型的列表。 如果您没有看到此处列出的任务/模型或尚不受支持,请随意 以在此处打开功能请求。

任务

自然语言处理

任务 身份证 描述 支持?
对话的 conversational 在给定提示的情况下生成相关、连贯和知识渊博的对话文本。
填充面膜 fill-mask 屏蔽句子中的一些单词,并预测哪些单词应该取代这些掩码。
问答 question-answering 从给定文本中检索问题的答案。
句子相似性 sentence-similarity 确定两个文本的相似程度。
综述 summarization 生成文档的较短版本,同时保留其重要信息。
表问答 table-question-answering 回答有关给定表中的信息的问题。
文本分类 text-classificationsentiment-analysis 为给定文本指定标注或类。
文本生成 text-generation 通过预测序列中的下一个单词来生成新文本。
文本到文本生成 text2text-generation 将一个文本序列转换为另一个文本序列。
代币分类 token-classificationner 为文本中的每个标记分配标签。
译本 translation 将文本从一种语言转换为另一种语言。
零镜头分类 zero-shot-classification 将文本分类为训练期间看不到的类。

视觉

任务 身份证 描述 支持?
深度估计 depth-estimation 预测图像中存在的对象的深度。
图像分类 image-classification 为整个图像分配标签或类。
图像分割 image-segmentation 将图像划分为多个段,其中每个像素映射到一个对象。此任务具有多个变体,例如实例分割、全景分割和语义分割。
图像到图像 image-to-image 转换源图像以匹配目标图像或目标图像域的特征。
面具生成 mask-generation 为图像中的对象生成蒙版。
物体检测 object-detection 识别图像中某些已定义类的对象。
视频分类 不适用 为整个视频分配标签或类。
无条件图像生成 不适用 在任何上下文(如提示文本或其他图像)中生成无条件的图像。

音频

任务 身份证 描述 支持?
音频分类 audio-classification 为给定音频分配标签或类。
音频到音频 不适用 从输入音频源生成音频。
自动语音识别 automatic-speech-recognition 将给定的音频转录为文本。
文本转语音 不适用 在给定文本输入的情况下生成听起来自然的语音。

表格式的

任务 身份证 描述 支持?
表格分类 不适用 根据属性集对目标类别(组)进行分类。
表格回归 不适用 在给定一组属性的情况下预测数值。

模 态

任务 身份证 描述 支持?
文档问答 document-question-answering 回答有关文档图像的问题。
特征提取 feature-extraction 将原始数据转换为可处理的数值特征,同时保留原始数据集中的信息。
图像转文本 image-to-text 从给定图像输出文本。
文本到图像 text-to-image 从输入文本生成图像。
视觉问答 visual-question-answering 根据图像回答开放式问题。
零镜头图像分类 zero-shot-image-classification 将图像分类为训练期间看不到的类。

强化学习

任务 身份证 描述 支持?
强化学习 不适用 通过反复试验与环境互动,并从行动中学习,并获得奖励(消极或积极)作为反馈。

模型

  1. ALBERT(来自谷歌研究和芝加哥丰田技术研究所)发表了论文ALBERT:A Lite BERT for Self-supervised Learning of Language Representations,作者是Zhenzhong Lan,Mingda Chen,Sebastian Goodman,Kevin Gimpel,Piyush Sharma,Radu Soricut。
  2. BART(来自Facebook)与论文BART一起发布:自然语言生成,翻译和理解的去噪序列到序列预训练,作者是Mike Lewis,Yinhan Liu,Naman Goyal,Marjan Ghazvininejad,Abdelrahman Mohamed,Omer Levy,Ves Stoyanov和Luke Zettlemoyer。
  3. BERT(来自Google)与Jacob Devlin,Ming-Wei Chang,Kenton Lee和Kristina Toutanova的论文BERT:用于语言理解的深度双向变压器的预训练一起发布。
  4. CLIP(来自OpenAI)与Alec Radford,Jong Wook Kim,Chris Hallacy,Aditya Ramesh,Gabriel Goh,Sandhini Agarwal,Girish Sastry,Amanda Askell,Pamela Mishkin,Jack Clark,Gretchen Krueger,Ilya Sutskever的论文一起发布。
  5. CodeGen(来自Salesforce)与Erik Nijkamp,Bo Pang,Hiroaki Hayashi,Lifu Tu,Huan Wang,Yingbo Zhou,Silvio Savarese,Caim Xiong的论文A Conversational Paradigm for Program Synthesis 一起发布。
  6. DETR(来自Facebook)与Nicolas Carion,Francisco Massa,Gabriel Synnaeve,Nicolas Usunier,Alexander Kirillov,Sergey Zagoruyko的T端到端对象检测一起发布。
  7. DistilBERT(来自HuggingFace),与论文DistilBERT一起发布,DistilBERT是BERT的蒸馏版本:更小,更快,更便宜,更轻,由Victor Sanh,Lysandre Debut和Thomas Wolf撰写。相同的方法已被应用于将GPT2压缩为DistilGPT2,RoBERTa压缩为DistilRoBERTa,将多语言BERT压缩为DistilmBERT和德语版本的DistilBERT
  8. FLAN-T5(来自谷歌人工智能)在存储库谷歌研究/t5x中发布,由钟亨元、侯乐、谢恩·朗普雷、巴雷特·佐夫、郑毅、威廉·费杜斯、埃里克·李、王学志、穆斯塔法·德加尼、悉达多·梵天、阿尔伯特·韦伯森、顾世祥、戴竹云、米拉克·苏兹贡、陈馨云、阿坎沙·乔杜里、夏兰·纳朗、高拉夫·米什拉、亚当斯·余、赵文森特、黄艳萍、戴安德鲁、 于洪坤、斯拉夫·彼得罗夫、埃德·奇、杰夫·迪恩、雅各布·德夫林、亚当·罗伯茨、丹尼·周、郭五乐和杰森·魏
  9. GPT Neo(来自EleutherAI)由Sid Black,Stella Biderman,Leo Gao,Phil Wang和Connor Leahy在EleutherAI/gpt-neo存储库中发布。
  10. GPT-2(来自OpenAI)与Alec Radford*,Jeffrey Wu*,Rewon Child,David Luan,Dario Amodei**和Ilya Sutskever**一起发布的论文语言模型是无监督多任务学习者
  11. 玛丽安·使用Jörg Tiedemann的OPUS数据训练的机器翻译模型。Marian 框架由 Microsoft 翻译团队开发。
  12. MobileBERT(来自CMU / Google Brain)与论文MobileBERT:资源有限设备的紧凑任务无关BERT一起发布,作者是Zhiqing Sun,Hongkun Yu,Xiaodan Song,Renjie Liu,Yiming Yang和Denny Zhou。
  13. MT5(来自Google AI)随论文mT5一起发布:由Linting Xue,Noah Constant,Adam Roberts,Mihir Kale,Rami Al-Rfou,Aditya Siddhant,Aditya Barua,Colin Raffel发布的大规模多语言预训练文本到文本转换器
  14. NLLB(来自 Meta)与 NLLB 团队的论文《No Language Left Behind: Scaling Human-Centric Machine Translation》一起发布。
  15. SqueezeBERT(来自伯克利)与论文SqueezeBERT一起发布:计算机视觉可以教NLP关于高效神经网络的什么?作者:Forrest N. Iandola,Albert E. Shaw,Ravi Krishna和Kurt W. Keutzer。
  16. T5(来自Google AI)与Colin Raffel和Noam Shazeer以及Adam Roberts和Katherine Lee以及Sharan Narang和Michael Matena和Yanqi Zhou以及Wei Li和Peter J. Liu的论文一起发布。
  17. T5v1.1(来自Google AI)由Colin Raffel和Noam Shazeer和Adam Roberts和Katherine Lee和Sharan Narang和Michael Matena和Yanqi Zhou以及Wei Li和Peter J. Liu在存储库google-research/text-to-text-transfer-transformer中发布。
  18. 视觉转换器(ViT)(来自Google AI)与论文一起发布 图像价值16×16 Words:Transformers for Image Recognition at Scale 作者:Alexey Dosovitskiy,Lucas Beyer,Alexander Kolesnikov,Dirk Weissenborn,Xiaohua Zhai,Thomas Unterthiner,Mostafa Dehghani,Matthias Minderer,Georg Heigold,Sylvain Gelly,Jakob Uszkoreit,Neil Houlsby。
  19. Whisper(来自OpenAI)与Alec Radford,Jong Wook Kim,Tao Xu,Greg Brockman,Christine McLeavey,Ilya Sutskever的论文一起发布。
© 版权声明

相关文章

天猫U特购  京东优惠购        京东优惠    天猫优惠