SenseiTeoría desde cero0/21

2 · Números y estadística para producciónLección 1 de 7

Números grandes, unidades y estimaciones

Big numbers, units and estimates

Cómo escribir números enormes y diminutos sin perderte, por qué un disco de 1 TB dice 931 GB, por qué 100 megas de internet no bajan 100 MB por segundo y cómo se convierten «10 millones de fotos al día» en GPUs y dólares al mes.

⏱ 53 min lo esencial · 72 min todo12 conceptos nuevos3 calculadoras10 ejerciciosLas seis etapas
Secciones14
  1. 01Notación científica, órdenes de magnitud y tiempo
  2. 02Bits, bytes, KB y KiB
  3. 03Ancho de banda: Gb/s contra GB/s extra
  4. 04De eventos por día a requests por segundo
  5. 05Cuántas máquinas y cuánto cuestan
  6. 06Por ciento contra puntos porcentuales extra
  7. 07C01 en una servilleta: la estimación completa
  8. 08Estimar lo que no sabes extra
  9. 09Errores comunes
  10. 10En la vida real extra
  11. 11Ejercicios
  12. 12Lo que sigue
  13. 13Palabras que vas a oír
  14. 14Chequeo
La pregunta

Si me dicen «10 millones de fotos al día», ¿cómo sé cuántas máquinas necesito, cuántos bytes se van a mover y cuánto va a costar?

Antes de esta lección: El camino completo.
01

Notación científica, órdenes de magnitud y tiempo

Esencial

Scientific notation, orders of magnitude and time

En las lecciones anteriores ya aparecieron números así: la ResNet-50 de C01 tiene 24,532,532 parámetros, la foto entra como 150,528 números, el modelo hace unos 4,100,000,000 de multiplicaciones por foto y C01 recibe 10,000,000 de fotos al día. También hay números diminutos: copiar la foto a la GPU tarda 0.00004 segundos. Contar ceros es lento, y un cero de menos es un error de 10 veces.

Una cifra por una potencia de diez

La notación científica (scientific notation) escribe cada número como una cifra entre 1 y 10 multiplicada por una potencia de diez:

  • 10³ = 1,000 (un 1 con tres ceros), 10⁶ = 1,000,000 y 10⁹ = 1,000,000,000.
  • 86,400 = 8.64 × 10⁴: el punto decimal se movió 4 lugares a la izquierda.
  • 0.00004 = 4 × 10⁻⁵: el exponente negativo quiere decir que el punto se movió a la derecha. 10⁻⁵ es 1 ÷ 10⁵.

La cifra de adelante se llama mantisa, y el número chiquito arriba del 10, exponente. El exponente dice el tamaño; la mantisa, el detalle.

NúmeroEn notación científicaQué es
10,000,0001 × 10⁷fotos al día en C01
24,532,532≈ 2.45 × 10⁷parámetros de la ResNet-50 de C01
4,100,000,0004.1 × 10⁹multiplicaciones con su suma (MACs) por foto
86,4008.64 × 10⁴segundos en un día
0.22 × 10⁻¹la promesa de C01, en segundos
0.000044 × 10⁻⁵copiar la foto a la GPU, en segundos

La ventaja aparece al hacer cuentas. Para multiplicar, se multiplican las mantisas y se suman los exponentes; para dividir, se dividen las mantisas y se restan.

Dos cuentas de C01 con potencias de diezLa cuenta
Logs de un día10⁷ fotos, ≈ 300 bytes por cada una
1 × 10⁷ × 3 × 10² B
3 × 10⁹ B = 3 GB
Fotos por segundose dividen las mantisas y se restan los exponentes
1 × 10⁷ ÷ (8.64 × 10⁴ s) = (1 ÷ 8.64) × 10⁷⁻⁴
≈ 0.116 × 10³
Acomodadocon la mantisa entre 1 y 10
0.116 × 10³ = 1.16 × 10²
≈ 116 por segundo
Resultado
Los exponentes se suman o se restan de memoria; solo queda una cuenta chica con las mantisas.

Python y las hojas de cálculo escriben la notación científica con una e: 8.64e+04 quiere decir 8.64 × 10⁴ y 4e-05, 4 × 10⁻⁵. Para escribir números largos en el código, Python acepta guiones bajos como separadores de miles: 10_000_000.

python
dia = 24 * 60 * 60                  # segundos en un día
print(dia, f"{dia:.2e}")            # la e quiere decir «× 10 a la»
print(10_000_000 / dia)             # 10 millones de fotos al día, por segundo
print(f"{24_532_532:.2e}", f"{0.00004:.0e}")
print(1e7 * 300 / 1e9, "GB de logs al día")
Salida
86400 8.64e+04
115.74074074074075
2.45e+07 4e-05
3.0 GB de logs al día

Órdenes de magnitud

El orden de magnitud (order of magnitude) de un número es la potencia de diez más cercana: 86,400 es «del orden de 10⁵». Dos cosas que difieren en un orden de magnitud están a unas 10 veces una de otra; en tres órdenes, a unas mil veces.

Para redondear se mira la mantisa: si es menor que √10 ≈ 3.16, el orden es su potencia; si es mayor, la siguiente. Así, 2.45 × 10⁷ es del orden de 10⁷ y 8.64 × 10⁴, del orden de 10⁵. El corte va en 3.16 y no en 5 porque, en una escala que avanza multiplicando por 10, 3.16 queda justo a la mitad: 1 × 3.16 ≈ 3.16 y 3.16 × 3.16 ≈ 10.

Hay otra costumbre: llamar orden de magnitud solo al exponente, sin redondear. Con ella, 86,400 es del orden de 10⁴. Las dos se usan; en esta lección, la potencia más cercana.

¿Por qué importa? Porque en un diseño las decisiones cambian por órdenes de magnitud. La Ronda lo dice así: si te equivocas por 2 veces y la decisión no cambia, no importa; si te equivocas por 10, pasas de «un par de máquinas» a «un cluster». Una estimación de servilleta no busca decimales: busca atinarle al orden de magnitud.

Los prefijos: kilo, mega, giga

Para no escribir la potencia cada vez, el Sistema Internacional de unidades (SI) le pone nombre a cada salto de mil:

PrefijoSímboloValeEjemplo
kilok10³1 km = 1,000 m
megaM10⁶una foto de 12 MP tiene 12 millones de píxeles
gigaG10⁹4.1 GMACs por foto
teraT10¹²una T4 hace ≈ 65 TFLOPS en float16
petaP10¹⁵un mes del audio sin comprimir de C13: ≈ 1.7 PB
milim10⁻³la promesa de 200 ms
microµ10⁻⁶copiar la foto: 40 µs
nanon10⁻⁹leer la RAM: 100 ns

(El SI escribe el kilo con k minúscula; en computación casi siempre vas a ver KB, y así lo escribe la Ronda.) En ML vas a ver además letras sueltas: «25.6 M parámetros» (la ResNet-50 original, la de 1,000 categorías) son 25.6 millones, «5k fotos» son 5 mil y un LLM «de 8B» tiene 8 billion: 8 mil millones.

El tiempo: de nanosegundos a días

El tiempo se mide en segundos, y casi todo lo interesante de una computadora pasa en pedacitos de segundo. Los tres que vas a usar siempre:

  • Milisegundo (milisegundo (ms)): una milésima de segundo, 10⁻³ s. Es la unidad de la red y de los modelos: la promesa de C01 es que el p99 quede bajo 200 ms, es decir, que 99 de cada 100 requests tarden 200 ms o menos.
  • Microsegundo (µs): una millonésima, 10⁻⁶ s. La µ es la letra griega «mu»; cuando no se puede escribir, se pone us. Es la escala de copiar datos y de leer un disco rápido.
  • Nanosegundo (ns): una milmillonésima, 10⁻⁹ s. Es la escala de lo que pasa dentro del chip.

Cada uno es mil veces el siguiente: 1 s = 1,000 ms = 1,000,000 µs = 10⁹ ns. Para convertir, cuenta cuántos saltos de mil das: 200 ms = 0.2 s; 40 µs = 0.04 ms; 100 ns = 0.1 µs.

Una regla de tiempo en potencias de diez, de 1 nanosegundo arriba a 1 día abajo; cada marca vale 10 veces la anterior: 1 ns, 10 ns, 100 ns, 1 microsegundo, y así hasta 10 a la 5 segundos. Junto a la regla, lo que pasa a cada escala: leer la caché del CPU tarda cerca de 1 ns, el tiempo en que la luz avanza 30 cm; leer la RAM, cerca de 100 ns; copiar la foto de C01 a la GPU, cerca de 40 microsegundos; ir y volver por la red dentro del centro de datos, de 0.1 a 0.5 ms; la ResNet-50 calcula en la GPU en 3 a 6 ms; un cuadro de video a 30 fps dura 33 ms; la promesa de C01 es de 200 ms y el marketplace espera hasta 300 ms; 1 minuto son 60 s, 1 hora 3,600 s, el reentrenamiento mensual de C01 tarda de 3 a 4 horas y 1 día son 86,400 s, casi 10 a la 5. DE 1 NANOSEGUNDO A 1 DÍA cada marca vale 10 veces la de arriba 1 ns 10 ns 100 ns 1 µs 10 µs 100 µs 1 ms 10 ms 100 ms 1 s 10 s 100 s 10³ s 10⁴ s 10⁵ s ≈ 1 ns: leer la caché del CPU en 1 ns la luz avanza ≈ 30 cm ≈ 100 ns: leer la memoria RAM ≈ 40 µs: copiar la foto a la GPU 0.1–0.5 ms: ida y vuelta en la red dentro del centro de datos 3–6 ms: la ResNet-50 en la GPU 33 ms: un cuadro de video a 30 fps 200–300 ms: la promesa de C01 y lo que espera el marketplace 1 min = 60 s 1 h = 3,600 s 3–4 h: el reentrenamiento de C01 1 día = 86,400 s ≈ 10⁵ s una request de C01 el camino offline
El tiempo en una regla de potencias de diez, del nanosegundo al día. Entre leer la RAM y la promesa de 200 ms hay más de seis marcas: más de un millón de veces.

La regla muestra lo que los números sueltos esconden: cosas que «son rápidas» pueden estar a miles de veces una de otra. Leer la RAM, la memoria de trabajo de la computadora (≈ 100 ns), contra la promesa de C01 (200 ms) es 0.2 ÷ 10⁻⁷ = 2 × 10⁶: dos millones de veces. Por eso, cuando un servicio tarda, rara vez es por una suma de más en el código: suele ser la espera por la red, el disco o la GPU, que viven varias marcas más abajo.

