Giro de la Suerte: Programación Divina - Capítulo 41
- Inicio
- Giro de la Suerte: Programación Divina
- Capítulo 41 - 41 Capítulo 41 Explicando 1
Tamaño de Fuente
Tipo de Fuente
Color de Fondo
41: Capítulo 41: Explicando 1 41: Capítulo 41: Explicando 1 Jeff no respondió.
Simplemente se quedó allí de pie con una expresión neutra.
Comprendía que su profesor no lo entendería, no ahora.
Pero tenía el presentimiento de que un día, su profesor y muchos otros programadores lo harían.
El tiempo era lo que la tecnología necesitaba para avanzar, tal como había sido en su propio mundo en su primera vida.
Mientras este mundo todavía estaba aprendiendo a caminar, él ya había aprendido a volar.
Aquí, todavía enseñaban bucles y condicionales como si fueran la cima de la innovación.
Mientras los estudiantes seguían batallando con funciones y matrices, algunos incluso estaban orgullosos de crear calculadoras y formularios de inicio de sesión.
Mientras que algunos profesores hablaban de las bases de datos como si fueran el mayor logro en el diseño de sistemas.
Pero Jeff ya había recorrido un camino mucho más allá de eso.
Había escrito código capaz de entender el lenguaje.
Había construido modelos que no se limitaban a seguir instrucciones, sino que sabían razonar.
Esos modelos podían predecir y adaptarse.
En este mundo, no había artículos que discutieran sobre los transformadores.
No había conferencias que explicaran las incrustaciones neuronales.
La palabra «tokenizador» no tenía ningún significado aquí.
Los mecanismos de atención, las funciones softmax y los espacios vectoriales eran conceptos que ni siquiera existían en su vocabulario.
¿Cómo podría explicar por qué cada palabra en una oración requiere una codificación posicional?
¿Cómo podría hacerles entender por qué las capas de auto-atención son esenciales?
Incluso si se lo dijera, ¿podrían su profesor y los demás comprender realmente lo que significa que una máquina aprenda?
Para otros, el código era solo una herramienta.
Para él, el código era algo vivo, algo que podía crecer, evolucionar y comprender.
«Si les contara el verdadero proceso…» —pensó Jeff para sus adentros.
«Sobre cómo entrené el sistema para sopesar el contexto, sobre enmascarar secuencias y calcular funciones de pérdida, me mirarían como si estuviera loco».
«Todavía están en la etapa de decirles a las máquinas qué hacer, línea por línea.
Claramente nunca han presenciado el resultado cuando una máquina determina de forma independiente lo que es lógico» —se dijo para sus adentros.
Los ojos de Dela Cruz se entrecerraron mientras se desplazaba por la lista de funciones.
—Este corrector gramatical tuyo…
no parece como los correctores ortográficos habituales.
La lógica parece estar en capas —dijo, con un tono lleno de curiosidad mientras esperaba una respuesta.
—Explícame esto, Jeff.
¿Cómo hiciste exactamente que funcionara?
Jeff asintió levemente, con una chispa de energía en los ojos.
Puesto que siempre había disfrutado explicando y enseñando, este era el momento que más le gustaba.
—Pues empieza con el tokenizador —comenzó, señalando la función en la parte superior de la pantalla.
…
Python
def tokenize_input(sentence):
tokens = sentence.lower().split()
return tokens
…
«Es esa palabra otra vez.
¿Qué es este tokenizador?» —pensó Dela Cruz para sus adentros.
Mostraba una expresión de perplejidad.
Ya había visto este código y Jeff lo había mencionado antes.
Aún inseguro, Dela Cruz se quedó mirando el nombre de la función en la pantalla, con el ceño fruncido por la confusión.
—Tokenizador… ¿a qué te refieres exactamente con eso?
¿Es solo dividir la oración por los espacios?
—preguntó, genuinamente curioso pero claramente poco familiarizado con el concepto.
Jeff asintió levemente mientras levantaba un dedo.
—Eso es parte de ello, profesor.
Pero la tokenización no consiste solo en dividir palabras.
Se trata de descomponer la entrada en piezas significativas, y a eso se le llama tokens.
Jeff explicó esto, comprendiendo la falta de conocimiento de su profesor, ya que en su mundo, en este momento, la IA aún no está avanzada y apenas está comenzando su desarrollo.
Al igual que en la parte anterior, conceptos como los transformadores, los tokenizadores y el procesamiento de lenguaje natural siguen siendo desconocidos.
Así que tiene sentido que su profesor, incluso siendo el jefe del laboratorio de computación, no comprenda del todo lo que «tokenizador» significa realmente.
Jeff sabía que su profesor podría entender la manipulación básica de cadenas, como usar las funciones split o replace en Python, pero no el significado más profundo de la tokenización en lo que respecta a los modelos de lenguaje, el procesamiento de lenguaje natural o el procesamiento de IA.
Se inclinó un poco más cerca del monitor, señalando el ejemplo:
…
Python
sentence = “She walks to the market.”
tokens = [“she”, “walks”, “to”, “the”, “market”, “.”]
…
—Como puede ver aquí, profesor, cada palabra e incluso la puntuación se separan.
El sistema lee cada token individualmente para poder verificar la gramática, la estructura o el significado al nivel más pequeño.
Dela Cruz asintió lentamente, pero por dentro se estaba quedando sin expresiones de aprecio mientras escuchaba en silencio.
Pero Jeff pudo ver que los ojos de su profesor temblaban mientras explicaba, así que continuó.
—Piense en ello como si se cortara una oración en piezas de un rompecabezas.
En lugar de leer la oración como un solo bloque grande, el sistema mira cada pieza una por una.
Esto facilita la detección de errores como el uso incorrecto de los verbos o la falta de artículos.
—En algunos casos, la tokenización puede ser mucho más profunda, como descomponer contracciones, manejar números o separar símbolos.
Pero para este sistema, lo mantuve simple.
Dela Cruz se rascó la cabeza mientras se reclinaba.
—Ya veo, así que no es solo dividir por espacios, sino algo más inteligente que eso.
Jeff esbozó una sonrisa educada.
—Exacto, profesor.
Permite que el sistema «vea» la oración de la misma manera que lo haría un profesor, palabra por palabra, pieza por pieza, ladrillo por ladrillo —dijo, aunque en realidad no incluyó la frase «ladrillo por ladrillo» cuando habló.
—Ya veo —respondió Dela Cruz mientras se tocaba la barbilla.
Jeff entonces continuó, tocando la siguiente función.
…
Python
def grammar_checker(tokens):
error_count = 0
# rule-based grammar checks here
…
—Después de la tokenización, el corrector procesa cada palabra y sus palabras vecinas a través de un conjunto de condiciones, que son las reglas gramaticales que establecí manualmente.
Estas incluyen cosas como la concordancia sujeto-verbo, los desajustes de tiempo verbal comunes y las construcciones pasivas.
Dela Cruz se inclinó más para escuchar.
Cuando Jeff terminó de hablar, Dela Cruz preguntó.
—¿Establecidas manualmente?
¿Escribiste todas las reglas tú mismo?
Jeff esbozó una leve sonrisa, del tipo que no confirmaba ni negaba.
—Digamos que tenía una biblioteca de patrones preparada.
Los ajusté para que encajaran con el tipo de errores que los estudiantes suelen cometer, como el contexto local y los hábitos de escritura comunes.
Dela Cruz asintió, asimilando la información que Jeff había compartido.
Desplazándose más abajo, Jeff se detuvo en otro bloque.
…
Python
def feedback_score(error_count):
if error_count == 0:
return “¡Excelente trabajo!”
elif error_count <= 3:
return “Bien, but considera revisar algunas partes.”
else:
return “Necesita mejorar.
Por favor, revisa tu gramática.”
…
[Nota del autor: Disculpas al lector Wilder6, ya que no puedo explicar esto completamente sin proporcionar un ejemplo de código.
Espero que lo entiendas, mi hermano🙏]
—Y este sistema de puntuación, ¿qué es lo que hace?
—preguntó Dela Cruz.
Jeff se inclinó ligeramente hacia adelante, señalando el código.
—Es la parte que da retroalimentación basada en cuántos errores gramaticales detecta el sistema.
Su tono se mantuvo firme y casual mientras señalaba con el dedo la primera condición.
El código que estaba señalando era error_count == 0, con un valor de retorno de «Excelente trabajo».
—Si la oración pasa sin ningún error, el sistema elogia la escritura, diciéndole al usuario que es excelente.
—Así que si no hay errores, y cuando el contador de errores es igual a cero, el programa devolverá el mensaje: «Excelente trabajo».
Luego señaló el siguiente bloque, elif error_count <= 3, con un valor de retorno de «Bien, pero considera revisar algunas partes».
—Esto muestra que si solo hay de 1 a 3 errores, sugiere algunas revisiones menores, pero aun así reconoce que la escritura es mayormente buena.
—Así que si el contador de errores es 3 o menos, el programa responderá con: «Bien, pero considera revisar algunas partes».
Finalmente, tocó la última línea, else, con un valor de retorno de «Necesita mejorar.
Por favor, revisa tu gramática».
—En este último código, si el contador de errores supera los 3 y no se cumple ninguna de las condiciones anteriores, el programa responderá con: «Necesita mejorar.
Por favor, revisa tu gramática».
—Es un sistema simple basado en umbrales.
La idea principal es dar una retroalimentación que sea clara y motivadora, en lugar de simplemente decir «incorrecto» o «correcto».
Ayuda al usuario, o más bien a los estudiantes, a comprender cuán lejos están de una escritura pulcra y los alienta a mejorar sin sentirse desanimados —finalizó.
Fuente: Webnovel.com, actualizado en Leernovelas.com