Вот мои краткие заметки по происходящему на сегодняшнем фронтире. Никакого форсайта или советов окружающим, это чисто личные оценки, для собственного стратегирования (в том числе стратегирования и ШСМ). Поэтому моё "мышление письмом" тут устроено просто: отслеживание трендов и прикидки по тому, что надо бы мне делать в свете этих трендов.
AI на базе языковых моделей: стратегия была доложена на конференции, она не изменилась
Новая эпоха началась с 14 марта 2023, когда опубликована была GPT-4. Это достаточно умная нейросетка, чтобы развернуть в сторону AI сотни миллионов неглупых голов, и в отрасль полились более чем большие деньги, которых и раньше уже было много. Помним, что "деньги сегодня -- крутые продукты через пару-тройку лет после инвестиций". А времена такие, что некрутые продукты надо демонстрировать пораньше (стало очевидно на примере разницы стратегий OpenAI+Microsoft и Google). То есть в 2026 году даже загадывать нельзя, что будет. Всё более чем стремительно. Поэтому любые телодвижения должны быть короткими, чтобы вовремя успевать сменить направление. Из новенького тут -- OpenAI открывает на этой неделе в ChatGPT доступ всех желающих к плагинам. Ждём неделю -- и всех смоет от новых неожиданных применений "общего интеллекта, но достаточно умного, чтобы исполнять какие-то более-менее специализированные роли, а также умеющего немного программировать".
Стратегия развития машинного интеллекта в Aisystant рассказана в моём докладе на конференции 23 апреля 2023 (https://www.youtube.com/watch?v=u08rhUX661A&t=9005s , слайды https://disk.yandex.ru/i/odHYnzuaD2AaZA), вчера на заседании лаборатории AI мы её подтвердили:
-- вписываем наш чат-бот пока как семантический поиск (ретривер), ибо он туповат.
-- добавляем окошко записи в блог в нашем клубе прямо из курса, а в курс и блог добавляем какой-то универсальный табличный моделер (часть этих работ уже идёт)
-- вставляем уже более-менее умного бота примерно как в случае парного программирования, но у нас это будет парное моделирование (отдельный вопрос, как такому бота научить)
-- кроме оригинального своего движка моделера (курсы -- это хелпы к моделеру) делаем коннекторы к coda.io, notion.so или что там будет ещё из модного.
Ключевые вопросы тут:
-- как научить бота честно быть не "вообще умным по состоянию попсовых практик из интернетов", а придерживаться мета-мета-модели из наших курсов. То есть нам подойдёт опыт ботов для колл-центров или чего-то похожего. Важно, чтобы на вопрос "какие основные достоинства инженерии требований" бот отвечал "сейчас признали, что достоинств нет, поэтому сейчас и инженерии требований нет", а не перечислял разные её характеристики как "достоинства" (сейчас, увы, он именно так поступает, типа "выдача деонтических описаний является достоинством инженерии требований", и даёт ссылку на абзац, где говорится о том, что инженерии требований больше нет в том числе и из-за недостатков именно деонтических описаний. Тупой GPT-3.5 плохо работает с отрицаниями).
-- как получить всё подешевле, ибо самые умные боты будут дорогими (по идее, если люди и боты будут примерно одинаково полезны, то или стоимость людей упадёт до стоимости бота, или стоимость бота поднимется до стоимости людей. Рынок есть рынок).
Получается, что ждём развития по двум линиям:
-- конкуренции моделей типа Bard, которая оказалась 380B и накормлена в предобучении 3.6T токенов https://www.cnbc.com/2023/05/16/googles-palm-2-uses-nearly-five-times-more-text-data-than-predecessor.html. Ответ OpenAI+Microsoft -- это открытие для всех пользователей ChatGPT на базе GPT-4 доступа к плагинам. Тут ничего делать не надо: сидим и ждём, когда нам выкатят предложение и цены.
-- развития линии "как из маленькой сетки сделать большую" (грубо говоря, как сделать маленькие дешёвые опенсорсные сетки поумней). Тут несколько стратегий: 1. Архитектуры нейросетей получше, но там уже и так хорошо, Хинтон замечает, что найдены архитектуры, которые учатся уже лучше людей, примеры few-shot learning это чётко показывают на всех тестах больших моделей. 2. Оптимизация архитектуры не столько для предобучения (оно может быть дорогим), сколько для последующего инференса, сюда уже много копают. И сюда же -- стоимость аппаратуры (дискуссия о разнице в цене GPU и TPU в расчёте на один инференс). 3. Как предобучать: пока найдено два хода, а) начинать с обучения на программных кодах для пущей рациональности в поведении итоговой модели, писал об этом в последнем абзаце https://ailev.livejournal.com/1683875.html, и б) уровень владения языком для дешёвых сеток растёт, если дальше обучать на словаре, на котором говорят 3-4 летние дети и просить рассказывать сказочки (при этом старшие дорогие сети учат дешёвые сети, ибо никакими другими наборами данных "из интернетов" это не возьмётся, чисто искусственный приём -- https://arxiv.org/abs/2305.07759). 4. Совместно оказывается, что маленькие сетки, наученные и по кодам, и по этим сказочкам и ещё с какими-то знаниями о мире, сильно умнее (в том числе в кодировании), если ещё и увеличивать число запросов. Грубо говоря, сто "бесплатных" вызовов дешёвой сетки могут оказываться эффективней одного "дорогого" вызова большой сетки от какого-нибудь OpenAI или Google, например, это показано в https://arxiv.org/abs/2305.01210. Поэтому prompt engineering для малых сеток крайне важен (и там запас довольно велик, Automatic Prompt Optimization can outperform prior prompt editing techniques and improve an initial prompt's performance by up to 31%, by using data to rewrite vague task descriptions into more precise annotation instructions -- https://arxiv.org/abs/2305.03495). Это "много раз вызвать тупую сетку, чтобы получить результат" иногда начинают называть "программированием над нейросетками", Microsoft предложила даже фреймворк для этого -- https://github.com/microsoft/guidance/. Это обобщение всяких техник типа Chain of Thoughts. По этой линии "как из дешёвой сетки сделать дорогую, хорошо её запрограммировав" надо быть очень внимательным: в какой-то момент прыгать на какой-то фреймворк -- и делать.
И, конечно, смотрим на ещё две линии:
-- как втыкают AI в моделеры типа notion.so и coda.io, какие там интерфейсные решения.
-- какие есть опенсорсные продукты, чтобы подобный моделер сделать внутри Aisystant. Какие-то мы уже нашли, но просто сил не хватает прямо сейчас этим заниматься.
Самим придётся решать задачи о том, как работу с универсальным моделером с AI, имеющим предпочтения к практикам, сопроводить курсами по этим предпочтениям. Этого точно никто за нас не сделает. Это наше отличие от всех других проектов, где в центре будет "парное моделирование". Ибо у нас не совсем универсальное моделирование: оно универсальное в плане domain, но не универсальное в плане TLO (top level ontology, наши материалы курсов с мета-мета-моделью). Когда закончу текущую работу по курсам, займусь ровно этим вопросом как приоритетным -- именно тут "если не я, то никто".
Следующий инвестиционный пузырь: робототехника. Надо бы сделать прикладной курс
Но это всё цветочки, "офисная работа". Ягодки просматриваются по выходу в реальный мир, где надо двигать не биты, а атомы. Речь идёт о робототехнике. Для отсматривания этого глядим на традиционные области системной инженерии: это прежде всего транспорт (авиакосмос, автомобили, в меньшей мере всякие инфраструктурные сооружения для них типа мостов, но со включением систем-создателей -- КБ и заводы). Я отслеживаю три направления:
-- удешевление эволюции. Это означает, что "железо" должно переходить на "непрерывное всё". С этим может справиться аддитивное производство, то есть 3D-печать. И это будет более чем быстро, ибо пойдёт мощный пиар со стороны Relativity Space, изо всех космических компаний глаз да глаз нужен именно за ними. Фишка в том, что вместо специализированной оснастки будут универсальные принтеры, которые будут выпускать примерно всё. Роботов для сборки я пока даже не рассматриваю.
-- новые характеристики самой механики (ОК, "электромеханики"). Недаром люди из Boston Dynamics как-то жаловались, что основные проблемы там были не в софте, а в не очень надёжной и эффективной, а также слишком дорогой механике. Тут я советовал бы смотреть на видео успехов системной инженерии типа https://www.youtube.com/watch?v=RhbDeEEo8F4 -- там электросамолёт установил рекорд скорости, использовав нестандартные решения по батареям (блок батарей с жидкостным охлаждением для запаса по отбору мощности), по мотору (мощный мотор с осевым потоком/axial flux motor -- он почти вдвое легче и втрое меньше таких же моторов с радиальным потоком, а также даёт больший крутящий момент, хотя раньше такое не получалось, там ещё много над чем можно думать -- https://www.nrel.gov/docs/fy15osti/63661.pdf). Конечно, этот уже проявивший себя в деле мотор идёт дальше в автостроение, Mercedes выпустит электрокар на его основе в 2025 году. Но всю эту механику надо сделать ещё крайне дешёвой, на это тоже уйдёт пара-тройка лет (см. также и первый пункт).
-- переход робототехники от "специальной" к "универсальной с инструментами".
Вот этот последний пункт требует отдельного рассмотрения:
-- Alan Key постоянно замечал, что программисты должны смотреть на природу: там всё построено из универсальной дико сложной машины клетки. А программисты пытаются строить из "молекулярных структур", которые явно недостаточно автономны и универсальны -- поэтому нельзя считать их кирпичиками.
-- все проекты с standalone DSL по факту провалились, победили eDSL: берём хост язык, и на нём делаем несколько встроенных domain-specific languages. Это, конечно, накладывает требования на хост-язык, который становится чем-то типа "платформы для DSL".
-- если считать, что аппаратура и алгоритмы -- это одно и то же, а изменения в мире (инженерия) это часть active/embodied inference, то всё, что мы знаем из алгоритмики вроде как становится пригодно к "железу". В том числе теорема о бесплатном обеде: не может быть ничего универсального, для каких-то манипуляций всё равно нужны будут спецдевайсы. И тут хорошо подходит "универсальная платформа плюс инструменты". Для человека это он сам, как использующий инструменты, для нейросетей это подходы типа Toolformer и TaskMatrix, а вот для роботов, похоже -- это "человекоподобный робот, а уж инструментов для него сделано -- вся планета".
Вот это рассуждение про неизбежную победу универсальности для человекоподобного робота в основе стратегии как Tesla (помним, что Элон Маск говорил, что этот его робот будет более важным продуктом, чем сам электромобиль), вот у них апдейт с новым видео -- https://www.youtube.com/watch?v=XiQkeWOFwmk, так и множества других фирм. Вот пример ещё одного анонса последних дней, от Sanctuary AI, видео там не такое интересное, как сам текст интервью с создателем: https://spectrum.ieee.org/sanctuary-humanoid-robot.
Появляются и новенькие тренды к этой "универсальности", прежде всего тренд экзоскелетов, плавно переходящий к экзотелу, прежде всего дополнительные четыре руки. Вот как видят это художники, у них это стандартный образ для инженеров:
Вот как это выглядит для танцев -- https://www.youtube.com/watch?v=ywrK1yTYRIA (я там написал даже маленький обзорчик именно по танцевальной линии, https://vk.com/wall-179019873_1747, "особенно трогателен там момент передачи дополнительной руки от партнёра партнёру. Хотя финальная обнимашка тоже ничего. Вес всех четырёх рук относительно небольшой, 14кг, вполне посильно"), подробности проекта https://newatlas.com/robotics/jizai-arms-supernumerary-robotic-arm-system/, статья https://dl.acm.org/doi/10.1145/3544548.3581169.
А вот это выглядит в промышленном исполнении с не очень декоративными манипуляторами от KIMLAB, https://www.youtube.com/watch?v=uq5AF7WDP1Y -- там где-то на 2:40 показывают рюкзак с четырьмя дополнительными руками.
Вот так фантазии художников плавненько так становятся былью, уже сегодня. Конечно, там проблемы буквально во всём (энергия, управление, прочность-скорость-точность, вес собственный и сила), тем не менее. Скажем, вот показано, как работает актуатор для робота Tesla -- https://youtu.be/dliVT8cKOsc, проблемы с электромеханикой потихоньку решаются.
В принципе, в робототехнике тот же эффект, что был с компьютерами "на языках программирования и прикладном софте" и сейчас "на базе больших языковых моделей":
-- программировать выполнение отдельных задач, чтобы они выполнялись как-нибудь удовлетворительно. Типичный пример тут -- как двигать и переворачивать предметы без захвата, свеженькая работа: https://hacman-2023.github.io/.
-- второе направление -- это сделать сразу "моторную кору в целом" и получить что-то типа "большой движенческой модели" (по аналогии того, что происходит с GPT-4 -- когда модель становится достаточно большой и на её обучение потрачено достаточно данных, в сложной нейросети появляется эмерджентность, и решаются задачи, которые ранее были невозможными). Уже появились первые эксперименты, которые прикручивают GPT-4 к движкам, управляющим роботами (я писал уже про ChatGPT for robotics, https://www.youtube.com/watch?v=NYd0QcZcS6Q). Прикрутить современные МLLM к железу роботов, начав учить их кодировать-планировать, а потом и управлять движением в реальном времени -- это уже не в таком далёком времени. Парадокс Моравека уже почти решён.
Для моего стратегирования это означает поднять в приоритете линию курсов по инженерии:
-- курс системной инженерии уже написан, поэтому "основа положена"
-- надо писать прикладной курс робототехники для инженеров, где хотя бы как-то знакомить с предметом: по паре десятков страниц на пару десятков тем. Начиная от неполноприводного движения (выяснил, что не все даже по-русски знают, как это underactuated называется, см. дискуссию в комментах к https://www.facebook.com/mark.svitkin/posts/pfbid02cxr3nZd1fgJe6Vv96fVrUiQj2pozi7iqSKsYpthH6pvVpgoFvSEjHagf1dwLnNwnl) и идей многоуровневых систем управления типа John Doyle (который и про разнообразие характеристик аппаратуры писал, https://ailev.livejournal.com/1622346.html), и заканчивая голосовым интерфейсом и даже нейроинтерфейсом. Акцент не на "спецроботов" типа автомобилей без водителя и ракет без пилотов, а именно на универсальных, то есть антропоморфных "коботов", включая выходы на экзотело.
-- насколько там надо будет перед этим прикладным курсом вводить курс физики-математики (намётки для этого уже написаны мной в пререлизе "Интеллект-стека") -- непонятно. И ещё как могли бы выглядеть лабораторки в таком прикладном курсе, чтобы дотянуть знание до реальных проектов. Одно дело трансдисциплины, для которых материалом могут быть практически любые проекты (ага, квантор всеобщности тут намерен, "любые-любые", это ж мета-мета-модель!). А другое дело -- прикладная практика, где надо бы тренироваться именно на робототехнических проектах.
-- и ещё давняя мечта для показа связи механики и управления использовать собственное тело. Курс системного фитнеса, где ты знакомишься с этой underactuated robotics, пытаясь вместо робота двинуть себя и настроить себя для "универсальности".
Так что задумываюсь о создании лаборатории робототехники с выходным продуктом -- прикладным курсом. Конечно, возникает сразу множество других вопросов (про прикладные курсы для архитекторов корпоративных информационных систем, прикладные курсы по самим система AI и т.д.), но в одном маленьком тексте нельзя сразу обо всём говорить.