Free YouTube Transcribe

Video transcript

Александр Никулин | Обучение с подкреплением по данным без разметки действиями

Astar Acceptman · 8,298 words · 38 min read

Want to search this transcript, jump the video from any line, or download it as TXT, SRT, or VTT?

Open in the transcript tool

Full transcript

0:00Всем

0:04спасибо, кто дошёл. Вот, как видно,

0:08название обучения с подкреплением

0:09пропало, потому что пока я делал, в

0:11общем, доклад, понял, что он не совсем

0:14про обучение с подкреплением.

0:17Тем не менее, надеюсь, что доклад

0:19получится человый, не очень напряжный.

0:22Под конец школы всё-таки все уже устали,

0:24поэтому я расскажу по верхам. Вот. И для

0:27меня важно, чтобы вы, наверное, ушли с

0:30этой лекции с пониманием одной простой

0:33мысли. Зачем нам вообще надо бы

0:36обучаться на данных без действий? Потому

0:39что, э, всё остальное оно, в общем,

0:42вторично, да, там разбирать методы в

0:45глубину. В этом году одни хайпуют, в

0:48следующем году уже следующие будут. Вот

0:51важный сам принцип. Поэтому мы

0:52разберёмся, собственно говоря, куда

0:54делись действия, почему нам нужно, а,

0:56использовать данные без действий, что

0:59делать, если действий нет, да, какой

1:01самый простой бейзлайн можно придумать.

1:04Потом самый популярный, в общем, на

1:06данный момент метод латентные действия.

1:09То есть они очень натурально обобщают

1:12этот самый простой бейзлайн. И, конечно,

1:14поговорим немножко про ограничения,

1:16потому что метод не финальный, у него

1:19есть недостатки, несмотря на все успехи.

1:22Вот. И начнём мы, конечно, с первой

1:24части, куда делись действия, потому что

1:27у вас такой вопрос может возникнуть,

1:29собственно говоря, если вы слышали

1:31что-то про обучение с подкреплением или

1:34проitation learning или, может быть, на

1:36школе вам объясняли, что обучение там с

1:39подкреплением - это способ решения, в

1:42общем, задач.

1:44не знаю, принятие решений. И мы там

1:46какие-то решения принимаем и действия в

1:48среде совершаем, в отличие от

1:51какого-нибудь обучение с учителем, где

1:52мы просто предсказываем следующий токен

1:55или просто класс. Ээ, казалось бы,

1:58действия у нас должны быть, весь весь

2:00смысл в этом. Ну вот, на самом деле,

2:04конечно, здесь речь не про то, что у

2:05нас, в принципе, нет действий, как в э

2:09формализации задачи. Мы, конечно, хотим

2:11обучить какого-то агента, который

2:13действия в среде совершать всё-таки

2:15будет. Проблема в том, что у нас не

2:17всегда есть данные, которые эти действия

2:19содержат. И дальше мы, собственно

2:22говоря, ээ натурально подойдём к тому,

2:25как эта ситуация появляется, что нам

2:27нужно обучаться на данных без действий.

2:31Начнём немножко издалека,

2:34вот, э, и прийдём к этому, э, сами по

2:38себе. Ну, начнём с того, что обучаться в

2:41онлайне, то есть напрямую обучать агента

2:45взаимодействовать со средой, это крайне

2:47дорого, особенно если вы делаете это с

2:49помощью обучения с подкреплением. Есть

2:51вот такой классный пример, который я

2:53люблю приводить.

2:55Если вы играли в Доту или хотя бы, в

2:56общем, слышали, чем занимался Open до

2:58того, как он начал заниматься языковыми

3:01моделями, он как раз занимался обучением

3:03с подкреплением и обучал, например,

3:05ботов в играть на проуровне в Доту 2. И

3:09вот, чтобы обучить такого бота, им

3:12понадобилось 45.000 лет. Конечно,

3:15виртуальных, но они виртуальных - это 10

3:18месяцев. Это при этом они ещё имели

3:20доступ к симулятору, то есть не напрямую

3:22взаимодействовали с дотой через

3:25интерфейс, а у них была low level, в

3:28общем, IP, и они могли там ускорять эту

3:31игру, не знаю, в 10 раз, там в сотню

3:34раз. То есть, если бы они играли в эту

3:36игру как реальный человек, там бы ушло

3:39очень-очень много времени. Возможно, они

3:41бы не смогли это сделать.

3:44Второе, ээ, обучаться в онлайне - это не

3:47только долго, но это ещё и очень трудно.

3:49Я, например, очень люблю такую

3:52видео того, как

3:54ребёнок маленький ещё совсем эксплорит

3:57свою среду вокруг. Здесь оно ускорено.

4:00Там, конечно, изначально видео 9 минут и

4:02оно ещё ускорено. То есть вот он 40

4:04минут вот так вот без прерыва туда-сюда

4:07ходит, каждую игрушку потрогает. И, в

4:10общем,

4:11нам до этого ещё очень далеко.

4:14Потому что в рели у нас там или в

4:16обучении с подкреплением или в имиation

4:18learningнинге у нас всегда есть какой-то

4:22эпизод, например. То есть эпизод

4:25предполагает под собой, что мы какое-то

4:27начальное состояние всегда возвращаемся,

4:30мы какую-то задачу конкретную решаем, а

4:32не просто вот экспорим среду. А даже

4:34если экспорим, то мы её экспорим

4:36постольку, поскольку. Но, вообще-то, мы

4:37хотим решить что-то одно конкретное.

4:41И возникает много проблем, например, да,

4:43с работотехникой, когда мы в реальный

4:45мир переходим. Вот мы хотим, например,

4:47обучить робота брать кубик. Допустим, он

4:51взял кубик и ошибся. Кто вернёт среду в

4:54начальное состояние? Вот он, не знаю,

4:56кубик уже с, не знаю, с со стола упал,

4:59он на полу лежит. В общем, это должен

5:01делать человек. Итак, совсем, да, это

5:04совсем простая задача. Если мы хотим, не

5:06знаю, обучить робота вообще чему-то

5:10полезному в реальной жизни, например,

5:11делать уборку в доме, каждый раз сделать

5:14беспорядок, прежде чем он начнёт эпизод

5:16и потом наведёт порядок, а потом снова

5:19делает беспорядок. Это, в общем,

5:21нетривиальная задача. И как делать

5:23continual learning в онлайне, это, в

5:25общем, тоже задача нерешённая.

5:29И более того, обучаться в онлайне - это,

5:31на самом деле, опасно, потому что

5:34возможно два исхода. Допустим, вы

5:36запустили агента на каком-нибудь роботе

5:40делать ту же самую уборку или просто

5:42подбирать предметы. Ну, вероятнее всего,

5:44если вы запуститель, то вы вот заметите,

5:47не знаю, какую-нибудь такую картину.

5:49Это, конечно, не значит, что Boston

5:50Dynamics использует L. Это скорее просто

5:54визуализация самого вероятного исхода.

5:56Он всё разломает, в том числе себя,

5:59потому что он никаких там правилах

6:02безопасности, конечно, не знает, если

6:04человек заранее в него их не заложил.

6:08Ну и второй менее вероятный исход, но

6:10тем не менее, если всё получится, никто

6:13не гарантирует, что он не станет

6:14преследовать каких-то своих странных

6:16целей, которые вроде как максимизируют

6:19награду, но не тем самым способом,

6:21которым вы надеялись. У меня дальше

6:25будет гораздо более простой пример,

6:27чтобы понять, как такое может произойти.

6:31Вот. И поэтому, условно говоря, в

6:33обучении с подкреплением давно уже

6:34случился такой раскол. Он раскол на два

6:37больших подраздела,

6:40которые называются онлайн обучение и

6:41оффлайн обучение.

6:43как суммаризуя,

6:46мы не всегда можем обучаться в онлайне,

6:48поэтому оффлайн - это такое решение,

6:51потому что мы можем гарантировать в

6:53некотором смысле предсказуемость, э

6:56потому что мы сами собираем датасет, на

6:59котором агент обучается, то есть его

7:00может собрать человек в контролируемых

7:02условиях, да? Например, если мы

7:04обучаемся на беспилотниках, это будет

7:08опытный водитель, который не будет

7:11нарушать там правила ПДД, не будет, э,