Los números del reloj

Para los números grandes de tiempo, la Ronda usa siempre los mismos:

Los números del reloj que vas a usar siempreLa cuenta
Un día
24 × 60 × 60
86,400 s
El atajo para la cabezael día real es 13.6 % más corto
86,400 ÷ 100,000
0.864
Un mes, para costosun año repartido en 12: ≈ 30.4 días
365 × 24 ÷ 12
730 h
Un mes, para disponibilidad30 días exactos
30 × 24 × 60
43,200 min
Un año31,536,000 s
365 × 86,400
≈ 3.15 × 10⁷ s
Resultado
Un día ≈ 10⁵ s, un mes ≈ 2.6 × 10⁶ s y un año ≈ π × 10⁷ s: con tres números redondos sale casi cualquier cuenta de tiempo.

¿Por qué dos meses? Las nubes dan el precio de sus máquinas por hora, y un mes promedio del año tiene 8,760 ÷ 12 = 730 horas: costo al mes = precio por hora × 730. Las promesas de disponibilidad (qué parte del tiempo funciona bien el servicio), en cambio, suelen contarse en ventanas de 30 días, 43,200 minutos, para que todas las ventanas valgan igual; así las cuenta la Ronda. Entre 730 h y 720 h hay 1.4 %: no cambia ninguna decisión, pero en una misma cuenta se usa uno solo.

02

Bits, bytes, KB y KiB

Esencial

Bits, bytes, KB and KiB

Un bit y un byte

Una computadora guarda todo como interruptores prendidos o apagados (en la práctica son cargas eléctricas o puntos magnetizados, pero cada uno vale solo 0 o 1). Cada uno es un bit (binary digit): un 0 o un 1. Con un bit hay 2 posibilidades; con dos, 4 (00, 01, 10 y 11); con n bits, 2ⁿ. Ocho bits forman un byte, y en ellos caben 2⁸ = 256 valores: del 0 al 255.

¿Te suena «del 0 al 255»? Es justo lo que guarda un canal de un píxel en uint8: un byte. Un número en float32 ocupa 4 bytes, 32 bits. Cómo se escriben los números con ceros y unos (el sistema binario) lo verás en «Cómo guarda números una computadora»; aquí basta con contar.

La foto de Ana, en bytes y en bitsLa cuenta
Números de la foto
3 × 224 × 224
150,528
En uint81 byte por número
150,528 × 1 B
150,528 B ≈ 150 KB
En float324 bytes por número
150,528 × 4 B
602,112 B ≈ 602 KB
En bits
602,112 × 8
4,816,896 bits ≈ 4.8 Mb
Resultado
El mismo tensor son 602 KB o 4.8 Mb: un factor de 8 que depende de una sola letra.

b minúscula es bit y B mayúscula es byte. 1 Mb (megabit) es 8 veces más chico que 1 MB (megabyte). Y aquí vive la trampa más común de todas: las velocidades de red se anuncian en bits por segundo, y los archivos se miden en bytes.

  • Un plan de internet de «100 megas» es de 100 Mb/s: 100 ÷ 8 = 12.5 MB por segundo. Un archivo de 1 GB tarda ≈ 80 s, no 10.
  • 1 Gb/s (un gigabit por segundo) son 125 MB/s, y 1 GB/s son 8 Gb/s.

Lo que un canal puede mover por segundo es su ancho de banda; tiene su propia sección más abajo.

Del byte al petabyte

Con los bytes pasa lo mismo que con el tiempo: lo que maneja un sistema de ML ocupa 15 órdenes de magnitud.

Una regla de tamaños en potencias de diez, de 1 byte arriba a 1 petabyte abajo; cada marca vale 10 veces la anterior y cada prefijo nuevo, kilo, mega, giga, tera y peta, vale mil veces el anterior. Junto a la regla: 1 byte es un canal de un píxel en uint8; 4 bytes, un número en float32; unos 300 bytes, el log de una predicción; unos 3 KB, un embedding de 768 números; unos 200 KB, la foto JPEG de Ana, y 602 KB la misma foto como tensor; unos 98 MB, la ResNet-50 de C01; 3 GB, los logs de un día de C01; 16 GB, la memoria de una GPU T4; unos 205 GB, el índice de búsqueda de C07; 1.1 TB, un año de logs de C01; unos 180 TB, un mes de tensores viajando por la red de C01; y unos 1.7 PB, un mes de audio en C13. DE 1 BYTE A 1 PETABYTE cada marca, × 10 · cada prefijo nuevo, × 1,000 1 B 10 B 100 B 1 KB 10 KB 100 KB 1 MB 10 MB 100 MB 1 GB 10 GB 100 GB 1 TB 10 TB 100 TB 1 PB 1 B: un canal de un píxel (uint8) 4 B: un número en float32 ≈ 300 B: el log de una predicción ≈ 3 KB: un embedding de 768 números ≈ 200 KB: la foto JPEG de Ana 602 KB: la misma foto como tensor ≈ 98 MB: la ResNet-50 de C01 3 GB: los logs de un día de C01 16 GB: la VRAM de una T4 ≈ 205 GB: el índice de C07 1.1 TB: un año de logs de C01 ≈ 180 TB: un mes de tensores de C01 ≈ 1.7 PB: un mes de audio de C13
Lo que ocupa cada cosa, del byte al petabyte. En verde, las piezas más chicas; en azul, la foto de Ana y su viaje; en ámbar, lo que C01 guarda; en naranja, el modelo y la GPU; en violeta, otros casos de la Ronda.

Del log de una predicción (≈ 300 B) a un año de logs de C01 (1.1 TB) hay casi diez marcas: ≈ 3.65 × 10⁹ veces, que son justo las predicciones de un año. Un atajo de la Ronda para estas cuentas: 1 millón de cosas de 1 KB son 1 GB, porque 10⁶ × 10³ = 10⁹. Con él, 10 M logs de 300 B son 10 × 0.3 = 3 GB sin hacer la cuenta larga.

KB contra KiB: los dos kilos

Con la memoria pasó algo raro. Las computadoras cuentan en potencias de 2, y 2¹⁰ = 1,024 se parece mucho a mil. Así que, durante décadas, «un kilobyte» quiso decir 1,000 bytes o 1,024 según quién hablara. Con los kilos la diferencia era de 2.4 %; con los gigas y los teras ya no es poca cosa.

En diciembre de 1998, la Comisión Electrotécnica Internacional (IEC), que fija estándares eléctricos y electrónicos, separó los nombres. Los prefijos binarios llevan una i: kibi (KiB), mebi (MiB), gibi (GiB), tebi (TiB) y pebi (PiB).

Decimal (SI)BytesBinario (IEC)BytesEl binario es más grande por
1 KB1,0001 KiB2¹⁰ = 1,0242.4 %
1 MB10⁶1 MiB2²⁰ = 1,048,5764.9 %
1 GB10⁹1 GiB2³⁰ = 1,073,741,8247.4 %
1 TB10¹²1 TiB2⁴⁰ = 1,099,511,627,77610.0 %
1 PB10¹⁵1 PiB2⁵⁰ ≈ 1.126 × 10¹⁵12.6 %
Tres partes. Arriba, un byte como 8 casillas con los bits 1 0 1 1 0 1 1 0; debajo de cada casilla, lo que vale: 128, 64, 32, 16, 8, 4, 2 y 1. Sumando las casillas encendidas, 128 más 32 más 16 más 4 más 2, el byte guarda el número 182; con 8 bits caben 256 valores, de 0 a 255. En medio, los prefijos decimales contra los binarios: kilo, 10 a la 3 contra 2 a la 10, el binario es 2.4 % más grande; mega, 4.9 %; giga, 7.4 %; tera, 10 %; peta, 12.6 %. Abajo, el mismo disco de 1 TB medido con dos reglas del mismo largo: en GB llega a 1,000; en GiB, cuyas marcas están un poco más separadas, llega solo a 931. Son los mismos 10 a la 12 bytes; cada GiB es 7.4 % más grande. UN BYTE = 8 BITS 1 128 0 64 1 32 1 16 0 8 1 4 1 2 0 1 128 + 32 + 16 + 4 + 2 = 182 8 bits: 2⁸ = 256 valores posibles, de 0 a 255 DECIMAL CONTRA BINARIO DECIMALBINARIODIFERENCIA kilo KB = 10³KiB = 2¹⁰ +2.4 % mega MB = 10⁶MiB = 2²⁰ +4.9 % giga GB = 10⁹GiB = 2³⁰ +7.4 % tera TB = 10¹²TiB = 2⁴⁰ +10.0 % peta PB = 10¹⁵PiB = 2⁵⁰ +12.6 % EL MISMO DISCO DE 1 TB, DOS REGLAS En GB: de 10⁹ en 10⁹ bytes 0 200 400 600 800 1,000 En GiB: de 2³⁰ en 2³⁰ bytes 0 200 400 600 800 931 Mismos 10¹² bytes: cada GiB es 7.4 % más grande.
Las tres ideas de esta sección. Arriba, un byte por dentro: cada casilla vale el doble que la de su derecha, y el número es la suma de las prendidas. En medio, cuánto más grande es cada prefijo binario que el decimal. Abajo, el mismo disco de 1 TB medido con las dos reglas.

¿Quién usa cuál?

  • Decimal: los fabricantes de discos, las velocidades de red y macOS (desde 2009).
  • Binario: la RAM (un módulo «de 16 GB» trae 16 GiB), AWS al describir la memoria de sus máquinas (una g4dn.xlarge, la máquina con una T4 que usa C01, trae 16 GiB), Windows (que escribe «GB» pero divide entre 2³⁰), df -h en Linux, nvidia-smi y PyTorch.
Un disco de 1 TB, visto por WindowsLa cuenta
Lo que vende el fabricante
1 TB = 10¹² bytes
1,000,000,000,000 B
Lo que muestra Windowsdivide entre un GiB, aunque escriba «GB»
10¹² ÷ 2³⁰
≈ 931.3
En TiB
10¹² ÷ 2⁴⁰
≈ 0.909
Resultado
El disco trae los bytes que prometió; cambió la regla con la que se miden. Nadie se quedó con 69 GB.
Unidades de datosCalculadora

Escribe un tamaño, elige el prefijo, si es decimal o binario y si son bytes o bits. Abajo sale lo mismo en las otras unidades. Empieza con un disco de 1 TB.

