image

Честно говоря, я очень разочарован хабром. Почему никто не осветил такую вещь, как победа нейросетевого подхода с полностью открытым кодом, а? И полностью открытыми нейросетевыми данными? Действительно, ну вот DeepMind Technologies описали как они обучали шахматный ИИ, играющий сам с собой… Только вот код там закрыт, а обучение происходило на кластерах Google, а не распределённо на Nvidia Turing c тензорными ядрами, как в данном случае. Почему мне самому приходится править английскую википедию, чтобы привлечь к этому внимание?

Ладно, что-то я переборщил с эмоциями, наверное. (По ссылке все же есть в комментах упоминания leela.) Это статья эксперимент: способ показать мне, как другая моя статья, излишне популярная, на мой взгляд, повлияет на эту.

История началась, когда я обновил свою старенькую Nvidia Geforce GTX 770 на RTX 2080 Ti. Ну и учитывая, сколько она стоит, мне хотелось по максимуму раскрыть её. Сначала я поигрался с Ray Tracing, почитал про то, как оно работает с CUDA через NVIDIA OptiX. Почитал про то, как один человек умудрился использовать RT ядра совсем не по назначению. ��овторил его. Но количество комментариев, что кожанная куртка развела людей на лучи было таким большим, что мне надоело про это читать. Особенно учитывая, что я знаю, что трассировка пути это самый важный алгоритм киношной и игровой индустрии, и это не открытие Nvidia. Вообще нет. Даже аппаратно.

Дальше я решил посмотреть в сторону NVENC. Я вообще любитель халявы. Как оказалось, в этом аппаратном энкодере её там было предостаточно. Во-первых, самая популярная статья на Хабре про NVENC расcказывает о том, как YourChief, вооружившись дебаггером, смог ломануть ограничение на количество одновременных потоков кодирования для него (а моя карточка, как выяснилось может ого-го). Причем патч, как это и бывает обычно, меняет всего пару байт.

Потом выяснилось, что технология NvFBC (ультрабыстрый захват полного кадра) можно включить и на карте geforce, если использовать магический патч поверх Looking glass фреймворка, перед этим активировав эту технологию (патч можно увидеть здесь).

Затем я захотел себе 30 битный цвет в Photoshop. Повторив успех других, я нашел байтик, который ограничивал поддержку OpenGL в оконном режиме (так как в DirectX в оконном и полноэкранном режимах и в OpenGL в полноэкранном режиме 30 битный цвет и так работал). И написал об этом Nvidia, пообещав обнародовать патч. Может это совпадение, но они на Gamescom 2019 убрали это ограничение. А ведь есть еще неофициальная поддержка HDR10+ (динамические HDR метаданные).

Так, теперь настало время матричного ускорителя, нейронного акселератора, тензорных ядер, называйте, как угодно. Тут было немного сложнее. Скажу сразу, в универcity я лекции про нейросети проспал, поэтому мне пришлось разбираться. Но посмотрев пару видео, где мужчина спаунит тысячи птичек, чтобы пройти Flappy Bird, и спустя пару поколений эти птички проходят препятствия как по маслу, я проникся идеей. Вопрос заключался в том, что бы такое запустить. И тут я вспомнил, что Google тут недавно хвастался, что они обыграли своим ИИ лучшего игрока в Go, что считалось невозможным до этого с помощью «обычных» алгоритмов. Честно говоря, любит же Google DeepMind сложную версификацию. Ну то есть кто это придумал: AlphaGo Lee → AlphaGo Master → AlphaGo Zero → AlphaZero (последняя уже может и в шахматы, и в шоги, и в go и вообще во все, так как они реализовали пространный механизм объяснения правил игры, её и под покер можно приспособить). Я в курсе про покер, если что, не пишите про это, а то знаю я вас.

Мой поиск в google «alphazero source code» ничего не дал. Ну то есть выяснилось, что код они и не подумали открыть! Но мне не верилось. Ну, то есть Илон Маск же выступает за OpenAI (типо чтоб когда ИИ разовьется, он был более изучен, что ли, и более свободен от копирайта авторов). И тут на reddit я наткнулся на ссылку. Как выяснилось, некоторые сердобольные люди из DeepMind все же решили отдать часть исходного кода, впрочем, напечатав его прям в pdf файле. /facepalm

Ну тут я сразу скачал и нейросеть отсюда. И поигравшись с ней, я понял, что почему-то оно не играет в шахматы. Мне потребовалось минут 20, чтобы понять, что оно играет в go, а не в шахматы и еще 40 минут, чтобы найти версию для шахмат. И вот тут я удивился. Во-первых, они уже успели реализовать cuda backend c поддержкой тензорных ядер от Nvidia как для игры, так и для обучения (добровольного и распределенного, причем). Во-вторых, у них прямо в тот момент происходил поединок с Stockfish за 1 место в рейтинге компьютерных шахмат! Я не спал пол ночи, наблюдая за суперфиналом TCEC и нейросеть победила! Я сразу же побежал редактировать википедию, в которой на тот момент было мало информации, и уже на следующий день об этом писали все кому не лень! Как выяснилось, при игре leela использовала всего лишь связку из 2080 Ti и 2080, то есть моей карточки было вполне достаточно. Скачав нейросеть отсюда, я вполне спокойно запустил её на моем компе! Ну конечно, нейросеть меня разбила. Вот инструкция как настроить.

Лично я правда использовал оболочку HIARCS Chess explorer. Дальше я также дал людям на android потестить leela в DroidFish. На Android используется дистиллированная сеть, попроще и поменьше, но все равно не слабая.

В принципе я могу расписать инструкцию на установку подробнее, добавить ссылок, пишите :=))
Кстати, такой вопрос, кто нибудь слышал про нестандартное применение NVENC и NVDEC? Вроде как его можно приспособить для ускорения математических операций. Я где-то про это прочитал, но там без подробностей было.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Что будет быстрее по-вашему:
43.64%ИИ захватит власть над человечеством48
40%человек улучшит свой мозг до уровня ИИ44
16.36%другой, напишу в комментариях))18
Проголосовали 110 пользователей. Воздержались 72 пользователя.