[DS NLP] Каким образом GPT делает для одних и тех же текстов разные предложения? (Natural Language Processing)

Вопрос от коллег: каким образом модель 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

Если Вам понравилась статья, пожалуйста, поставьте лайк, сделайте репост или оставьте комментарий. Если у Вас есть какие-либо замечания, также пишите комментарии.

Комментариев нет:

Отправить комментарий