Прочитал
интересную статью про компанию ABBYY и ее закат. Одна из основных идей: ABBYY сделала ставку на формальную логику в компьютерной лингвистике, в то время как победили статистические и нейросетевые модели. Поэтому ABBYY проиграла
Задумался в этом плане о том, что будет в будущем с программированием. Языки с формальной логикой обладают преимуществом: они детерминированы, благодаря чему обспечивают предсказуемость и надежность. Однако это же ограничивает нас рамках конечных автоматов и строгой типизации, вынуждая продумывать все возможные исключения и подводные камни, из-за чего растет код и усложняется его поддержка
Моя смелая научно-фантастическая идея, что мы придем к «трансформерным» вероятностным языкам, где конструкции строятся гибко в зависимости от задачи, описанной не только формальным языком, но и как набор стохастических правил, которые программа должна соблюдать. Ну типа: «На вход поступают такие данные, а на выходе ожидаются такие. Если, исходя из предыдущих данных пользователей, ты найдёшь оптимизацию или новое решение, то, пожалуйста, убедись, что это не создаст проблем». Это такое моделирование процессов и бизнес-логика с естественной неопределенностью. Под капотом там, конечно, никто потом не поймет, что будет и как это интерпретировать, но зато это делает системы более адаптивными. Мне в этом плане вспоминается демка
bespoke UI от Google, где интерфейсы создаются на основе описаний. Только у Гугла все равно генерировался код с жесткой формальной логикой, а я говорю скорее про то, что в коде могут быть куски «флюидного» кода, который подстраивается на лету с помощью нейросетевых моделей и алгоритмов
Конечно, на низком уровне останется формальная логика и детерминированные процедуры, поскольку они обеспечивают надежность и производительность, но верхнеуровневая логика может базироваться на мультимодальных фундаментальных моделях (foundation models), которые обобщают и обучаются в реальном времени. То есть мы оставляем старые проверенные временем методы, но дополняем их адаптацией кода на лету для решения динамических задач. Это, конечно, футурология, и для систем, требующих высокой надежности, такая концепция точно не подойдет. Вряд ли мы увидим такое в банковском ПО. Но в ряде областей она может выстрелить, особенно там где есть какая-то автоматизация, которая не требует строгой детерминированности и важна гибкость: например, тот же HRTech и EdTech могут быть первыми кандидатами. Представьте себе образовательный продукт, в котором на ходу генерятся новые сценарии обучения на основе предыдущих взаимодействий и индивидуальных потребностей учащихся
Короче, размечтался на ночь, но кто знает куда нас ИИшечка приведет