- Definiciones: ML, DL, LLM; AI, AGI; Generative AI, Chatbot
- Algoritmos: Introducción
- Artificial Neural Network (ANN): Red Neruronal Artificial
- Large Language Model (LLM): Attention y Transformers
- Vector DB: Base de Datos Vectorial
Definiciones:
ML, DL, NLP, LLM; AI, AGI; Generative AI, Chatbots
ML, DL, NLP, LLM; AI, AGI; Generative AI, Chatbots
El término Machine Learning -- traducido en español como Aprendizaje Automático -- fue acuñado por Arthur Samuel en 1959, uno de los pioneros de la Inteligencia Artificial (Artificial Intelligence o AI; en español IA, para abreviar), y se define como una rama de la informática que otorga a las computadoras la capacidad de aprender sin ser programadas explícitamente. Básicamente es un nuevo paradigma para 'programar', o mejor dicho, para 'entrenar' las computadoras, utilizando nuevos algoritmos y métodos con los cuales las computadoras puedan aprender por sí mismas, de forma similar a como lo hacen los humanos -- ver Linea de Tiempo para más información sobre esta interesante historia.
En la práctica la frase "Machine Learning" (ML) se utiliza como un término general para describir un conjunto de modelos computacionales que primiten simular en computadoras el proceso de aprendizaje humano que caracteriza la 'inteligencia natural'. De esta manera el ML permite desarrollar formas de "Artifical Intelligence" (AI) que pueden reproducir (y mejorar) el comportamiento humano en varias de sus muchas facetas: lenguaje, creatividad, capacidad de cálculo y de análisis, reconocimiento de imágenes y sonido, movimiento mecánico (robótica), etc.
Por ejemplo, los niños aprenden las primeras reglas del lenguaje materno escuchando las conversaciones de sus padres y sus mayores, no leyendo libros de gramática, ni tampoco necesitan ser 'programados' por instructores. Aunque luego cuando aprenden a leer, quizás entonces lean libros de literatura infantil y continúen con una educación formal. De esa manera, paso a paso, nuestro cerebro y nuestra mente heurísticamente van descubriendo las reglas gramaticales, fonológicas, morfológicas y semánticas, de nuestra lengua materna, es decir descubriendo por sí mismos los 'programas del lenguaje', e incluso descubren las excepciones a las reglas y las anomalías, para entonces aplicar ese conocimiento adquirido en nuevas conversaciones, y así continuar el proceso de aprendizaje. Incluso, según los lingüistas contemporáneos, tal parece que los humanos tenemos un núcleo gramatical innato que es 'universal', es decir, independiente de los muchos idiomas que existen en el mundo, y es a partir de ese núcleo innato que los niños tienen la capacidad para aprender las reglas del idioma materno específico, según la cultura.
Poder modelar este proceso de aprendizaje y entrenamiento con computadoras es uno de los objetivos del Machine Learning.
El otro término que se suele mencionar, conjuntamente al "Machine Learning" (ML), es el "Natural Language Processing" (abreviado como NLP), que son técnicas de computación para procesar el lenguaje humano, extraer datos de un texto, encontar relaciones entre palabras, entender el contexto y el sentimiento, y para mejorar la comunicación en general y la redacción en particular; incluyendo la capacidad de generar oraciones gramaticalmente correctas y bien articuladas, es decir, la capacidad de "hablar con fluidez". Sobre todo cuando se habla del desarrollo de sistemas de Inteligencia Artificial 'conversacionales', como los Chatbots modernos, con los cuales se puede establecer un diálogo, con preguntas y respuestas en tiempo real. Y en este sentido algunos desarrollos actuales del ML y el NLP son impresionantes.
Y mientras hablamos de "Machine Learning" en general, es bueno destacar que existe un importante caso particular de ML llamado "Deep Learning" (abreviado DL) --Aprendizaje Profundo, en español--, término acuñado por Geoffrey Hinton, considerado el padrino de la AI actual y ganador del Premio Nobel de Física en 2024, el cual tiene grandes aplicaciones prácticas como veremos más adelante.
La siguiente imagen muestra la relación entre las varias componentes de lo que normalmente entendemos como Inteligencia Artifical en la actualidad.
![]() |
| AI: Machine Learning vs. Deep Learning |
Nótese los siguientes elementos que conforman el diagrama anterior:
1) ALGORITHMS: Los Algoritmos matemáticos que soportan toda esta ciencia.
2) ARTIFICIAL INTELLIGENCE: La Inteligencia Artificial per se, con sus aplicaciones que pueden simular el comportamiento humano.
3) MACHINE LEARNING: Los modelos que permiten que las aplicaciones de AI se entrenen y aprendan sin necesidad de ser programadas explícitamente.
4) DEEP LEARNING: Basado en la Artificial Neural Network (ANN) --o simplemente Neural Network (NN)-- como un caso particular que ha demostrado ser muy versatil y exitoso en aplicaciones donde hay que manejar un gran volúmen de datos; como los LLM (Large Language Model). El término "deep" (profundo) se refiere al número elevado de capas de procesamiento (capas de "neuronas") que en la práctica son necesarias para que una ANN funcione correctamente.
Para precisar un poco más la relación y diferencia entre Machine Learning (ML) y Deep Learning (DL), consideremos lo siguiente:
* El ML requiere la intervención humana en algunos pasos del proceso de entrenamiento, por ejemplo para definir los "labels" del Data Set (Conjunto de Datos) que puede depender de miles de millones de parámetros, tarea que es realizada por los "prompt engineers" y los "labelers" (un trabajo que puede requerir mucho tiempo), para entonces aplicar las técnicas matemáticas que se mencionan más adelante.
* El DL es un caso particular de la ML basado en algoritmos de "Artificial Neural Network (ANN)" (Redes Neuronales Artficiales) que tiene como objetivo lograr que, a medida que aumenta el volumen de datos que tiene que manejar la aplicación ya entrenada (con valores óptimos para los parámetros internos del algoritmo: "weights" y "biases"), la ANN pueda llegar a una conclusión acertada sin necesidad de intervención humana adicional; lo cual le puede conferir un valor especial como 'oráculo' o instrumento predictivo.
También es importante entender la relación y diferencia entre "Machine Learning" y "Generative AI". El Machine Learning (Aprendizaje Automático) es un campo amplio dentro de la Inteligencia Artificial (IA) que se centra en entrenar a las computadoras para aprender de los datos y hacer predicciones o decisiones, la cual se puede aplicar a grandes conjuntos de datos de muy diversas clases; no solo palabras o imágenes. Mientras que la Generative AI (IA Generativa) es un tipo especializado de Machine Learning que crea nuevo contenido, como texto, imágenes o audio, imitando la creatividad humana. En otras palabras, el Machine Learning analiza datos en busca de información, mientras que la Generative AI produce resultados novedosos (texto, audio, imágenes, etc.) basados en el análisis de esa información.
Como ejemplo de "Generative AI" tenemos los "Large Language Models" (abreviado LLM) -- Modelos de Lenguaje de Gran Tamaño, en español --, que se han hecho muy populares gracias a las aplicaciones de "Chatbots de AI", como ChatGPT y otros.
La otra clase de inteligencia artificial de que se habla es la Physical AI (IA Física, en español). La "Physical AI" va más allá de la robótica actual, y se refiere a la inteligencia artificial que opera, interactúa, y se mueve, a través del mundo real en lugar de existir únicamente en el software digital. La idea es dotar a las máquinas de razonamiento cognitivo y espacial, de forma tal que puedan procesar datos sensoriales, comprender sus entornos físicos y realizar complejas tareas de manera autónoma.
Y para finalizar con las definiciones, con respecto al término AI (Artificial Intelligence) utilizado comunmente en la literatura, es bueno saber que los expertos a veces utilizan otros términos relacionados para referirse a formas (futuras) de AI, como por ejemplo la llamada AGI (Artificial General Intelligence) que se espera pueda llegar al "mismo nivel de inteligencia que los humanos", y que incluye la ANI (Artificial Narrow Intelligence) aplicada a resolver tareas específicas, y la futurista ASI (Artificial Superintelligence) que algunos investigadores esperan pueda llegar a ser "más inteligente que los humanos".
Algoritmos: Introducción
Para los que quieran saber qué hay dentro de la "caja negra" de la Artificial Intelligence (AI), es interesante notar que el Machine Learning (ML) incluye diversos modelos, con técnicas de estadística y de álgebra lineal, basados en vectores, matrices y tensores (matrices multidimensionales), que se aplican a los 'Large Data Sets', incluyendo algoritmos para clasificar los datos en múltiples niveles, agrupar, organizar, encontrar 'patrones ocultos' en los datos y hacer predicciones numéricas. Para lo cual existen 'software libraries' como 'PyTorch', 'Pandas', 'Prophet', la plataforma de desarrollo 'Hugging Face', y otras herramientas que se pueden utilizar en Python (el lenguaje utilizado para escribir el 'código fuente' de ChatGPT) así como otros lenguajes de programación.
Además ChatGPT tiene una API (Application Programming Interface), proporcionada por OpenAI, la cual permite a los 'application developers' integrar las capacidades de ChatGPT en sus propias aplicaciones, para de esa forma crear funciones de generación de texto AI conversacional dentro de su software.
También es importante mencionar que, en el caso de los Large Language Models (LLM), estas técnicas de estadística no se aplican directamente a la 'bolsa de palabras' como tal (Bag of Words, BOW, en inglés) sino a los 'vectores de características numéricas' (numerical feature vectors, en inglés) que se derivan de los 'tokens' de la BOW y a su 'Frecuencia de Término' (Term Frequency, en inglés); un proceso llamado 'Encoding' que realizan los 'Transformers' en el marco de la arquitectura BERT (Bidirectional Encoder Representations from Transformers).
He aqui una lista de los más importantes algoritmos que se utilizan, según la clase de tarea que se desee realizar sobre un Large Dataset dado (clasification, clustering, prediction):
- Multi Classification (Multi-class o Multi-label): Support Vector Machine (SVM), Classification And Regression Tree (CART), Decision-Tree, Naive Bayes, F1 Score, Neural Network (NN).
- Clustering and Filtering: DBSCAN, K-Nearest Neighbor (KNN), K-Means Clustering, Hierarchical Clustering, Gaussian Mixture Model.
- Numerical Prediction: Linear Regression, Logistic Regression, Elastic Regression, Random Forest.
Y aunque tratar de explicar todos estos algoritmos se sale completamente del alcance de este blog, de todas formas vale la pena comentar algunas cosas para mejor entender los 'principios' en los cuales se basa esta nueva tecnología del ML y la IA ... y si quieren pueden pregutarle a la propia IA sobre cualquiera de estos algoritmos y seguramente la IA les dará una buena explicación ...
Con respecto a la clasificación de los algoritmos, es bueno aclarar que algunos de estos algoritmos pueden realizar varias tareas diferentes. De hecho, aunque los algoritmos de Neural Network (NN) aparecen en el grupo de "Multi Classification", porque precisamente la clasificación es una de las aplicaciones principales de las redes neuronales, donde el objetivo es categorizar los datos de entrada en clases predefinidas (por ejemplo, identificar una imagen como "gato" o "perro"), sin embargo, las redes neuronales son muy versátiles y se pueden configurar para resolver muchos otros tipos de problemas, incluyendo: Regression Analysis, Clustering and Filtering, y otros. Y por eso los algoritmos de Neural Network (NN) se utilizan en aplicaciones de Deep Learning (Aprendizaje Profundo), como en el caso de un Large Language Model (LLM).
Otra forma de clasificar los algoritmos anteriores es considerando que hay dos clases, según el paradigma de aprendizaje que se aplique:
(1) Supervised Learning (Aprendizaje Supervisado);
(2) Unsupervised Learning (Aprendizaje No Supervisado).
En este contexto Supervised (Supervisado) significa que el DataSet debe incluir "labels" (etiquetas) para que, durante el entrenamiento, el algoritmo pueda saber cuál es la respuesta correcta, o esperada, para cada conjunto de datos. De esta forma, los algoritmos de Classification y Numerical Prediction (Regression) son de tipo "Supervised", mientras que los de Clustering y Filtering pueden ser "Unsupervised".
Por cierto, el trabajo de añadir los "labels" a un dataset es un trabajo que puede requerir mucho tiempo, el cual es realizado por los "labelers" o "data annotators" (anotadores de datos), que son "domain experts", es decir, personas con expertisia en el area de conocimiento donde la AI está siendo entrenada; prácticamente una nueva profesión creada por esta naciente industria.
Algo interesante sobre estos algoritmos en general es que dependen de un conjunto de parámetros, ya sean internos (propios del algoritmo) o configuraciones externas (hyperparameters, en inglés), que deben ser optimizados para poder lograr que el modelo funcione como se espera; y por eso siempre se necesita un proceso de 'entrenamiento' con 'retroalimentación', según sea el 'Large Data Set' específico donde se aplica el algoritmo. Es decir, que durante su entrenamiento, el propio modelo va ajustando los parámetros de los algoritmos para así aprender de sus propios resultados y mejorar su rendimiento futuro.
Otra cuestión a tener en cuenta es que el proceso de aprendizaje automático es intensivo en energía y extremadamente costoso; por lo cual se necesitan "data centers" especializados, es decir, instalaciones especializadas diseñadas para manejar la inmensa potencia de computación necesaria para cargas de trabajo de inteligencia artificial como el aprendizaje automático y el aprendizaje profundo (Hyperscalers, en inglés). Por esa razón, el método que la industria de IA utiliza para desarrollar los LLM y maximizar las ganancias, es el de entrenar los modelos en conjuntos de datos más pequeños antes de escalarlos a escenarios del mundo real con volúmenes de datos mucho más grandes. Además, por razones de seguridad, muchas veces se utilizan "datos sintéticos" para entrenar los modelos.
La otra técnica que se utiliza es la llamada Model Distillation (Destilación de Modelos, en español). La "Model Distillation" es una técnica de entrenamiento donde un modelo de IA grande y complejo (el "profesor") transfiere su conocimiento a un modelo más pequeño y eficiente (el "alumno"). Esto permite que el modelo más pequeño funcione casi tan bien como el original, pero mucho más rápido y con un costo computacional significativamente menor.
Todo esto implica que la IA tiene que ser capaz de procesar grandes volúmenes de datos en paralelo; lo cual require un gigantesco poder de cómputo, gracias a los "data centers" con redes de computadoras que tienen cientos o miles de poderosos procesadores (GPU con cientos de "cores") producidos por NVIDIA, etc.
De hecho, los constructores de estos nuevos data centers ("Hyperscalers") ya están solicitando permisos (y recibiendo aprobaciones) para la fabricación de sus propias redes eléctricas con pequeños reactores nucleares modulares ("Small Modular Nuclear Reactors" o SMR) que puedan proveer la energía necesaria, del orden de los gigawatt, que se requiere para la infraestructura de esos nuevos data centers. La otra idea que se está explorando es hacer que la infraestructura de la IA sea "geográficamente flexible", es decir, colocar pequeños centros de datos junto a subestaciones eléctricas y mover la carga de computación entre ellos según la capacidad disponible.
Artificial Neural Network (ANN): Red Neruronal Artificial
La decisión sobre cuál es el mejor algoritmo para una tarea específica depende de varios factores que van desde el tamaño del Data Set, hasta el esfuerzo necesario para su entrenamiento, pasando por la posibilidad de tener (o no) una convergencia garantizada de los valores de los parámetros hacia un óptimo global; es decir, hacia un mínimo del "loss function" (función de pérdida). Por ejemplo, los algoritmos SVM se destacan por lograr márgenes óptimos con un menor número de puntos de datos (y con menos entrenamiento); comparado con las ANN o NN (Neural Network) -- el hecho que la NN es 'artificial' se sobreentiende. Sin embargo, las NN generalmente superan a las SVM en conjuntos de datos grandes, complejos y no estructurados.
![]() |
| Artificial Neural Network (ANN) |
En la imagen anterior, cada nodo circular azul/verde en las 'capas de procesamiento ocultas' (Hidden) y en la capa de salida (Output) representa una neurona artificial, y cada nodo circular rojo en la capa más a la izquierda (Input) representa un valor de datos de entrada. Una flecha representa una conexión desde la salida de una neurona (o nodo de datos) hasta la entrada de otra. Típicamente, en los LLM, las ANN tienen varias 'capas de procesamiento ocultas'. El número de capas de procesamiento ocultas determina cuán 'profundas' son estas redes; y de ahí viene el término "deep learning" o DL en inglés (aprendizaje profundo).
Durante el entrenamiento de una Artificial Neural Network, para cada prueba que se realiza, se calcula un resultado de la 'predicción' de la ANN como una 'combinación lineal' (suma ponderada) del aporte de cada 'neurona' en función del valor de la entrada (que numéricamente se puede representar como una magnitud vectorial); como en el caso de predecir (reconocer) si una imagen es un "gato" o un "perro". Entonces, a las neuronas que más aportan cuando el resultado es correcto se les aumenta el "weight" ('peso') para las siguientes pruebas, mientras que a las que conducen a error se les quita 'peso'. Incluso, debido a que en la vida real las relaciones entre salidas y entradas no siempre son 'lineales' o 'proporcionales', se puede añadir un "bias" ('sesgo') que determina el valor umbral a partir del cual una neurona se dispara; que también podría ser un número aleatorio, o tener el valor cero, o una función adicional llamada "activation function" que en la ecuaciones se suele representar por la letra griega "φ()".
La analogía que se utiliza es la de un estudiante tomando un examen. La 'neurona' es como un estudiante, las 'entradas' son los materiales de estudio y la 'salida' es la calificación del examen. Entonces, el 'peso' sería cuánto tiempo dedica el estudiante a una materia específica (importancia); mientras que el 'sesgo' sería la inteligencia inherente del estudiante o la simplicidad del examen, que desplaza la calificación final independientemente del tiempo de estudio.
Matemáticamente, si "f" es la función de la neurona que depende del valor de la entrada, entonces la salida será (w*f + b), donde "w" es el "weight" y "b" es el "bias"; y ese valor de salida es el que se pasa como entrada para el siguiente grupo de neuronas en la red (que están conectadas a las 'dendritas' de la neurona inicial) hasta que se llega a un resultado final.
![]() |
| Neurona Artificial en Código Python |
Large Language Model (LLM): Los Mecanismos de Attention y Transformers
Además hay que mencionar que, en el caso de los Large Language Models (LLM) y la arquitectura de "Transformers", existe un mecanisno llamado "Attention" (Atención) que permite a las redes neuronales asignar dinámicamente diferentes niveles de importancia ("weights") a distintas partes de los datos de entrada (ya sean palabras en una oración o píxeles en una imagen). Y en lugar de tratar toda la entrada por igual, este mecanismo de "Attention" imita el enfoque cognitivo humano al permitir que el modelo se concentre en la información más relevante para una tarea determinada, mejorando la comprensión del contexto, el rendimiento y la eficiencia.
La siguiente imagen muestra algunos elementos importantes de la arquitectura del software de los LLM, incuyendo el proceso de "tokenization" de las palabras y las frases de entrada (a veces los tokens incluso pueden ser partes de una palabra), la creación de los "embeddings" vectoriales, los mecanismos de "attention", los bloques de "transformers", la búsqueda de relaciones de "contexto", hasta la "generación" de los tokens y los "text chunks" de salida.
Mientras que la imagen a continuación muestra gráficamente cómo funcionan los mecanismos de Attention (Self-Attention, en esta caso) aplicadas a un prompt:
Además, los Transformers son capaces de hacer procesamiento en paralelo de las palabras y frases en un prompt para reducir el tiempo de 'pensamiento' de la IA a un nivel de 'tiempo real', a diferencia de las viejas Recurrent Neural Networks (RNN) que solo hacían procesamiento en serie, palabra por palabra, como se muestra aquí:
La otra técnica que se utiliza para acelerar el procesamiento de los Transformers es el "KV Cache Optimization". El "caché" de Key-Value (KV) es una optimización de memoria en los LLM que acelera la generación de texto. Al almacenar las claves (K) y los valores (V) resultado del mecanismo de Atención de los tokens generados previamente, el modelo evita tener que volver a calcularlos desde cero para cada nueva palabra.
Entonces, según los investigadores, el éxito de los LLM se debe a que las redes neuronales que implementan los Transformers primero tratan las oraciones como acertijos que tratan de resolver por el orden de las palabras, pero una vez que leen lo suficiente y aprenden a prestarle más Atención a ciertos Tokens en un prompt, hay un punto de inflexión que los hace sumergirse en el "significado" de las palabras, como una abrupta "transición de fase" que recuerda al agua que se convierte en vapor. Al revelar este interruptor oculto, los investigadores abren una ventana a cómo los modelos de Transformadores como ChatGPT se vuelven más inteligentes.
Vector DB: Base de Datos Vectorial
También existe una tecnología relacionada muy importante llamada "vector database" o "Vector DB" (base de datos vectorial) que la IA utiliza para almacenar y buscar puntos de datos. Una base de datos vectorial (Vector DB) es un sistema diseñado para almacenar, gestionar y buscar "high-dimensional vector embeddings" (incrustaciones vectoriales de alta dimensión), o "numerical representations of unstructured data" (representaciones numéricas de datos no estructurados) como también le llaman. En el marco de los lenguajes y los LLM, los "embeddings de palabras" son representaciones numéricas que vinculan cada palabra del vocabulario con un punto específico en un espacio semántico de alta dimensión. En este espacio, las palabras que tienen significados similares se representan como puntos cercanos. Lo cual, por ejemplo, sirve para encontrar el "contexto" de las palabras en un LLM, o de los pixels en una imagen, etc.
A diferencia de las bases de datos tradicionales que funcionan con datos estructurados y búsquedas exactas, la Vector DB puede realizar búsquedas por similitud (por ejemplo, buscar el vecino más cercano de un punto de dato) para encontrar datos conceptualmente relacionados, en lugar de coincidencias exactas de una palabra clave. Las bases de datos vectoriales son esenciales para la "Retrieval-Augmented Generation (RAG)" (Generación Aumentada por Recuperación) en IA, ofreciendo recuperación de información semántica con baja latencia y en forma escalable.
He aquí un ejemplo en lenguaje SQL para hacer un Search en una Vector DB utilizando la función VECTOR_DISTANCE que implementa el algoritmo KNN (K-Nearest Neighbor) para encontrar el vecino más cercano de un ":query_vector" dado como parámetro; dentro de un "embedding". Nótese que el tercer parámetro de la función es COSINE; lo cual se refiere al "Cosine Similarity" que mide cuán cercanos están dos vectores calculando el coseno del ángulo entre ellos:
SELECT doc_id, product_name, text_chunk,
VECTOR_DISTANCE (embedding, :query_vector, COSINE) AS distance
FROM product_documentation
ORDER BY distance
FETCH APPROXIMATE FIRST 5 ROWS ONLY;
Regresar al Indice






No hay comentarios.:
Publicar un comentario