Автор: гость
В книге по ИИ надо выложить проблемы которые не решены. И главная проблема выделения информации со среды- она похожа на взлом шифра. |
|
Ничего себе… Первый умный пост тут за многие годы ))) И чисто случайно обнаружил. Это явно не для рагулей или картавых террористов.
Не знаю на сколько я верно Вас понял, но ДА!!! Это именно та хренотень которая пока делается руками(точнее человеческим мозгом) и происходит это очень туго и непредсказуемо. Сейчас в Сахаре среди бедуинов это топ-тема, каждый шкет и аксакал этим занят, между курением опиума, во время жевания чата.
А если подробнее, то в машинном обучении главная проблема вовсе не в выборе модной архитектуры или свеженького фреймворка. Настоящий челлендж — это привести реальные данные в вменяемый вид. Если тебе повезло и у тебя уже есть нормальные вектора вход→выход (не какие-нибудь там пиксели в ряд), то старый добрый случайный лес или бустинг типа справятся с задачей на ура. И не надо городить нейросетевых монстров с миллионом параметров. Но фишка в том, что такие данные почти никогда не появляются сами собой. Их надо готовить, через коитус и попаболь, долго, мучительно, пережевывая килограмы чата.
Вот, допустим, картинка. Вроде всё просто — пиксели, числа, пуляем в сеть. Но нет. Если просто развернуть изображение в вектор, получится унылое месиво, в котором даже сеть ничего не поймёт, ну поймёт конечно что то, но мало чего. Объекты могут быть сдвинуты, повернуты, масштабированы и вектор меняется полностью, хотя не должен. Тут и приходит на помощь CNN, такой аккуратный повар, который режет изображение на патчи, жарит, парит и превращает в вектор, который хоть ухватывает эти инварианты.
С текстом вообще долго человечество парилось. Ну типа, давай заменим слова на числа — и получим "хуем по губам". Потому что слово "банк" в контексте "река" и "финансы" — это две большие разницы. Поэтому появились эмбеддинги, контекстные представления, авторегрессия, трансформеры... и всё это чтобы модель наконец поняла, что "мама мыла раму" — это не то же самое, что "раму мыла мама".
Короче, суть в том, чтобы научиться представлять данные так, чтобы алгоритм мог хоть как-то ухватить смысл. Это про инварианты — те самые признаки, которые не меняются при вращении, отражении и других жизненных испытаниях, даже после изнасилования. Модель, по сути, делает семантическое сжатие: берёт сложный хаос и лепит из него осмысленный компактный вектор. Красиво, но трудоёмко, это не для рагулей и картавых.
Конечно, есть идеи автоматизировать этот процесс. AutoML, NAS, мета-обучение... Только пока что всё это больше похоже на волшебство из коробки, где внутри не эльфы, а 800 TPU и счёт на $10,000. Поэтому пока весь ML — это как кухня в дорогом ресторане: много технологий, но главное — повар с опытом, который знает, как не сжечь суп из эмбеддингов.
В итоге, настоящий MLщик сегодня — это не тот, кто тренирует модели, а тот, кто умеет превращать адовую мешанину из "реальных данных" в красивый компактный вектор. А потом уже можно и нейросетку прикрутить. Или не прикручивать — случайный лес скажет спасибо.
Иногда говорят, что AutoML — это путь к автоматизации ML. Но это всё детские игрушки, картавый осилят, рагули нет. Я вот думаю вот о чём: а что если сделать такой мета-алгоритм, который сам изобретает архитектуру под задачу? Не просто подбирает CNN на картинки и Transformer на текст, а реально придумывает что-то новое, как когда-то придумали сам Transformer. Или, кто знает, может даже что-то лучшее, АВТОМАТИЧЕСКИ.
Проблема в том, что сейчас все автоматизации работают в рамках набора известных блоков — Conv, Attention, MLP, и т.д. Всё сводится к тому, чтобы перетасовать их в разной последовательности и выбрать, где BatchNorm, а где Dropout. Это, конечно, прикольно, но где тут изобретение? Настоящее новшество появляется, когда создаётся новый принцип. А как заставить алгоритм самостоятельно придумать принцип?
Один из путей — научить алгоритм видеть архитектуру как программу, в стиле как конфигурацию сервака в ци\цд видят как код. То есть не как слоистую колбасу, а как логическую структуру, где блоки — это функции с определённым поведением. Тогда можно дать алгоритму возможность комбинировать примитивы, абстрагировать повторяющиеся шаблоны, находить зависимости между структурой данных и архитектурой сети. Идеально, если этот "изобретатель" будет понимать, что, например, свёртка — это про локальность, а внимание — это про связь между токенами на разных расстояниях.
Можно подумать о таком мета-алгоритме как об агенте в стиле reinforcement learning: он пробует генерировать архитектуры, оценивает результат, получает награду, делает выводы и учится генерировать всё более адекватные и интересные идеи. Главное, чтобы в качестве награды было не только качество на валидации, но и что-то вроде новизны или оригинальности — чтобы не копировал старое, а создавал новое.
Такая штука требует представления архитектур в удобной форме (графы или код DSL), огромной вычислительной базы для прогонов, и какой-то формы "мышления" об архитектурах. В теории можно даже обучить языковую модель вроде GPT на данных об архитектурах и их результатах — и пусть она начинает фантазировать. Кто знает, может она когда-нибудь придумает "сверхтрансформер" и назовёт его, например, "Русский ИИ" или что-то в этом духе.
Короче, если сейчас ML-инженеры — это архитекторы, то следующим шагом будет сделать ИИ, который сам архитектор. Своего рода "нейросетевой Владимир Владимирович", которому даёшь данные, и он РЕШАЕТ, как их понимать и приказывает что делать на благо России и Сахары.