7:13пытаться задавить какую-нибудь собачку

7:15встречную. Э

7:18также во время обучения в онлайне у нас

7:21нет никаких гарантий того, какое

7:24поведение в итоге изобретёт агент. Даже

7:26если мы дали ему, например, награду за

7:28то, чтобы он бежал вперёд, ничто не

7:31гарантирует, если ему дали такую

7:33награду, что он решит, что нужно бежать

7:35именно на ногах, потому что у него нет

7:37понимания, что такое ноги. Он просто

7:39знает, что нужно бежать вперёд, и он

7:41может изобрести что-то, что мы даже не

7:44могли предугадать. В то время как

7:46оффлайне мы можем более-менее это

7:48контролировать, показывая ему только

7:49нужное поведение и добавляя

7:52регуляризацию на это поведение.

7:54И, конечно, в, как я уже там приводил

7:58пример с Дотой, обучаться в реалтайме -

8:01это дорого, если у нас особенно

8:02медленный симулятор или этого

8:03симулятора, ну, нет вовсе, да, условно

8:07говоря, для

8:09работотехники у нас есть некоторые

8:10подобия симуляции, но они, конечно,

8:12совершенно не покрывают всё разнообразие

8:15там физического и реального мира.

8:17Поэтому нам нужно собирать данные в

8:19онлайне. В онлайне их собирать сложно,

8:21поэтому их всех собирают

8:23контролируемым образом в датасеты и этих

8:26на этих датасетах уже обучаются.

8:30Собственно говоря, как это выглядит

8:32обычно

8:34с точки зрения человека, который эти

8:35алгоритмы обучает, да? В онлайн-Реле у

8:38нас постоянно есть такой цикл того, что

8:40мы, э, подаём состояние среды в агента,

8:43агент принимает какие-то решения, и

8:46потом эти решения в виде действий влияют

8:49на среду. Среда нам возвращает следующее

8:52состояние и вот так вот по кругу. Это, в

8:54общем, более-менее привычно. В

8:56оффлайн-реле у нас обычно строится

8:58чуть-чуть по-другому пайплайн обучение.

9:01Мы собираем какой-то большой детесет

9:03заранее в контролируемых условиях. А

9:06обычно он, как правило, экспертный, но

9:09экспертным ему быть не обязательно,

9:11потому что ли хорош тем, что он может

9:13превзойти экспертов данных. Мы этот сет

9:16собираем в оффлайне, обучаем на нём

9:19агента более-менее привычными нам

9:21способами. Можно даже с помощью

9:23imitation learning, да, где мы награду

9:25даже не максимизируем.

9:27Ээ и потом мы этого агента выпускаем в

9:30среду.

9:31Здесь, конечно, нам нужен онлайн, потому

9:33что без этого понять, что он выучил,

9:35довольно сложно.

9:37Так что здесь тоже сохраняется некоторый

9:39риск, но тем не менее мы его выпускаем,

9:42и в этот момент мы можем, да, там

9:43дособирать новые данные, чтобы понять,

9:45когда мы поняли, какие у него есть

9:47сейчас проблемы, чтобы эти проблемы

9:50э сделать меньше.

9:53Ну, в реальности, на самом деле, всё ещё

9:54проще, если вы посмотрите на большие там

9:56современные модели, которые хоть как-то

9:59могут называться агентами.

10:02Там реля почти нет. А даже если есть,

10:06там очень простой, который внешне очень

10:08похож на просто взвешенную регрессию,

10:11просто потому что

10:13- это довольно сложная система. И

10:16обычно, если вы хотите завести, то это

10:18плохая идея, потому что он, в общем, с

10:20девяностопроцентной вероятности не

10:22заработает. И даже в РЛИ там обычно

10:24стоит выбирать самые простые методы. И в

10:28современных моделях, которые обучаются

10:31там на, допустим, сейчас я скажу, что

10:33больших датасетах, да, например, как

10:37в работотехнике, там ээ самый обычный,

10:42как это называется, behavioral cloning.

10:44То есть мы просто учимся предсказывать

10:46следующее состояние в датасете. И этот

10:50датасет предполагается, что он

10:51экспертный. То есть, если мы будем

10:53хорошо его имитировать, мы будем хорошо

10:55выполнять требуемую задачу.

10:59И вот так вот, собственно говоря,

11:00появились Vision Language Action модели,

11:04потому что с релем с нуля обучаться

11:07сложно.

11:09Э, да, и в целом с Рэлем сложно

11:11обучаться. Люди посмотрели на то, как

11:14работают лмки, на то, как классно

11:16работают в лмки, когда у нас есть много

11:18данных, и стали, в общем-то, по этой же

11:20схеме обучать модели для работотехники.

11:23То есть мы вобрали в себя весь интернет

11:26в через лмку или в мку, и с помощью

11:30этого знания, которое некоторое, в

11:33общем, знания интернета нам даёт про

11:34реальный мир, можем уже, э, чуть-чуть,

11:37да, обучиться на роботтехнических

11:40датасетах. И он, по идее, да,

11:43предполагается, что он будет пообщаться

11:46за счёт того, что лмка и в Лэмка много

11:49всего о мире знает, да. Например, мы

11:51попросили её поднять красное яблоко, и в

11:54обучающих данных было только красное

11:55яблоко. Но если мы после обучения

11:58попросим поднять зелёное, оно

11:59более-менее поймёт, потому что в лэмке

12:03во время обучения э было и описание, чем

12:06отличаются цвета. Да и в целом они умеют

12:08цвета различать. Нам не обязательно

12:10добавлять это в данные напрямую. Ну, так

12:14предполагается.

12:16Но есть, в общем, нюанс.

12:19Я, конечно, сказал, что они обучаются на

12:20больших данных, но, ээ,

12:24это, конечно, преувеличение по сравнению

12:26с тем, сколько данных хранится в

12:28интернете или, например, на Ютубе.

12:31Всё-таки нам хочется их побольше, потому

12:34что если мы что-то и поняли из обучения

12:37всяких штук последние годы, это то, что

12:40данные - это, наверное, 99% успеха. В

12:44общем-то, архитектура, они все может

12:45быть и разные, но в лимите они сходятся

12:47все плюс-минус к одному. И итоговое

12:50качество обычно решается качеством

12:52данных. Поэтому нам для работики нужно

12:55много данных. Очень много данных. И при

12:58этом важно, чтобы они были очень

12:59разнообразные. Например, у влэмок сейчас

13:02есть большая проблема, что они,

13:05поскольку обучались в интернете, тоже в

13:07оффлайне, малось, в общем, имеют

13:09представление о том, э что такое

13:12физический мир, да? Э как называется

13:16common sense у них обычно отсутствует,

13:18если их специально на это не дотюнивали.

13:21Ээ они иногда выдают совершенно комичные

13:24результаты. И поскольку их обычно

13:26используют в ВЛА, эти комичные

13:29результаты выражаются в очень плохой

13:31перформанс.

13:34Сейчас эти данные обычно собираются

13:36двумя способами. Это либо телеоперация,

13:39либо симуляция. В общем, по разберём,

13:42что это такое. Телеоперация - это, в

13:45общем-то, буквально двойник, если грубо

13:48говорить, когда вы за робота, да, с

13:50помощью некоторого интерфейса или, э,

13:54он может быть в виде джойстика, может

13:56быть более сложный, как здесь изображён,

13:58выполняете действия, и робот за вами

14:00повторяет. И таким образом можно робота,

14:03в общем, не обучить, но хотя бы собрать

14:04некоторое количество данных, потому что

14:06вы человек, вы знаете, как ту или иную

14:08задачу выполнить, поэтому вы можете вот

14:13так вот пытаться собирать данные. Но, в

14:15общем, есть у этого некоторые проблемы.

14:18Во-первых, это оборудование достаточно

14:19дорогое.

14:21Во-вторых, его нужно много, если вы

14:23хотите масштабироваться. А

14:24масштабируется это линейно. То есть вы

14:26не можете одного человека посадить сразу

14:28100 параллельно траекторий собирать. Вам

14:30нужно 100 человек параллельно. И при

14:32этом, если вы когда-то пробовали в

14:34телеоперацию, я вот недавно попробовал,

14:36оказывается, что это на самом деле скилл

14:39такой нехилый требуется, потому что с

14:41первого раза я, в общем, оказался не

