Esta lección se tradujo automáticamente al español y aún no ha sido revisada por una persona. Si algo suena raro, la versión en inglés es la definitiva.
Todo sistema de IA necesita almacenar y recuperar datos rápidamente. Ya sea una lista de valores de píxeles en una imagen, un vocabulario de 50.000 palabras o millones de preferencias de usuario, la elección de la estructura de datos determina qué tan rápido puede pensar su IA.
Dominan dos estructuras: matrices y mapas hash. Si los domina, tendrá la base para casi todos los procesos de IA.
Una matriz es simplemente una lista numerada de elementos almacenados uno al lado del otro en la memoria. Cada elemento tiene un índice: su posición en la lista, comenzando desde cero.
index: 0 1 2 3 4
value: ["cat", "dog", "bird", "fish", "frog"]
Debido a que los elementos se encuentran uno al lado del otro, puedes saltar directamente a cualquier posición. ¿Quieres el artículo 3? Listo: no es necesario realizar ninguna búsqueda. Ese es el acceso O(1), lo que significa que lleva el mismo tiempo si la matriz contiene 10 elementos o 10 millones.
Insertar o quitar elementos en el medio es costoso. Cada elemento después del cambio debe mezclarse. Eso es O(n): cuantos más elementos, más tiempo lleva.
Si tuviera una lista de reproducción de 10,000 canciones y quisiera insertar una nueva pista en la posición 5, cada canción desde la posición 5 en adelante tendría que cambiar. ¿Cómo podría un servicio de streaming manejar esto sin disminuir la velocidad?
Un mapa hash (también llamado diccionario o tabla hash) almacena datos como . En lugar de acceder a los elementos por número de índice, se accede a ellos mediante una clave significativa.
Inicia sesión para unirte al debate
word_counts = {
"hello": 42,
"world": 37,
"AI": 156
}
¿Necesita el recuento de "IA"? El mapa hash utiliza una función hash para convertir la clave en un índice detrás de escena. ¿El resultado? O(1) tiempo de búsqueda promedio, igual que las matrices, pero usando nombres en lugar de números.
Los diccionarios de Python son mapas hash. Cuando ChatGPT cuenta la frecuencia de las palabras durante el entrenamiento, utiliza estructuras similares a mapas hash para rastrear miles de millones de apariciones de palabras en todo el texto de Internet.
| Operación | Matriz | Mapa hash | |-----------|-------|----------| | Acceso por índice | O(1) ⚡ | N/A | | Acceso por clave | O(n) 🐢 | O(1) ⚡ | | Insertar al final | O(1) ⚡ | O(1) ⚡ | | Insertar en el medio | O(n) 🐢 | N/A | | Buscar valor | O(n) 🐢 | O(1) ⚡ |
Piense en O(1) como "instantáneo, sin importar el tamaño" y en O(n) como "más lento cuanto más grandes sean los datos".
Tienes 100.000 perfiles de usuario y necesitas encontrar un usuario por su nombre de usuario. ¿Qué estructura es más rápida?
Uno de los patrones más útiles tanto en las entrevistas como en la IA es contar los sucesos. Aquí está la idea en pseudocódigo:
counts = {}
for each word in text:
if word in counts:
counts[word] = counts[word] + 1
else:
counts[word] = 1
Este único paso por el texto le proporciona la frecuencia de cada palabra. Los modelos de lenguaje utilizan exactamente este enfoque (a gran escala) para comprender qué palabras son más importantes.
Dada una serie de números y un objetivo, encuentre dos números que sumen el objetivo. El enfoque ingenuo comprueba cada par: O(n²). El enfoque inteligente utiliza un mapa hash:
seen = {}
for each number in array:
complement = target - number
if complement in seen:
return [seen[complement], current_index]
seen[number] = current_index
Una pasada, O(n) vez. El mapa hash recuerda lo que ya has visto.
¿Por qué el enfoque del mapa hash para dos sumas es más rápido que verificar cada par?
Un motor de recomendación debe comprobar si un usuario ya ha visto una película antes de sugerirla. ¿Almacenaría el historial de visualización del usuario en una matriz o en un mapa hash? ¿Qué compensaciones le vienen a la mente?
Un modelo de IA almacena incrustaciones de palabras como matrices de 300 números cada una. ¿Por qué las matrices son una buena opción en este caso?
Ya conoces las dos herramientas básicas del manejo de datos en IA. A continuación, en Cadenas y procesamiento de texto, veremos cómo la IA convierte texto en bruto en algo que un modelo puede leer de verdad: el primer paso detrás de cada chatbot y cada buscador que usas.