Как работают современные LLM (large language models) - ChatGPT и прочие 🤖
Мы много говорим о современных чат-ботах, ChatGPT и аналоги - но еще не говорили про то, как оно устроено под капотом, как модели вообще "думают"? На самом деле - они не думают в привычном нам понимании, они скорее подбирают токены и слова. Архитектура таких моделей называется трансформер.
Ниже постараюсь простыми словами объяснить, как сам это понимаю:
1. Разбиение текста на токены
Прежде чем обрабатывать текст, трансформер разбивает его на маленькие части — токены. Токен может быть:
* целым словом: "трансформер"
* частью слова: "транс" + "формер"
* знаком пунктуации: "."
* часто встречающимся сочетанием букв: "ing" в английском
Например, фраза "Искусственный интеллект работает с текстами" может быть разбита на токены: ["Искус", "ственный", " интел", "лект", " работ", "ает", " с", " текст", "ами"].
Этот шаг нужен, чтобы модель работала с текстом эффективно, слова для нее - слишком длинно
2. Перевод токенов в числа
Моделька не понимает слова напрямую, поэтому каждый токен превращается в вектор — набор чисел. Представьте, что каждое слово — это точка в многомерном пространстве (само пространство и работу с ним приложил к посту), и слова с похожим смыслом находятся рядом в этом пространстве:
* кошка и котёнок имеют похожие векторы
* кошка и автомобиль — сильно различающиеся
3. Механизм внимания: связи между словами
Это ключевая фишка трансформеров: модель оценивает, насколько важно каждое слово в предложении для понимания другого слова
Создаются "карты внимания", показывающие, какие связи между словами значимы. Например, в предложении "Мария, которая живёт в Москве, любит кофе" модель связывает "любит" с "Мария", а не с "Москва"
Технически каждое слово получает "веса внимания" для всех других слов в тексте, определяющие их важность в данном контексте
4. Слои трансформера
Трансформер состоит из множества слоёв:
* в первых слоях обрабатываются базовые связи между словами
* в средних слоях — грамматические конструкции и фразы
* в глубоких слоях — абстрактные концепции и общий смысл
Каждый слой преобразует векторы слов, последовательно обогащая их контекстной информацией
Итого:
Когда модель обрабатывает запрос от пользователя:
* берёт запрос и превращает его в последовательность векторов
* пропускает эти векторы через все слои трансформера
* на выходе получает векторное представление запроса
Когда модель генерирует ответ:
* используя полученное векторное представление запроса, модель предсказывает наиболее вероятное следующее слово
* выбирает его из своего словаря токенов
* добавляет к существующему тексту
* повторяет эти шаги, теперь учитывая и новое слово, пока не сформирует полный ответ
Для простого понимания, представьте оркестр, где:
* токены — это отдельные музыканты
* векторы — музыкальные партии
* механизм внимания — дирижёр, определяющий, кто когда играет и как громко
* слои — это репетиции, на каждой из которых исполнение становится всё лучше
* итоговая генерация — это финальный концерт, где всё звучит гармонично
Большие языковые модели — это гигантские оркестры с миллиардами или триллионами музыкантов. Это очень упрощённо - но суть передает
К посту приложил визуализацию процесса "думания" - и потыкать можно тут - залипательно)
#ии #простомысли
Post #95
373
- 👍 6
- ❤ 2