Dentro de este blog hemos hablado mucho sobre los temas de AI (Artificial Intelligence), ML (Machine Learning) y DL (Deep Learning) ya que nosotros nos encontramos estudiándolos y trabajándolos a diario. Durante nuestro camino recorrido de estos temas, muchas veces hemos llegado a toparnos con problemas técnicos porque nuestros equipos no eran los adecuados para las labores que realizabamos. Se preguntarán, qué puede tener de especial un equipo del área de AI, así que primero trataré de explicar la clase de actividades que se realizan en el área para así poder explicar la necesidad de un equpo fuera de lo regular.

Primero, veamos qué es lo que es Inteligencia Artificial, según Wikipedia:
«En ciencias de la computación, una máquina inteligente ideal es un agente flexible que percibe su entorno y lleva a cabo acciones que maximicen sus posibilidades de éxito en algún objetivo o tarea».
Esto se refiere a la creación de un programa que sea capaz de tomar decisiones, basándose en el ambiente que sea creado, que cada decisión le ayude a acercarse a cumplir su objetivo. Idealmente, es la creación de programas capaces de automatizar tareas del mundo real, que sean capaces de comprender las variables que los rodean y que se adapten a cambios en ellas, sin que afecte al resultado que se busca. Un ejemplo sencillo sería un agente inteligente, que se encargue de analizar las transacciones de una empresa o persona particular, el cual estaría constantemente leyendo cada movimiento que se realice y que detecte cuando existan anomalías. La parte inteligente sería que comprenda qué es una anomalía y qué es un comportamiento normal, que a pesar de que existan anomalías, éstas no se conviertan en una nueva normalidad. Para poder alcanzar algo de este nivel, es necesario que las aplicaciones sean entrenadas con algoritmos que mejor se ajusten a la situación, por el momento seré más general y no entraré a fondo de la teoría que hay detrás de todo esto, eso lo veremos en otra publicación. Lo que tienen que saber es que nuestro equipo necesita de 3 fundamentales: procesamiento, memoria RAM y tarjeta de video, hay algunas otras especificaciones que nos brindan un poco de ayuda, pero no son indispensables como éstas tres. En este blog veremos solamente la parte del CPU, dejaré un enlace a la siguiente publicación que será respecto a la GPU y RAM.

Procesador (CPU)
Recomiendo que escojas muy bien el procesador que vaya a tener tu equipo, muchas veces nos dejamos llevar por el simple nombre del componente, pero si buscas bien puedes llegar a encontrar procesadores de menor precio, menor «categoría» pero con el mismo desempeño. Bueno, si no eres conocedor de la tecnología lo haremos sencillo para ti, hay dos cosas en las que debes fijarte cuando compres un equipo o lo armes, cantidad de cores o procesadores físicos y las velocidades que tiene este procesador. Como tal, existen procesadores que están especializados para ML, DL y AI pero estos no son tan comerciales ni sencillos de encontrar, por lo que hablaremos de procesadores más comunes. No me gustaría darte una recomendación de un modelo como tal, ya que este puede volverse malo con el tiempo pero sí te daré una descripción de lo básico que necesitas para analizar datos, crear modelos de ML, entrenarlos y aplicarlos.

Cores & Threads
Los primeros son sencillos de entender, no es nada mas que la cantidad de procesadores (literalmente unidades físicas que se encarguen del procesar todas las tareas) tanto físicos como lógicos, conocidos como cores y threads. Anteriormente, la cantidad de threads (procesadores lógicos) era la misma que la de cores (procesadores físicos), por lo que era un detalle que no se consideraba, pero a partir de la 8va generación de procesadores de Intel y la marca Ryzen de AMD, esto ha cambiado, al menos en el aspecto comercial, ya que siempre han existido procesadores más avanzados que están orientados hacia distintas áreas de la computación. Continuando con la parte de los cores, busca un procesador tenga como mínimo 4 cores y el doble de threads, esto le dará a tu computadora un total de 12 unidades lógicas para procesar tareas, por lo que nunca te hará falta procesamiento. Lo ideal sería un procesador con 6 cores y 12 threads, ya que estarás preparado para cualquier tecnología que salga a un futuro cercano y que se aproveche de grandes cantidades de unidades lógicas. Por último, lo mejor que puedes hacer es comprar un procesador con 8 cores y 16 threads, procesadores con mayor cantidad de cores y threads tienden a ser muy costosos y aumentan el costo del equipo en general, ya que necesita una tarjeta madre donde quepa el procesador (tiende a ser de mayor tamaño), una mejor disipación del calor (ya que como es una mayor cantidad de nanochips concentrados en un área muy pequeña, se calienta con facilidad) y mayor fuente de poder.
Base Frequency Speed & Max Frequency Speed
Esto puede sonar algo complicado, pero los vamos a convertir en algo muy sencillo, básicamente es la velocidad en la que se están ejecutando cada tarea y la frecuencia que le permite estar cambiando de proceso. Pero, a qué se refiere esto? Verán, cada una de las tareas y los procesos que el procesador se encarga de ejecutar, son divididos en muchos cortos tiempos de ejecución y la velocidad en la que opera cada uno de esas partes de tareas es la velocidad de relój base, esta velocidad es como el promedio en la que el procesador está configurado la mayoría del tiempo, es muy importante saber cuál es la velocidad base del procesador ya que si ésta es muy alta puede consumir mucho voltaje y afectar la duración de la bateria en caso de equipos móviles. La velocidad de frecuencia máxima es la velocidad más alta a la que puede llegar a ejecutar procesos el cpu, esta información es relevante para procesos que son muy demandantes y que son muy complejos o muy grandes. Entonces si lo que buscaras es que la batería de tu laptop rinda bien, trata de buscar una que logre alcanzar una velocidad base algo baja, alrededor de los 2 GHz sería lo ideal, pero si buscas una que te dé siempre el mejor desempeño sin tomar en cuenta la batería, busca un procesador con velocidad base alrededor de los 3 GHz, las velocidades máxima son relativas, al menos en equipos de escritorio, ya que ciertos procesadores (los más nuevos sobre todo) son totalmente overclockeables, esto quiere decir que pueden llevar su procesador a velocidades máxima por encima de la establecida por fábica. Esto implica ciertos riesgos y precauciones que se deben de tener en cuenta, así que si es algo que te interesa, con gusto lo veremos en otra publicación. De lo contrario, recomiendo que busquen procesadores con velocidad máxima lo más alto posible, arriba de 4,3 GHz está excelente.
Cerrando esta entrada en el blog, estaremos completando esta guía para poder armar/comprar nuestros equipos de AI, si están interesados en que hable acerca de algo más o explique algo a mayor detalle, no duden en escribirlo en los comentarios. Nos vemos en la próxima entrada, hasta la próxima.
Escrito por: Daniel Pelagio Vázquez