Project Icon

transformers-php

先进的PHP机器学习库

TransformersPHP是一个PHP机器学习库,提供与Python版Transformers相同的功能。基于Hugging Face的Transformers构建,支持众多预训练模型,适用于文本生成、摘要、翻译等任务。该库采用ONNX Runtime执行模型,性能优异。通过简洁的API,PHP开发者可以方便地在项目中集成先进的机器学习技术。

TransformersPHP

PHP的最先进机器学习

总下载量 最新稳定版本 许可证 文档

TransformersPHP旨在在功能上与Python库等效,同时保持相同水平的性能和易用性。该库基于Hugging Face的Transformers库构建,提供了100多种语言的数千个预训练模型。它旨在为PHP开发者提供一个简单易用的库,使用与Python库类似的API。这些模型可用于各种任务,包括文本生成、摘要、翻译等。

TransformersPHP使用ONNX Runtime来运行模型,这是一个用于Open Neural Network Exchange (ONNX)模型的高性能评分引擎。您可以使用🤗 Optimum轻松将任何PyTorch或TensorFlow模型转换为ONNX格式,并在TransformersPHP中使用。

要了解更多关于该库及其工作原理的信息,请查看我们的详细文档

快速浏览

由于TransformersPHP旨在在功能上与Python库等效,因此从现有的Python或Javascript代码中学习非常容易。我们提供了pipeline API,这是一个高级、易用的API,它将模型与其必要的预处理和后处理步骤组合在一起。

Python(原始)PHP(我们的)Javascript(Xenova)
from transformers import pipeline

# 分配一个用于情感分析的pipeline
pipe = pipeline('sentiment-analysis')

out = pipe('I love transformers!')
# [{'label': 'POSITIVE', 'score': 0.999806941}]
use function Codewithkyrian\Transformers\Pipelines\pipeline;

// 分配一个用于情感分析的pipeline
$pipe = pipeline('sentiment-analysis');

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

// 分配一个用于情感分析的pipeline
let pipe = await pipeline('sentiment-analysis');

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

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

use function Codewithkyrian\Transformers\Pipelines\pipeline;

// 分配一个用于翻译的pipeline
$pipe = pipeline('translation', 'Xenova/distilbert-base-uncased-finetuned-sst-2-english');

安装

您可以通过Composer安装该库。这是安装该库的推荐方式。

composer require codewithkyrian/transformers

[!注意] ONNX库是特定于平台的,因此在代码将要执行的目标平台上运行composer require命令很重要。在大多数情况下,这将是您的开发机器或部署应用程序的服务器,但如果您使用Docker容器,请在该容器内运行composer require命令。

PHP FFI扩展

TransformersPHP使用PHP FFI扩展与ONNX运行时交互。FFI扩展在PHP 7.4及更高版本中默认包含,但可能默认未启用。如果FFI扩展未启用,您可以通过取消注释(删除行首的;)来在php.ini文件中启用以下行:

extension = ffi

此外,您需要在php.ini文件中将ffi.enable指令设置为true

ffi.enable = true

进行这些更改后,重启您的Web服务器或PHP-FPM服务,您就可以开始使用了。

文档

有关如何使用该库的更详细信息,请查看文档:https://codewithkyrian.github.io/transformers-php

使用

默认情况下,TransformersPHP使用托管的预训练ONNX模型。对于支持的任务,在HuggingFace上已转换为可与Xenova的Transformers.js一起工作的模型应该可以直接与TransformersPHP一起使用。

配置

您可以按如下方式配置TransformersPHP库的行为:

use Codewithkyrian\Transformers\Transformers;
Transformers::setup()
    ->setCacheDir('...') // 设置transformers模型的默认缓存目录。默认为`.transformers-cache/models`
    ->setRemoteHost('...') // 设置下载模型的远程主机。默认为`https://huggingface.co`
    ->setRemotePathTemplate('...') // 设置下载模型的远程路径模板。默认为`{model}/resolve/{revision}/{file}`
    ->setAuthToken('...') // 设置下载模型的认证令牌。默认为`null`
    ->setUserAgent('...') // 设置下载模型的用户代理。默认为`transformers-php/{version}`
    ->setImageDriver('...') // 设置处理图像的图像驱动程序。默认为`IMAGICK'
    ->apply(); // 应用配置