Bytes, exactos1,000,000,000,000
Bitsbytes × 88.00 × 10^12
MB (10⁶ bytes)1,000,000
MiB (2²⁰ bytes)953,674
GB (10⁹ bytes)1,000
GiB (2³⁰ bytes)lo que Windows llama «GB»931
TB (10¹² bytes)1.00
TiB (2⁴⁰ bytes)0.91
Cuánto más grande es el binario de ese prefijo1,024ᵖ ÷ 1,000ᵖ − 110.0 %
Segundos para mandarlo por una red de 1 Gb/sen el mejor caso; ÷ 3,600 para horas8,000

Cambia a binario con el mismo 1 tera: son 1,099,511,627,776 bytes, 10 % más. Cambia a bits: 1 terabit son 125 GB. La b chiquita divide entre 8.

Prueba 64 con prefijo giga: la memoria USB «de 64 GB» que Windows muestra como ≈ 59.6. Después escribe 15,360 con prefijo mega y binario: los MiB que nvidia-smi reporta para una T4 (de sus 16 GiB, una parte se reserva para corregir errores). Son ≈ 16.1 GB.

El mismo trabajo, en Python. Fíjate en que 2**30 y 10**9 son exactos: así no hay redondeos escondidos.

python
# Las dos maneras de contar bytes, y los bits
KB, MB, GB, TB = 10**3, 10**6, 10**9, 10**12      # decimales (SI)
KiB, MiB, GiB, TiB = 2**10, 2**20, 2**30, 2**40   # binarios (IEC)

disco = 1 * TB
print(f"1 TB = {disco:,} bytes = {disco / GiB:.1f} GiB = {disco / TiB:.3f} TiB")

tensor = 3 * 224 * 224 * 4          # la foto de C01 en float32
print(f"tensor: {tensor:,} B = {tensor / KB:.0f} KB = {tensor / KiB:.0f} KiB")
print(f"        {tensor * 8:,} bits")

for nombre, dec, bina in [("kilo", KB, KiB), ("mega", MB, MiB),
                          ("giga", GB, GiB), ("tera", TB, TiB)]:
    print(f"{nombre}: el binario es {100 * (bina / dec - 1):.1f} % más grande")
Salida
1 TB = 1,000,000,000,000 bytes = 931.3 GiB = 0.909 TiB
tensor: 602,112 B = 602 KB = 588 KiB
        4,816,896 bits
kilo: el binario es 2.4 % más grande
mega: el binario es 4.9 % más grande
giga: el binario es 7.4 % más grande
tera: el binario es 10.0 % más grande
03

Ancho de banda: Gb/s contra GB/s

Extra

Bandwidth: Gb/s vs GB/s

El ancho de banda (bandwidth) es cuántos datos puede mover un canal por segundo: una red, un disco, el cable entre el CPU y la GPU, la memoria. Tiene dos costumbres de unidades:

  • La red se mide en bits por segundo: Mb/s y Gb/s, con prefijos decimales. 1 Gb/s = 10⁹ bits por segundo.
  • La memoria, los discos y el bus de la GPU, en bytes por segundo: GB/s.

Entre las dos hay un 8. Lo primero en cualquier cuenta es pasar todo a la misma unidad.

Cuánto tarda en llegar algo grande

El tiempo de mandar algo es su tamaño entre el ancho de banda, con las unidades parejas.

Cada canal vive en otro orden de magnitud. En la tabla hay dos máquinas de AWS: la c6i.xlarge, sin GPU, es la del gateway de C01, y la g4dn.xlarge trae la T4. «Sostenida» es lo que aguantan todo el tiempo; el «hasta» del catálogo es varias veces más, pero solo dura un rato (de 5 a 60 minutos, según la Ronda). El tensor de 602 KB de C01, por cada canal:

CanalAncho de bandaMover 602 KB
La subida de un celular (un ejemplo)10 Mb/s≈ 0.48 s
La red de una c6i.xlarge, sostenida≈ 1.56 Gb/s≈ 3.1 ms
La red de una g4dn.xlarge, sostenida≈ 5 Gb/s≈ 1 ms
PCIe de la T4≈ 16 GB/s≈ 40 µs
La VRAM de una T4320 GB/s≈ 1.9 µs
La VRAM de una H1003.35 TB/s≈ 0.18 µs

Del celular a la memoria de una H100 hay más de seis órdenes de magnitud. Los números de las máquinas son los que usa la Ronda (de las tablas de AWS y de NVIDIA); la memoria de la GPU tiene su propia historia en «Matrices, FLOPs y qué tan rápido calcula una GPU» (ancho de banda de memoria).

Ancho de banda no es latencia

La latencia tiene además un piso físico. En 1 ns la luz avanza unos 30 cm, y dentro de una fibra óptica, unos 20: 100 km de fibra son ≈ 0.5 ms de ida y otro tanto de vuelta. La Ronda usa la regla de ≥ 1 ms de ida y vuelta por cada 100 km. Más ancho de banda no la baja; solo acercarse.

La red de C01

En la entrevista, la cuenta de la red no va en los primeros cinco minutos: la Ronda la deja para cuando el entrevistador pide profundizar. Pero es la que distingue a quien la hace.

Lo que viaja del gateway a las GPUs en C01La cuenta
Tensor por foto150,528 números en float32
150,528 × 4 B
602,112 B ≈ 602 KB
En el pico de diseño
602 KB × 500 por segundo
≈ 301 MB/s
En bits por segundo
301 MB/s × 8
≈ 2.4 Gb/s
Por nodo del gatewayla Ronda pone dos
2.4 ÷ 2
≈ 1.2 Gb/s
Contra lo que sostiene una c6i.xlarge
1.2 ÷ 1.56
≈ 77 %
Mandando uint8 en vez de float321 byte por número: 4 veces menos
2.4 ÷ 4
≈ 0.6 Gb/s
Resultado
En el gateway, la red se aprieta antes que la CPU, que en cada nodo va al ≈ 40 %. Mandar la foto en uint8 y normalizar ya dentro del modelo divide el tráfico entre 4.

Los bytes también cuestan dinero. En un mes viajan 602 KB × 10 M × 30 ≈ 180 TB de tensores. En AWS, pasar datos de una zona a otra cuesta ≈ US$0.01 por GB en cada sentido; si la mitad de ese tráfico cruzara de zona, serían ≈ 90 TB × US$0.02 ≈ US$1,800 al mes, más que las dos GPUs. Por eso la Ronda manda cada request a la GPU de su misma zona.

El viaje de la foto de Ana, en unidades · Toca cada caja para ver sus números y usa «Recorrer» para seguir la foto. Cada tramo tiene su unidad: KB y Mb/s afuera, Gb/s en la red interna, GB/s y µs hacia la GPU, ms en el cálculo.
  • Celular de Ana · JPEG ≈ 200 KB
    La app achica la foto a 1024 píxeles de lado largo antes de subirla: ≈ 200 KB, que son 1.6 megabits (× 8). Con una subida de 10 Mb/s, por ejemplo, tarda ≈ 0.16 s. Ese tramo no entra en la promesa de 200 ms: es la red de Ana y nadie del servidor la controla.
  • Gateway · CPU: decodifica, ≈ 6 ms
    Abre el JPEG, lo achica y lo normaliza: ≈ 6 ms de CPU en promedio (estimación de la Ronda). Sale un tensor de 150,528 números en float32: 602,112 bytes ≈ 602 KB, tres veces lo que pesaba el JPEG.
  • Triton · RAM del servidor de GPU
    El servidor del modelo recibe el tensor por la red interna. Una foto sola tarda pocos milisegundos en ese tramo, pero 500 por segundo son 301 MB/s ≈ 2.4 Gb/s: el ancho de banda es lo que se aprieta.
  • T4 · VRAM: 320 GB/s
    Lee sus pesos de la VRAM a 320 GB/s y calcula en ≈ 3–6 ms. Sale un número por categoría: 500 × 4 bytes ≈ 2 KB de regreso al gateway, que elige las 5 mejores. A Ana le llegan unos cientos de bytes.
  • Log · ≈ 300 B por foto
    Un registro por predicción: qué foto, qué top-5, cuánto tardó, qué versión del modelo. ≈ 300 bytes × 10 M fotos = 3 GB al día.

El video es el caso extremo. Las cámaras de C02 mandan 1080p a 15 fps. Un cuadro sin comprimir pesa 1,920 × 1,080 × 3 ≈ 6.2 MB; 15 por segundo son ≈ 93 MB/s, ≈ 0.75 Gb/s por cámara. Comprimido con H.264, el formato más común, viaja a ≈ 4 Mb/s: unas 190 veces menos. Por eso el video viaja comprimido y se descomprime junto al modelo.

04

De eventos por día a requests por segundo

Esencial

From events per day to requests per second

Los negocios hablan por día («recibimos 10 millones de fotos al día»); las máquinas trabajan por segundo. Esta sección es el puente.

Throughput y QPS

El throughput es cuánto trabajo termina un sistema por unidad de tiempo: requests por segundo, fotos por segundo, tokens por segundo. No es lo mismo que la latencia, que es cuánto tarda una request: un servicio puede atender 500 por segundo aunque cada una tarde 50 ms, porque atiende muchas a la vez.

Para un servicio que responde requests, el throughput se dice en req/s o QPS (queries per second, consultas por segundo; el nombre viene de los buscadores). La cuenta base es una división:

req/s de promedio = eventos al día ÷ 86,400

Un número para memorizar: 1 millón al día ≈ 11.6 por segundo (10⁶ ÷ 86,400 = 11.57). Con él, 10 M al día son ≈ 116 por segundo y 100 M, ≈ 1,157. «Un millón al día» suena a muchísimo; «doce por segundo», a poco. Las dos frases dicen lo mismo.

El promedio esconde el pico

Nadie sube fotos a las 4 de la mañana como a las 8 de la noche. Si C01 recibiera sus 10 millones parejos, llegarían 116 por segundo a toda hora. No es así:

Una gráfica de barras con las 24 horas de un día de C01, con un perfil ilustrativo: cuántas fotos por segundo llegan en cada hora. De madrugada llegan menos de 20 por segundo; a mediodía, unas 130; a las 20 horas, la hora pico, unas 347. Tres líneas horizontales: el promedio del día, unas 116 por segundo; el pico, unas 350, tres veces el promedio; y el pico de diseño, 500, con margen. Las 24 barras suman los 10 millones de fotos del día, y la hora pico lleva 1 de cada 8: 1.25 millones de fotos entre 3,600 segundos, unas 347 por segundo. UN DÍA DE C01, HORA POR HORA fotos por segundo en cada hora · perfil ilustrativo 0 100 200 300 400 500 promedio ≈ 116 pico ≈ 350: la hora de las 20 h diseño: 500, con margen 0 h 6 h 12 h 18 h 24 h Las 24 barras suman los 10 M de fotos del día. La hora pico lleva 1/8: 1.25 M ÷ 3,600 s ≈ 347. El promedio paga la factura; el pico dimensiona.
Un día ilustrativo de C01: cada barra es una hora. Entre todas suman los 10 M de fotos; la más alta, a las 20 h, lleva 1/8 del día.