14:43лучше, чем агент, который с нуля

14:45обучается, потому что это не так-то

14:48просто. Там есть и задержка, и, в общем,

14:51некоторые тоже ограничения.

14:53Но тем не менее сейчас это основной

14:55способ сбора данных. А если посмотреть

14:56на стартапы типа Теслы, там, Finger, 1x,

15:00они буквально заняты этим. То есть вся

15:05их работа на самом деле заключается в

15:07том, как собрать данных побольше. И

15:10телебирация пока что там самый лучший

15:12способ.

15:14Почему? Потому что симуляция, она, в

15:16общем, подходит для некоторых узких

15:18применей, таких как, например,

15:20локомоция, да, то есть как научить

15:22робота там или робособаку ходить по

15:24разным э

15:26поверхностям. Э тут тоже, в общем, есть

15:29много, скажем так, ээ

15:33странностей, да, на демо они, конечно,

15:36все хорошо иногда ходят. В реальной

15:38жизни я слышал, в общем, даже здесь в

15:40аудитории из обсуждений не всегда так

15:42получается. Почему так? Потому что

15:44существует так называемый Sim to real

15:47gap. То есть у нас

15:50во время обучения симуляция это не

15:52точная симуляция реальности, конечно,

15:54это некоторая аппроксимация, а, в общем,

15:57физически, конечно, похожая на реальный

16:00мир, но в деталях не всегда, особенно в

16:03деталях, которые совсем мелочные,

16:05например, там в точности чисел. И

16:07поэтому агент, который много-много

16:09миллионов

16:10транзиций в этой симуляции обучается, он

16:13может просто переобучиться под эти

16:15странности. И когда его деплоишь в

16:18реальный мир после этого, он сходит с

16:20ума, потому что он такого не видел. Для

16:23него это

16:25out of distribution

16:27сэмплы.

16:29Вот. Но в остальном, а, симуляция - это

16:31достаточно хороший способ, как минимум,

16:34а, набрать каких-то не очень

16:35качественных, но разнообразных данных,

16:38потому что там можно запустить сотни

16:40роботов, тысячи роботов параллельно,

16:42всех их рандомизировать, да, что

16:44называется domain randomization. И

16:48сейчас там появились новые симуляторы,

16:49которые используют ГПО эффективно. Это

16:52всё ещё и будет очень быстро,

16:55но, вообще-то говоря, в других областях

16:57не так. В общем, они, конечно,

17:00вот недавно была лекция Илья Соцкевера,

17:03где он жаловался про то, что эра

17:06притренинга заканчивается, потому что

17:07закончился интернет. Вот им так повезло,

17:11что им интернет достался, и лмкам

17:14достался весь интернет, который содержит

17:16триллионы токенов текстовых, включая там

17:19даже не интернет, а, например, книги.

17:21Как вот недавно стало известно, Антропик

17:23скупал просто сотни книг, э потому что у

17:26них были качественные тексты.

17:29Да, там вм достался YouTube, Twitch,

17:32все фильмы, которые мы когда-либо сняли,

17:34это очень много данных, и многие из них

17:37довольно качественные. В них было

17:38вложено много человеческих сил. Ну,

17:41голосовым моделям, соответственно, тоже,

17:42да, там чего только книги записанные и

17:45озвученные стоят. И вот они, в общем,

17:48жаловались про то, что притрен

17:50заканчивается, надо бы изоб.

17:54Ну вот людям, которые всё это время

17:55занимались рейлем илингом

17:58или роботикой, это, в общем, выглядит

18:01смешно, потому что у нас эра притрейна

18:03ещё даже не началась, не то что

18:05закончилась, потому что мы вот на них

18:07смотрим и спрашиваем: "Ребята, у вас

18:08что, всё это время были данные?" У нас

18:11данных не было. И мы, в общем, всё это

18:13время думали, как бы откуда бы их

18:15достать.

18:18И вот в последнее время, когда появилось

18:20понимание о том, что данные - это

18:22всё-таки важно, и чем больше, тем лучше.

18:25И вот, возможно, мы зальём огромным

18:27количеством данных работотехнику, и она

18:30наконец заработает, начали появятся

18:32такие инициативы по сбору больших

18:34детсетов. И вот один из них, например,

18:36Open Xbodinment.

18:40Но даже тут, в общем, можно увидеть,

18:42каким потом и кровью даётся сбор таких

18:45датасетов. То есть этот датасет собирали

18:48несколько лет. Его собирали коллаборации

18:51всего мира, да, там 21 институт, там 22

18:55различных робота. Много это или мало?

18:58Ну, вообще-то это много с точки зрения

19:00работотехники, но с точки зрения

19:01притрено и разнообразия это очень мало,

19:04да, там всего 512, около 512 различных

19:08задач. То есть, конечно, там есть

19:09рандомизация относительно того, да, там

19:11поднять красное или зелёное яблоко, но

19:14это всё ещё одна задача.

19:16И там всего около 2 млн эпизодов. Что

19:18такое 2 млн эпизодов? Это очень мало,

19:21особенно если они обладают э малой

19:25разнообразией стартовых состояний. Ну и

19:28вот кажется, что

19:32он всё-таки как бы больше, гораздо

19:34больше, чем всё, что существовало до

19:35этого, и более разнообразнее. Но если

19:37посмотреть на конкретные задачи в этом

19:39датасете, они, конечно, даже близко не

19:41подходят к тому к тому уровню сложности,

19:44который мы бы от роботов хотели, да?

19:46Например, чтобы он убрал дом, не знаю,

19:48разгрузил посудомоечную машину, ещё

19:50что-нибудь, там всё такое вот вокруг до

19:53около. Подними кубик, подними его там на

19:56другой кубик, не знаю, ээ, подними

20:00тарелку и всякое такое. То есть очень

20:02базовые скилы.

20:04Вот, конечно, я на слайде отобразил, да,

20:06риторический вопрос. Покрывает ли этот

20:08дсет всё разнообразие реального мира,

20:10которое нам нужно покрыть, чтобы

20:12получить general purpose роботов,

20:15конечно же, не покрывает.

20:17Что с этим делать, в общем, не очень

20:19понятно. В последнее время появилась

20:22такая маленькая надежда, что мы можем

20:24найти решение в виде действий, в виде

20:27данных без действий. Что же это такие за

20:30данные? Ну вот в конкретном случае

20:32работотехники это эгоцентричные данные,

20:35которые содержат в себе наблюдение

20:38людей, да, условно говоря, повесили

20:40камеру на человека, заставили его весь

20:43день заниматься обычными делами. И вот у

20:45нас появился большой

20:48датасет с повседневными задачами людей.

20:52Вот кажется, что это очень полезно.

20:54Кажется, что это покрывает гораздо

20:56большее разнообразие реального мира, да,

20:58не симуляции. Кажется, что это гораздо

21:01лучше скелится, потому что нам не нужно

21:02ничего, кроме просто GoPro или даже, не

21:04знаю, Айфона, чего угодно.

21:08Это очень легко масштабировать.

21:10Более того, не только такими данными

21:12едиными. У нас всё ещё существует

21:15YouTube, куда люди залили просто

21:16огромное количество демонстраций, как

21:19заниматься разными вещами, там, начиная

21:22от футбола до каких-нибудь готовки. Э, у

21:26нас есть Twitch, где тоже очень много

21:29всего происходит, включая, да, там

21:32специальные секции, где люди что-то IRL

21:35делают, да, например, занимаются

21:36рукоделием и ещё чем-нибудь. Это всё

21:39гораздо более разнообразно, гораздо

21:41более интересно и гораздо более глубоко.

21:45Но вот есть проблема. Все эти данные -

21:48это просто видео, в них нет действий.

21:51Поэтому мы не можем просто запихать их в

21:53ла и сказать: "Давай ты вот это видео

21:55посмотришь и предскажешь настоящие

21:58действия, которые там были". И вот как

22:01же в таком случае быть?

22:03Э, к слову о том, что, в общем, вероятно

22:08в ближайшее будущее это будет таким

22:11очень важным и большим направлением. Э,

22:14например, Tтеesla явно говорит, что

22:17использует в своём роботе свои владу

22:21обучение на демо людей без действий. И я

22:25дальше покажу ещё примеры больших таких

22:26Влад, например, от NVIA, которые тоже

