Large Concept Models: Language Modeling in a Sentence Representation Space
LCM team, Loïc Barrault, Paul-Ambroise Duquenne, Maha Elbayad, Artyom Kozhevnikov, Belen Alastruey, Pierre Andrews, Mariano Coria, Guillaume Couairon, Marta R. Costa-jussà, David Dale, Hady Elsahar, Kevin Heffernan, João Maria Janeiro, Tuan Tran, Christophe Ropers, Eduardo Sánchez, Robin San Roman, Alexandre Mourachko, Safiyyah Saleem, Holger Schwenk
Статья: https://arxiv.org/abs/2412.08821
Код: https://github.com/facebookresearch/large_concept_model
Ещё одна классная работа от FAIR (BLT https://hottg.com/gonzo_ML/3109 тоже была их).
Хочется уметь работать на разных уровнях абстракции. Мозг, очевидно, умеет это делать и наше мышление не оперирует только лишь на уровне слов. У нас есть какой-то top-down процесс решения сложных задач. Например, при создании длинного документа мы (обычно) сначала планируем его верхнеуровневую структуру, а затем начинаем добавлять детали на более низких уровнях абстракции. Текущие LLM работают скорее не так, уровень токенов — наше (их) всё. Может, конечно, и есть там внутри какие-то неявные иерархические репрезентации, но иметь их явно было бы более полезно. Иметь ризонинг и планирование на этом уровне также было бы ценно. Совсем хорошо было бы иметь этот уровень независимым от конкретного языка и модальности — одна и та же мысль может быть выражена на разных языках и в разных модальностях (текст, голос).
Хочется (снова) уйти от токенов — в BLT мы уходили в латентную не видимую снаружи токенизацию, а здесь мы уходим в более высокоуровневое пространство эмбеддингов для концептов и хотим моделировать процесс ризонинга на уровне семантики, а не токенов, и иметь LCM (Large Concept Model) вместо LLM.
Для проверки идеи ограничиваемся двумя уровнями: 1) subword токены и 2) концепты. Под концептами понимается абстрактная неделимая идея, на практике часто соответствующая предложению в документе или высказыванию в разговорной речи. В отличие от одиночных слов это подходящий элемент для достижения независимости от языка.
Для такого подхода надо иметь пространство эмбеддингов предложений с доступным энкодером и декодером. В качестве такового взяли FAIR’овский же SONAR (https://arxiv.org/abs/2308.11466) с поддержкой 200 языков (все языки из проекта No Language Left Behind, https://arxiv.org/abs/2207.04672) на текстовых входах/выходах, 76 языков на речевом входе и одного английского на речевом выходе. SONAR бьёт по качеству LASER3 и LabSE и доступен в репе https://github.com/facebookresearch/SONAR. Размер эмбеддинга 1024 float чиселки (что значит, типичное предложение в виде эмбеддингов будет занимать в разы больше места, в работе на 1Tb текста уходило примерно 15-20Tb эмбеддингов).
Имея всё это мы через энкодер SONAR можем получить из входного текста последовательность концептов, т.е. эмбеддингов предложений. И дальше эту последовательность обрабатывать LCM, генерируя на выходе новую последовательность концептов. А её в свою очередь декодировать SONAR’ом в последовательность токенов. Энкодер и декодер SONAR берутся готовые и не обучаются, обучается только LCM.
Что красиво, одна и та же последовательность концептов из LCM может быть декодирована в разные языки и модальности без необходимости перепрогонять весь процесс ризонинга. LCM вообще не знает ничего ни про языки, ни про модальности, из которых на её вход пришли данные. Появляется красивая модульность, обучил энкодер/декодер для нового языка — и уже обученная LCM автоматом с ним работает. В работе есть таблица про количество поддерживаемых языков в разных модальностях, LCM со своими 200 языками для текста здесь всех бьёт, но не совсем понятно как получены цифры для GPT/Gemini/Claude, я вроде не видел заявленного списка поддерживаемых языков у этих моделей. Ещё, конечно, было бы интересно посмотреть на концепты, которые неодинаково хорошо декодируются в разные языки.
>>Click here to continue<<