Задать вопрос
@Zailox

ИИ повторяет одно и то же несколько раз, как пофиксить?

Зафайнтюнил модельку (distilgpt2), натренировал 220+ эпох (100000 шагов), всё должно быть идеально, но ИИ в ответе повторяется несколько раз.
Вот запуск модели:
def generate(msg):
    question = "Question: "+msg
    inputs = tokenizer(question, return_tensors="pt").to("cuda:0")
    attention_mask = inputs["attention_mask"]
    outputs = model.generate(
        inputs["input_ids"],
        attention_mask=attention_mask,
        max_length=256,
        num_return_sequences=1,
        do_sample=True,  # Enable sampling for varied output
        top_k=50,        # Limit to top 50 probable tokens
        top_p=0.95,      # Use nucleus sampling
        pad_token_id=tokenizer.eos_token_id  # Explicitly set padding token
    )

    # Decode and print the raw output for debugging
    raw_output = tokenizer.decode(outputs[0], skip_special_tokens=True)
    ##decoded_output = bytes(raw_output, "latin-1'").decode("unicode_escape")
    #print("Raw output:", repr(raw_output))   # Show exact string with quotes
    #print("Visible output:", raw_output)     # Show what’s printed
    return decode_escapes(raw_output.replace(question, "").split('Answer: ')[-1])


А вот пример:
Запрос:
напиши код на C++, выводящий на экран надпись "тест"

Ответ:
Вот код на C++, выводящий на экран "тест":
```#include <iostream>
int main() {
   std::cout << "тест":
```#include <iostream>
int main() {
     std::cout << "тест":
```#include <iostream>
    экран    return 0;
}```


А вот и одна из строчек датасета (использовались случайные символы и кучу подобных примеров, чтобы модель понимала, что менять в зависимости от запроса):
"Напиши код на C++, выводящий на экран ""OwKф71У4hХLЮh""","Вот код на C++, выводящий на экран ""OwKф71У4hХLЮh"":\n```#include <iostream>\nint main() {\n    std::cout << ""OwKф71У4hХLЮh"" << std::endl;\n    return 0;\n}```"


Что можно сделать? На Реддите нашёл причину - скорее всего <EOS> токены
  • Вопрос задан
  • 27 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы