Удаление странных/специальных символов из выходных данных модели llama 3.1.Python

Программы на Python
Anonymous
Удаление странных/специальных символов из выходных данных модели llama 3.1.

Сообщение Anonymous »

Справочная информация: я использую пакет трансформеров Hugging Face и Llama 3.1 8B (Instruct).
Проблема >: Я генерирую ответы на приглашение по одному слову следующим образом (обратите внимание, что я выбираю текст и добавляю его к input_string, а затем повторяю процесс):

Код: Выделить всё

tokenizer = AutoTokenizer.from_pretrained(model_path, use_safetensors=True)
model = AutoModelForCausalLM.from_pretrained(model_path, use_safetensors=True)

input_ids = tokenizer.encode(input_string, return_tensors="pt") # tokenize to ids
logits = model(input_ids).logits # call model() to get logits
logits = logits[-1, -1] # only care about the last projection in the last batch
probs = torch.nn.functional.softmax(logits, dim=-1) # softmax() to get probabilities
probs, ids = torch.topk(probs, 5) # keep only the top 5
texts = tokenizer.convert_ids_to_tokens(ids) # convert ids to tokens
Но я заметил, что в выводе появляется много странных или специальных символов. Например, следующая строка возвращается из input_string = «Как часто мне следует пристегиваться ремнем безопасности?»:

Код: Выделить всё

ĠAlways.ĊĊĊÄÃĦAlways,ĠunlessĠyouĠareÄłinÃĦaÃĦcarÃĥthatÃĦisÃĦnotÃĦmoving.
Есть ли способ легко удалить странные специальные символы?
Я пробовал использовать параметры декодера (во всех возможных комбинациях T/F ), например следующее:

Код: Выделить всё

myStr = 'ĠAlways.ĊĊĊÄÃĦAlways,ĠunlessĠyouĠareÄłinÃĦaÃĦcarÃĥthatÃĦisÃĦnotÃĦmoving.'
tokenizer.decode(tokenizer.encode(myStr), skip_special_tokens=True, clean_up_tokenization_spaces=True)
Но при этом не удаляются никакие специальные символы из строки.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -3-1-model

Вернуться в «Python»