22:30этим занимаются. Поэтому тема важная,

22:32тема нужная, она даёт надежду на то,

22:34чтобы мы могли за разскелить

22:38наши данные на весь интернет и получить

22:40все бенефиты, которые получают лмки и

22:43влэмки, и, возможно, продвинуть работику

22:46куда-то далеко. И вот мы подошли,

22:49собственно говоря, к тому, чтобы

22:51мы поняли, зачем нам такие данные могут

22:54понадобиться,

22:56но непонятно, что с ними делать.

22:59Мы хотим получить агента, который из

23:01этих данных выучивает какую-то политику,

23:03как мы в рели говорим, да, то есть он

23:05выучивает какое-то поведение, но

23:07бездействия выучить их сложно. Это на

23:09самом деле большая область сама по себе.

23:12Она появилась, конечно, не вчера. Вот

23:15она просто вот так получилось, что

23:18сейчас она набирает обороты, потому что

23:20оказалось в нужное время в нужном месте.

23:23И, в общем, обещает нам решение важной и

23:25нужной проблемы, которая ранее так остро

23:27не вставала. Ну, названий у неё много,

23:29да, там это разные вариации. Relia from

23:32observation, imitation learning from

23:34observation, learning from video. И в

23:37общем, они называются все по-разному, но

23:40все об одном. И методов там много. Я

23:42расскажу только про одну конкретную

23:44ветку, да, там про одно один конкретный

23:47лист вот этого дерева, который я взял из

23:48обзора. Просто потому, что сейчас он

23:51самый популярный и он самый простой. Ну,

23:54а как мы выяснили, в общем, за эти годы

23:56самое простое скелится, вероятнее всего,

24:00лучше всего. Начнём с простого, да,

24:02такой пример насущный. Не знаю, играл ли

24:05кто-нибудь здесь в Minecraft.

24:07Вот я играл, считаю, что эта игра

24:09великая. И мой там, условно говоря, путь

24:11в рели начался с участия как раз в

24:14соревновании на Непсере,

24:17где задачей было обучить агента добыть

24:19алмаз.

24:21Задача сложная. за 4 года, по-моему, 4

24:25года существования этого соревнования,

24:28она так и не была достигнута. И, в

24:31общем-то, говоря, там проблема очень

24:32похожая на реальную жизнь, которую я

24:34описал с работикой. Если вы заставите

24:36агента обучаться в онлайне, вы, в общем,

24:40раньше составитесь, чем он дойдёт до

24:41алмаза, потому что Minecraft, в общем,

24:44он известен плохой оптимизацией. Это

24:47крайнея медленная среда, которую

24:49распараллелить довольно сложно.

24:52И агент стартует в ней каждый раз с

24:54нуля. То есть у него нет никакого

24:56понимания о том, что такое вообще

24:59существовать в этом мире, да, ему нужно,

25:01чтобы там по комондсенсу нам понятно,

25:04чтобы чтобы прогрессировать э

25:09по дереву крафтов, нам хотя бы нужно

25:11срубить дерево, да. Такое, почему мы

25:13знаем, что нужно срубить дерево? Потому

25:14что мы знаем, что такое дерево. Мы

25:16знаем, что в реальном мире по аналогии

25:18деревья можно срубать. Вот у него

25:20никакого этого знания нету, поэтому

25:22обучаясь с нуля, он будет там случайно

25:23тыкаться и, в общем, ничего никуда не

25:25придёт. Поэтому организаторы, конечно,

25:28подумав об этом, предоставили некоторый

25:30датасет экспертных демонстраций, как

25:32люди играют в эту игру. Он, конечно, не

25:36очень большой, как и в работике, и не

25:38очень разнообразный. И, конечно же, это

25:40никому не помогло, потому что на этом

25:43датасете, в общем, что обучается, что не

25:45обучается, ситуация не сильно лучше.

25:48Но тем не менее в этом датасвете есть

25:50действия, а это очень это очень важно,

25:53как мы сейчас поймём.

25:56Есть такой вот

25:58такая подсказка. В общем, Minecraft

26:00очень любит в мейнстриме и в культуре.

26:04На Ютубе достаточно зайти ввести

26:06Minecraft, появится просто тонна видео

26:09того, как люди играют в Minecraft

26:10по-всякому разному, с разными модами, с

26:13разными задачами, да, и, конечно же, они

26:16там этот Амаз находят, ну, просто

26:18повсеместно, потому что это очень важная

26:20часть игры. Вот как бы это можно было за

26:23использовать.

26:26И идея очень простая.

26:30Как раз впервые алмаз добыли уже в каком

26:33году? В двадцать втором году. Времени

26:35прошло много, хотя и кажется, что

26:36недавно сделали это Open AI. И они вот

26:40пришла в голову такая очень простая

26:41идея. Вот у нас есть небольшой

26:43датасетик, который не покрывает всё

26:46разнообразие игры, но тем не менее

26:48показывает примеры действий, а действия

26:51в игре ограничены. То есть, тем не менее

26:53мы можем ожидать некоторой

26:55генерализации, что если он в начале игры

26:57срубил дерево, нажав конкретную кнопку,

26:59то и в конце игры он срубит дерево или

27:02там блок, если нажмёт конкретную кнопку.

27:05Вот поэтому мы можем собрать небольшой

27:07датасетик, да, например, тот, который

27:09был предоставлен организаторами. Ну,

27:11openi, конечно, в общем, у них лишних

27:14денег не бывает, поэтому они собрали

27:15чуть-чуть ещё больше с помощью

27:17ассессоров. А, да, там 70.000 часов, что

27:20на самом деле тоже много, но по

27:23сравнению со всем Ютубом не так. И

27:26обучили, что важно, мы, в общем, часто

27:28будем дальше слышать это слово inverse

27:31dynamics, да, там inverse динамику,

27:33которая по видео предсказывает действия,

27:36да, мы получаем два соседних состояния,

27:39например, или кадра и предсказываем

27:41действие, которое произошло между этими

27:43кадрами. Учитывая, что у нас есть

27:45действия с у нас есть данные с разметкой

27:47действиями, мы это можем сделать

27:50потом

27:52разметить весь датасет Ютуба, Твича, это

27:56инверс динамикой и получить вроде бы уже

27:59датасет, который с действиями. Ну,

28:01конечно же, инверс динамика, она, в

28:03общем, обучалась не на большом

28:04количестве данных, она будет ошибаться,

28:06то есть эти данные будут шумными и не

28:08очень качественными, но всё-таки она

28:11будет иногда выдавать правильный ответ.

28:14близкий к правде или ошибаться не так

28:16далеко. Поэтому, если мы обучим агента

28:19на этом большом разнообразном, да, ну,

28:21большом датасете, мы дадим ему некоторые

28:25индуктивный баз относительно того, чем в

28:27этом мире вообще нужно заниматься. То

28:29есть после этого он будет иметь

28:30представление о том, что деревья нужно

28:32срубать.

28:34Вот. И, ну, наглядно видно, что если мы

28:37обучаем с нуля, он там только-только

28:39доходит до того, чтобы скрафтить

28:42[музыка]

28:44как называется, верстак. Просто потому,

28:46что это в самом начале. До этого он ещё

28:49может дойти, а чтобы подождать, пока он

28:51скрафтит, не знаю, кирку, например, из

28:53камня, это вообще никогда не происходит.

28:56Ну вот если мы обучим его на больших

28:57данных, где это часто происходит, пусть

28:59мы предсказываем шумные метки, он начнёт

29:03при обучении в дальнейшем доходить до

29:07этого крафта, хоть он значительно дальше

29:09находится,

29:11просто потому что теперь у него гораздо

29:13более эффективный эксплор происходит в

29:14среде.

29:16Вот, э,

29:18это на самом деле э уже тогда было

29:21понятно, но сейчас это так работает.

29:23Если вы почитаете, как обучаются лмки,

29:26они не обучаются, как обучались например

29:282, когда вы берёте один огромный common

29:30crow, да, там один большой детасет,

29:33обучаете на нём модель и вот всё, у вас

29:36эта модель есть. Сейчас как делается,

29:38да? Берётся большой большой датасет, тот

29:41же самый.

29:43Вначале вымычаете модель на нём, потом

29:46вы устраиваете данные в виде такой

29:47пирамиды по качеству, да, там вначале

