Forchess - форум о заочных шахматах  

Вернуться   Forchess - форум о заочных шахматах > Заочные турниры и партии > Шахматные программы и движки

Ответ
 
Опции темы Опции просмотра
Старый 08.08.2019, 15:45   #1
Alex_Zet
Гроссмейстер
 
Аватар для Alex_Zet
 
Регистрация: 01.12.2016
Сообщений: 3,581
Сказал(а) спасибо: 216
Поблагодарили 999 раз(а) в 734 сообщениях
Записей в дневнике: 6
Репутация: 32
По умолчанию Leela Chess Zero (lc0): как тренировать сеть с помощью Google Cloud

Автор темы на http://kasparovchess.crestbook.com/threads/7942/ уважаемый Alhimik88.
Я просто скопировал все его посты сюда на форум. Ну и может кто ещё что то добавит.
Alex_Zet вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
alchemist888 (08.08.2019), Alex_Lk (08.08.2019)
Старый 08.08.2019, 16:03   #2
Alex_Zet
Гроссмейстер
ТС
 
Аватар для Alex_Zet
 
Регистрация: 01.12.2016
Сообщений: 3,581
Сказал(а) спасибо: 216
Поблагодарили 999 раз(а) в 734 сообщениях
Записей в дневнике: 6
Репутация: 32
По умолчанию Re: Leela Chess Zero (lc0): как тренировать сеть с помощью Google Cloud

Автор поста Alhimik88

Оригинал инструкции на английском:

https://github.com/LeelaChessZero/lc...ud-guide-(lc0)

Эта инструкция позволит вам использовать Leela Chess Zero в облаке. Google Сloud клиенты будут запускать тренировочные игры и помогать Leela становиться сильнее. Инструкция рассчитана на всех и не предполагает каких-либо технических знаний.

Google предлагает стартовый бонус в 300 $ для всех новых пользователей, кто зарегистрируется в Google Cloud. Данный бонус будет доступен в течении 1-го года. К сожалению, он не полагается, если вы использовали какие-либо сервисы из Google Cloud Platform ранее.

Регистрация​

Создайте бесплатный аккаунт на Google Cloud Platform https://cloud.google.com/compute/(вам необходимо будет ввести данные банковской карты, чтобы получить ID).

Обращаю внимание, что для жителей России (возможно СНГ) нет возможности выбрать тип аккаунта «Личный», но это не должно вас смущать. Я без проблем регистрировал аккаунт на «Бизнес» даже не указав какую-либо организацию. В графе Название компании просто напишите что-либо. Город и Адрес вы также можете поставить произвольно, главное, чтобы Индекс соответствовал региону, иначе система будет ругаться на некорректный индекс. А вот данные карты введите настоящие.

После регистрации вы сразу же получите 300$ на счет, и далее нужно провести апгрейд аккаунта до Платной версии, чтобы использовать облачные видеокарты (GPUs). К сожалению Google перестали давать доступ к облачным видеокартам для пользователей, которые не активировали платную версию.

Очень важно, во избежание получения счетов об оплате, чтобы вы следили за балансом счета Google и отключили/удалили все образы виртуальных машин до того, как он подойдет к 0 $. К счастью максимальная продолжительность одной сессии равняется 24-м часам и ориентировочная стоимость 1 часа работы равна 0,774 $ (при полной загрузке 300$ израсходуется за 16 дней)

Текущий размер баланса вы можете увидеть перейдя в раздел Меню -> Оплата

После активации Платной версии проверьте GPU квоты (Ранее все платные аккаунты автоматически имели 1 GPU квоту, но некоторые люди (в частности и я) сообщали, что не получили ее сразу).

Меню -> AIM и администрирование -> Квоты, далее очистите список Показатель, и выберете там только GPUs (all regions)

Должно получиться так

Развернуть для просмотра

[свернуть]


Если Лимит = 0 (в противном случае переходите к следующему шагу), то жмите Изменить Квоты, далее выйдет форма, в которой вам нужно указать свои контактные данные и телефон. А в следующей форме в поле Новый размер квоты введите 1, и в качестве причины напишите что-нибудь, например fast.ai. Через некоторое время Google квоту обычно предоставляют. Рекомендую указывать именно вашу почту, чтобы следить за решением о предоставлении квоты.
Не дожидаясь получения квоты переходите к следующему шагу.

