TransformersPHP是一个工具包,PHP开发人员可以轻松地将机器学习魔法添加到他们的项目中。
管方地址:TransformersPHP
github地址:GitHub - CodeWithKyrian/transformers-php: Transformers PHP is a toolkit for PHP developers to add machine learning magic to their projects easily.
一,环境准备:
php8.1+
php.ini开启以下
php">extension = ffi
ffi.enable = true
opcache.jit = tracing
环境变量加入php路径
安装 IMAGICK (可选)
安装可参考PHP Imagick 去背景 (抠图专用)_imagemagick删除png白色背景-CSDN博客
二:安装Composer
进入Composer官网英文站点(https://getcomposer.org)。
根据你的操作系统下载对应的安装文件。例如,在Windows下,你可以使用Composer-Setup.exe进行安装。
运行安装文件,按照提示进行安装。
三,安装库
您可以通过Composer安装库。这是安装库的推荐方法:
php">composer require codewithkyrian/transformers
安装失败可选composer国内源 比如修改为阿里云源
php">composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
TransformersPHP所需的所有共享库都将自动安装。如果由于某种原因失败,您可以使用以下命令手动安装它们:
php">./vendor/bin/transformers install
以上方法如果还不行可以直接到github上下载覆盖
下载地址 Releases · CodeWithKyrian/transformers-php · GitHub
根据自己系统的类型下载 覆盖到 /vendor/codewithkyrian/transformers/
四,预下载模型
这里先固定下载一个模型;其他模型怎么弄可以参考官方提供的文档Getting Started | TransformersPHP
模型名称 Xenova\distilbert-base-uncased-finetuned-sst-2-english
下载地址 https://huggingface.co/distilbert/distilbert-base-uncased-finetuned-sst-2-english/tree/main
把里面的文件全部下载下来 存放位置 你的项目目录 \transformers-cache\models\Xenova\distilbert-base-uncased-finetuned-sst-2-english
复制 onnx 中的onnx_tokenizer.json 到上级目录并改为tokenizer.json
我的目录
五,测试
上面的准备工作完成可以开始测试了
index.php
php">
require_once 'vendor/autoload.php';use Codewithkyrian\Transformers\Transformers;
use Codewithkyrian\Transformers\Utils\ImageDriver;
use function Codewithkyrian\Transformers\Pipelines\pipeline;Transformers::setup()->setCacheDir(dirname(__FILE__).'/transformers-cache/models') // Set the default cache directory for transformers models. Defaults to `.transformers-cache/models`->setRemoteHost('https://huggingface.co') // Set the remote host for downloading models. Defaults to `https://huggingface.co`->setRemotePathTemplate('{model}/resolve/{revision}/{file}') // Set the remote path template for downloading models. Defaults to `{model}/resolve/{revision}/{file}`//->setAuthToken('xxxxxxxxxxxxxxxxxxx') // Set the auth token for downloading models. Defaults to `null`->setUserAgent('transformers-php/{version}') // Set the user agent for downloading models. Defaults to `transformers-php/{version}`//->setImageDriver(ImageDriver::IMAGICK) // Set the image driver for processing images. Defaults to `IMAGICK'->apply(); // Apply the configuration//情感分析$classifier = pipeline('sentiment-analysis', 'Xenova/distilbert-base-uncased-finetuned-sst-2-english');$out = $classifier('I ate a lot of delicious food today');print_r($out);
上面的setAuthToken 默认可以屏蔽 其他的可以根据实际情况来
setImageDriver 建议设置 ImageDriver::GD
返回结果
php">Array ( [label] => POSITIVE [score] => 0.99985635280609 )
目前支持的模型类型(纯翻译)
更多模型下载地址
https://huggingface.co
https://modelscope.cn/
不足之处请多指教。
An Internet of PHP – Timo Tijhof