文本化/句子转换器

使用ONNX框架计算句子转换器的嵌入。

v0.0.9 2024-04-29 13:15 UTC

This package is auto-updated.

Last update: 2024-09-29 14:08:55 UTC


README

这将为PHP世界带来句子转换器的力量。

安装

将此项目添加到您的依赖项中

composer require textualization/sentence-transphormers
composer update

在使用它之前,您需要安装ONNX框架

composer exec -- php -r "require 'vendor/autoload.php'; OnnxRuntime\Vendor::check();"

并下载Distill RoBERTa v1 ONNX模型(这需要一段时间,模型大小为362Mb)

composer exec -- php -r "require 'vendor/autoload.php'; Textualization\SentenceTransphormers\Vendor::check();"

多语言模型

要使用多语言模型,需要额外的依赖项。

下载SentencePiece库

composer exec -- php -r "require 'vendor/autoload.php'; Textualization\SentencePiece\Vendor::check();"

下载XLM Tokenizer SentencePiece BPE模型

composer exec -- php -r "require 'vendor/autoload.php'; Textualization\Ropherta\Tokenizer\Vendor::check();"

下载Multilingual-E5-small模型(大小为471Mb)

composer exec -- php -r "require 'vendor/autoload.php'; Textualization\SentenceTransphormers\Vendor::check(true);"

请注意:如果您已下载单语模型,则需要先删除它。目前只能使用一个模型,此限制将在未来版本中解除。

计算嵌入

$model = new SentenceRophertaModel();

$emb = $model->embeddings("Text");

检查\Textualization\Ropherta\Distances以检查两个嵌入是否彼此更接近。

使用的模型

正在使用的模型是从sentence-transformers/all-distilroberta-v1导出的ONNX,托管在HuggingFace Hub:textualization/all-distilroberta-v1

多语言模型是intfloat/multilingual-e5-small,由作者导出为ONNX。