El factor de pico (peak factor) es el pico dividido entre el promedio: cuántas veces el promedio llega en el momento de más tráfico. Hay una forma sencilla de estimarlo: si la hora pico lleva una fracción f del tráfico del día, el factor es 24 × f. Con 1/8 (12.5 %), 24 × 1/8 = 3. Con 10 %, 2.4; con 20 %, 4.8. En apps que usan personas en una sola zona horaria suele estar entre 2 y 5; en un proceso automático que trabaja parejo día y noche, cerca de 1.

Al pico se le agrega un margen de diseño (de 1.3 a 1.5 veces) para lo que no sabes: picos de unos minutos, crecimiento del negocio, el error de tu propia estimación. El resultado se redondea hacia arriba a un número fácil de decir. Ese es el pico de diseño, para el que se compran las máquinas.

De fotos al día a pico de diseño en C01La cuenta
Promedio
10,000,000 ÷ 86,400 s
≈ 116 req/s
Factor de picosupuesto: la hora pico lleva 1/8 del día
24 × 1/8
3
Pico
116 × 3
≈ 350 req/s
Pico de diseñocon margen y redondeado hacia arriba
350 × ≈ 1.4 ≈ 490
500 req/s
Resultado
C01 se diseña para 500 req/s. El promedio de 116 es el que paga la factura: lo que se cobra por volumen (logs, red, cada predicción) sigue al promedio, y la mayor parte del día las máquinas trabajan muy por debajo de lo que pueden.
De por día a por segundoCalculadora

Escribe cuántos eventos llegan al día y cómo es el pico. Empieza en C01: 10 millones de fotos, una hora pico con 1/8 del tráfico del día (3×) y un margen de 1.4.

Promedio, en req/seventos ÷ 86,400 s116
Pico, en req/spromedio × factor de pico347
Pico de diseño, en req/spico × margen486
El número que dices en voz altael pico de diseño, redondeado hacia arriba a la centena500
Promedio con el atajo de 10⁵ s13.6 % menos que con 86,400: sirve para la cabeza, no para el número final100
Parte del día que cae en la hora picofactor de pico ÷ 2412.5 %
Eventos en la hora pico1,250,000

Con factor 1 el tráfico es parejo, como un proceso que trabaja día y noche: ahí el promedio sí sirve para dimensionar. Sube el factor a 5: el promedio no se mueve, pero las máquinas que necesitas sí.

Pon factor 1 y margen 1.3: el tráfico parejo de un proceso automático. Después prueba 50 millones al día con factor 3: las búsquedas de C07, ≈ 1,750 por segundo en el pico.

05

Cuántas máquinas y cuánto cuestan

Esencial

How many machines, and what they cost

Con el pico de diseño ya se pueden contar máquinas. Hacen falta dos números más.

Capacidad medida y utilización objetivo

La capacidad de una máquina es cuántas requests por segundo aguanta cumpliendo la promesa de latencia. No se adivina: se mide con una prueba de carga (load test), mandándole cada vez más tráfico hasta que la latencia se pasa del límite. Para una T4 que sirve la ResNet-50 de C01 ya optimizada, la Ronda usa ≈ 1,200 fotos por segundo. En una entrevista es una estimación; en el trabajo, es lo primero que se mide.

Además, no se planea al 100 %. Cerca del límite, las requests empiezan a esperar en cola y la latencia se dispara; y si llega un pico, hace falta aire mientras se encienden más máquinas. Por eso se fija una utilización objetivo de ≈ 50 a 70 %. C01 planea al 50 %: cada T4 cuenta por 1,200 × 0.5 = 600 fotos por segundo.

Siempre hacia arriba, y una de repuesto

máquinas = ⌈pico de diseño ÷ (capacidad medida × utilización)⌉ + repuesto

Los corchetes ⌈ ⌉ quieren decir redondear hacia arriba: ⌈0.83⌉ = 1 y ⌈2.1⌉ = 3. Media máquina no existe, y la fracción que falta es tráfico sin atender. El repuesto es N+1: si necesitas N máquinas, pones una más, en otra zona de disponibilidad (otro centro de datos de la misma región, a algunos kilómetros del primero), para que la caída de una no se note. Es la forma más simple de redundancia.

Ojo con las tres formas de redondear de Python:

python
import math

pico, por_maquina = 500, 1200 * 0.5      # req/s de diseño y capacidad planeada
x = pico / por_maquina
print(x, math.floor(x), round(x), math.ceil(x))

pico = 1250                              # con más tráfico
x = pico / por_maquina
print(x, math.floor(x), round(x), math.ceil(x))
print(round(2.5), round(3.5))            # ¡ojo!: round va al par más cercano
Salida
0.8333333333333334 0 1 1
2.0833333333333335 2 2 3
2 4

floor (hacia abajo) daría cero máquinas para C01. round (al más cercano) acierta con 0.83, pero con 2.08 pide 2 cuando hacen falta 3, y con 2.5 da 2, porque Python redondea los empates al número par. Para capacidad, solo math.ceil.

El costo al mes

Las nubes dan el precio de las máquinas por hora (aunque muchas cobran por segundo), así que el costo de tenerlas encendidas todo el mes es máquinas × precio por hora × 730.

Cuántas T4 necesita C01, y cuánto cuestanLa cuenta
Capacidad planeada por T4
1,200 × 0.5
600 fotos/s
Por tráfico
⌈500 ÷ 600⌉ = ⌈0.83⌉
1
Con repuestoN+1, una en cada zona
1 + 1
2 T4
Una, todo el mesprecio de lista aproximado de una g4dn.xlarge
US$0.526 × 730 h
≈ US$384
Las dos
2 × US$384
≈ US$768 al mes
Carga promedio de cada unacontra su máximo medido
(116 ÷ 2) ÷ 1,200
≈ 5 %
Resultado
Una GPU alcanza para el tráfico; la segunda la pide la disponibilidad. Y en promedio las dos trabajan al 5 %: es la primera pregunta de costo que te van a hacer.
Cuántas máquinasCalculadora

Del pico de diseño a máquinas y dinero. Empieza en C01: 500 req/s, una T4 que sostiene 1,200 fotos por segundo medidas, planeada al 50 %, una de repuesto y US$0.526 la hora.

Capacidad planeada por máquinamedida × utilización, en req/s600
Máquinas, sin redondearpico ÷ capacidad planeada0.83
Por tráfico, hacia arriba⌈pico ÷ capacidad planeada⌉1
Si redondearas hacia abajolo que no se hace: en el pico faltaría capacidad0
Total, con repuesto2
Carga de cada una en el picocontra su máximo medido, con todas encendidas20.8 %
Carga si se cae una«—» quiere decir que no queda ninguna41.7 %
Costo al mes, en US$máquinas × US$ por hora × 730 h768

Sube el pico a 5,000: ya son 9 por tráfico y 10 en total, y el repuesto pesa menos en la factura. Baja la utilización a 30 %: pagas más máquinas a cambio de colas más cortas.

Quita el repuesto (0) y mira la carga «si se cae una»: no queda ninguna. Luego sube el pico a 1,250: son 2.08 máquinas, que se vuelven 3.

Los precios de la nube cambian y dependen de la región: dalos como orden de magnitud y di que los verificas.

06

Por ciento contra puntos porcentuales

Extra

Percent and percentage points

Los porcentajes están en todas partes: la utilización de una GPU, la accuracy de un modelo, la disponibilidad de un servicio. Y se prestan a tres confusiones.

Por ciento: siempre «de qué»

Un por ciento es una parte de cien, y siempre es parte de algo. «Cada GPU de C01 trabaja al 5 %» es cierto contra su máximo medido (58 de 1,200 fotos por segundo); contra la capacidad planeada (600) es ≈ 10 %. Un porcentaje sin su base no dice nada.

Puntos porcentuales

Cuando un porcentaje cambia, hay dos maneras de decir cuánto:

  • La resta: de 85 % a 87 % son 2 puntos porcentuales (percentage points, pp).
  • El cambio relativo: 2 ÷ 85 ≈ 2.4 % más.

Y si miras los errores, que son los que sufre quien recibe una sugerencia mala, bajaron de 15 % a 13 %: 2 ÷ 15 ≈ 13 % menos. El mismo cambio, tres números distintos. Ninguno está mal; lo malo es no decir cuál.

El gate de C01 está escrito en puntos: el modelo nuevo no puede quedar más de 0.3 puntos abajo del actual en el golden set. Si el actual saca 96 % de top-5, el nuevo pasa con 95.7 % y no pasa con 95.6 %. Si alguien lo leyera como «0.3 % de 96», el límite sería 95.712: otra regla.

Los nueves

La disponibilidad es el porcentaje del tiempo (o de las requests) en que el servicio funciona bien. Se dice en «los nueves»: 99.9 % son «tres nueves». La cuenta de cuánto puede fallar es:

caída permitida = (1 − disponibilidad) × duración de la ventana

Cuánta caída permite cada nueve en un mes de 30 díasLa cuenta
La ventana
30 × 24 × 60
43,200 min
99 %dos nueves
0.01 × 43,200
432 min = 7.2 h
99.9 %tres nueves, la promesa de C01
0.001 × 43,200
43.2 min
99.99 %cuatro nueves
0.0001 × 43,200
≈ 4.3 min
Resultado
De 99.9 % a 99.99 % son solo 0.09 puntos porcentuales, pero el margen para fallar se divide entre 10. Cada nueve de más deja 10 veces menos aire.

Si tomas el mes de 730 h, como M01, salen 7.3 h, 43.8 min y 4.4 min: es la diferencia de 1.4 % entre los dos meses, no un error.

Contada en requests, la promesa de C01 deja fallar 0.1 % de ≈ 300 M al mes: 300,000 fotos sin sugerencia, que reciben el selector de categorías. Ese presupuesto para fallar se llama error budget.

Veces, «por ciento más» y el interés compuesto

  • «3 veces el promedio» es multiplicar por 3. «300 % más» es sumarle el 300 %: multiplicar por 4. En español, «tres veces más» se usa para las dos cosas; para no dudar, di «el triple» o «× 3».
  • Crecer 10 % al mes no es crecer 120 % en un año. Cada mes crece sobre lo que ya creció: 1.1¹² ≈ 3.14 veces, no 2.2. Un atajo, la regla del 72: algo que crece g % por periodo se duplica cada ≈ 72 ÷ g periodos. Con 10 % al mes, cada ≈ 7.2 meses.
