Phase 00 - Lesson 21

Variables y Algebra

This lesson includes a graded coding exercise that runs in your browser, unlocked with lifetime access.

Una variable es una caja que guarda un numero que aun no conoces. El algebra es la regla para abrir la caja: deshaz cada operacion, igual en ambos lados.

Tipo: Aprender Lenguajes: Python Requisitos previos: Las Cuatro Operaciones y el Orden (00-13) Tiempo: ~40 minutos

Objetivos de Aprendizaje

  • Leer una letra como x como "el numero desconocido" y una ecuacion como una balanza
  • Resolver para x deshaciendo operaciones en orden inverso, haciendo lo mismo en ambos lados
  • Usar los pares inversos (+ deshace -, x deshace /) de las lecciones anteriores
  • Reordenar la formula de rendimiento del roofline para resolver cualquiera de sus partes

El Concepto

Una variable es solo un nombre para un numero que aun no has encontrado. Normalmente la escribimos como una letra, como x. Nada misterioso: x + 3 = 10 es la frase "algun numero, mas 3, es igual a 10". Tu trabajo es encontrar el numero.

Una ecuacion es una balanza

El signo = significa "el lado izquierdo pesa exactamente lo mismo que el lado derecho". Eso te da la unica regla de oro del algebra:

Lo que haces a un lado, debes hacerlo al otro. La balanza se mantiene nivelada.

Resolver = deshacer operaciones

Para dejar x solo, pela lo que este pegado a el, usando las operaciones inversas que ya construiste:

  • la suma se deshace con la resta (y al reves)
  • la multiplicacion se deshace con la division (y al reves)

Ejemplo resuelto, completo:

x + 3 = 10

x tiene un +3 pegado. Deshazlo restando 3 de AMBOS lados:

x + 3 - 3 = 10 - 3
x = 7

Verifica poniendo 7 de vuelta: 7 + 3 = 10. Correcto. Siempre verifica; es gratis.

Un segundo ejemplo con multiplicacion:

4 x = 20      (4 por x es 20)

x se multiplica por 4. Deshazlo dividiendo AMBOS lados por 4:

4x / 4 = 20 / 4
x = 5

Verifica: 4 x 5 = 20. Correcto.

Deshaz en orden inverso

Cuando varias cosas estan pegadas a x, deshazlas en el orden inverso del orden de las operaciones. Pela la capa externa primero.

2x + 1 = 9

El +1 es la capa externa, asi que deshazlo primero (resta 1 de ambos lados), luego deshaz el x2 (divide ambos lados por 2):

2x + 1 - 1 = 9 - 1   ->   2x = 8
2x / 2 = 8 / 2        ->   x = 4

Verifica: 2 x 4 + 1 = 9. Correcto.

Ejemplo resuelto: la formula del roofline

La velocidad de inferencia de NeuroGrid tiene un techo fijado por el ancho de banda de la memoria. Un roofline simplificado dice:

tokens_por_segundo = ancho_de_banda / (bytes_por_peso x num_pesos)

Eso esta bien si quieres la velocidad. Pero supon que conoces la velocidad objetivo y quieres encontrar el bytes_por_peso que puedes permitir. Resuelve para el. El denominador esta multiplicado en el fondo, asi que primero multiplica ambos lados por el denominador, luego divide:

tokens_por_segundo x (bytes_por_peso x num_pesos) = ancho_de_banda
bytes_por_peso x num_pesos = ancho_de_banda / tokens_por_segundo
bytes_por_peso = ancho_de_banda / (tokens_por_segundo x num_pesos)

La misma ecuacion, reordenada para responder una pregunta diferente. Por eso exactamente empujar bytes_por_peso por debajo de 2 (FP16) hacia 0.266 (ternario) aumenta tokens_por_segundo: un denominador menor significa un resultado mayor. El algebra es lo que te permite ver que perilla mueve que numero, y por cuanto.

Recuerdo activo

Produce la respuesta. Lo mas facil primero.

  1. Resuelve x + 5 = 12.
  2. Resuelve 3x = 21.
  3. Resuelve 2x + 4 = 14.

Respuestas: x = 7; x = 7; x = 5 (resta 4 para obtener 2x = 10, luego divide por 2).

Alerta de error comun

La trampa es cambiar solo un lado. Si restas 3 del lado izquierdo de x + 3 = 10 pero no del derecho, obtienes x = 10, lo cual es incorrecto (10 + 3 no es 10). La balanza debe mantenerse nivelada: toda operacion golpea AMBOS lados, siempre. Escribe la operacion debajo de ambos lados para nunca olvidar uno.

Construyelo

python phases/00-setup-and-tooling/21-variables-and-algebra/code/algebra.py

Por que esto importa para la IA

Cada formula en el aprendizaje automatico es una ecuacion con perillas que reordenas: la perdida como funcion de los pesos, el rendimiento como funcion del ancho de banda y el ancho de bit, la tasa de aprendizaje como funcion del paso. El entrenamiento es literalmente un algoritmo para resolver los pesos que hacen la perdida mas pequena. Poder aislar cualquier variable, y ver que un denominador menor da un resultado mayor, es el razonamiento diario de un ingeniero de IA.

0 lifetime access. Curriculum based on AI Engineering from Scratch by Rohit Ghumare (MIT, used under attribution).