文本化 / 句子转换器
使用ONNX框架计算句子转换器的嵌入。
v0.0.9
2024-04-29 13:15 UTC
Requires
- ankane/onnxruntime: v0.1.7
- textualization/ropherta: v0.0.11
Requires (Dev)
- phpunit/phpunit: ^9.5.8
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。