07

C01 en una servilleta: la estimación completa

Esencial

C01 on a napkin: the full estimate

Ya tienes todas las piezas. En una entrevista de diseño, el paso 3 de la Ronda son estas cuentas: cinco minutos, números redondos y una decisión por número. Esta es la de C01.

  1. 1

    Escribe lo que te dan y lo que supones

    ≈ 2.5 M publicaciones × ≈ 3 fotos, más lo que piden otros equipos: ≈ 10 M fotos al día, una por request. Dilo en voz alta: es un supuesto.

  2. 2

    Pásalo a por segundo

    10,000,000 ÷ 86,400 ≈ 116 req/s de promedio.

  3. 3

    Del promedio al pico y al diseño

    × 3 por la hora pico ≈ 350 req/s; × ≈ 1.4 y hacia arriba: 500 req/s.

  4. 4

    Cuenta las máquinas

    ⌈500 ÷ (1,200 × 0.5)⌉ + 1 = 2 T4.

  5. 5

    Revisa que el modelo quepa

    24.5 M parámetros × 2 bytes en float16 ≈ 49 MB, en una GPU de 16 GB: sobra.

  6. 6

    Ponle precio

    2 × US$0.526 la hora × 730 h ≈ US$768 al mes de GPUs.

  7. 7

    Cuenta lo que se queda guardado

    300 B de log × 10 M = 3 GB al día, ≈ 1.1 TB al año. Las fotos serían 10 M × 200 KB = 2 TB al día: por eso se guarda solo una referencia a cada una.

La servilleta de C01: de publicaciones a dólares · Toca cada caja para ver de dónde sale su número y usa «Recorrer» para hacer la servilleta paso a paso. Cada flecha es una multiplicación o una división.
  • 2.5 M · publicaciones al día
    El dato del negocio: ≈ 2.5 millones de publicaciones nuevas al día. Es lo único que te dan; todo lo demás sale de cuentas y de supuestos que dices en voz alta.
  • ≈ 10 M fotos · al día
    Cada publicación trae ≈ 3 fotos (7.5 M), y otros equipos de la empresa también le preguntan al modelo: la Ronda redondea a 10 M imágenes al día, una por request.
  • ≈ 116 req/s · el promedio
    10,000,000 ÷ 86,400 s ≈ 115.7, que se dice 116. Con el atajo de 10⁵ s saldrían 100: sirve para la cabeza, pero se queda 13.6 % abajo. El promedio es el que paga la factura.
  • ≈ 350 req/s · la hora pico
    La gente duerme: el tráfico se amontona en la tarde. Si la hora pico lleva 1/8 del día, el factor de pico es 24 × 1/8 = 3: 116 × 3 ≈ 350 req/s. Es un supuesto; se confirma con los registros del sistema de publicaciones.
  • 500 req/s · pico de diseño
    Al pico se le suma un margen (× ≈ 1.4) para picos raros y crecimiento: 350 × 1.4 = 490, y se redondea hacia arriba a un número fácil de defender: 500 req/s.
  • 2 T4 · ⌈500 ÷ 600⌉ + 1
    Una T4 con el modelo optimizado sostiene ≈ 1,200 fotos por segundo, medidas con una prueba de carga; se planea al 50 % para que las colas no crezcan: 600. Entonces 500 ÷ 600 = 0.83 GPUs, que se redondean hacia arriba a 1, y una más de repuesto por si se cae (N+1): 2 T4, una en cada zona. Las pide la disponibilidad, no el tráfico.
  • ≈ 3 GB al día · de logs · 1.1 TB al año
    Cada predicción deja un registro de ≈ 300 bytes (qué foto, qué top-5, cuánto tardó, qué versión): 10 M × 300 B = 3 GB al día, × 365 ≈ 1.1 TB al año. Es barato: se guarda todo.
  • ≈ US$768 · al mes, de GPUs
    2 máquinas × US$0.526 la hora × 730 horas del mes ≈ US$768, en precio de lista aproximado. La infraestructura completa (gateway, balanceador, logs) suma ≈ US$1.75k: cabe en el presupuesto de US$3k.
  • ≈ 2.4 Gb/s · de tensores en el pico
    La cuenta de un ancho de banda: 500 fotos por segundo × 602 KB (el tensor en float32) ≈ 301 MB/s, × 8 ≈ 2.4 Gb/s entre el gateway y las GPUs. Es la cuenta que se aprieta primero.

La misma servilleta en Python, con los números de la Ronda:

python
import math

# La servilleta de C01, con los números de la Ronda
fotos_dia = 10_000_000               # ≈ 2.5 M publicaciones × 3 fotos + otros equipos
promedio  = fotos_dia / 86_400       # req/s
pico      = promedio * 3             # la hora pico lleva 1/8 del día
diseno    = 500                      # pico × ≈ 1.4, redondeado hacia arriba
por_gpu   = 1_200 * 0.5              # medido × utilización objetivo
gpus      = math.ceil(diseno / por_gpu) + 1     # N+1
costo_mes = gpus * 0.526 * 730       # US$ por hora × horas del mes
pesos     = 24_532_532 * 2           # bytes en float16
logs_dia  = fotos_dia * 300          # bytes: ≈ 300 B por predicción

print(f"promedio {promedio:.0f} req/s · pico {pico:.0f} · diseño {diseno}")
print(f"GPUs: ⌈{diseno} ÷ {por_gpu:.0f}⌉ + 1 = {gpus}")
print(f"pesos: {pesos / 1e6:.0f} MB en una T4 de 16 GB")
print(f"costo de las GPUs: US${costo_mes:,.0f} al mes")
print(f"logs: {logs_dia / 1e9:.0f} GB al día, {logs_dia * 365 / 1e12:.1f} TB al año")
print(f"carga promedio de cada GPU: {promedio / gpus / 1_200:.0%} de su máximo")
Salida
promedio 116 req/s · pico 347 · diseño 500
GPUs: ⌈500 ÷ 600⌉ + 1 = 2
pesos: 49 MB en una T4 de 16 GB
costo de las GPUs: US$768 al mes
logs: 3 GB al día, 1.1 TB al año
carga promedio de cada GPU: 5% de su máximo

Tres costumbres de una buena servilleta

  1. Números redondos. «115.74 req/s» no da puntos: da la impresión de que no sabes qué importa. 116 basta, y 500 para diseñar.
  2. Un chequeo de cordura. Compara cada resultado con algo que conoces. ¿Una T4 para 500 fotos por segundo? Cada foto son ≈ 4.1 GMACs, ≈ 8.2 mil millones de operaciones; 500 por segundo son ≈ 4.1 × 10¹² por segundo, muy por debajo de los ≈ 65 TFLOPS de una T4. Cabe. Si la cuenta hubiera dicho 500 GPUs, algo estaría mal.
  3. El número y la decisión. No «500 req/s», sino «≈ 500 req/s de pico: una T4 cubre el tráfico y pongo dos por disponibilidad; no necesito un cluster grande ni colas». El número solo es aritmética; con la decisión, es diseño.

Lo que depende del hardware (las 1,200 fotos por segundo) o del negocio (el factor de 3) se marca como «a medir», y se mide antes de producción con una prueba de carga. Y si te preguntan «¿y con 10 veces más tráfico?», rehaces la cuenta en voz alta: 5,000 req/s son ⌈5,000 ÷ 600⌉ = 9 GPUs, 10 con repuesto, y ahora sí vale la pena optimizar el modelo o probar otra GPU.

08

Estimar lo que no sabes

Extra

Estimating what you don't know

En C01 te dieron el dato del negocio: 2.5 M publicaciones al día. Muchas veces no te lo dan, o llega en otra forma. Cuatro herramientas para esos casos.

Que las unidades hagan la cuenta

Las unidades se multiplican y se cancelan como si fueran números. Si escribes cada número con la suya, la cuenta correcta casi se arma sola, y la equivocada se nota:

  • fotos/día ÷ s/día = fotos/s.
  • US$/h × h/mes = US$/mes.
  • Si te sale «fotos × segundos», multiplicaste donde ibas a dividir.

Un ejemplo con C07: entran ≈ 2.5 M publicaciones nuevas al día, salen más o menos las mismas, y hay ≈ 100 M activas. ¿Cuánto vive una publicación? Las unidades lo dicen: publicaciones ÷ (publicaciones/día) = días. 100 M ÷ 2.5 M por día = 40 días en promedio. Es la cuenta que la Ronda llama ley de Little (M03), con otros nombres.

Partir lo que no sabes en factores

Enrico Fermi, el físico italiano, era famoso por estimar cosas sin datos. En la primera prueba nuclear, en 1945, soltó pedacitos de papel cuando pasó la onda expansiva y, por cuánto se movieron, estimó la energía: unas 10 mil toneladas de TNT. Lo que se midió después fue de unas 20 a 25 mil: entre 2 y 2.5 veces su cifra. Del orden correcto, con papelitos.

Su método sirve para cualquier número que no sabes: pártelo en factores que sí puedas estimar, estima cada uno y multiplica. Si de un factor solo sabes que está entre a y b, usa √(a × b): entre 1 y 10, di 3; entre 100 y 10,000, di 1,000. Es el punto medio en una escala de potencias de diez.

Tres anclas para revisar cualquier cuenta

Cuando una cuenta da un número que no conoces, compáralo con algo que sí:

  • Personas: por debajo de ≈ 0.1 s una respuesta se siente instantánea (Jakob Nielsen, 1993). Prometer 2 ms a una persona no le cambia nada; prometerle 2 s, sí.
  • Una GPU: una T4 hace a lo mucho ≈ 65 × 10¹² operaciones por segundo en float16. Si tu cuenta pide más, ningún ajuste del servidor lo arregla: hacen falta más GPUs o un modelo más ligero.
  • La luz: ida y vuelta por 100 km de fibra, ≥ 1 ms. Si la otra máquina está en otro continente, la red ya se comió buena parte de los 200 ms.

Otras formas de llegar al número

  • Desde los usuarios: eventos al día = usuarios activos al día × acciones de cada uno. 5 millones de usuarios que suben 4 fotos son 20 M al día: ≈ 231 req/s de promedio.
  • Requests contra fotos: en C01 son lo mismo porque va una foto por request. Si la app mandara juntas las 3 fotos de una publicación, las mismas 116 fotos/s llegarían en ≈ 39 req/s: el gateway trabaja por requests y la GPU por fotos. Cuando te den un número, pregunta de cuál de los dos habla.
