2个不稳定版本

0.2.0 2024年4月8日
0.1.0 2024年3月22日

#744 in 文本处理

自定义许可

18KB
471

BGE小英文嵌入库

这个Rust库提供了一个接口,用于使用Hugging Face的BGE Small English v1.5模型生成嵌入,专为密集检索应用设计。该模型是FlagEmbedding项目的一部分,专注于检索增强型LLM,在嵌入生成方面提供了最先进的性能。

Rust文档: https://docs.rs/bge/latest/bge/struct.Bge.html Crates.io: https://crates.io/crates/bge

功能

  • 加载和使用BGE Small English v1.5模型进行嵌入生成。
  • 标准化嵌入以进行比较。
  • 优雅地处理大型输入和错误。

模型参考

BGE Small English v1.5模型可在Hugging Face上找到:http://hugging-face.cn/BAAI/bge-small-en-v1.5。此模型是FlagEmbedding项目的一部分,该项目包括各种用于检索增强型LLM的工具和模型。更多详情请访问FlagEmbedding GitHub

入门指南

要使用此库,您首先需要从Hugging Face下载必要的模型和分词器文件

这些文件应保存在您的本地机器上的已知目录中。

安装

确保您的系统已安装Rust。然后,将此库添加到项目的Cargo.toml文件中。

在您的项目中包含bge

要使用bge,请将以下内容添加到您的Cargo.toml文件中

[dependencies]
bge = "0.1.0"

# If your project requires `ort` binaries to be automatically downloaded, include `ort` with the `download-binaries` feature enabled:
ort = { version = "2.0.0-rc.1", default-features = false, features = ["download-binaries"] }

用法

加载模型

首先,使用分词器和模型文件的路径初始化Bge结构

let bge = Bge::from_files("path/to/tokenizer.json", "path/to/model.onnx").unwrap();

生成嵌入

要为给定的输入文本生成嵌入

let input_text = "Your input text here.";
let embeddings = bge.create_embeddings(input_text).unwrap();
println!("Embeddings: {:?}", embeddings);

这将打印模型为输入文本生成的嵌入。

处理错误

库可以在几种情况下返回错误,例如当输入超过模型的令牌限制或加载模型时出现问题。建议在您的应用程序中适当地处理这些错误。

贡献

欢迎为这个库做出贡献。如果您遇到任何问题或有改进建议,请打开一个 issue 或提交一个 pull request。

许可证

本库采用 MIT 许可证授权。Hugging Face 提供的 BGE 模型可免费用于商业目的。


依赖项

~16–29MB
~436K SLoC