
Los gigantes tecnológicos estadounidenses dominaban el mercado de la IA, pero el lanzamiento de DeepSeek causó revuelo en la industria y generó un revuelo masivo. Sin embargo, como si eso no fuera suficiente, surgió Qwen 2.5, que superó a DeepSeek en múltiples áreas. Al igual que otros modelos de razonamiento como DeepSeek-R1 y O1 de OpenAI, Qwen 2.5-Max opera de una manera que oculta su proceso de pensamiento, lo que hace más difícil rastrear su lógica de toma de decisiones.
En este artículo, se ponen a prueba ChatGPT, Qwen y DeepSeek con una serie de desafíos clave que van desde la resolución de problemas de cálculo hasta la depuración de código . Ya sea que sea un desarrollador que busca el asistente de codificación de IA perfecto , un investigador que aborda la mecánica cuántica o un profesional de negocios , hoy intentaré revelar qué modelo es la opción más inteligente para sus necesidades (y su presupuesto).
ChatGPT, desarrollado por OpenAI, sigue siendo una fuerza dominante en el espacio de la IA, construido sobre la poderosa arquitectura GPT-5 y perfeccionado mediante el aprendizaje por refuerzo a partir de la retroalimentación humana (RLHF) . Es una opción confiable para una variedad de tareas, desde redacción creativa hasta documentación técnica, lo que lo convierte en una excelente opción para creadores de contenido, educadores y empresas emergentes. Sin embargo, no es perfecto. Cuando se trata de campos especializados, como matemáticas avanzadas o dominios legales de nicho, puede tener dificultades. Además de eso, sus altos costos de infraestructura dificultan que las empresas más pequeñas o los desarrolladores individuales accedan a él fácilmente.
ChatGPT, construido con una considerable inversión de más de 3 mil millones de dólares, es un modelo de infraestructura masiva, mientras que DeepSeek logró un rendimiento similar con solo 5,6 millones de dólares: un momento clásico de China, ¿no?
De la nada, DeepSeek surgió como un caballo oscuro en la carrera de la IA, desafiando a los gigantes establecidos con su enfoque en la precisión y eficiencia computacional.
A diferencia de sus competidores, está diseñado para tareas científicas y matemáticas y está entrenado en conjuntos de datos de primer nivel como arXiv y Wolfram Alpha , lo que le ayuda a desempeñarse bien en áreas como optimización, simulaciones físicas y problemas matemáticos complejos . La verdadera fortaleza de DeepSeek es lo económico que es (sin juego de palabras con China 😤). Mientras que modelos como ChatGPT y Qwen requieren recursos masivos, Deepseek hace el trabajo con un costo mucho menor. Así que sí, no necesitas obtener $ 1000 por una suscripción a ChatGPT
La forma de responder de DeepSeek parece un poco robótica y no se adapta bien a tareas que no sean demasiado técnicas. Es ideal para campos específicos como las matemáticas y la investigación, pero no para conversaciones informales o creativas.
Después de Deepseek, ¿quién habría pensado que otra IA china aparecería y comenzaría a tomar el control? Una jugada clásica de China: difundir algo y esta vez es una IA, jajaja
Qwen está dominando el mundo de los negocios con su configuración multilingüe, destacando en lugares como Asia, especialmente con mandarín y árabe. Es la opción ideal para tareas legales y financieras, y no es un modelo de razonamiento como DeepSeek R1, lo que significa que no se puede ver su proceso de pensamiento. Pero al igual que DeepSeek, tiene ese aire robótico, lo que lo hace menos divertido para el trabajo casual o creativo. Si quieres algo más flexible, Qwen puede no ser la mejor opción.
Puedes pensarlo como un equipo de especialistas: si haces una pregunta compleja sobre física, solo los expertos en física responden, mientras que el resto del equipo permanece inactivo.
Para garantizar la imparcialidad y una evaluación exhaustiva, lancemos algunos de los desafíos más publicitados, como problemas matemáticos difíciles, problemas de física alocados, tareas de codificación y preguntas complicadas del mundo real.
— — — — — — — — — — — —
Para empezar, profundicemos en el clásico problema de la "bola giratoria en una caja", que se ha convertido en un punto de referencia popular para probar qué tan bien los diferentes modelos de IA manejan tareas complejas.
Imagínese una forma bidimensional que gira en el espacio. En su interior, una pelota rebota en las paredes, permaneciendo dentro de los límites y sin ninguna fuerza externa. A primera vista, puede parecer simple , pero tener en cuenta la gravedad, la rotación constante y la dinámica precisa de las colisiones hace que sea una simulación desafiante. Le sorprendería saber lo diferente que es la forma en que los modelos de IA lo abordan.
Write a Python script that simulates a yellow ball bouncing inside a rotating square. The ball should bounce realistically off the square's edges, with the square rotating slowly over time The ball must stay within the square's boundaries as the box rotates. Box Rotation: The box should rotate continuously. Ball Physics: The ball reacts to gravity and bounces off the box's walls. Ball Inside Boundaries: Make sure the ball doesn't escape the box's boundaries, even as the box rotates. Realistic Physics: Include proper collision detection and smooth animation Use Python 3.x with Pygame or any similar library for rendering
Con Chatgpt tenía grandes expectativas. ¿Pero los resultados? Digamos que fueron… decepcionantes. Mientras que DeepSeek se tomó su tiempo para lograr precisión, ChatGPT generó instantáneamente un script de apariencia limpia. La pelota no rebotó de manera realista. En cambio, falló en los bordes de la caja , a veces se quedó atascada en las esquinas o atravesó las paredes. Está claro que ChatGPT prefiere la velocidad a la profundidad y ofrece una solución que funciona, pero solo en el sentido más básico.
import pygame import math # Initialize Pygame pygame.init() # Constants WIDTH, HEIGHT = 600, 600 FPS = 60 GRAVITY = 0.2 BOUNCE_DAMPING = 0.8 ROTATION_SPEED = 0.5 # Degrees per frame BALL_RADIUS = 10 # Colors YELLOW = (255, 255, 0) WHITE = (255, 255, 255) BLACK = (0, 0, 0) # Screen setup screen = pygame.display.set_mode((WIDTH, HEIGHT)) clock = pygame.time.Clock() # Square properties square_center = (WIDTH // 2, HEIGHT // 2) square_size = 300 angle = 0 # Ball properties ball_pos = [WIDTH // 2, HEIGHT // 2 - 50] ball_velocity = [2, 0] # Function to rotate a point around a center def rotate_point(point, center, angle): x, y = point cx, cy = center radians = math.radians(angle) cos_a, sin_a = math.cos(radians), math.sin(radians) new_x = cos_a * (x - cx) - sin_a * (y - cy) + cx new_y = sin_a * (x - cx) + cos_a * (y - cy) + cy return new_x, new_y # Main loop running = True while running: screen.fill(BLACK) for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # Apply gravity ball_velocity[1] += GRAVITY # Move ball ball_pos[0] += ball_velocity[0] ball_pos[1] += ball_velocity[1] # Compute rotated square corners half_size = square_size // 2 square_corners = [ (-half_size, -half_size), (half_size, -half_size), (half_size, half_size), (-half_size, half_size) ] rotated_corners = [rotate_point((square_center[0] + x, square_center[1] + y), square_center, angle) for x, y in square_corners] # Check for collisions for i in range(4): p1, p2 = rotated_corners[i], rotated_corners[(i + 1) % 4] dx, dy = p2[0] - p1[0], p2[1] - p1[1] length = math.hypot(dx, dy) normal = (-dy / length, dx / length) # Perpendicular normal # Distance from ball to edge projection = (ball_pos[0] - p1[0]) * normal[0] + (ball_pos[1] - p1[1]) * normal[1] if projection < BALL_RADIUS: # Ball is colliding with edge # Reflect velocity dot = ball_velocity[0] * normal[0] + ball_velocity[1] * normal[1] ball_velocity[0] -= 2 * dot * normal[0] ball_velocity[1] -= 2 * dot * normal[1] # Apply bounce damping ball_velocity[0] *= BOUNCE_DAMPING ball_velocity[1] *= BOUNCE_DAMPING # Move ball out of collision ball_pos[0] += normal[0] * (BALL_RADIUS - projection) ball_pos[1] += normal[1] * (BALL_RADIUS - projection) # Rotate square angle += ROTATION_SPEED # Draw rotated square pygame.draw.polygon(screen, WHITE, rotated_corners, 2) # Draw ball pygame.draw.circle(screen, YELLOW, (int(ball_pos[0]), int(ball_pos[1])), BALL_RADIUS) # Update display pygame.display.flip() clock.tick(FPS) pygame.quit()
El resultado de DeepSeek me dejó realmente sorprendido. Mientras que ChatGPT generó código rápidamente, DeepSeek tardó 200 segundos solo en pensar en el problema. DeepSeek no solo escribió un script funcional , sino que elaboró una simulación altamente optimizada y con precisión física que manejó cada caso extremo sin fallas.
import pygame import math # Initialize Pygame pygame.init() # Constants WIDTH, HEIGHT = 600, 600 SQUARE_SIZE = 400 SQUARE_HALF = SQUARE_SIZE // 2 BALL_RADIUS = 10 GRAVITY = 0.5 RESTITUTION = 0.8 ANGULAR_VELOCITY = 1 # Degrees per frame # Setup display screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Bouncing Ball in Rotating Square") clock = pygame.time.Clock() # Initialize variables square_center = (WIDTH//2, HEIGHT//2) angle = 0 ball_pos = [WIDTH//2, HEIGHT//2] ball_vel = [0, 0] def rotate_point(point, center, angle): """Rotate a point around a center by given angle (degrees)""" theta = math.radians(-angle) ox, oy = center px, py = point qx = ox + math.cos(theta) * (px - ox) - math.sin(theta) * (py - oy) qy = oy + math.sin(theta) * (px - ox) + math.cos(theta) * (py - oy) return qx, qy running = True while running: dt = clock.tick(60) / 1000 # Delta time in seconds # Event handling for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # Update square rotation angle = (angle + ANGULAR_VELOCITY) % 360 # Apply physics ball_vel[1] += GRAVITY ball_pos[0] += ball_vel[0] * dt ball_pos[1] += ball_vel[1] * dt # Collision detection and response # Convert ball position to square's local coordinate system translated = (ball_pos[0] - square_center[0], ball_pos[1] - square_center[1]) rotated = rotate_point((translated[0], translated[1]), (0, 0), -angle) collision = False new_local_x, new_local_y = rotated[0], rotated[1] # Check boundaries in local coordinates if rotated[0] < -SQUARE_HALF + BALL_RADIUS: new_local_x = -SQUARE_HALF + BALL_RADIUS collision = True elif rotated[0] > SQUARE_HALF - BALL_RADIUS: new_local_x = SQUARE_HALF - BALL_RADIUS collision = True if rotated[1] < -SQUARE_HALF + BALL_RADIUS: new_local_y = -SQUARE_HALF + BALL_RADIUS collision = True elif rotated[1] > SQUARE_HALF - BALL_RADIUS: new_local_y = SQUARE_HALF - BALL_RADIUS collision = True if collision: # Convert corrected position back to global coordinates corrected = rotate_point((new_local_x, new_local_y), (0, 0), angle) ball_pos[0] = corrected[0] + square_center[0] ball_pos[1] = corrected[1] + square_center[1] # Calculate reflection in local coordinates local_vel = rotate_point(ball_vel, (0, 0), -angle) if new_local_x != rotated[0]: # X-axis collision local_vel = (-local_vel[0] * RESTITUTION, local_vel[1]) if new_local_y != rotated[1]: # Y-axis collision local_vel = (local_vel[0], -local_vel[1] * RESTITUTION) # Convert velocity back to global coordinates global_vel = rotate_point(local_vel, (0, 0), angle) ball_vel[0], ball_vel[1] = global_vel[0], global_vel[1] # Drawing screen.fill((0, 0, 0)) # Draw rotating square square = pygame.Surface((SQUARE_SIZE, SQUARE_SIZE), pygame.SRCALPHA) pygame.draw.rect(square, (255, 0, 0), (0, 0, SQUARE_SIZE, SQUARE_SIZE), 2) rotated_square = pygame.transform.rotate(square, angle) screen.blit(rotated_square, rotated_square.get_rect(center=square_center)) # Draw ball pygame.draw.circle(screen, (255, 255, 0), (int(ball_pos[0]), int(ball_pos[1])), BALL_RADIUS) pygame.display.flip() pygame.quit()
Si el resultado de ChatGPT fue decepcionante, el de Qwen fue francamente decepcionante . Dada la sólida reputación de Qwen en el manejo de tareas complejas, tenía grandes expectativas sobre su rendimiento. Pero cuando ejecuté su código para la simulación de la bola giratoria, los resultados estuvieron lejos de lo que esperaba . Al igual que ChatGPT, Qwen generó código casi instantáneamente, sin pensarlo mucho.
La pelota estuvo fuera de la caja durante la mayor parte de la simulación, desafiando por completo las leyes de la física. La caja en sí estaba medio fuera del marco , por lo que solo una parte de ella era visible en el lienzo.
import pygame import math # Initialize Pygame pygame.init() # Screen dimensions WIDTH, HEIGHT = 600, 600 screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Bouncing Ball in Rotating Square") # Colors YELLOW = (255, 255, 0) WHITE = (255, 255, 255) BLACK = (0, 0, 0) # Clock for controlling frame rate clock = pygame.time.Clock() FPS = 60 # Box properties box_size = 300 box_center = (WIDTH // 2, HEIGHT // 2) angle = 0 # Initial rotation angle rotation_speed = 1 # Degrees per frame # Ball properties ball_radius = 10 ball_pos = [box_center[0], box_center[1] - box_size // 4] # Start near the top center of the box ball_velocity = [4, 0] # Initial velocity (x, y) gravity = 0.2 # Gravity effect # Function to rotate a point around another point def rotate_point(point, angle, origin): ox, oy = origin px, py = point qx = ox + math.cos(math.radians(angle)) * (px - ox) - math.sin(math.radians(angle)) * (py - oy) qy = oy + math.sin(math.radians(angle)) * (px - ox) + math.cos(math.radians(angle)) * (py - oy) return qx, qy # Main game loop running = True while running: screen.fill(BLACK) # Handle events for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # Update ball physics ball_velocity[1] += gravity # Apply gravity ball_pos[0] += ball_velocity[0] ball_pos[1] += ball_velocity[1] # Rotate the box angle += rotation_speed if angle >= 360: angle -= 360 # Define the four corners of the square corners = [ (-box_size / 2, -box_size / 2), (box_size / 2, -box_size / 2), (box_size / 2, box_size / 2), (-box_size / 2, box_size / 2) ] # Rotate the corners around the center rotated_corners = [rotate_point(corner, angle, box_center) for corner in corners] # Check collision with the edges of the box collided = False for i in range(4): p1 = rotated_corners[i] p2 = rotated_corners[(i + 1) % 4] # Line segment between p1 and p2 x1, y1 = p1 x2, y2 = p2 # Closest point on the line to the ball dx = x2 - x1 dy = y2 - y1 t = max(0, min(1, ((ball_pos[0] - x1) * dx + (ball_pos[1] - y1) * dy) / (dx * dx + dy * dy))) closest_x = x1 + t * dx closest_y = y1 + t * dy # Distance between ball and closest point distance_sq = (closest_x - ball_pos[0]) ** 2 + (closest_y - ball_pos[1]) ** 2 if distance_sq <= ball_radius ** 2: # Collision detected collided = True # Normal vector of the edge edge_length = math.hypot(dx, dy) nx = -dy / edge_length ny = dx / edge_length # Reflect the velocity vector dot_product = ball_velocity[0] * nx + ball_velocity[1] * ny ball_velocity[0] -= 2 * dot_product * nx ball_velocity[1] -= 2 * dot_product * ny # Ensure the ball stays inside the box if not collided: # Clamp the ball position within the box ball_pos[0] = max(box_center[0] - box_size / 2 + ball_radius, min(ball_pos[0], box_center[0] + box_size / 2 - ball_radius)) ball_pos[1] = max(box_center[1] - box_size / 2 + ball_radius, min(ball_pos[1], box_center[1] + box_size / 2 - ball_radius)) # Draw the rotating square pygame.draw.polygon(screen, WHITE, rotated_corners, 2) # Draw the ball pygame.draw.circle(screen, YELLOW, (int(ball_pos[0]), int(ball_pos[1])), ball_radius) # Update the display pygame.display.flip() # Cap the frame rate clock.tick(FPS) # Quit Pygame pygame.quit()
A la hora de resolver problemas del mundo real, no todos los modelos de IA son iguales. Para poner a prueba sus capacidades, presenté un problema de persecución clásico:
“Se robó un objeto valioso. El propietario inició la persecución después de que el ladrón ya había huido 45 km. Después de recorrer 160 km, el propietario descubrió que el ladrón se encontraba 18 km más adelante. ¿Cuántos kilómetros más debe recorrer el propietario para atrapar al ladrón?”
ChatGPT tardó 3 intentos en llegar a la respuesta correcta. Al principio, interpretó mal el problema, pero finalmente se corrigió a sí mismo, demostrando persistencia aunque le faltó eficiencia en sus primeros intentos.
DeepSeek también respondió correctamente en el primer intento , pero tardó un poco más que Qwen. Ofreció una solución detallada, paso a paso, con un razonamiento claro, lo que demuestra su fortaleza en el pensamiento profundo y la precisión.
Qwen respondió correctamente en el primer intento y lo hizo más rápido que DeepSeek. Proporcionó una solución concisa y precisa sin pasos innecesarios, lo que demuestra una gran velocidad y precisión en la resolución de problemas.
Si bien las tres IA finalmente respondieron correctamente, Qwen se destacó por su velocidad y eficiencia, mientras que DeepSeek mostró su enfoque metódico. ChatGPT requirió múltiples intentos
Si bien la velocidad y la eficiencia suelen ser apreciadas en la IA, el verdadero factor decisivo es la inteligencia emocional : la capacidad de comprender, interpretar y responder a las emociones humanas. Los modelos de IA como DeepSeek se destacan en precisión y lógica, y ChatGPT brilla en creatividad. Vamos a probarlo
— — — — — — — —
Write a messy emotional love letter
— — — — — — — —
Curiosamente, cuando se probó la originalidad similar a la humana , los tres modelos (ChatGPT, DeepSeek y Qwen) tuvieron dificultades para liberarse de los patrones generados por la IA. Nota: los tres comenzaron sus respuestas con la misma frase robótica: "Ni siquiera sé por dónde empezar" . De todos modos, tenía grandes expectativas con Chatgpt, ¡pero Qwen ganó!
Conclusiones clave:
DeepSeek *: La opción ideal para la investigación y el pensamiento crítico , que supera a otros en precisión y profundidad.*
Qwen *: igualó a DeepSeek en la resolución del acertijo clásico en el primer intento y ganó en contenido humanizado , lo que lo convierte en un juego todoterreno muy potente.*
ChatGPT *: Fueron necesarios varios intentos para resolver el acertijo, pero sigue siendo la mejor opción para tareas creativas e interacciones humanas .*
Me encantaría escuchar tu opinión en los comentarios y que me corrijas si me equivoco. Si este artículo te resultó útil, aplaude, comparte y comparte tus puntos de vista. No dudes en apoyarme ***
Estoy entusiasmado por seguir aprendiendo y explorando este vasto campo. Agradezco sus comentarios y espero tener conversaciones enriquecedoras.