09

Errores comunes

Esencial

Common mistakes

Las trampas que más se repiten, y cómo evitarlas.

1. Mezclar bits y bytes

«El internet es de 1 giga, así que un archivo de 10 GB baja en 10 segundos.» Son 80: el internet se mide en gigabits y el archivo en gigabytes. En un diseño pasa lo mismo al revés: 301 MB/s de tensores parecen poco hasta que los escribes como 2.4 Gb/s y los comparas con los ≈ 1.56 Gb/s que sostiene la máquina.

Cómo evitarlo: escribe siempre la b o la B, y antes de dividir pasa todo a la misma unidad. De bytes a bits, × 8.

2. Confundir KB con KiB

El disco «al que le faltan 69 GB» es el caso inofensivo. El caro es sumar los MiB de nvidia-smi con los MB de tus cuentas, o comprar memoria «justa» con una regla y llenarla con la otra: en giga hay 7.4 % de diferencia; en tera, 10 %.

Cómo evitarlo: anota qué regla usa cada fuente y no mezcles dos en una cuenta; como dice la Ronda en M04, usa el total que reporta tu GPU. Si el margen es chico, haz la cuenta en bytes.

3. Diseñar para el promedio

Con el promedio todo cabe. En C01, el gateway a 116 req/s ocupa ≈ 0.7 vCPU (116 × ≈ 6 ms; un vCPU es la unidad de CPU que renta la nube); si le das uno «porque sobra», a las 8 de la noche llegan 350 req/s, que piden ≈ 2.1, y la latencia explota.

Cómo evitarlo: promedio, pico y pico de diseño, siempre los tres. Y pregunta por los eventos (un Buen Fin, una campaña), además del pico de cada día.

4. Redondear las máquinas hacia abajo

⌊0.83⌋ = 0 máquinas, y round(2.08) = 2 cuando hacen falta 3. Peor: round(2.5) en Python da 2.

Cómo evitarlo: máquinas, discos y cualquier capacidad, siempre math.ceil. El repuesto se suma después, aparte.

5. Confundir por ciento con puntos porcentuales

«La accuracy subió 2 %», cuando pasó de 85 % a 87 %: subió 2 puntos, que son 2.4 %. O «la tasa de error subió apenas 0.1 %», cuando pasó de 0.1 % a 0.2 %: se duplicó.

Cómo evitarlo: di los dos, «+2 puntos, de 85 % a 87 %». Con tasas chicas, di también las veces: «el doble de errores».

6. Mezclar escalas

Dividir entre 10⁵ en el número final (13.6 % menos tráfico), multiplicar un precio por hora × 720 en una cuenta y × 730 en otra, comparar algo por día con algo por segundo, o leer el «8B» de un LLM como 8 billones, cuando son 8 mil millones.

Cómo evitarlo: escribe la unidad junto a cada número y, al final, revisa que se cancelen: fotos/día ÷ s/día = fotos/s. Para las palabras, potencias de diez: 8 × 10⁹.

10

En la vida real

Extra

In real life

C01: un minuto de Hot Sale

Marketing manda una notificación del Hot Sale a 5 millones de personas, y una parte abre la app y publica algo en el primer minuto. La Ronda (M03) hace la cuenta con un supuesto ilustrativo:

Un minuto de notificación en C01La cuenta
Personas que la reciben
dato de marketing
5 M
Suben una foto en el primer minutosupuesto: ≈ 2 %
5 M × 0.02
100,000
Tasa durante ese minuto
100,000 ÷ 60 s
≈ 1,670 req/s
Contra el pico de un día normal
1,670 ÷ 350
≈ 4.8 veces
Las dos T4contra su máximo medido
1,670 ÷ (2 × 1,200)
≈ 70 %
CPU del gateway≈ 6 ms por foto, contra los 8 núcleos de sus dos nodos
1,670 × 0.006 s
≈ 10 núcleos
Red del gatewaycontra ≈ 3.1 Gb/s sostenidos de sus dos nodos
1,670 × 602 KB × 8
≈ 8 Gb/s
Resultado
Las GPUs, planeadas al 50 %, aguantarían; lo que se satura primero es el gateway: su CPU y, más todavía, su red. Cada parte se dimensiona aparte, y los eventos conocidos se preparan con tiempo.

El promedio diario de ese día casi no cambia: es un minuto. Por eso los eventos no se ven en las cuentas por día, y por eso se pregunta por ellos.

La factura completa de C01 también sale de esta lección. Las GPUs son solo una parte: con el gateway, el balanceador y los logs, la Ronda llega a ≈ US$1.75k al mes de infraestructura, dentro del presupuesto de US$3k. Repartido entre las ≈ 304 M fotos de un mes (10 M × 30.4 días), sale a ≈ US$0.006 por cada mil predicciones.

C02: video que no duerme

C02 vigila zonas restringidas con 1,000 cámaras en 25 centros de distribución. Su tráfico se cuenta en cuadros por segundo, no en requests, y no tiene hora pico: las cámaras graban igual a las 4 de la mañana. Si se analizara todo, serían 1,000 × 15 fps = 15,000 cuadros por segundo las 24 horas, con factor de pico 1: aquí el promedio sí dimensiona. Y a ≈ 4 Mb/s por cámara son ≈ 4 Gb/s de video continuo, 4 × 10⁹ × 86,400 ÷ 8 ≈ 43 TB al día, que no se mandan a la nube sin pensarlo: la Ronda analiza cada sitio en el sitio.

C07: cuánto pesa un índice de búsqueda

C07 busca entre ≈ 100 M publicaciones activas usando embeddings de 512 números, guardados en un índice vectorial que tiene que vivir en RAM.

El índice de C07La cuenta
Los vectores en float32≈ 190.7 GiB
100 M × 512 × 4 B
204.8 GB
En int81 byte por número
100 M × 512 × 1 B
51.2 GB
El grafo del índice≈ 256 B por vector, en un HNSW
100 M × 256 B
25.6 GB
Lo que tiene que vivir en RAMcada búsqueda salta solo por una parte, pero no sabes cuál
51.2 + 25.6
≈ 77 GB
En 4 pedazosla Ronda les dice shards
77 ÷ 4
≈ 19 GB cada uno
Resultado
Una máquina con 384 GiB (≈ 412 GB) lo cargaría entero, aun con los float32 que la Ronda guarda aparte para reordenar los mejores resultados (≈ 300 GB en total); la Ronda lo parte en 4 por operación, no por memoria. Y nota el GiB: comparar 204.8 GB con 384 GiB exige pasar los dos a la misma regla.

Las búsquedas también se cuentan como en esta lección: 50 M al día son ≈ 579 por segundo, y con factor 3, ≈ 1,750 en el pico.

C13: el ancho de banda de la voz

C13 pone subtítulos en vivo en videollamadas. En el pico hay ≈ 60,000 personas hablando a la vez, y el audio llega al modelo como PCM: el sonido sin comprimir, 16,000 muestras por segundo de 16 bits cada una.

El audio de C13La cuenta
Una persona hablando256,000 bits por segundo
16,000 muestras/s × 16 bits
256 kb/s
En bytes
256 kb/s ÷ 8
32 KB/s
Todo el pico
60,000 × 256 kb/s
≈ 15.4 Gb/s ≈ 1.9 GB/s
Comprimidocon Opus, el códec de voz de muchas videollamadas (un códec comprime y descomprime): ≈ 32 kb/s
256 ÷ 32
8 veces menos
Un mes de PCM hacia el modeloal promedio, un tercio del pico, durante 730 h
≈ 5.1 Gb/s × 2.63 × 10⁶ s ÷ 8
≈ 1.7 PB
Resultado
Una voz suena «ligera», pero 60,000 a la vez llenan una red. Y aquí manda la b chiquita: los códecs de audio se miden en kb/s. (La Ronda suma también el audio comprimido que llega antes al gateway, y da ≈ 2.7 PB al mes.)

C10: tokens por segundo

C10 sirve un LLM propio que recibe ≈ 1.5 M requests al día, cada una con ≈ 2,000 tokens de entrada y ≈ 250 de salida. Aquí el throughput se mide en tokens por segundo, y hay dos:

Los tokens de C10La cuenta
Requests por segundo, promedio
1.5 M ÷ 86,400
≈ 17.4
Pico de diseñoel pico, con margen para picos de minutos
3 × 17.4 ≈ 52
60 req/s
Tokens de salida por segundo en el pico
60 × 250
15,000
Tokens de entrada por segundo en el pico
60 × 2,000
120,000
Lo que ve cada personaun token nuevo cada ≤ 50 ms
1 ÷ 0.05 s
≥ 20 tokens/s
Lo que lee una persona≈ 200 a 300 palabras por minuto, en inglés
dato de referencia de la Ronda
≈ 4–7 tokens/s
Resultado
Dos throughputs: el que siente cada persona (≥ 20 tokens/s, más rápido de lo que lee) y el de toda la flota de GPUs (15,000 tokens/s de salida), que es el que se paga.

En la Ronda, ese tiempo por token se llama TPOT, y M04 muestra por qué el techo de tokens por segundo lo pone el ancho de banda de la memoria de la GPU, no sus TFLOPS.

Fuera de ML: tu internet y tu memoria USB

  • Tu plan de «100 megas» son 100 Mb/s = 12.5 MB/s. Una película de 4 GB baja en ≈ 5.3 minutos en el mejor caso, no en 40 segundos.
  • Una memoria USB «de 64 GB» aparece en Windows como ≈ 59.6 GB: son 64 × 10⁹ bytes divididos entre 2³⁰.
  • Cuando tu banco anuncia que una tasa «bajó un punto», de 12 % a 11 %, son puntos porcentuales: el cambio relativo es de 8.3 %.
11

Ejercicios

Esencial

Exercises

