То, что нейросеть сама формирует эмбеддинги токенов, это очень важно. В предложении "Петя ударил Васю лопатой" есть следующие сочетания токенов "Петя [что сделал?] ударил", "ударил [кого?] Васю", "ударил [чем?] лопатой". Эмбеддинги этих пар слов должны иметь совпадения. Нейросеть должна так обучиться, чтобы эти эмбеддинги более-менее совпадали.
Тут срабатывает
контракт: если вы выбрали хорошую функцию для аппроксимации и дали корректную целевую функцию для оптимизации, то не важно, какой будет алгоритм оптимизации,
контракт будет исполнен так, как его сформулировали. Сопоставление токенов каждый с каждым - это неплохой
контракт, в нем не оговаривается как именно сравнивать токены, но он должен дать результат при поиске оптимального решения. Плюсом - все функции дифференцируемы, а значит применим алгоритм обратного распространения ошибки.
В итоге советы любому изобретателю нейронных структур:
1. Ищи хорошие контракты. Контракт - это полезная информация, как надо обрабатывать данные, зашиваемое в алгоритм без права коррекции. Поэтому и называю контрактом.
2. Используй скалярное произведение (сложение и умножение).
3. Функции должны быть дифференцируемы.
-- 22.09.2024, 14:42 --Токены подаются на вход, они формироваться сетью не могут.
Значит токен на входе, эмбеддинг токена на выходе. Я не очень точно знаю, что есть "токен".
-- 22.09.2024, 14:56 --Говоря на языке трансформеров, я хочу найти такую структуру самовнимания, которая не будет вычислять всю матрицу
поголовно, а будет запрашивать нужные отдельные элементы матрицы, чтобы убедиться, что скалярное произведение вероятно имеет большое или наоборот маленькое значение.
Например, пиксель внизу изображения зеленый, вверху - синий. Значит на изображении лето. Всего по двум пикселям можно определить искомое. Это очень и очень хороший контракт!
-- 22.09.2024, 15:08 --Допустим получен первый токен "Петя", можно попробовать запросить следующее слово, оно окажется "ударил" - эта информация уже отвечает на вопросы "Петя преступник?" или "Петя злой?". Хотя конечно стоило бы перепровериться и запросить еще информацию, вдруг Петя ударил по барабану палочкой.
В общем подобный механизм внимания спекулятивный, но сильно экономит ресурсы, так как сопоставлять токены каждый с каждым - это сильно круто.
Таким макаром мы читаем "по диагонали" и слушаем собеседников.)