
Honestamente, estoy muy decepcionado con Habr. ¿Por qué nadie destacó algo como ganar un enfoque de red neuronal con un código totalmente
abierto , eh? ¿Y
datos de red neuronal completamente abiertos? De hecho, bueno, DeepMind Technologies describió
cómo enseñaron una IA de ajedrez jugando consigo mismo ... Solo que ahora el código está cerrado allí, y la capacitación se llevó a cabo en grupos de Google, y no se distribuyó en Nvidia Turing con
núcleos tensoriales , como en este caso. ¿Por qué tengo que editar yo mismo la
Wikipedia en inglés para llamar la atención sobre esto?
De acuerdo, algo que llegué
demasiado lejos con las emociones, supongo. (Todavía hay un enlace en los comentarios que menciona a leela). Este artículo es un experimento: una forma de mostrarme cómo mi otro
artículo , que es demasiado popular, en mi opinión, afectará esto.
La historia comenzó cuando actualicé mi viejo Nvidia Geforce GTX 770 al RTX 2080 Ti. Bueno, dado
lo que cuesta, quería maximizarlo. Al principio jugué con
Ray Tracing , leí acerca de cómo
funciona con CUDA a través de
NVIDIA OptiX . Leí acerca de cómo una persona logró
usar núcleos RT para otros fines. Repetido Pero la cantidad de comentarios de que una
chaqueta de cuero se divorciaba de las personas era tan grande que estaba cansada de leer al respecto. Sobre todo teniendo en cuenta que sé que el trazado de ruta es el algoritmo más importante de la industria del cine y los juegos, y este no es el descubrimiento de Nvidia. En absoluto Incluso hardware.
Entonces decidí mirar hacia
NVENC . Generalmente soy un amante de los regalos. Al final resultó que, había mucho en este codificador de hardware. Primero, el
artículo más popular sobre Habr sobre NVENC habla sobre cómo
YourChief , armado con un depurador, fue capaz de romper el límite en la cantidad de transmisiones simultáneas de codificación (y resultó que mi tarjeta puede ser
increíble ). Además, el parche, como suele suceder, cambia solo un
par de bytes .
Luego resultó que la tecnología NvFBC (captura ultrarrápida de un fotograma completo) también se puede habilitar en la tarjeta geforce, si usa un parche mágico
en la parte superior del marco de Looking Glass, antes de activar
esta tecnología (el parche se puede ver
aquí ).
Entonces quería un color de 30 bits en Photoshop. Repitiendo el éxito de otros, encontré un byte que limitaba el soporte de OpenGL en modo ventana (como en DirectX en modo ventana y pantalla completa y en OpenGL en modo pantalla completa, el color de 30 bits funcionaba de esta manera). Y Nvidia escribió al respecto, prometiendo presentar el parche. Tal vez esto sea una coincidencia, pero eliminaron
esta restricción en Gamescom 2019. Pero todavía
hay soporte no oficial para HDR10 + (metadatos dinámicos HDR).
Entonces, ahora ha llegado el momento para el acelerador matricial, el acelerador neural, los núcleos tensoriales, llámalo como quieras. Fue un poco más complicado. Diré enseguida que me quedé dormido en una conferencia sobre la red neuronal en la universidad, así que tuve que resolverlo. Pero después de ver un par de
videos donde un hombre genera miles de pájaros para atravesar el Flappy Bird, y después de un par de generaciones, estos pájaros pasan obstáculos como un reloj, me inspiró la idea. La pregunta era qué lanzar. Y luego recordé que Google aquí recientemente se jactó de que vencieron a su
mejor jugador en Go con su IA, lo que se consideraba imposible antes de usar algoritmos "normales". Honestamente, le encantan las versiones complejas de Google DeepMind. Bueno, es decir, quién lo inventó: AlphaGo Lee → AlphaGo Master → AlphaGo Zero → AlphaZero (este último ya puede estar en ajedrez, y en shogov, y en go, y en general, ya que implementaron un mecanismo largo para explicar las reglas del juego, el póker se puede adaptar). Soy consciente del póker, en todo caso, no escribas sobre él, de lo contrario te conozco.
Mi búsqueda en Google "código fuente alphazero" no arrojó nada. Bueno, es decir, ¡resultó que no pensaron en abrir el código! Pero no lo podía creer. Bueno, es decir, Elon Musk significa OpenAI (supuestamente para que cuando se desarrolle la IA, sea más estudiada, o algo así, y esté más libre de derechos de autor de los autores). Y aquí en reddit me encontré con un
enlace . Al final resultó que, algunas personas compasivas de DeepMind todavía decidieron dar parte del código fuente, sin embargo, imprimiéndolo directamente en un archivo pdf. / facepalm
Bueno, aquí
descargué inmediatamente y la red neuronal
desde aquí . Y después de jugar con ella, me di cuenta de que por alguna razón no juega ajedrez. Me llevó unos 20 minutos entender que juega go, no ajedrez, y otros 40 minutos para encontrar una
versión para el ajedrez. Y aquí me sorprendió. Primero, ya han logrado implementar el backend de cuda con soporte para núcleos tensoriales de Nvidia tanto para el juego como para el entrenamiento (
voluntario y distribuido , por otra parte). En segundo lugar, ¡justo en ese momento tuvieron un duelo con Stockfish por el 1er lugar en el ranking de ajedrez informático! ¡No dormí media noche, viendo la super final de
TCEC y ganó la red neuronal! Inmediatamente corrí a editar Wikipedia, que en ese momento tenía poca información, ¡y al día siguiente todos escribieron al respecto! Al final resultó que, durante el juego, Leela usó solo un montón de 2080 Ti y 2080, es decir, mi tarjeta fue suficiente. Después de descargar la red neuronal
desde aquí , ¡la lancé tranquilamente en mi computadora! Bueno, por supuesto, la red neuronal me rompió. Aquí se explica cómo configurarlo.
Personalmente, realmente utilicé el shell del explorador de ajedrez HIARCS. Además, también le di a la gente en Android para
probar Leela en DroidFish. Android usa una red destilada, más simple y más pequeña, pero aún no débil.
En principio, puedo pintar las instrucciones de instalación con más detalle, agregar enlaces, escribir: =))
Por cierto, tal pregunta, ¿alguien ha escuchado sobre el uso no estándar de NVENC y NVDEC? Parece que se puede adaptar para acelerar las operaciones matemáticas. Lo leí en alguna parte, pero no había detalles.