29:49очень некачественные, потом чуть-чуть

29:52менее качественные, потом средние, потом

29:54более-менее хорошие, и в самом конце

29:56обучения у вас появляются данные,

29:57которые вообще отличные. И в самом конце

30:00ваша там лмка обучается только на

30:03хороших данных. Но тем не менее вот эта

30:04вот инициализация на больших, но не

30:06очень качественных крайне важна. И вот в

30:09Майнкрафте она работает точно так же,

30:11потому что она позволяет нам

30:12разблокировать гораздо больше

30:15достижений, да, мы в начале вот

30:17оранжевым обучаемся на не очень

30:19качественных данных с Ютуба. Она вот нам

30:21позволяет там чего-то сделать. Потом мы

30:23фантюнимся на более качественных

30:25экспертных данных, например, тех же

30:26самых, которые мы использовали для

30:29обучения инверсдинамики. И это ещё

30:31чуть-чуть нас расширяет.

30:33Ну и как в лмках, финальный, в общем,

30:36этап вишенка на торте. Когда у нас

30:39появилась хорошая базовая модель,

30:40которая примерно понимает, что нужно

30:42делать, мы можем дотюнить её с помощью

30:44реля в реальной среде. И вот получается,

30:48что мы как раз можем добыть алмазную

30:50кирку, которую там 6 лет пытались добыть

30:52и никак не могли, да? И если там с нуля

30:55обучаете рель, он, конечно, никогда до

30:57этого не дойдёт. Более того, даже если

30:59обучать релис, значит, с базовой модели,

31:02если можно посмотреть на OSX, там

31:04миллионы эпизодов. Что такое эпизод в

31:06Майнкрафте? Это, в общем, не знаю,

31:08минимум 20 минут реального времени. То

31:11есть это всё равно даже с базовой модели

31:13выходит довольно затратно.

31:15Ну, это, конечно, очень простой

31:17бейзлайн. Как можно работать с данными

31:20без действий? И если у вас, в общем,

31:23звёзды так сходятся, что вы можете его

31:24использовать, лучше его использовать,

31:26потому что он крайне эффективен. И он

31:28работает, конечно, не только в

31:29Майнкрафте. Это просто вот такой вот

31:31пример развлекательный. Э-э, его,

31:34например, часто используют в

31:36селфдрайвинге, чтобы получать больше

31:38данных, потому что, условно говоря,

31:42мы легко можем записать, как машина

31:43едет, да, например, с регистратора, но

31:46собрать реальные действия, как там

31:49рулил, э, водитель, не всегда можем. Ну,

31:53просто сложнее.

31:55И опять же, да, там тут конкретна статья

31:58как раз про learning to drive by

32:00watching YouTube, потому что на Ютубе

32:02есть множество видео, в общем, машин,

32:04которые куда-то едут. И здесь точно так

32:06же можно сделать, как в Майнкрафте, да,

32:09обучить динамиic по состояниям

32:11предсказывать действия на тех данных,

32:13где у нас

32:15действия есть, потом разметить весь этот

32:17большой датасет и на нём обучиться, да,

32:19и там в статье, в общем, я графики не

32:21буду показывать, но тоже большие

32:23приросты, потому что мы кратно

32:24увеличиваем э пул, да, объём доступных

32:29нам данных для преобучения. Ну, а я ещё

32:31раз повторю, данные - это всё.

32:34Ну, вопрос такой может возникнуть: а

32:36если у нас очень мало всё-таки данных,

32:38на которые действия есть, и собрать мы

32:40больше не можем? В общем, оказывается,

32:42что можно собрать их в каком-нибудь

32:44похожем домене, где мы это можем

32:46сделать, да, в гораздо большем масштабе.

32:50Например, в этой конкретной статье

32:52используется, конечно, атари. А, ну, в

32:54общем, в реальном жизни

32:58как бы это в реальной жизни тоже можно

33:00воплотить. Просто в Атаре проще, потому

33:02что это дешевле для статьи. Ну, в общем,

33:05если у нас есть какая-то конкретная

33:07домен, где мы можем собрать, условно

33:08говоря, только 10.000 транзиций, где мы

33:11разметили действиями, и вот этого нам не

33:13хватает для того, чтобы

33:14генерализоваться, мы можем собрать в

33:16похожем домене гораздо больше, обучить

33:19на вот этом слитом датасете, и они

33:22помогут за счёт генерализации, потому

33:24что тут нейронные сети, они так умеют.

33:27Оно значительно поможет на нашем

33:29таргетном домене. И в общем, это хороший

33:32рецепт.

33:34Но это, конечно, не отвечает на вопрос

33:36всё-таки, что делать с эгоцентричными

33:38данными, потому что везде до этого, где

33:40я показывал примеры, у нас была

33:43возможность гипотетически получить

33:45реальные действия.

33:47Ну вот, допустим, у нас есть видео, где

33:49человек поднимает бутылку. Какое там

33:51реальное действие вообще происходит? То

33:54есть мы вообще как-то можем, не знаю,

33:56попросить его это действие выписать в

33:58виде там, не знаю, вещественного вектора

34:00или ещё как-нибудь. Там никакого

34:02действия изначально нет. Чтобы его

34:04оценить, это нужно придумывать какие-то

34:06евристики, да, там пытаться делать пост

34:09estimation и то, будет ли это настоящим

34:13действием.

34:14даже такой философский вопрос, что

34:16конкретно здесьвать под действием,

34:18потому что, а, если мы, например, оценим

34:21просто позу руки, будет ли это

34:23отображать мыслительный процесс человека

34:25и включает ли мыслительный процесс

34:27человека себя действия. В общем, вопрос

34:30такой.

34:31Но тем не менее можно попытаться уже там

34:34известными вам инструментами, которые я

34:36объяснил, ээ работать с такими данными.

34:41Вот там одна из первых статей, которая с

34:43этим хоть как-то пытается работать

34:46более-менее успешно.

34:48Но я объясню, в чём я сейчас проблема.

34:50Ну давайте. Они вот действуют таким же

34:52способом, да? У нас есть данные

34:53работотехники, которые очень похожи на

34:55эгоцентричные данные, да? Вот здесь вот

34:59на пересечение, которые зелёные

35:00квадратики. Не знаю, зелёные ли они у

35:03вас. Да, зелёные. В общем, очень видно,

35:05что на самом деле наблюдение более-менее

35:08похожие между человеком-роботом. Натом,

35:10за исключением того, что мы видим

35:12роборуки вместо настоящих рук, можно

35:16попытаться сделать так. У нас есть

35:18некоторый датасет, где мы знаем

35:20настоящие действия робота, мы обучаем на

35:23нём инверсдинамику и потом этой инверст

35:25динамикой размечаем данные людей.

35:29И на самом деле это, в общем, может

35:31работать и может давать приросты, но

35:34если задумываться об этом чуть глубже,

35:36это довольно странно. В общем, потому

35:39что данные работики у нас гораздо менее

35:41разнообразные, чем данные, которые

35:44поставляет человек. Поэтому, в общем,

35:46странно ожидать, что имдинамика может

35:49обобщиться на те вещи, которые она

35:51никогда не видела. Да, например, если у

35:54нас робот всегда просто поднимал

35:55какие-нибудь предметы, ээ вряд ли он

35:58предскажет правильные действия для там

36:00человека, играющего в бадминтон.

36:04Поэтому у ITM есть много ограничений,

36:06несмотря на то, что это крайне сильный

36:07инструмент. Если у вас, в общем, если у

36:10вас есть действия, нужно его

36:11использовать хоть в каком-то размере, он

36:14не всегда подходит для решения задач,

36:16которые есть там, условно говоря,

36:17работотехники.

36:19У него есть несколько, в общем,

36:20суммаризуя, у него есть такие

36:22недостатки.

36:24Он, во-первых, плохо генерализуется.

36:26Если разнообразие данных, на которых

36:28инверсдинамика обучалась, очень

36:30маленькое, да, если он не видел того,

36:32что было в обучающих данных, вряд ли он

36:34предскажет не то что точное, но хотя бы

36:37похожее на правду реальное действие.

36:40Он подходит только для доменов, где у

36:42нас вот так звёзды сошлись, что у нас

36:44есть два датасета, один с действиями,

36:45другой без действий. И он, конечно,

