-
Notifications
You must be signed in to change notification settings - Fork 467
Cannot get correct translation results (NLLB-200-distilled-600M) #2017
Copy link
Copy link
Open
Description
Hello, I am trying to use CTranslate2 to call the NLLB model, the program runs slowly and always returns rubbish results.
I compiled CTranslate2 and sentencepiece by Visual Studio 2022. Here are my codes:
#include <ctranslate2/translator.h>
#include <sentencepiece_processor.h>
#include <iostream>
#include <vector>
#include <string>
int main() {
std::string model_path = "F:/temp_work/LLM-models/nllb-200-distilled-600M-ct2-int8";
std::string sp_model_path = model_path + "/sentencepiece.bpe.model";
// Load the tokenize model
sentencepiece::SentencePieceProcessor processor;
const auto status = processor.Load(sp_model_path);
if (!status.ok()) {
std::cerr << status.ToString() << std::endl;
return -1;
}
// load the NLLB model
ctranslate2::Translator translator( model_path, ctranslate2::Device::CPU);
std::string input_text = u8"抽象代数重要的研究对象有:群、环和域。";
std::cout << input_text << std::endl;
// encode the string to token string
// You don't need to set what the language is.
std::vector<std::string> encoded_input_text;
processor.Encode(input_text, &encoded_input_text);
// encoded_input_text.insert(encoded_input_text.begin(), "zho_Hans");
//The input of the translation model should be a batch.
std::vector<std::vector <std::string>> input_batch = { encoded_input_text };
ctranslate2::TranslationOptions options;
options.max_decoding_length = 1024;
options.max_input_length = 512;
options.sampling_temperature = 0.7;
options.no_repeat_ngram_size = 0;
std::vector<std::vector<std::string>> target_prefix = { {"eng_Latn"} };
std::vector<ctranslate2::TranslationResult> results = translator.translate_batch(
input_batch,
target_prefix,
options);
std::vector<std::string> output = results[0].output();
std::string output_text;
processor.Decode(output, &output_text);
std::cout << "Translation: " << output_text << std::endl;
return 0;
}
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels