16个版本 (8个破坏性)
0.14.1 | 2021年12月17日 |
---|---|
0.13.1 | 2021年11月26日 |
0.13.0 | 2021年7月21日 |
0.12.0 | 2020年8月18日 |
0.5.1 | 2019年3月24日 |
#522 in 机器学习
每月49次下载
355KB
8K SLoC
finalfusion-utils
简介
finalfusion-utils
是一个Rust包,提供各种处理和查询嵌入的功能。 finalfusion-utils
支持不同格式之间的转换、嵌入矩阵的量化、相似性和类比查询以及类比数据集的评估。
安装
预编译的二进制文件
以下预编译的二进制文件可以在 发布页面 找到
x86_64-unknown-linux-gnu-mkl
:glibc Linux构建,静态链接到Intel MKL。这是Intel(非AMD)CPU推荐的构建。x86_64-unknown-linux-musl
:使用MUSL C库的静态Linux构建。这个二进制文件不链接到BLAS/LAPACK实现,因此不支持优化的产品量化。universal-macos
:动态macOS构建。支持x86_64和ARM64架构。链接到Accelerate框架以使用BLAS/LAPACK。
使用 cargo
finalfusion-utils
可以使用最新的Rust工具链进行安装,该工具链可以通过 rustup 进行安装。
使用有效的Rust工具链,通过 cargo
安装crate最为简单
$ cargo install finalfusion-utils
通常,您将想要启用对BLAS/LAPACK库的支持以加快矩阵乘法并启用优化的产品量化支持。为了做到这一点,运行
$ cargo install finalfusion-utils --features implementation
其中 implementation
是以下之一
accelerate
:macOS Accelerate框架。intel-mkl
:Intel MKL(已下载并静态链接)。intel-mkl-amd
:Intel MKL,预期预装MKL库,覆盖AMD CPU的CPU检测。netlib
:任何兼容的系统BLAS/LAPACK实现。openblas
:系统安装的OpenBLAS。除非系统OpenBLAS库是单线程构建且带有锁定,否则不建议使用此选项。否则,OpenBLAS的线程与应用程序线程交互不良。
从源码构建
finalfusion-utils
也可以从源码构建,在克隆此仓库后,在目录中执行以下命令以找到target/release/finalfusion
下的可执行文件。
$ cargo build --release
使用方法
finalfusion-utils
作为一个单独的二进制文件构建,不同的功能通过子命令调用。
转换嵌入向量
# Convert embeddings in fastText format to finalfusion
$ finalfusion convert -f fasttext -t finalfusion \
embeddings.bin embeddings.fifu
# Convert embeddings in word2vec format to finalfusion
$ finalfusion convert -f word2vec -t finalfusion \
embeddings.w2v embeddings.fifu
# Print help with all supported combinations:
$ finalfusion convert --help
量化嵌入矩阵
# Quantize embeddings in finalfusion format with a
# single attempt through product quantization
$ finalfusion quantize -f finalfusion -q pq -a 1 \
embeddings.pq
类比和相似度查询
# Get the 15 nearest neighbours of "Tübingen" for
# embeddings in finalfusion format.
$ finalfusion similar -f finalfusion -k 15 \
embeddings.fifu
# Get the 5 best answers for the analogy query
# "Berlin" is to "Deutschland" as "Amsterdam" to:
$ finalfusion analogy -f finalfusion -k 5 \
Berlin Deutschland Amsterdam embeddings.fifu
在类比数据集上评估
# Evaluate embeddings on some analogy dataset
$ finalfusion compute-accuracy embeddings.fifu \
analogies.txt
导出元数据
# Dump optionally stored metadata and store in
# metadata.txt, only supported for finalfusion
# format
$ finalfusion metadata embeddings.fifu \
> metadata.txt
将Bucket词汇转换为显式词汇
# Converts a hash-bucket based subword vocab to
# one with explicitly stored n-grams.
$ finalfusion bucket-to-explicit buckets.fifu \
explicit.fifu
打印完成脚本
# Print completion script for zsh
$ finalfusion completions zsh
依赖关系
~9–38MB
~477K SLoC