Struct rust_bert::pipelines::translation::TranslationModel
source · pub struct TranslationModel { /* private fields */ }Expand description
Implementations§
source§impl TranslationModel
impl TranslationModel
sourcepub fn new(
translation_config: TranslationConfig
) -> Result<TranslationModel, RustBertError>
pub fn new( translation_config: TranslationConfig ) -> Result<TranslationModel, RustBertError>
Build a new TranslationModel
Arguments
translation_config-TranslationConfigobject containing the resource references (model, vocabulary, configuration), translation options and device placement (CPU/GPU)
Example
use rust_bert::marian::{
MarianConfigResources, MarianModelResources, MarianSourceLanguages, MarianSpmResources,
MarianTargetLanguages, MarianVocabResources,
};
use rust_bert::pipelines::common::{ModelResource, ModelType};
use rust_bert::pipelines::translation::{TranslationConfig, TranslationModel};
use rust_bert::resources::RemoteResource;
use tch::Device;
let model_resource = ModelResource::Torch(Box::new(RemoteResource::from_pretrained(
MarianModelResources::ROMANCE2ENGLISH,
)));
let config_resource = RemoteResource::from_pretrained(MarianConfigResources::ROMANCE2ENGLISH);
let vocab_resource = RemoteResource::from_pretrained(MarianVocabResources::ROMANCE2ENGLISH);
let spm_resource = RemoteResource::from_pretrained(MarianSpmResources::ROMANCE2ENGLISH);
let source_languages = MarianSourceLanguages::ROMANCE2ENGLISH;
let target_languages = MarianTargetLanguages::ROMANCE2ENGLISH;
let translation_config = TranslationConfig::new(
ModelType::Marian,
model_resource,
config_resource,
vocab_resource,
Some(spm_resource),
source_languages,
target_languages,
Device::cuda_if_available(),
);
let mut summarization_model = TranslationModel::new(translation_config)?;sourcepub fn new_with_tokenizer(
translation_config: TranslationConfig,
tokenizer: TokenizerOption
) -> Result<TranslationModel, RustBertError>
pub fn new_with_tokenizer( translation_config: TranslationConfig, tokenizer: TokenizerOption ) -> Result<TranslationModel, RustBertError>
Build a new TranslationModel with a provided tokenizer.
Arguments
translation_config-TranslationConfigobject containing the resource references (model, vocabulary, configuration), translation options and device placement (CPU/GPU)tokenizer-TokenizerOptiontokenizer to use for translation
Example
use rust_bert::marian::{
MarianConfigResources, MarianModelResources, MarianSourceLanguages, MarianSpmResources,
MarianTargetLanguages, MarianVocabResources,
};
use rust_bert::pipelines::common::{ModelResource, ModelType, TokenizerOption};
use rust_bert::pipelines::translation::{TranslationConfig, TranslationModel};
use rust_bert::resources::{RemoteResource, ResourceProvider};
use tch::Device;
let model_resource = ModelResource::Torch(Box::new(RemoteResource::from_pretrained(
MarianModelResources::ROMANCE2ENGLISH,
)));
let config_resource = RemoteResource::from_pretrained(MarianConfigResources::ROMANCE2ENGLISH);
let vocab_resource = RemoteResource::from_pretrained(MarianVocabResources::ROMANCE2ENGLISH);
let spm_resource = RemoteResource::from_pretrained(MarianSpmResources::ROMANCE2ENGLISH);
let tokenizer = TokenizerOption::from_file(
ModelType::Marian,
vocab_resource.get_local_path()?.to_str().unwrap(),
Some(spm_resource.get_local_path()?.to_str().unwrap()),
false,
None,
None,
)?;
let source_languages = MarianSourceLanguages::ROMANCE2ENGLISH;
let target_languages = MarianTargetLanguages::ROMANCE2ENGLISH;
let translation_config = TranslationConfig::new(
ModelType::Marian,
model_resource,
config_resource,
vocab_resource,
Some(spm_resource),
source_languages,
target_languages,
Device::cuda_if_available(),
);
let mut summarization_model =
TranslationModel::new_with_tokenizer(translation_config, tokenizer)?;sourcepub fn get_tokenizer(&self) -> &TokenizerOption
pub fn get_tokenizer(&self) -> &TokenizerOption
Get a reference to the model tokenizer.
sourcepub fn get_tokenizer_mut(&mut self) -> &mut TokenizerOption
pub fn get_tokenizer_mut(&mut self) -> &mut TokenizerOption
Get a mutable reference to the model tokenizer.
sourcepub fn translate<S>(
&self,
texts: &[S],
source_language: impl Into<Option<Language>>,
target_language: impl Into<Option<Language>>
) -> Result<Vec<String>, RustBertError>
pub fn translate<S>( &self, texts: &[S], source_language: impl Into<Option<Language>>, target_language: impl Into<Option<Language>> ) -> Result<Vec<String>, RustBertError>
Translates texts provided
Arguments
input-&[&str]Array of texts to summarize.
Returns
Vec<String>Translated texts
Example
use rust_bert::marian::{
MarianConfigResources, MarianModelResources, MarianSourceLanguages, MarianSpmResources,
MarianTargetLanguages, MarianVocabResources,
};
use rust_bert::pipelines::common::{ModelResource, ModelType};
use rust_bert::pipelines::translation::{Language, TranslationConfig, TranslationModel};
use rust_bert::resources::RemoteResource;
use tch::Device;
let model_resource = ModelResource::Torch(Box::new(RemoteResource::from_pretrained(
MarianModelResources::ENGLISH2ROMANCE,
)));
let config_resource = RemoteResource::from_pretrained(MarianConfigResources::ENGLISH2ROMANCE);
let vocab_resource = RemoteResource::from_pretrained(MarianVocabResources::ENGLISH2ROMANCE);
let merges_resource = RemoteResource::from_pretrained(MarianSpmResources::ENGLISH2ROMANCE);
let source_languages = MarianSourceLanguages::ENGLISH2ROMANCE;
let target_languages = MarianTargetLanguages::ENGLISH2ROMANCE;
let translation_config = TranslationConfig::new(
ModelType::Marian,
model_resource,
config_resource,
vocab_resource,
Some(merges_resource),
source_languages,
target_languages,
Device::cuda_if_available(),
);
let model = TranslationModel::new(translation_config)?;
let input = ["This is a sentence to be translated"];
let source_language = None;
let target_language = Language::French;
let output = model.translate(&input, source_language, target_language);Auto Trait Implementations§
impl !RefUnwindSafe for TranslationModel
impl Send for TranslationModel
impl !Sync for TranslationModel
impl Unpin for TranslationModel
impl !UnwindSafe for TranslationModel
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more