你可以按任意顺序调用这些`set`方法,或者完全省略任何一个,在这种情况下,它将使用默认值。有关配置选项及其含义的更多信息,请查看[文档](https://codewithkyrian.github.io/transformers-php/configuration)。

## 将模型转换为ONNX格式

TransformersPHP仅支持ONNX模型,因此,你必须将PyTorch、TensorFlow或JAX模型转换为ONNX格式。建议使用[🤗 Optimum](https://huggingface.co/docs/optimum)来执行模型的转换和量化。

## 预先下载模型

默认情况下,当你首次使用管道或预训练模型时,TransformersPHP会自动从Hugging Face模型仓库获取模型权重(ONNX格式)。这可能会导致初次使用时略有延迟。为了改善用户体验,建议在PHP应用中运行模型之前预先下载你打算使用的模型,特别是对于较大的模型。一种方法是手动运行一次请求,但TransformersPHP还提供了一个命令行工具来帮助你实现这一点:

```bash
./vendor/bin/transformers download <model_identifier> [<task>] [options]

参数说明:

  • <model_identifier>:指定你要下载的模型。你可以通过浏览Hugging Face模型仓库(https://huggingface.co/models?library=transformers.js)找到模型标识符。
  • []:(可选)此参数允许下载特定任务的配置和权重。如果你知道将要使用模型的具体任务,这会很有帮助(例如,"text2text-generation")。
  • [options]:(可选)你可以使用额外的选项进一步自定义下载过程:
    • --cache_dir=:指定存储下载模型的目录(默认为配置的缓存)。你可以在命令中使用-c作为快捷方式。
    • --quantized=<true|false>:下载量化模型版本(如果可用,默认为true)。量化模型更小更快,但准确性可能略有降低。在命令中使用-q作为快捷方式。

[!注意] 记得将你的缓存目录添加到.gitignore文件中,以避免将下载的模型提交到git仓库。

支持的任务/模型

这个包还在开发中,但以下是TransformersPHP目前测试并支持的任务和架构列表。

任务

自然语言处理

任务ID描述是否支持
填充遮蔽fill-mask遮蔽句子中的某些词并预测应该替换这些遮蔽的词。
问答question-answering从给定文本中检索问题的答案。
句子相似度sentence-similarity确定两个文本的相似程度。
摘要生成summarization在保留重要信息的同时生成文档的简短版本。
表格问答table-question-answering回答关于给定表格中信息的问题。
文本分类text-classificationsentiment-analysis为给定文本分配标签或类别。
文本生成text-generation通过预测序列中的下一个词来生成新文本。
文本到文本生成text2text-generation将一个文本序列转换为另一个文本序列。
词元分类token-classificationner为文本中的每个词元分配标签。
翻译translation将文本从一种语言转换为另一种语言。
零样本分类zero-shot-classification将文本分类为训练期间未见过的类别。

视觉

任务ID描述是否支持
深度估计depth-estimation预测图像中物体的深度。
图像分类image-classification为整个图像分配标签或类别。
图像分割image-segmentation将图像划分为多个部分,每个像素映射到一个物体。这个任务有多个变体,如实例分割、全景分割和语义分割。
图像到图像image-to-image将源图像转换以匹配目标图像或目标图像域的特征。
遮罩生成mask-generation为图像中的物体生成遮罩。
物体检测object-detection识别图像中特定定义类别的物体。

音频

任务ID描述是否支持
音频分类audio-classification为给定音频分配标签或类别。
音频到音频N/A从输入音频源生成音频。
自动语音识别automatic-speech-recognition将给定音频转录为文本。
文本转语音text-to-speechtext-to-audio根据文本输入生成自然语音。

表格数据

任务ID描述是否支持
表格分类N/A基于一组属性对目标类别(一个组)进行分类。
表格回归N/A根据一组属性预测数值。

多模态

任务ID描述是否支持
文档问答document-question-answering回答文档图像上的问题。
特征提取feature-extraction将原始数据转换为可处理的数值特征,同时保留原始数据集中的信息。
图像特征提取image-feature-extraction从图像中提取特征。
图像到文本image-to-text从给定图像输出文本。
文本到图像text-to-image根据输入文本生成图像。
视觉问答visual-question-answering基于图像回答开放式问题。
零样本音频分类zero-shot-audio-classification将音频分类到训练期间未见过的类别中。
零样本图像分类zero-shot-image-classification将图像分类到训练期间未见过的类别中。
零样本物体检测zero-shot-object-detection识别训练期间未见过的类别的物体。

强化学习

任务ID描述是否支持
强化学习N/A通过与环境互动、尝试错误并接收奖励(负面或正面)作为反馈来学习行动。

模型

  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: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension,作者为Mike Lewis, Yinhan Liu, Naman Goyal, Marjan Ghazvininejad, Abdelrahman Mohamed, Omer Levy, Ves Stoyanov和Luke Zettlemoyer。

  3. BERT (来自谷歌)发布于论文 BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding,作者为Jacob Devlin, Ming-Wei Chang, Kenton Lee和Kristina Toutanova。

  4. BERT For Sequence Generation (来自谷歌)发布于论文 Leveraging Pre-trained Checkpoints for Sequence Generation Tasks,作者为Sascha Rothe, Shashi Narayan, Aliaksei Severyn。

  5. BERTweet (来自VinAI Research)发布于论文 BERTweet: A pre-trained language model for English Tweets,作者为Dat Quoc Nguyen, Thanh Vu和Anh Tuan Nguyen。

  6. BigBird-Pegasus (来自谷歌研究院)发布于论文 Big Bird: Transformers for Longer Sequences,作者为Manzil Zaheer, Guru Guruganesh, Avinava Dubey, Joshua Ainslie, Chris Alberti, Santiago Ontanon, Philip Pham, Anirudh Ravula, Qifan Wang, Li Yang, Amr Ahmed。

  7. BigBird-RoBERTa (来自谷歌研究院)发布于论文 Big Bird: Transformers for Longer Sequences,作者为Manzil Zaheer, Guru Guruganesh, Avinava Dubey, Joshua Ainslie, Chris Alberti, Santiago Ontanon, Philip Pham, Anirudh Ravula, Qifan Wang, Li Yang, Amr Ahmed。

  8. CLIP (来自OpenAI)发布于论文 Learning Transferable Visual Models From Natural Language Supervision,作者为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。

  9. CodeGen (来自Salesforce)发布于论文 A Conversational Paradigm for Program Synthesis,作者为Erik Nijkamp, Bo Pang, Hiroaki Hayashi, Lifu Tu, Huan Wang, Yingbo Zhou, Silvio Savarese, Caiming Xiong。

  10. ConvBERT (来自YituTech)发布于论文 ConvBERT: Improving BERT with Span-based Dynamic Convolution,作者为Zihang Jiang, Weihao Yu, Daquan Zhou, Yunpeng Chen, Jiashi Feng, Shuicheng Yan。

  11. DeBERTa (来自微软)发布于论文 DeBERTa: Decoding-enhanced BERT with Disentangled Attention,作者为Pengcheng He, Xiaodong Liu, Jianfeng Gao, Weizhu Chen。

  12. DeBERTa-v2 (来自微软)发布于论文 DeBERTa: Decoding-enhanced BERT with Disentangled Attention,作者为Pengcheng He, Xiaodong Liu, Jianfeng Gao, Weizhu Chen。

  13. DETR (来自Facebook)发布于论文 End-to-End Object Detection with Transformers,作者为Nicolas Carion, Francisco Massa, Gabriel Synnaeve, Nicolas Usunier, Alexander Kirillov, Sergey Zagoruyko。

  14. DistilBERT(由HuggingFace开发),与论文《DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter》一同发布,作者为Victor Sanh、Lysandre Debut和Thomas Wolf。同样的方法被用于将GPT2压缩为DistilGPT2,RoBERTa压缩为DistilRoBERTa,多语言BERT压缩为DistilmBERT,以及DistilBERT的德语版本。

  15. Donut(由NAVER开发),与论文《OCR-free Document Understanding Transformer》一同发布,作者为Geewook Kim、Teakgyu Hong、Moonbin Yim、Jeongyeon Nam、Jinyoung Park、Jinyeong Yim、Wonseok Hwang、Sangdoo Yun、Dongyoon Han和Seunghyun Park。

  16. ELECTRA(由Google Research/斯坦福大学开发),与论文《ELECTRA: Pre-training text encoders as discriminators rather than generators》一同发布,作者为Kevin Clark、Minh-Thang Luong、Quoc V. Le和Christopher D. Manning。

  17. FLAN-T5(由Google AI开发),在google-research/t5x仓库中发布,作者包括Hyung Won Chung、Le Hou、Shayne Longpre等多位研究人员。

  18. GPT-2(由OpenAI开发),与论文《Language Models are Unsupervised Multitask Learners》一同发布,作者为Alec Radford*、Jeffrey Wu*、Rewon Child、David Luan、Dario Amodei和Ilya Sutskever

  19. GPT-J(由EleutherAI开发),在kingoflolz/mesh-transformer-jax仓库中发布,作者为Ben Wang和Aran Komatsuzaki。

  20. GPTBigCode(由BigCode开发),与论文《SantaCoder: don't reach for the stars!》一同发布,作者包括Loubna Ben Allal、Raymond Li、Denis Kocetkov等多位研究人员。

  21. M2M100(由Facebook开发),与论文《Beyond English-Centric Multilingual Machine Translation》一同发布,作者包括Angela Fan、Shruti Bhosale、Holger Schwenk等多位研究人员。

  22. MobileBERT(由CMU/Google Brain开发),与论文《MobileBERT: a Compact Task-Agnostic BERT for Resource-Limited Devices》一同发布。 作者:孙志清、于洪坤、宋晓丹、刘仁杰、杨一鸣和周丹尼。

  23. OWL-ViT(来自谷歌人工智能)随论文《使用视觉变换器的简单开放词汇目标检测》发布,作者为Matthias Minderer、Alexey Gritsenko、Austin Stone、Maxim Neumann、Dirk Weissenborn、Alexey Dosovitskiy、Aravindh Mahendran、Anurag Arnab、Mostafa Dehghani、Zhuoran Shen、Xiao Wang、Xiaohua Zhai、Thomas Kipf和Neil Houlsby。

  24. OWLv2(来自谷歌人工智能)随论文《扩展开放词汇目标检测》发布,作者为Matthias Minderer、Alexey Gritsenko和Neil Houlsby。

  25. RoBERTa(来自Facebook)随论文《RoBERTa:一种稳健优化的BERT预训练方法》发布,作者为Yinhan Liu、Myle Ott、Naman Goyal、Jingfei Du、Mandar Joshi、Danqi Chen、Omer Levy、Mike Lewis、Luke Zettlemoyer和Veselin Stoyanov。

  26. RoBERTa-PreLayerNorm(来自Facebook)随论文《fairseq:一个快速、可扩展的序列建模工具包》发布,作者为Myle Ott、Sergey Edunov、Alexei Baevski、Angela Fan、Sam Gross、Nathan Ng、David Grangier和Michael Auli。

  27. RoFormer(来自追一科技)随论文《RoFormer:具有旋转位置嵌入的增强型Transformer》发布,作者为苏剑林、陆宇、潘胜峰、温博和刘云峰。

  28. SigLIP(来自谷歌人工智能)随论文《用于语言图像预训练的Sigmoid损失》发布,作者为Xiaohua Zhai、Basil Mustafa、Alexander Kolesnikov和Lucas Beyer。

  29. Swin2SR(来自维尔茨堡大学)随论文《Swin2SR:用于压缩图像超分辨率和恢复的SwinV2 Transformer》发布,作者为Marcos V. Conde、Ui-Jin Choi、Maxime Burchi和Radu Timofte。

  30. T5(来自谷歌人工智能)随论文《探索统一文本到文本Transformer的迁移学习极限》发布,作者为Colin Raffel、Noam Shazeer、Adam Roberts、Katherine Lee、Sharan Narang、Michael Matena、Yanqi Zhou、Wei Li和Peter J. Liu。

  31. T5v1.1(来自谷歌人工智能)在github仓库"google-research/text-to-text-transfer-transformer"中发布,作者为Colin Raffel、Noam Shazeer、Adam Roberts、Katherine Lee、Sharan Narang、Michael Matena、Yanqi Zhou、Wei Li和Peter J. Liu。

  32. TrOCR(来自微软)随论文《TrOCR:基于预训练模型的Transformer光学字符识别》发布,作者为李明浩、吕腾超、崔磊、陆怡娟、Dinei Florencio、张茶、李舟军和魏福如。

  33. Vision Transformer (ViT)(来自谷歌人工智能)随论文《一张图片胜过16x16个词:大规模图像识别的Transformer》发布,作者为Alexey Dosovitskiy、Lucas Beyer、Alexander Kolesnikov、Dirk Weissenborn、Xiaohua Zhai、Thomas Unterthiner、Mostafa Dehghani、Matthias Minderer、Georg Heigold、Sylvain Gelly、Jakob Uszkoreit和Neil Houlsby。

  34. YOLOS(来自华中科技大学)随论文《你只需看一个序列:通过目标检测重新思考视觉中的Transformer》发布,作者未提供。 方宇鑫、廖本成、王兴刚、方杰民、齐吉阳、吴瑞、牛建伟、刘文予 著。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号