rust-bert
rust-bert copied to clipboard
Model bert_uncased_L-12_H-768_A-12
Hi, congratulations on the project!
I'm trying to port my Python project to Rust, in my case I use the model (bert_uncased_L-12_H-768_A-12)!
Does this model work with rust-bert?
https://huggingface.co/google/bert_uncased_L-12_H-768_A-12
Thanks, EDMC.
Hello @edersoncorbari ,
Yes - this should work using the Bert model in this crate. You would need to convert the weights to the .ot format with the script found in ./utils/convert_model.py (a virtual environment with Pytorch and Numpy is required for the conversion)
Hi @guillaume-be
Tks! I tried the conversion, follow the steps:
git lfs install git -C resources clone https://huggingface.co/google/bert_uncased_L-12_H-768_A-12 python ./utils/convert_model.py resources/bert_uncased_L-12_H-768_A-12/pytorch_model.bin
The python conversion is created without any problems. But when I run the rust code below, the error occurs:
thread 'main' panicked at 'Could not open configuration file.: Os { code: 2, kind: NotFound, message: "No such file or directory" }', /home/edmc/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rust-bert-0.21.0/src/common/config.rs:40:34
stack backtrace:
0: rust_begin_unwind
at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library/std/src/panicking.rs:578:5
1: core::panicking::panic_fmt
at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library/core/src/panicking.rs:67:14
2: core::result::unwrap_failed
at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library/core/src/result.rs:1687:5
3: core::result::Result<T,E>::expect
at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library/core/src/result.rs:1046:23
4: rust_bert::common::config::Config::from_file
at /home/edmc/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rust-bert-0.21.0/src/common/config.rs:40:17
5: rust_bert::pipelines::sentence_embeddings::builder::SentenceEmbeddingsBuilder<rust_bert::pipelines::sentence_embeddings::builder::Local>::create_model
at /home/edmc/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rust-bert-0.21.0/src/pipelines/sentence_embeddings/builder.rs:59:23
6: detection::main
at ./src/main.rs:15:17
7: core::ops::function::FnOnce::call_once
at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library/core/src/ops/function.rs:250:5
note: Some details are omitted, run with RUST_BACKTRACE=full for a verbose backtrace.
Code:
let model = SentenceEmbeddingsBuilder::local("resources/bert_uncased_L-12_H-768_A12").with_device(tch::Device::cuda_if_available()).create_model()?;
let sentences = ["this is an example sentence", "each sentence is converted"]; let embeddings = model.encode(&sentences)?; println!("{embeddings:?}"); Ok(())
Any suggestion?
Thanks, EDMC.
The error message seems to indicate the configuration file is missing -- can you check that all the configuration (*.json) files are present in the repository? The dependencies (replacing the pytorch_model.bin file by rust_model.ot) are mostly the same between the Python and Rust versions