36:49не подходит для доменов, где у нас

36:51вообще, в принципе, нет доступа или даже

36:54какого-то осмысленного способа получить

36:56реальные действия. Вот, конечно, люди

36:58задумались, потому что тема-то хорошая,

37:02простая. Вот вот бы был метод, который

37:05как-то обобщает ID, так чтобы мы эти

37:07действия могли вытаскивать в unervized

37:10режиме, так чтобы нам не понадобился

37:12датасет, во всяком случае, большой

37:15датасет с реальными действиями.

37:17Вот мы как раз переходим к, в общем,

37:19второй, третьей уже части доклада, как

37:22раз к латентным действиям, которые

37:23появились на самом деле давно, но

37:26выстрелили в этом году, и по ним выходит

37:28сейчас просто тонна статей.

37:30Э, ну, в общем, чтобы их понять, да,

37:33чтобы интуицию за ними понять, давайте

37:35немножко вспомним основы. У нас есть две

37:38модели, которые часто используются

37:40врели. Вот одну я уже упоминал- это

37:42inверсдинамика. Она по двум соседним

37:44состояниям, да, текущему и будущему,

37:47предсказывает действие, которое между

37:49этими состояниями произошло. Есть такая

37:52forварди динамика, да, по-простому,

37:54просто динамика, которая обычно, э,

37:57фигурирует в определении марковского

37:59процесса принятия решений. Что она

38:01делает? Она просто предсказывает нам,

38:03ну, или говорит вероятность следующего

38:05состояния, если в текущем состоянии мы

38:07сделаем какое-то конкретное действие. И

38:10вот они на самом деле, если так

38:13посмотреть, очень похожи на Инь и Янь,

38:16да, они очень делают что-то похожее, но

38:18в обратную сторону и как будто бы они

38:20очень хорошо совместимы. Так осталось

38:22придумать, как

38:24конечно для решения нужной нам задачи.

38:27Вот я думаю, что если вы когда-то

38:30знакомились с тюрвером, вам попадалась

38:32такая штука, как метод максимального

38:34правдоподобия. Звучит страшно, но,

38:36вообще-то это очень простая вещь. Мы

38:39берём какую-то вот, например, как у нас

38:41здесь функцию там плотности или

38:44вероятности в декретном случае, которая,

38:46например, говорит проверять на следующее

38:49состояние при условии чего-то.

38:51У нас есть какие-то данные, мы эти

38:53данные фиксируем, и остаётся найти

38:56какой-то параметр, который бы делал эти

38:59данные согласно нашей функции наиболее

39:02правдоподобными. На самом деле это

39:04буквально то, что мы обычно делаем в

39:06плернинге, да, мы находим параметры

39:08нейросети, которые делают наиболее

39:11правдоподобными предсказания нашей

39:13модели

39:14по тем данным, что есть. Это на самом

39:16деле все основы, которые нам

39:18понадобятся. Если совместить это вместе,

39:21появится такой метод, как Лапо. Вот его

39:23опубликовали в 2023 году. И он, в

39:27общем-то говоря, первый, наверное, смог

39:30успешно сделать так, чтобы латентные

39:33действия заработали. До этого были

39:35попытки, но они были не такими

39:37элегантными и простыми. А здесь оно

39:39заработало и заработало очень хорошо.

39:41Как мы дальше увидим, какие у него эти

39:43плюсы. Первое, тут, конечно, есть IDM,

39:46но её для её обучения нам не нужен вот

39:49этот вот промежуточный датасет с

39:51реальными действиями, чтобы могли на них

39:53обучиться.

39:55Он позволяет просто взять датасет без

39:57действий са какой угодно, самый большой.

40:01Чем больше, тем лучше. Можно из разных

40:02сред, можно всё в одно закинуть в этот

40:05метод, и он нам выдаст какое-то

40:07латентное действие между каждым

40:09состоянием, которое будет коррелировать

40:11с настоящим. Мы чуть-чуть дальше

40:13поговорим, почему так происходит.

40:16Но, конечно,

40:17это нас, как не прискорбно, но это не

40:19лишает нас необходимости использовать

40:22реальные действия хотя бы чуть-чуть,

40:24потому что после предобучения у нас

40:26появляется агент, который на большом

40:28датасете умеет точно предсказывать

40:30латентные действия, но латентные

40:32действия - это просто какой-то латентный

40:34вектор. Он не соответствует один в один

40:37настоящим. Поэтому нам нужен

40:39какой-нибудь маленький кусочек настоящих

40:41действий, чтобы разметить и сделать там

40:44краткий или до обучение из латентных

40:48настоящий. Ну для этого требуется

40:50гораздо меньше данных, чем для обучения

40:52IDM, ээ чтобы она генерализовалась.

40:56Вот почему это работает, собственно

40:58говоря, как устроен лопу?

41:00Ну из схемы, на самом деле довольно

41:02просто. У нас есть как раз эти самые две

41:04модели IDM и FDM. Мы получаем на вход

41:08два состояния: текущее и следующее. Мы

41:12подаём его в DM и получаем какой-то

41:14вектор Z, который, по идее, должен нам

41:17возвращать действия. Как сделать так,

41:20чтобы это действие латентное было похоже

41:22на настоящее?

41:24Ну, в общем, можно вспомнить наш метод

41:27максимизации правдоподобия и посмотреть

41:29на вот эту форо динамику, что нам она

41:31нам говорит. Допустим, у нас есть

41:33настоящие действия. Мы вот смотрим на

41:36эту динамику. Она нам предсказывает

41:37вероятность следующего состояния при

41:39условии текущего и реального действия.

41:42Давайте теперь вот у нас есть

41:44видеоданные. Мы зафиксируем состояние

41:47следующее и текущее.

41:49У нас остаётся действие, которое по сути

41:51параметр.

41:54Ну, здесь оно, короче, всё сходится

41:56воедино, потому что нам остаётся просто

41:58каким-то образом ээ найти такое

42:01действие, которое максимизирует эту

42:02вероятность. А, ну мы это и делаем. Мы

42:06просто подаём наше латентное действие и

42:09текущее состояние в FDM и учимся

42:13предсказывать следующее состояние. То

42:15есть, по сути, максимизируем просто

42:16правдоподобие. Ну и просто по

42:18определению,

42:20ээ, с некорой поправкой я потом скажу в

42:23конце. Ну, в общем, просто по

42:25определению того, что такое динамика,

42:26что такое форвард динамика, мы в

42:29процессе оптимизации придём к реальным

42:31действиям просто потому, что они

42:33максимально информативны

42:35относительно следующего состояния,

42:37потому что они, в общем, порождают

42:39динамику и, по сути, являются решением

42:42оптимизационной задачи.

42:45Э, что с этим потом делать? Ну, пайeline

42:48здесь очень простой. Он состоит из трёх

42:50шагов. Мы вначале предуубачаем эту IDM с

42:53тотентными действиями, а дальше, в общем

42:55говоря, мы делаем то же самое, что я, в

42:57общем, разбирал до этого. Мы берём

42:58большой датасет, размечаем его

43:00действиями, только теперь уже

43:02латентными, потом берём агента,

43:05желательно побольше, ээ, и учимся эти

43:08латентные действия предсказывать.

43:10Поскольку они коррелируются настоящими,

43:13агент выучивает какие-то правильные

43:16поведения. Пусть оно тоже с некоторой

43:20долей ошибки, но тем не менее мы даём

43:22как раз вот этот вот старт на не очень

43:25не очень качественном, но большом

43:27датасете, который потом можно либо

43:29дофатюнить, либо улучшить.

43:34И работает это очень хорошо. условно

43:36говоря, в Лапо, э, в статье это делали

43:39на тестировали на среде Просген. Это

43:42такая среда, которая кажется простой,

43:44да, там просто игрушка, похожая на

43:47Атари, но на самом деле эта среда ещё до

43:48сих пор не решённая, потому что она

43:51процедурно генерируемая. То есть там

43:53каждый, э, каждый старт игры он уникален

43:57в некотором смысле, несмотря на то, что

43:58нужно делать одно и то же. В общем,

44:00карта разныя и уреля обычно с такими

44:02большие проблемы.

44:05Вот. И мы на самом деле можем даже не

44:07фантюнить в онлайне. Мы просто добучаем

44:10IDM, обучаем агента. У нас получается

