Вопрос от коллег: каким образом модель GPT делает для одних и тех же текстов разные предложения? Если посмотреть на модель, то там нет никакой вероятности.
Тема: Обработка естественного языка (Natural Language Processing, NLP, Data Science)
Ответы от коллег:
1) Почитайте про language modeling.
Например, https://lena-voita.github.io/nlp_course/language_modeling.html
Моделька выдает распределение на словах. И из этого распределения можно брать максимум по вероятности, тогда будет детерменировано. А можно кидать рандом с этими вероятностями.
2) - А как это узнали, что разные?
- В hugging face загрузил модель
3) Это как-то немногословно. В общем, выше объяснено.
Причина в запуске. У способа запуска стоит изучить исходный код.
4) Чтобы выдавало одинаковый результат от запуска к запуску, можно либо 1) использовать детерминированный алгоритм: greedy decoding или beam search, как описано в курсе по ссылке выше, либо 2) использовать sampling (standard, with temperature, or top-k), зафиксировав random seed во фреймворке. Второе не всегда тривиально из-за особенностей фреймворков и работы PRNG на GPU, но зато sampling позволяет контролировать разнообразность текстов что может быть полезно.
5) Один из вариантов уже объяснили: top-k сэмплинг, для референса приложу учебную реализацию сэмплинга в minGPT Андрея Карпатого - при чтении всё станет ясно.
https://github.com/karpathy/minGPT/blob/master/mingpt/utils.py
Источник: ODS slack
Если Вам понравилась статья, пожалуйста, поставьте лайк, сделайте репост или оставьте комментарий. Если у Вас есть какие-либо замечания, также пишите комментарии.
Комментариев нет:
Отправить комментарий