Я начал длительный эксперимент с подбором оптимальных параметров генеративки для
чатбота с таким сеттингом:
1. Базовая модель - sberbank-ai/rugpt3medium_based_on_gpt2
2. Она фантюнится на датасете, в котором около 100000 грязных и чистых диалогов, плюс 80000 сэмплов с арифметическими задачами, плюс ~100000 QA пар. Параметры файнтюна тоже надо подобрать, но это впереди. Сейчас learning_rate=5e-5, weight_decay=0.001, 3 эпохи.
3. Оценка реплик болталки делаю с помощью отдельной модели, которая вычисляет аналог
SSA.
4. Чтобы получить пары реплик из модели, через нее прогоняется 1000 текстовых запросов типа "Вежливо ли отвечать ударом на вопрос?" и более серьезных.
Вот немного результатов для инференса с typical decoding:
temperature=1.00 typical_p=0.65 Quality=78.4 Relevance=82.9 Specificity=74.9
temperature=1.00 typical_p=0.75 Quality=80.4 Relevance=83.9 Specificity=77.8
temperature=1.00 typical_p=0.82 Quality=80.5 Relevance=84.3 Specificity=77.5
temperature=1.00 typical_p=0.80 Quality=81.9 Relevance=86.4 Specificity=78.7
temperature=1.00 typical_p=0.90 Quality=76.9 Relevance=80.9 Specificity=73.4
temperature=1.05 typical_p=0.80 Quality=79.2 Relevance=83.8 Specificity=75.8
temperature=0.95 typical_p=0.80 Quality=81.3 Relevance=85.2 Specificity=78.0
Quality - общее качество, Relevance и Specificity это
Можно заметить, что параметр
typical_p вообще довольно серьезно влияет на качество диалогов, поэтому тему надо копнуть основательно.