Resuélvelos con lápiz antes de abrir la solución; las calculadoras de la lección sirven para comprobar.

  1. 1Fácil

    Escribe en notación científica y di el orden de magnitud de cada número: (a) 2,500,000 publicaciones al día; (b) 602,112 bytes; (c) 0.0000001 segundos.

    Ver la solución paso a paso
    • (a) 2.5 × 10⁶. La mantisa, 2.5, es menor que 3.16: orden 10⁶.
    • (b) ≈ 6.02 × 10⁵. Como 6.02 > 3.16, el orden es 10⁶: casi un megabyte.
    • (c) 1 × 10⁻⁷ s = 100 ns: orden 10⁻⁷, lo que tarda leer la RAM.
  2. 2Fácil

    Un servicio recibe 5 millones de requests al día. ¿Cuántas llegan por segundo en promedio? ¿Y con el atajo de 10⁵ s?

    Ver la solución paso a paso
    • 5,000,000 ÷ 86,400 ≈ 57.9 req/s. Con la regla de memoria: 5 × 11.6 = 58.
    • Con el atajo: 5 × 10⁶ ÷ 10⁵ = 50 req/s, 13.6 % abajo.
  3. 3Fácil

    Compras un disco de 4 TB. ¿Cuántos GiB y cuántos TiB muestra tu computadora con Windows?

    Ver la solución paso a paso
    • 4 TB = 4 × 10¹² bytes.
    • En GiB: 4 × 10¹² ÷ 2³⁰ ≈ 3,725 GiB, que Windows escribe como «3,725 GB».
    • En TiB: 4 × 10¹² ÷ 2⁴⁰ ≈ 3.64 TiB. No falta nada: es la regla de 1,024.
  4. 4Fácil

    Tu internet es de 200 Mb/s. ¿Cuánto tarda, en el mejor caso, en bajar una imagen de Docker de 10 GB? ¿Cuánto dirías si confundieras bits con bytes?

    Ver la solución paso a paso
    • 10 GB × 8 = 80 Gb = 80,000 Mb.
    • 80,000 Mb ÷ 200 Mb/s = 400 s ≈ 6.7 minutos.
    • Confundiendo: 10,000 MB ÷ 200 = 50 s. Te quedarías corto por 8.
  5. 5Medio

    Una app recibe 20 M fotos al día. La hora pico lleva 1/6 del tráfico y quieres un margen de 1.3. Calcula el promedio, el factor de pico, el pico y el pico de diseño.

    Ver la solución paso a paso
    • Promedio: 20,000,000 ÷ 86,400 ≈ 231 req/s.
    • Factor: 24 × 1/6 = 4.
    • Pico: 231.5 × 4 ≈ 926 req/s (con el promedio sin redondear; 231 × 4 daría 924).
    • Diseño: 926 × 1.3 ≈ 1,204, redondeado hacia arriba a la centena: 1,300 req/s.
  6. 6Medio

    El pico de diseño es 1,200 req/s. Cada máquina sostiene 800 req/s medidas, planeas al 60 %, quieres N+1 y cada máquina cuesta US$0.80 la hora. ¿Cuántas máquinas pides y cuánto cuestan al mes? ¿Qué pasaría si usaras round de Python?

    Ver la solución paso a paso
    • Capacidad planeada: 800 × 0.6 = 480 req/s.
    • Por tráfico: 1,200 ÷ 480 = 2.5 → ⌈2.5⌉ = 3. Con N+1: 4 máquinas.
    • Costo: 4 × US$0.80 × 730 = US$2,336 al mes.
    • round(2.5) da 2 en Python: pedirías 3 en total. Si se cae una, las 2 que quedan suman 960 req/s planeadas, menos que 1,200: trabajarían al 75 % de su máximo medido (1,200 ÷ 1,600), muy arriba del 60 % que planeaste.
  7. 7Medio

    El top-5 de un modelo sube de 96 % a 96.5 %. ¿Cuántos puntos porcentuales subió? ¿Qué cambio relativo es? ¿Cuánto bajaron los errores?

    Ver la solución paso a paso
    • Subió 0.5 puntos porcentuales.
    • Relativo: 0.5 ÷ 96 ≈ 0.52 % más.
    • Errores: de 4 % a 3.5 %, 0.5 ÷ 4 = 12.5 % menos. Tres maneras de contar el mismo cambio: di cuál usas.
  8. 8Medio

    Un servicio hace 50 M predicciones al día y guarda un log de 500 B por cada una. ¿Cuánto ocupa al día y al año? Si los discos se compran en TiB, ¿cuántos TiB al año?

    Ver la solución paso a paso
    • Al día: 5 × 10⁷ × 500 B = 2.5 × 10¹⁰ B = 25 GB.
    • Al año: 25 GB × 365 = 9,125 GB ≈ 9.1 TB.
    • En TiB: 9.125 × 10¹² ÷ 2⁴⁰ ≈ 8.3 TiB. Antes de comprimir.
  9. 9Reto

    Un servicio de lectura de documentos (OCR) recibe 3 M documentos al día de ≈ 2 páginas. El pico es 3× el promedio y el margen, 1.4. Una GPU procesa 50 páginas por segundo medidas; planeas al 50 % con N+1, a US$0.526 la hora. (a) ¿Páginas por segundo de promedio, pico y diseño? (b) ¿GPUs y costo al mes? (c) Si los documentos pueden esperar unas horas y entran a una cola que se procesa pareja, ¿cuántas GPUs?

    Ver la solución paso a paso
    • (a) 6 M páginas al día ÷ 86,400 ≈ 69 páginas/s; pico ≈ 208; diseño 208 × 1.4 ≈ 292 → 300.
    • (b) Capacidad planeada: 50 × 0.5 = 25 por GPU. ⌈300 ÷ 25⌉ = 12, más 1: 13 GPUs. 13 × 0.526 × 730 ≈ US$4,992 al mes.
    • (c) La cola reparte el pico en las horas tranquilas: dimensionas con el promedio y un margen, 69 × 1.3 ≈ 90 páginas/s. ⌈90 ÷ 25⌉ = 4, más 1: 5 GPUs ≈ US$1,920, ≈ 62 % menos. Y como esperar en la cola ya no rompe ninguna promesa, podrías planear más cerca del 100 %, como un trabajo batch (M03): ⌈90 ÷ 50⌉ + 1 = 3. Es la razón de los patrones asíncronos de la Ronda (M02).
  10. 10Reto

    Un centro de distribución tiene 40 cámaras que mandan video 1080p a 15 fps, y su internet sube entre 20 y 50 Mb/s. (a) Sin comprimir, ¿cuántos Gb/s producen entre todas? (b) Comprimido a ≈ 4 Mb/s por cámara, ¿cuántos Mb/s y cuántos TB al día? (c) ¿Cabe ese video en el internet del sitio? ¿Qué harías?

    Ver la solución paso a paso
    • (a) Un cuadro: 1,920 × 1,080 × 3 B ≈ 6.22 MB. × 15 ≈ 93 MB/s, × 8 ≈ 0.75 Gb/s por cámara. × 40 ≈ 30 Gb/s.
    • (b) 40 × 4 Mb/s = 160 Mb/s. Al día: 160 × 10⁶ × 86,400 ÷ 8 ≈ 1.73 × 10¹² B ≈ 1.7 TB.
    • (c) No cabe: 160 Mb/s contra 20 a 50, y tampoco con un video más ligero de ≈ 1.5 Mb/s por cámara (60 Mb/s). Se analiza en el sitio, con una GPU junto a las cámaras, y a la nube solo van los eventos: la decisión de C02 en la Ronda sale de una división.
12

Lo que sigue

Esencial

What comes next

En la Ronda:

  • M01 · El mapa y la entrevista. Sus «estimaciones express» son esta lección en una tabla: 86,400 s, 1 M al día ≈ 12 req/s, el pico de 2 a 5 veces, 730 h, los nueves y el ejemplo completo de C01 con la fórmula de GPUs. Y pide decir cada número con su decisión.
  • M03 · Latencia y capacidad. El promedio, el pico y el pico de diseño a fondo; de dónde sale cada factor; las ráfagas dentro de un segundo; y la ley de Little, que une throughput, latencia y requests en curso: 500 req/s × 0.05 s = 25 requests a la vez.
  • M04 · Hardware para inferencia. Bytes por parámetro, GB contra GiB en nvidia-smi, los GB/s de la VRAM y de PCIe y el techo de tokens por segundo de un LLM.
  • M13 · Nube. Precio por hora × 730, lo que cuesta cada GB que cruza la red y cuánto pagas por máquinas que pasan casi todo el día muy por debajo de su capacidad.
  • Los casos. El paso de estimaciones de cada caso son estas cuentas: C01 (tráfico, GPUs, logs, red y costo), C07 (el tamaño del índice), C13 (el ancho de banda del audio) y C10 (tokens al día y al mes).

En el Dojo: la estación 7, Empaquetado, trabaja con imágenes de Docker de varios GB: cuánto pesan comprimidas y descomprimidas, y cuánto disco piden al bajarlas. Ahí vas a usar los GB, los GiB y los Gb/s de esta lección.

En Sensei: «Promedios, medianas y percentiles» explica por qué la promesa es sobre el p99 y no sobre el promedio. «Probabilidad para sistemas que fallan» calcula cuánto vale de verdad el repuesto N+1 y de dónde salen los nueves. «Cómo guarda números una computadora» abre el binario, float32, float16 e int8. «Matrices, FLOPs y qué tan rápido calcula una GPU» convierte TFLOPS y GB/s en milisegundos. Y «Qué tan rápido y cuánto: latencia y throughput» junta todo con las colas.

13

Palabras que vas a oír

Esencial

Words you will hear

Estos son los conceptos que presentó esta lección. Cada uno tiene su tarjeta con la definición completa.

Notación científicascientific notationEscribir un número como una cifra entre 1 y 10 multiplicada por una potencia de diez: 86,400 = 8.64 × 10⁴. Sirve para números enormes o diminutos sin contar ceros.Más

La cifra se llama mantisa, y el número al que se eleva el 10, exponente; un exponente negativo es un número chico: 4 × 10⁻⁵ = 0.00004. Para multiplicar se multiplican las mantisas y se suman los exponentes; para dividir, se dividen y se restan. Python y las hojas de cálculo la escriben con una e: 8.64e+04 es 8.64 × 10⁴. El exponente dice el orden de magnitud.

Ejemplo. La ResNet-50 de C01 tiene 24,532,532 ≈ 2.45 × 10⁷ parámetros y hace ≈ 4.1 × 10⁹ multiplicaciones por foto; copiar la foto a la GPU tarda ≈ 4 × 10⁻⁵ s, 40 microsegundos.

Ver en el glosario →

Orden de magnitudorder of magnitudeLa potencia de diez más cercana a un número: 86,400 es del orden de 10⁵. Dos cosas que difieren en un orden de magnitud están a 10 veces una de otra.Más

Para redondear al orden más cercano se mira la mantisa: si es menor que √10 ≈ 3.16 se queda la potencia; si no, se sube una. Hay quien llama orden de magnitud solo al exponente, sin redondear: con esa costumbre, 86,400 es del orden de 10⁴. En diseño de sistemas, una estimación sirve si atina al orden de magnitud: equivocarse por 2 veces rara vez cambia la decisión; por 10, sí, porque se pasa de un par de máquinas a un cluster.