Создание экземпляра Виртуальной Машины (ВМ)​

Перейдите в раздел виртуальных машин Меню -> ComputeEngine -> Экземпляры ВМ, нажмите Создать Экземпляр, далее произведите изменения в пунктах, как написано в инструкции ниже, все остальное можете оставить по умолчанию.

Регион – europe-west4 (Нидерланды) (есть и другие регионы, для которых доступна TeslaV100 https://cloud.google.com/compute/docs/gpus/Но europe-west4 работает у меня стабильнее всего)

Зона – Europe-west4-b

Тип машины НастроитьКоличество ЦП = 4, Объем памяти = 4 ГБ

Количество графических процессоров = 1 , Тип графического процессора = NVIDIA Tesla V100

Загрузочный диск - ИзменитьUbuntu 16.04 LTS

Кликаем на Настройка параметров управления, безопасности, дисков, сети и многоклиентского обслуживания

Вытесняемость – Вкл.

Обязательно включайте Вытесняемость, что почти в три раза снизит стоимость. Теперь максимальное время работы ВМ будет составлять 24 часа. Также работа ВМ может останавливаться при обслуживании. Но теперь мы получим значительно больший КПД.
Остановка ВМ – не проблема. Вы всегда можете перезапустить её в два клика.

Сценарий запуска вставьте этот скрипт

Развернуть для просмотра

#!/bin/bash
echo "Installing CUDA"
wget -nc http://developer.download.nvidia.co...6_64/cuda-repo-ubuntu1704_9.0.176-1_amd64.deb
sudo apt-get install -y --fix-missing --no-install-recommends dirmngr gnupg-curl
sudo dpkg -i cuda-repo-ubuntu1704_9.0.176-1_amd64.deb
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1704/x86_64/7fa2af80.pub
sudo apt-get update
sudo mkdir /usr/lib/nvidia
sudo apt-get install -y --fix-missing --no-install-recommends nvidia-384=384.111-0ubuntu1 libcuda1-384=384.111-0ubuntu1 nvidia-384-dev=384.111-0ubuntu1
sudo apt-get install -y --fix-missing --no-install-recommends cuda-cudart-9-0 cuda-cublas-9-0 cuda-core-9-0 cuda-cublas-dev-9-0 cuda-cudart-dev-9-0
cd /usr/local/ && sudo ln -s cuda-9.0 cuda
export PATH="$PATH:/usr/local/cuda/bin"
cd ~

echo "Installing CUDNN"
wget -nc http://developer.download.nvidia.com/compute/redist/cudnn/v7.1.4/cudnn-9.0-linux-x64-v7.1.tgz
tar -xzvf cudnn-9.0-linux-x64-v7.1.tgz
sudo cp -P cuda/include/cudnn.h /usr/local/cuda/include/cudnn.h
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
sudo nvidia-smi -pm 1

echo "Installing other"
sudo apt-get install -y ninja-build libprotobuf-dev protobuf-compiler python3-pip
sudo pip3 install meson
sudo apt-get install -y g++-6

echo "Installing lc0"
rm -rf lc0
git clone --recurse-submodules https://github.com/LeelaChessZero/lc0.git
cd lc0 && git checkout $(git tag --list |grep -v rc |tail -1)
CC=clang-6.0 CXX=clang++-6.0 ./build.sh
mv ./build/release/lc0 lc0

echo "Downloading lczero client"
sudo curl -s -L https://github.com/LeelaChessZero/lczero-client/releases/latest | egrep -o '/LeelaChessZero/lczero-client/releases/download/.*/client_linux' | head -n 1 | wget --base=https://github.com/ -i - -O client_linux && chmod +x client_linux

echo "Running Leela Chess Zero"
./client_linux --user googlecloud --password googlecloud --use-test-server
[свернуть]

Он производит установку драйверов Nvidia для использования cuda ядер, устанавливает клиент Leela Chess Zero и автоматически запускает генерацию тренировочных игр.

Вы можете выбрать свой логин и пароль, меняя значения “googlecloud” в последней строке:
./client_linux --user googlecloud --password googlecloud --use-test-server

Только сделайте пароль достаточной сложности, потому что он не подлежит шифрованию. Также следите за тем, чтобы случайно не удалить пробелы, иначе скрипт не запустится.

Все готово, теперь нажимаем Создать. Если все в порядке с квотами, то потребуется примерно 3-5 минут пока ВМ запустится и выполнит скрипт. Вам нет необходимости держать окно ВМ открытым, о том как проверить работоспособность написано ниже.

Мониторинг производительности Виртуальной Машины​

Рекомендую периодически проверять работу ВМ. Выделив её, вы можете переключиться на вкладку Мониторинг. На 4-x СPU видеокарта Tesla V100 будет загружать процессор примерно на 40%. Также я крайне рекомендую установить приложение Cloude Console на свой смартфон, очень удобный инструмент для отслеживания работы ВМ, мониторинга ресурсов, запуска и перезапуска ваших ВМ.

Мониторинг загружаемых игр на сервер​

Через примерно 20-30 минут (обычно даже быстрее) первые игры начнут загружаться на сервер. Вы можете посмотреть сколько игр было загружено с вашего аккаунта в разделе all users на главной странице http://lczero.orghttp://lczero.org/, или перейдя по ссылкеhttp://lczero.org/active_users

Иногда баги и обновления сервера платформы lczero требуют перезагрузки клиента. Вы можете следить за последними новостями на главной странице. Если выпущена новая версия клиента, просто удалите текущий образ ВМ и создайте новую, повторив шаги выше.

Ну и теперь самое вкусное. TeslaV100 генерирует примерно 1000 игр в час, так что в месяц мы получаем почти 400 000 игр абсолютно бесплатно! 100 таких пользователей способны за 20 дней с 0 натренировать новую сеть! Каждый, кто жертвует ресурсы, с помощью Google Cloud, поднимает текущую производительность тренировки нейронной сети на 3%!
Alex_Zet вне форума   Ответить с цитированием
Старый 08.08.2019, 16:06   #3
Alex_Zet
Гроссмейстер
ТС
 
Аватар для Alex_Zet
 
Регистрация: 01.12.2016
Сообщений: 3,581
Сказал(а) спасибо: 216
Поблагодарили 999 раз(а) в 734 сообщениях
Записей в дневнике: 6
Репутация: 32
По умолчанию Re: Leela Chess Zero (lc0): как тренировать сеть с помощью Google Cloud

Вопрос: - А как ее обучать?

Запускаете программу-клиента, она скачивает из интернета актуальную версию сети и начинает играть сама с собой. Сыгранные партии отсылает на специальный сервер. Там они накапливаются, и в определённый момент происходит генерация новой сети (собственно, обучение - то есть подбор новых весовых коэффициентов). Если полученная сеть оказывается удачной, то при следующих запусках клиента она будет скачана, заменит старую и будет использована для последующих игр. Это если в двух словах и на пальцах.
Подробнее см https://github.com/LeelaChessZero/lc0/wiki/FAQ
Alex_Zet вне форума   Ответить с цитированием
Старый 08.08.2019, 16:10   #4
Alex_Zet
Гроссмейстер
ТС
 
Аватар для Alex_Zet
 
Регистрация: 01.12.2016
Сообщений: 3,581
Сказал(а) спасибо: 216
Поблагодарили 999 раз(а) в 734 сообщениях
Записей в дневнике: 6
Репутация: 32
По умолчанию Re: Leela Chess Zero (lc0): как тренировать сеть с помощью Google Cloud

SKY - Alhimik88, Может есть где с Lc0 можно поиграть? Я бы с удовольствием стоком последним с глубиной под 60 с ней играл,а она бы обучалась.

Alhimik88: - Поиграть онлайн можно тут:
https://kontrachess.com/ Выберите вкладку Play Leela AI
https://lichess.org/@/LeelaChess https://lichess.org/@/LeelaChess
Эти боты обычно играют с самой сильной сеткой. На lichess Лила вроде 25-30 Kn/s выдает, но рейтинг почему-то довольно низкий, может часто с ботами играет и люди читерят.

Можно также установить Lc0 на свой компьютер, тема есть в этой ветке форума, может доберутся у меня руки и я переведу тот гайд с английского языка. Вам понадобится хотя бы средняя видеокарта, чтобы получить хороший уровень игры и анализа.

Есть также гайд, как настроить обучающий клиент Лилы на своей машине, он тоже пока на русский не переведен. https://github.com/LeelaChessZero/lc...etting-Started
Хотя там довольно все просто. Скачивайте клиент, скачивайте движок, скачивайте последнюю сеть, распаковываете все и запускаете клиент. Далее он все сам сделает.

Ну и как сказал WinPooh выше, обучению новых сетей ваши игры с Лилой никак не поспособствуют.
Есть конечно способы обучать нейросеть, используя базы партий, но это уже сторонние проекты типы AntiFish, Lc1, Leelenstein и другие.
Alex_Zet вне форума   Ответить с цитированием
Старый 08.08.2019, 16:13   #5
Alex_Zet
Гроссмейстер
ТС
 
Аватар для Alex_Zet
 
Регистрация: 01.12.2016
Сообщений: 3,581
Сказал(а) спасибо: 216
Поблагодарили 999 раз(а) в 734 сообщениях
Записей в дневнике: 6
Репутация: 32
По умолчанию Re: Leela Chess Zero (lc0): как тренировать сеть с помощью Google Cloud

Mustitz - Ну... во-первых, я юзаю aws, акаунт в Google Cloud есть. Во-вторых какие-то cudnn уже установлены в системе, было бы хорошо, если был бы docker образ с нужными. Или версия не критична?

Alhimik88 - Насчет версий cudnn не спец, по скрипту загружаются вот эти http://developer.download.nvidia.com...x-x64-v7.1.tgz
https://github.com/LeelaChessZero/lc...ud-guide-(lc0) - по ссылке в самом низу есть экспериментальный гайд с использованием специального docker диска, но там и скрипт другой для автозапуска. Смотрите, пробуйте, если вам так удобнее.
Но вообще, я не вижу смысла даже думать об этом. Проще всего создать новую VM с параметрами, как в первом сообщении и скопировать скрипт под спойлером там же. По скрипту при запуске все необходимое проверяется и загружается автоматически, какая разница переписывает он cudnn драйвера, или нет, главное, чтобы они корректно работали.
Надеюсь у Вас неиспользованный стартовый бонус в 300$, если хотите попробовать. В противном случае ценник конский - 0.774$ в час.
Alex_Zet вне форума   Ответить с цитированием
Старый 08.08.2019, 16:15   #6
Alex_Zet
Гроссмейстер
ТС
 
Аватар для Alex_Zet
 
Регистрация: 01.12.2016
Сообщений: 3,581
Сказал(а) спасибо: 216
Поблагодарили 999 раз(а) в 734 сообщениях
Записей в дневнике: 6
Репутация: 32
По умолчанию Re: Leela Chess Zero (lc0): как тренировать сеть с помощью Google Cloud

Mustitz - Ну а ценник вполне приемлемый, получается $550 в месяц. Как-то раз арендая машину с 640 G оперативы на Google Cloud я за три дня потратил $200

Alhimik88 - Надеюсь не свои тратили Нет, я считаю Google задирает цену, ну не должно быть так дорого, за месяц использования V100 можно хорошую видеокарту купить :facepalm2:

Есть сервис https://vast.ai/console/create/. там ценники куда приятнее, также RTX 2080TI, которая генерирует столько же игр в день, что и V100 стоит 0.22$. Так что можете оценить возможность использования этого сервиса для своей работы, тренировки Leela.
Многие уже пользуются этим сервисом. Так некий Алексей Еременко арендовал около 40 RTX 2080TI + 6 своих 2070, получил почти 2M тренировочных игр в день, тренируя одновременно и Leela T40 и T50.
Кстати, вот его хороший пост по поводу экономики обучения новых сетей на арендованном оборудовании https://groups.google.com/forum/#!to...ro/vibJiUO1R5I
Если вкратце новая обученная сеть с нуля будет стоить порядка 15000$. Причем не важно сколько мы тратим времени на обучение, можно арендовать столько, что за 12 часов обучить можно, стоимость будет той же! Получается не так и дорого, интересно, сколько будет стоить написать новый Стокфиш с нуля, если нет возможности копировать код

crem: - Это не гугл задирает цену, это V100 стоит $6500.
А карточки RTX/GTX в дата центрах запрещено устанавливать лицензией NVidia.
Многие устанавливают незаконно и NVidia официально объявила, что на 1-2 видеокарту для личных целей они закроют глаза, но разумеется гуглу так нельзя.
Alex_Zet вне форума   Ответить с цитированием
Старый 08.08.2019, 16:18   #7
Alex_Zet
Гроссмейстер
ТС
 
Аватар для Alex_Zet
 
Регистрация: 01.12.2016
Сообщений: 3,581
Сказал(а) спасибо: 216
Поблагодарили 999 раз(а) в 734 сообщениях
Записей в дневнике: 6
Репутация: 32
По умолчанию Re: Leela Chess Zero (lc0): как тренировать сеть с помощью Google Cloud

SKY - По первой ссылке довольно неплохо,играет Ic0 v0.20.2 максимум по времени 30 минут на партию плюс 10 сек на ход,что дает моему Стоку возможность углубляться в среднем на 30 полуходов и этого хватает для выигрыша,из 5 партий две победы белыми,остальные ничьи.
По второй ссылке ставится время до 2-х часов на партию плюс дополнительные секунды,что здорово,но вроде бы там играет только Стокфиш 8,Лилы по моему нет.

Alhimik88 - Вторая ссылка ведет к профилю бота, которого нужно вызвать на игру, там система неплохая, как говорил. Вы сможете вызвать его с контролем до 18+10 включительно, дальше идет классический контроль, и вызовы в классику тот бот отклоняет. Но учтите, что есть множество желающих поиграть с тем ботом, поэтому иногда вызов будет ожидать очереди, но обычно недолго.
Alex_Zet вне форума   Ответить с цитированием
Старый 08.08.2019, 16:20   #8
Alex_Zet
Гроссмейстер
ТС
 
Аватар для Alex_Zet
 
Регистрация: 01.12.2016
Сообщений: 3,581
Сказал(а) спасибо: 216
Поблагодарили 999 раз(а) в 734 сообщениях
Записей в дневнике: 6
Репутация: 32
По умолчанию Re: Leela Chess Zero (lc0): как тренировать сеть с помощью Google Cloud

Alhimik88 - Пишите, кто уже попробовал тренировать Lc0 с помощью бесплатного стартового бонуса в 300$ от Google. Может кто хочет это сделать, но не разобрался в инструкции? Пишите сюда, или в личку, всем помогу! Также задавайте вопросы, касающиеся тренировки Leela Chess Zero. Если вам интересен проект, используйте возможность совершенно бесплатно поучаствовать в его развитии.
Alex_Zet вне форума   Ответить с цитированием
Старый 08.08.2019, 18:40   #9
alchemist888
2 разряд
 
Аватар для alchemist888
 
Регистрация: 25.04.2019
Сообщений: 303
Сказал(а) спасибо: 166
Поблагодарили 278 раз(а) в 141 сообщениях
Репутация: 33
По умолчанию Re: Leela Chess Zero (lc0): как тренировать сеть с помощью Google Cloud

Давно хотел перенести ту тему сюда, спасибо, Alex_Zet
alchemist888 вне форума   Ответить с цитированием
Старый 08.08.2019, 22:28   #10
Alex_Zet
Гроссмейстер
ТС
 
Аватар для Alex_Zet
 
Регистрация: 01.12.2016
Сообщений: 3,581
Сказал(а) спасибо: 216
Поблагодарили 999 раз(а) в 734 сообщениях
Записей в дневнике: 6
Репутация: 32
По умолчанию Re: Leela Chess Zero (lc0): как тренировать сеть с помощью Google Cloud

Вам и карты в руки
Alex_Zet вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 22:41. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, vBulletin Solutions, Inc. Перевод: zCarot
Рейтинг@Mail.ru