44:12агент с ответными действиями. Берём

44:14какое-то маленькое количество состояний

44:17с реальными действиями, да, там

44:18достаточно здесь даже уже, ну, 256, что

44:22это такое? Но это на самом деле очень

44:23мало. И обучаем просто маленький декодер

44:27из латентных настоящий.

44:29И оно работает, да, здесь конкретно не

44:32на экспертном уровне, но тем не менее,

44:34учитывая, что мы имели, условно говоря,

44:37256 состояний, где у нас есть действия и

44:41огромный датасет, где действий нет, мы

44:43получили почти на там почти на там 0,6

44:46от экспертного

44:48перформанса за там, ну, не знаю, 01%

44:53размеченных действий. Это очень хорошо,

44:56да, и для работики это, очень даёт

44:58большой

44:59большую надежду. Но, конечно, на этом

45:01можно не останавливаться, можно сказать:

45:04"Ну а что такого? Давайте как в

45:05Майнкрафте, да, обучим это в реальной

45:07среде чуть-чуть". И прирост тоже

45:10огромный,

45:12да? Здесь

45:14вот розовенькое, не знаю, какое тут, да,

45:16всё ещё розовенькое. Розовенькое - это

45:18если обучать с нуля, и зелёненькое

45:22на у вас голубое. Ну, короче, самый

45:24верхней, если обучать с инициализацией

45:27агента, преобучением, латентным

45:29действиям.

45:32Ну, в общем, вопрос такой, да, игрушки -

45:34это, конечно, круто. Прогеншённый

45:37и хороший результат на нём, это ещё

45:40впечатляюще, но это всё ещё далеко от

45:43работики. Как нам это перенести обратно

45:46туда, с чего мы начали? Да, есть

45:48какие-то эгоцентричные данные, а, есть

45:50данные работотехники,

45:52есть YouTube. В общем, как бы нам это

45:54всё слить в одну модельку и получить

45:57какой-то с этого прирост. Ну и вот прямо

46:00сразу за лопо вышла лапа, которая ровно

46:04это и делает, да? То есть она не

46:05модифицирует алгоритм предбучения

46:07никаким образом. Она просто заменяет вот

46:09эти в DM на трансформеры, всё это

46:12скелит, использует большие данные. И как

46:15раз там есть, это не единственный их

46:18результат, но конкретно нам интересный.

46:20Они берут и предобучаются только на

46:23данных с людей, да, там датасет не очень

46:26большой, называется Samsung Samsung 2.

46:29Ээ там люди что-то делают, как раз как

46:32на эгоданных, которые я показывал ранее.

46:34И вот здесь зелёным цветом, собственно

46:37говоря, после прогона всего вот этого

46:38пайплайна, предобучение, потом обучение

46:40агента, потом фантюна

46:43на в оффлайне, конечно, здесь релиту.

46:46Оказывается, что мы получаем на

46:48некоторых тасках перформанс сравнимый с

46:50тем, чтобы обучаться только на данных с

46:52реальными действиями, э,

46:54работотехнических, где-то, конечно,

46:56похуже, но в среднем, э, ну, всего там

46:59на в пределахд.

47:01То есть это, собственно говоря, и даёт

47:04нам то, что изначально и было обещано.

47:06Мы можем доливать туда новых данных,

47:08которые не содержит в себе действия,

47:11которые легко скелятся, которые, в

47:13общем, собираются человеком и покрывают

47:16гораздо большее разнообразие. И мы уже

47:19только обучаясь на них, без всяких

47:21действий получаем такой вот хороший

47:22перформанс. Но,

47:26э, никто же нам не мешает их вместе

47:28слить и получить ещё лучший перфоманс.

47:31Поэтому теперь это стало мейнстримом.

47:33Все там современные, большая часть

47:34современных Влэмок, она там от Nvidia,

47:38от Майкрософта, ещё от кого-нибудь, она,

47:41в общем, теперь следует такому

47:42пайплайну, потому что мы берём,

47:45э, все данные, которые у нас есть для

47:48работотехники, условно говоря, Open

47:49Xbinment. Мы берём все данные, которые

47:52пока что нам доступны с человеческим ээ

47:57с человеческими демонстрациями

47:58бездействий. Всё это сливаем в одно, на

48:02этом обучаем латентные действия.

48:04Латентных действий ещё такое прикольное

48:06свойство, что они по сути унифицируют

48:09действия, которые между роботами разные,

48:12но в латентном пространстве они имеют

48:14одну размерность и примерно одинаковая,

48:16да, там есть облаци, не не вынес их на

48:19презентацию, но есть аблацыя о том, что

48:20они примерно семантически

48:23инходят одно и то же, да, условно

48:25говоря, если один робот повёл рукой

48:28влево и другой повёл влево, латентные

48:30действия будет похоже, несмотря на то,

48:31что в оригинальном акшнспейсе они Они,

48:33вообще говоря, разные. Ну, просто

48:36потому, что у роботов разные, я не знаю,

48:40разное тело. Вот. И та таких статей

48:43выходит просто великое множество. В

48:45общем, ты сейчас активно развиваешься

48:47область, ээ, условно говоря, там самое

48:49заметное, где это стало использоваться.

48:51И когда стало понятно, что это стало

48:53мейнстримом, это реально работает. И это

48:55не просто там просто ген, а большие дяди

48:57с большими деньгами взяли, попробовали

48:59это и оставили, потому что это даёт

49:02какие-то приросты. Это стала VLA от

49:03Nvidia, которая вот недавно вроде как

49:06вторая версия вышла. Гру

49:09от Nvidia. Она использует точно такую же

49:12пирамиду, как вы видите. В общем, это

49:14такая возникающая из раза в раз вещь,

49:17как и в лэмках. В лэмках здесь она будет

49:19точно такой же. У нас есть какое-то вот

49:21большое количество не очень э не очень

49:26качественных данных, но очень

49:27неразнообразных. Мы на них можем обучить

49:30эти действия.

49:31Потомнить на более качественных

49:33синтетических данных, которые содержат

49:36эти настоящие действия, да? Потом ещё

49:38взять реальных данных под нашу задачу,

49:41которые собрать много невозможно, но

49:42какое-то количество можно и они будут

49:45суперкачественные, и получится очень

49:47хорошая модель. И в общем там в статье,

49:50если прочесть, короче, они вот эти вот

49:52EG 4D, Epic Kitchen и всякое такое, это

49:56как раз данные бездействий, и они

49:58используют тот самый лопо.

50:02Вот. И Nvidia, конечно, пошли в этом

50:05дальше. А потому что у нас есть много

50:08видео. Видео

50:12не только с человеческими действиями, а

50:14в целом видео о мире, да, там видео

50:16движения, видео всяких процессов, видео

50:19работотехники. И мы всё это можем

50:21запихать в латентные действия и получить

50:23контролируемую генерацию видео, да?

50:25Потому что, когда мы просто

50:26предсказываем следующее состояние, мы,

50:30ээ, без действий, мы на самом деле

50:32усредняем, да, там или как называется,

50:34маржинализируем вероятности, и мы

50:36предсказываем какое-то среднее будущее,

50:38потому что, ну, реальный мир он

50:40стастичный, он мультимодальный,

50:43а когда мы делаем это с действиями, они

50:45позволяют эту мультимодальность,

50:47во-первых, разделять, во-вторых,

50:49контролировать после обучения. И вот

50:51Dreamgen, который совсем недавно вышел

50:53от Инвизии, обучает такую большую модель

50:55мира.

50:57Он вначале её обучает на

51:01они берут предобученную модель, короче,

51:02для генерации, они её фантюнят на

51:04работотехнические данные, потом эти

51:06роботтехнические данные размечают вот

51:08этими действиями. И у нас получается

51:09такой замкнутый цикл, что мы можем

51:11генерить себе ещё и синтетические

51:13данные, похожие на реальные с вот этими

51:15действиями.

51:17Вот. И вот я так всё рассказал. кажется,

51:20что вообще, ну, бомба какая-то, а не

51:22resarch. Э, надо всем использовать.

51:26Э, но почему-то во всех этих статьях ещё

51:29нет такого, что они буквально взяли весь

51:31YouTube и разметили его латентными

51:33действиями. Хотя, собственно говоря,

51:35обещание такое.