Ejemplo. Leer la RAM (≈ 10⁻⁷ s) y la promesa de 200 ms de C01 (2 × 10⁻¹ s) están a más de seis órdenes de magnitud: ≈ 2 millones de veces.

Ver en el glosario →

Bitbit · binary digitLa unidad más chica de información: un 0 o un 1. Se escribe con b minúscula.Más

Con n bits caben 2ⁿ combinaciones: con 8, 256. Ocho bits forman un byte. Las velocidades de red se miden en bits por segundo (Mb/s, Gb/s), mientras que los archivos y las memorias se miden en bytes: confundirlos cambia la cuenta por 8. Cómo se escriben los números con bits es el sistema binario.

Ejemplo. Un plan de internet de 100 megas son 100 Mb/s: 12.5 MB por segundo. Un archivo de 1 GB tarda ≈ 80 s en bajar, no 10.

Ver en el glosario →

BytebyteUn grupo de 8 bits: la unidad en la que se miden los archivos y las memorias. Se escribe con B mayúscula y guarda un número del 0 al 255.Más

Un canal de un píxel en uint8 ocupa 1 byte; un número en float32, 4. Los múltiplos (KB, MB, GB…) van de mil en mil en el sistema decimal y de 1,024 en 1,024 con los prefijos binarios (KiB, MiB, GiB…).

Ejemplo. La foto de C01 como tensor: 3 × 224 × 224 = 150,528 números × 4 bytes = 602,112 bytes ≈ 602 KB, que son ≈ 4.8 millones de bits.

Ver en el glosario →

Prefijo binario (KiB, MiB, GiB)binary prefix · kibi, mebi, gibiLos múltiplos de 1,024 en vez de 1,000: 1 KiB = 1,024 bytes, 1 MiB = 1,024 KiB, 1 GiB = 1,024 MiB. Llevan una i: KiB, MiB, GiB, TiB.Más

Las computadoras cuentan en potencias de 2, y 2¹⁰ = 1,024 se parece a mil, así que por décadas «kilobyte» quiso decir las dos cosas. En 1998 la IEC separó los nombres: KB son 1,000 bytes (decimal) y KiB, 1,024 (binario). La diferencia crece con cada prefijo: 2.4 % en kilo, 7.4 % en giga, 10 % en tera. Los discos y las redes usan decimal; la RAM, Windows, nvidia-smi y PyTorch, binario. En una misma cuenta se usa una sola regla.

Ejemplo. Un disco de 1 TB tiene 10¹² bytes; Windows los divide entre 2³⁰ y muestra ≈ 931 «GB», que en realidad son GiB. No falta nada: es otra regla.

Ver en el glosario →

Ancho de bandabandwidthCuántos datos puede mover un canal por segundo: una red, un disco, el bus entre la CPU y la GPU. La red se mide en bits por segundo (Gb/s); la memoria y los discos, en bytes por segundo (GB/s).Más

El tiempo de mandar algo grande es su tamaño entre el ancho de banda, con las unidades parejas (× 8 entre bytes y bits). No es lo mismo que la latencia: el ancho de banda dice cuánto cabe por segundo; la latencia, cuánto tarda en llegar lo primero. El de la memoria de la GPU tiene su propia lección: ancho de banda de memoria.

Analogía. Una camioneta con 2 PB de discos que maneja 10 horas tiene un ancho de banda enorme (≈ 440 Gb/s) y una latencia pésima: el primer byte llega a las 10 horas. Se rompe en que una red manda un flujo continuo y la camioneta, todo de golpe.

Ejemplo. En el pico de diseño de C01 viajan 500 × 602 KB ≈ 301 MB/s del gateway a las GPUs: ≈ 2.4 Gb/s. Por PCIe, a ≈ 16 GB/s, copiar una foto tarda ≈ 40 µs.

Ver en el glosario →

ThroughputthroughputCuánto trabajo termina un sistema por unidad de tiempo: requests por segundo, fotos por segundo, tokens por segundo.Más

Es distinto de la latencia, que es cuánto tarda una sola request: un servicio puede atender 500 por segundo aunque cada una tarde 50 ms, porque atiende muchas a la vez. Un throughput se dice con su momento (promedio o pico) y su lugar (el gateway trabaja por requests; la GPU, por fotos). Con el del pico se cuentan las máquinas.

Ejemplo. C01 se diseña para 500 req/s; una T4 sostiene ≈ 1,200 fotos por segundo, medidas con una prueba de carga. En un LLM hay dos: los tokens por segundo que ve cada persona y los de toda la flota.

Ver en el glosario →

QPS (req/s)queries per second · requests per secondCuántas requests o consultas llegan por segundo. Es la unidad con la que se dimensiona un servicio.Más

Se calcula dividiendo el volumen de un día entre 86,400 segundos: 1 millón al día son ≈ 11.6 por segundo. Ese es el promedio; para dimensionar se usan el pico y el pico de diseño (ver factor de pico). «QPS» viene de los buscadores (queries); «req/s» dice lo mismo para cualquier API.

Ejemplo. C01: 10,000,000 ÷ 86,400 ≈ 116 req/s de promedio, ≈ 350 en la hora pico y 500 de diseño. Las búsquedas de C07: 50 M al día, ≈ 579 de promedio y ≈ 1,750 en el pico.

Ver en el glosario →

Factor de picopeak factor · peak-to-average ratioCuántas veces el promedio llega en el momento de más tráfico. Con él se pasa del promedio al pico, que es para lo que se compran las máquinas.Más

Si la hora pico lleva una fracción f del tráfico del día, el factor es 24 × f: con 1/8, 3. Suele estar entre 2 y 5 en apps que usan personas en una zona horaria, y cerca de 1 en un proceso que trabaja parejo las 24 horas. Al pico se le suma un margen (× 1.3 a 1.5) para picos raros y crecimiento, y se redondea hacia arriba: el pico de diseño.

Ejemplo. C01 supone 3: 116 × 3 ≈ 350 req/s; con un margen de ≈ 1.4 diseña para 500. Una notificación del Hot Sale podría llevarlo a ≈ 1,670 durante un minuto.

Ver en el glosario →

Estimación (cuenta de servilleta)back-of-the-envelope estimateUna cuenta rápida con números redondos para saber el orden de magnitud de algo (requests por segundo, máquinas, bytes, dólares) antes de construirlo.Más

Se parte de pocos datos y de supuestos dichos en voz alta, se encadenan multiplicaciones y divisiones con las unidades a la vista y se redondea. No busca exactitud: busca no equivocarse por 10 y llevar a una decisión. Lo que depende del hardware o del negocio se marca como «a medir» y se mide con una prueba de carga.

Ejemplo. La de C01: 10 M fotos al día → 116 req/s → 350 en el pico → 500 de diseño → 2 T4 con N+1 → ≈ US$768 al mes de GPUs, y 3 GB de logs al día.

Ver en el glosario →

Redondear hacia arriba (ceil)ceiling · ceilQuedarse con el entero de arriba: ⌈0.83⌉ = 1 y ⌈2.1⌉ = 3. Así se cuentan las máquinas: media máquina no existe, y la que falta deja tráfico sin atender.Más

Se escribe ⌈x⌉ y en Python math.ceil(x). Su contrario es el piso, ⌊x⌋ (math.floor), que se queda con el entero de abajo; round va al más cercano, y en Python manda los empates al par: round(2.5) da 2. Para capacidad, siempre hacia arriba; el repuesto (N+1) se suma después.

Ejemplo. GPUs de C01: ⌈500 ÷ 600⌉ = ⌈0.83⌉ = 1 por tráfico, más 1 de repuesto: 2. Con floor serían 0.

Ver en el glosario →

Punto porcentualpercentage point · ppLa resta entre dos porcentajes: de 85 % a 87 % son 2 puntos porcentuales, aunque el cambio relativo sea de 2.4 %.Más

«Subió 2 %» y «subió 2 puntos» son cosas distintas: lo primero es multiplicar por 1.02; lo segundo, sumarle 2 al porcentaje. Con métricas y disponibilidad conviene decir los dos. Pasar de 99.9 % a 99.99 % son solo 0.09 puntos, pero la caída permitida se divide entre 10: de ≈ 43 a ≈ 4.3 minutos al mes.

Ejemplo. El gate de C01 no deja pasar un modelo que quede más de 0.3 puntos abajo del actual: si el actual saca 96 % de top-5, el nuevo pasa con 95.7 % y no con 95.6 %.

Ver en el glosario →

14

Chequeo

Esencial

Check

Intenta responder en tu cabeza antes de abrir cada respuesta.

  1. 1¿Por qué un plan de internet de 100 megas no baja 100 MB por segundo?Ver respuesta

    Son 100 megabits por segundo, y un byte tiene 8 bits: 100 ÷ 8 = 12.5 MB/s.

  2. 2¿Cuántos segundos tiene un día, y cuántas requests por segundo son 1 millón al día?Ver respuesta

    86,400 segundos. 1,000,000 ÷ 86,400 ≈ 11.6 req/s.

  3. 3Un disco de 1 TB aparece como 931 GB. ¿Qué pasó?Ver respuesta

    Nada se perdió: el disco trae 10¹² bytes, y Windows los divide entre 2³⁰ (un GiB) aunque escriba «GB»: 10¹² ÷ 2³⁰ ≈ 931.

  4. 4¿Por qué se diseña para el pico de diseño y no para el promedio?Ver respuesta

    Porque en la hora pico llegan varias veces más requests que en promedio (3 veces en C01): con capacidad para el promedio, la latencia explotaría. El promedio paga la factura; el pico de diseño decide las máquinas.

  5. 5Una cuenta dice que hacen falta 2.1 máquinas. ¿Cuántas pides con N+1?Ver respuesta

    ⌈2.1⌉ = 3 por tráfico, más 1 de repuesto: 4. Nunca hacia abajo.

  6. 6La accuracy pasa de 85 % a 87 %. ¿Subió 2 %?Ver respuesta

    Subió 2 puntos porcentuales; en términos relativos, 2 ÷ 85 ≈ 2.4 %. Los errores bajaron 13 %, de 15 % a 13 %.

  7. 7¿Cuánto cuesta al mes una máquina de US$0.526 la hora encendida todo el tiempo?Ver respuesta

    US$0.526 × 730 h ≈ US$384.

Sigue · 10Promedios, medianas y percentilesNúmeros y estadística para producción Léelo en la RondaM01 · El mapa y la entrevistaLo que acabas de leer, con el ojo del entrevistador. ← 08 · Transformers y LLMs