TransformersPHP被设计为在功能上等同于Python库,同时仍旧保持相同的性能和易用性。这个库建立在Hugging Face的Transformers库之上,该库供应了100多种措辞的数千个预演习模型。它被设计成一个大略易用的库,供PHP开拓职员利用类似于Python库的API。这些模型可用于各种任务,包括文本天生、择要、翻译等。
TransformersPHP利用ONNX运行时来运行模型,这是开放神经网络交流(ONNX)模型的高性能评分引擎。您可以轻松地将任何PyTorch或TensorFlow模型转换为ONNX,并利用TensorOptimum与TransformersPHP一起利用。
官方文档:https://codewithkyrian.github.io/transformers-php

利用预演习模型
TransformersPHP背后的核心思想是让你利用已经演习好的模型。“预演习模型”只是从大量文本数据中得到和学习的机器学习模型。它们已经准备好开箱即用,可以实行各种任务。利用TransformersPHP,这些模型直接在PHP运用程序中运行。这意味着您不须要利用外部做事或API来处理数据。统统都发生在本地,在你的做事器上。
什么是ONNX?
ONNX引擎看起来彷佛是一个繁芜的术语,但它实质上是一个高性能引擎,旨在推断和加速机器学习模型。开放神经网络交流(ONNX)格式是该引擎的核心,是机器学习模型的通用格式。这意味着无论最初利用哪个框架来演习模型-无论是PyTorch,TensorFlow,JAX,乃至是经典的机器学习库,如scikit-learn,LightGBM,XGBoost等-可以转换为ONNX格式。这种格式可以在不同的平台上高效运行,包括PHP运用程序。
灵感
TransformersPHP的开拓受到Xenova/transformers项目的启示,Xenova/transformers项目也是一个类似的利用ONNX运行时的JavaScript项目。这种共享的灵感意味着大多数为Xenova/transformers准备的模型也与TransformersPHP兼容。它在机器学习天下和PHP开拓之间创建了一个无缝的桥梁,许可您在运用程序中利用强大的模型。
快速浏览Python
from transformers import pipeline# Allocate a pipeline for sentiment-analysispipe = pipeline('sentiment-analysis')out = pipe('I love transformers!')# [{'label': 'POSITIVE', 'score': 0.999806941}]
PHP
use function Codewithkyrian\Transformers\Pipelines\pipeline;// Allocate a pipeline for sentiment-analysis$pipe = pipeline('sentiment-analysis');$out = $pipe('I love transformers!');// [{'label': 'POSITIVE', 'score': 0.999808732}]
Javascript
import {pipeline} from '@xenova/transformers';// Allocate a pipeline for sentiment-analysislet pipe = await pipeline('sentiment-analysis');let out = await pipe('I love transformers!');// [{'label': 'POSITIVE', 'score': 0.999817686}]
你可以看到它在不同措辞之间是多么的相似,如果你在它们之间切换或学习一种新的措辞,这会让你更随意马虎。
特性本地模型实行。直接在PHP项目中支配大量NLP模型,无需依赖外部API即可实现措辞理解、文本天生等功能。易于集成。轻松地将高等AI功能嵌入到您的PHP运用程序中,通过文本分类和实体识别等功能对其进行增强。针对性能进行了优化。享受快速处理和高效的资源利用,许可跨任何规模的项目供应可扩展的AI办理方案,而不会捐躯速率或性能。安装您可以通过Composer安装库。这是安装库的推举行法:
composer require codewithkyrian/transformers
TransformersPHP所需的所有共享库都将自动安装。如果由于某种缘故原由失落败,您可以利用以下命令手动安装它们:
./vendor/bin/transformers install
解释:共享库是特定于平台的,因此在实行代码的目标平台上运行composerrequire或transformers install命令非常主要。在大多数情形下,这将是您的开拓机器或支配运用程序的做事器,但如果您利用Docker容器,请在该容器中运行composer require命令。
便是这样!
现在您已经准备好在PHP运用程序中利用TransformersPHP了。
默认情形下,当您第一次利用管道或预演习模型时,TransformersPHP会自动从Hugging Face模型中央检索模型权重(ONNX格式)。为了节省韶光并增强用户体验,最好提前下载ONNX型号权重,尤其是对付较大的型号。TransformersPHP包含一个命令行工具来促进这一点:
./vendor/bin/transformers download <model_name_or_path> [<task>] [options]
例如,要下载Xenova/bert-base-uncased模型,您可以运行:
./vendor/bin/transformers download Xenova/bert-base-uncased
基本用法
开始利用TransformersPHP的最快和最直接的方法是通过管道API。如果您熟习Python的Transformers库,您会创造这种方法非常相似。它是一个用户友好的API,将模型与特界说务的所有必要预处理和后处理步骤捆绑在一起。
创建管道
要创建管道,您须要指定要利用它的任务。例如,如果你想利用一个管道进行情绪剖析,你可以创建一个这样的管道:
use function Codewithkyrian\Transformers\Pipelines\pipeline;$classifier = pipeline('sentiment-analysis');
第一次运行时,TransformersPHP将下载并缓存默认的预演习模型,以进行即时感情剖析。这个初始设置可能须要一点韶光,但随后的运行会快得多。
利用不同的模型
每个任务都有一个用于推理的默认模型。但是,您可以指定要利用的其他模型:
$classifier = pipeline('sentiment-analysis', 'Xenova/bert-base-multilingual-uncased-sentiment');
您还可以指定是否应利用量化模型(默认值为true):
$classifier = pipeline('sentiment-analysis', quantized: false);
利用流水线
现在你已经有了管道,利用它就像调用一个函数一样大略。只需供应您想要剖析的文本即可:
$result = $classifier('I love TransformersPHP!');
你会得到情绪剖析结果
['label' => 'POSITIVE', 'score' => 0.9995358059835]
你不限于一次一个文本,你也可以通报一个文本数组来得到多个剖析:
$results = $classifier([ 'I love TransformersPHP!', 'I hate TransformersPHP!',]);
输出将为您供应每个文本的情绪评分
[ ['label' => 'POSITIVE', 'score' => 0.99980061678407], ['label' => 'NEGATIVE', 'score' => 0.99842234422764],]