51:37Ээ, ну, и хотелось бы, конечно, в общем,

51:39если можно, почему бы не сделать так и

51:42получить какой-то совершенно заоблачный

51:44перфоманс. Но вот есть, на самом деле,

51:46не такой один маленький подвох у этого

51:48метода. в общем, о котором я как раз под

51:50конец лекции расскажу. В общем, статья

51:53из нашей лаборатории,

51:55которую мы будем представлять на смле.

51:58Когда я говорил о том, что действия они

52:01максимально предиктивны относительно

52:03следующего состояния, я немножко

52:05слукавил. Это работает только в тех

52:09случаях, когда данные были сгенерены

52:10этими действиями, когда они

52:12единственное, что описывают изменения

52:14динамики. Но в реальном мире оно не так.

52:17В реальном мире мир не меняется только

52:19под действием моих действий, он ещё

52:21меняется под действием ваших действий,

52:23условно говоря. И мои действия, они не

52:26предсказывают максимально следующее

52:28состояние.

52:30Вот поэтому представим себе такую

52:32картину. Ну здесь, конечно, в статье

52:34очень упрощённый бенчмарк, да, для того,

52:36чтобы протестировать саму гипотезу. Ну

52:39вы можете в голове представлять условно

52:41роботехническую группу, где на заднем

52:42фоне ходят люди, да? То есть это

52:45какой-то шум скалированный с реальными

52:46действиями. Рука чего-то делает, на

52:48заднем фоне что-то происходит, что с

52:50этими действиями скрилировано, но, в

52:52общем говоря, они на самом деле не

52:55связаны. То есть если вы выучите

52:57действия, они не должны содержать в себе

52:59движение людей. Здесь то же самое. Здесь

53:02какой-то вот, э, симулятор, где у нас

53:04есть очень простая модель, которая, не

53:06знаю, учится бежать туда-сюда, и мы

53:08добавляем в неё так называемые

53:10дистракторы, то есть на задний фон

53:11видео, которое постоянно играет, э,

53:14разное, но при этом важно, что она

53:16детерминированная,

53:18камера туда-сюда шевелится, цвет

53:20меняется. В общем, что будет, если

53:22обучить на этом лопо? Выучит ли он

53:25действия, которые похожи на реальные?

53:27Ну, в общем, окажется, что нет, он

53:29полностью сломается, да? Здесь график не

53:32совсем об этом, но важно, что мы можем

53:34как-то оценить качество латентных

53:36действий. Здесь мы делаем это с помощью

53:38линейной пробы, то есть обучаем линейный

53:40слой один или линейную модель ээ

53:44предсказывать реальные действия из

53:45латентных, да? Если латентные содержат в

53:48себе реальные, то мы линейно очень легко

53:50можем из них реальные вытащить. Ну вот

53:53оказывается, что когда мы обучаем без

53:55дистракторов, Лапо на самом деле очень

53:58хорошо находит такие действия, которые

54:00линейно мапятся в настоящий. Ну вот если

54:03мы добавляем хоть чуть-чуть

54:04дистракторов, оно больше не работает.

54:08Оно, по сути, находит действие, которое

54:11описывает дистракторы, просто потому

54:12что, ну, можно себе представить, у нас

54:15есть какое-то видео на заднем фоне,

54:17которое постоянно в одном порядке

54:20проигрывается, и оно гораздо меньшими

54:23усилиями и гораздо проще предсказывает

54:25следующее состояние, чем реальные

54:27действия, потому что агент там что-то

54:29обрекается, что-то какой-то

54:30стахастически по-разному мультимодально

54:32действует. Э зачем это предсказывать?

54:34можно просто предсказать следующее

54:36состояние а по дистракторам. И вот вам

54:39действие, которое на самом деле

54:41максимально описывает динамику.

54:44Можно ли с этим что-то сделать? Но мы

54:45попытались и на самом деле, в общем,

54:48довольно

54:50успешно с точки зрения пробы, да, мы

54:53восемь раз смогли улучшить её качество.

54:56Но здесь такой большой философский

54:57вопрос. Если наши действия реальные

55:00содержатся в латентонх, так что мы можем

55:02их оттуда линейно достать. Значит ли,

55:05что в этих латентных действиях больше

55:07ничего другого не содержится? Например,

55:10шума,

55:11да? То есть это вопрос о минимальности.

55:13Минимальны ли, да, там с точки зрения

55:15информации - эти латентные действия?

55:19Потому что если они минимальные и они

55:20содержат в себе шум хоть чуть-чуть, да,

55:23то если мы будем агентам их

55:24предсказывать, мы по сути будем

55:26предсказывать шум, да, который никакого

55:29не имеет отношения к тому, как правильно

55:32действовать. Ээ, в общем, на самом деле

55:35так и получается, да, потому что даже

55:37если мы восемь раз улучшим это качество,

55:40а здесь вот видно разница

55:43между дистракторами и недистракторами,

55:44да, синеньким там от наших улучшений

55:47почти ничего.

55:49на ванильном сетапе не изменилась, да?

55:51Мы там на дистракторах мы улучшили в два

55:54раза этот перформанс после фантюна на

55:58всех бюджетах реальных действий. Ну,

56:00вообще-то дыра большая между этими двумя

56:04сетапами. То есть можно сказать, что

56:06Лапо всё ещё не работает, да? Там вместо

56:08половины перформанса эксперта мы

56:09получили типа, ну, 15 там процентов

56:13плюс-минус СТД.

56:16Какое у этого есть решение?

56:18Ну, на самом деле, есть очень простое

56:19решение, которое в некотором смысле там

56:22улучшает результаты в четыре, в пять

56:24раз. И оно очень простое в том смысле,

56:27что мы совмещаем то, с чего мы начали.

56:30То есть у нас есть какое-то количество

56:32действий. Мы можем во время обучения

56:34латентных действий чуть-чуть дать ему

56:37супервижена, а, предоставив реальные

56:40действия. Так что мы будем их, если они

56:42есть, мы будем их линейно из латентных

56:44предсказывать, а если их нет, мы будем,

56:46как обычно, обучать лопу. Это на самом

56:49деле, э, в общем, почему это работает,

56:52это даёт небольшую подсказку, да, то

56:54есть, условно говоря, мы, э,

56:58граундим латентные действия на то, чтобы

57:00они были похожи на настоящие. И после

57:01этого оптимизация, короче, справляется

57:03сама. И от этого достаточно там, условно

57:05говоря, 2% от всего датасета, э, с

57:09реальными действиями.

57:11чтобы перформанс пополз вверх. Ну вот

57:15хорошее ли это решение? На самом деле не

57:18очень, потому что мы вернулись к тому, с

57:19чего начали. Нам всё ещё, как в IDM,

57:21нужен датасет с реальными действиями,

57:24который сильно больше, чем нужен для

57:26того, чтобы просто потом замапить и

57:28златные настоящие. Но, конечно,

57:31чуть-чуть меньше, чем если бы мы обучали

57:33только ID на настоящие действия, потому

57:35что лопо в процессе оно как бы мы даём

57:38ему чуть-чуть подсказочек,

57:40то есть их нужно меньше, чем надо было

57:42бы, если бы мы не обучали Лопо. И в

57:44процессе он там сам додумывает на

57:46остальных данных, как прийти к чему-то

57:49похожему на настоящее.

57:53С другой стороны, это сочетает в себе

57:55плюсы обоих подходов, потому что LAP

57:57лучше генерализуется, потому что он

57:59видел все данные, а IDM просто чуть-чуть

58:02ему помогло на тех маленьких данных,

58:04которые у нас есть. В общем, на этом, на

58:06самом деле, конец истории. Ээ вопрос

58:08открытый, как эти латентные действия

58:10будут развиваться дальше. У нас есть

58:12некоторые там в лаборатории

58:13представления, как это можно пофиксить

58:16так, чтобы минусов вообще никаких не

58:18осталось. Ну, в общем, пока это work in

58:20progress.

58:21Может быть, мы, в общем, разродимся

58:22статьёй ближе к сентябрю.

58:27В общем, на этом всё.

More from Astar Acceptman

Recently added transcripts

Browse the whole transcript library

This transcript was generated from the captions YouTube publishes for this video. Get the transcript of any YouTube video atfreeyoutubetranscribe.com, free, unlimited, no sign-up.