Comparación del modelo de plataforma Cursor: pruebas DeepSeek V3/R1 vs Claude 3.5 Sonnet
DeepSeek Prueba del último modelo: V3 y R1 frente a... Claude 3,5 Sonnet, ¿quién es mejor?
DeepSeek ha hecho recientemente un anuncio en Cursor La plataforma ha lanzado sus dos nuevos modelos, DeepSeek V3 y R1. Actualmente, muchos desarrolladores (incluidos nosotros) utilizan Claude 3.5 Sonnet (última versión claude-3-5-sonnet-20241022) como modelo lingüístico principal. Para ver cómo funcionan los nuevos modelos en la práctica, decidimos hacer una prueba comparativa real entre estos dos modelos DeepSeek y Claude 3.5 Sonnet.
Introducción al modelo DeepSeek
DeepSeek ha estado recibiendo mucha atención últimamente por abrir su potente modelo R1, que se afirma que es comparable al modelo o1 de OpenAI en términos de rendimiento, lo cual no es tarea fácil. La plataforma Cursor siempre ha actuado con rapidez, y en cuanto el modelo DeepSeek salió a la luz, la gente no podía esperar a empezar a probarlo en aplicaciones del mundo real.
Comparación de prestaciones Referencia
Comunicado oficial de DeepSeek DeepSeek R1 y V3 contra los modelos o1 y o1-mini de OpenAI.
Resumen de las tareas de comprobación
Esta prueba comparativa consta de dos partes principales:
- Modo chat -- Simula escenarios de desarrollo cotidianos y explora cómo añadir acciones del lado del servidor a un componente de cuadro de diálogo en una aplicación Next.js.
- modo de generación de código -- Modificar un archivo de configuración CircleCI para simular un escenario de mantenimiento de código con el objetivo de eliminar la configuración relacionada con el despliegue del front-end y los pasos de prueba E2E (end-to-end) que ya no sean necesarios.
Es importante señalar que el "Modo Agente" de la plataforma Cursor, que generalmente se refiere a un modo en el que un modelo puede realizar operaciones e invocar herramientas por sí mismo, actualmente sólo está disponible para la plataforma Cursor. Antrópico y GPT-4o están abiertos, por lo que en esta prueba no interviene el modelo proxy.
Comparación del modo de chat
declaración de objetivos
La pregunta que planteábamos era cómo añadir correctamente acciones del lado del servidor a un componente de cuadro de diálogo en una aplicación Next.js. La pregunta específica era:
"Por favor, explique cómo implementar una operación del lado del servidor y pasarla correctamente a este componente de cuadro de diálogo."
Para proporcionar un contexto más específico, también hemos adjuntado el archivo que contiene el código relacionado con el componente del cuadro de diálogo.
Rendimiento de DeepSeek R1
El DeepSeek R1 fue naturalmente nuestra primera elección para las pruebas debido a su alto perfil. Sin embargo, al utilizar el R1, descubrimos rápidamente dos problemas bastante obvios:
- El flujo de salida es lento
R1 tarda en generar respuestas y hay que esperar más para ver el resultado completo. - La respuesta comienza con un bloque claro
R1 emite una gran sección de contenido envuelto en etiquetas antes de responder formalmente, similar a la presentación de un proceso de pensamiento. Este paso de preprocesamiento es aceptable si mejora significativamente la calidad de la respuesta final. El problema, sin embargo, es que cuando se superpone a una salida de flujo lento, retrasa significativamente la presentación de información realmente válida. Por ejemplo, si el modelo emite una gran cantidad de contenido antes de transmitir lentamente la respuesta real, el tiempo de espera total se hace muy largo. Teóricamente, sería posible configurar la regla Cursor para omitir secciones, pero esto estaba fuera del alcance de esta prueba de estado por defecto.
Además, la respuesta de R1 sugiere instalar la biblioteca next-safe-action/hooks para resolver el problema, pero no explica con más detalle cómo utilizar esta biblioteca para las operaciones del lado del servidor en una respuesta posterior. Para un problema relativamente sencillo como el que planteamos, parece un poco "trivial" limitarse a sugerir la instalación de una biblioteca adicional.
Rendimiento de DeepSeek V3
DeepSeek V3 también funciona razonablemente bien, incluso recomienda utilizar el Reaccione 19 de la nueva función useFormStatus. Esto sugiere que el modelo V3 aprende sobre las nuevas tecnologías y bases de código de front-end. Sin embargo, V3 tiene un error crítico en la implementación de su código: llama a operaciones del lado del servidor directamente desde componentes del lado del cliente. En Next.js, esto no es factible. (Nota al margen: Next.js requiere que el código del lado del servidor se ejecute en un entorno de servidor por motivos de seguridad, rendimiento y organización del código, mientras que el código de los componentes del lado del cliente se ejecuta por defecto en el navegador. Llamar código del lado del servidor directamente en los componentes del lado del cliente puede dar lugar a errores como que no se encuentren los módulos del lado del servidor, que fallen las peticiones de red, etc.). Por ejemplo, si se llama a una función del servidor directamente desde el código JavaScript del cliente, se producirá un error de ejecución o no se ejecutará el código del servidor.
Al igual que en el R1, la velocidad de streaming de salida del V3 es más lenta. Pero como el V3 no tiene los largos bloques del R1, la experiencia general es ligeramente mejor que la del R1.
Interpretación del soneto Claude 3.5
En comparación, Claude 3.5 Sonnet es el más rápido, incluso en "modo de solicitud lenta" (por ejemplo, cuando el número de solicitudes de API por mes supera la cuota gratuita y entra en una solicitud de pago, puede experimentar un límite de velocidad de solicitud). Aunque Sonnet no recomienda la última función de React (useFormStatus) como hacía V3, y comete un error similar al de V3 al llamar a operaciones del lado del servidor directamente desde componentes del lado del cliente, da una solución que se acerca más a la respuesta real disponible. Sonnet sugiere que añadir la directiva 'use server' a la función de operación del lado del servidor Sonnet sugiere que añadir la directiva 'use server' a la función de acción del lado del servidor satisfaría los requisitos de Next.js.(Complemento de conocimiento: "utilizar servidor") es una directiva clave introducida en Next.js versión 13 y posteriores para declarar explícitamente una función como operación del lado del servidor. Añadiendo la directiva usar servidor Entonces Next.js puede reconocer correctamente la función como código del lado del servidor y permitir que los componentes del lado del cliente la llamen de forma segura.) De hecho, es tan sencillo como añadir usar servidor Que conste que la solución de Sonnet resuelve el problema en esencia, y es más práctica que la solución dada por el modelo DeepSeek.
Comparación de los modos de generación de código
declaración de objetivos
En esta sesión de prueba, proporcionamos un perfil CircleCI para desplegar una aplicación full-stack. Esta aplicación contiene un front-end React puro y un back-end Node.js. El proceso de despliegue original contiene múltiples pasos. Nuestro objetivo es modificar este archivo de configuración para hacer las dos cosas siguientes:
- Eliminar todas las configuraciones relacionadas con el despliegue del front-end
- Al reconocer que la aplicación es sólo back-end, las pruebas E2E (End-to-End Testing, normalmente utilizadas para probar el flujo completo del usuario) ya no son necesarias y se eliminan los pasos de configuración pertinentes. (Conocimientos añadidos: las pruebas E2E se utilizan principalmente para simular el comportamiento del usuario y verificar el flujo completo de las interacciones entre front-end y back-end. Si la aplicación se queda con un back-end y sin interfaz de usuario, las pruebas E2E carecen de sentido. Los marcos de pruebas E2E más utilizados son Cypress, Selenium, etc.).
En el aviso de incidencia indicamos explícitamente "eliminar todas las secciones relacionadas con el despliegue del front-end" y proporcionar el archivo de configuración completo de CircleCI al modelo como contexto.
Rendimiento de DeepSeek R1
Esperábamos que el modelo R1 con bloques funcionara mejor en las tareas que requieren comprensión contextual y múltiples modificaciones (tareas de Compositor). Sin embargo, no fue así:
- R1 omite algunas configuraciones que están claramente relacionadas con el despliegue del front-end (por ejemplo, la parte del archivo config que se refiere a la construcción de referencias webapp todavía se conserva). Pero hay que reconocer que identifica correctamente el archivo despliegue-netlify (el paso de desplegar en la plataforma Netlify, que se utiliza habitualmente como plataforma de alojamiento de recursos estáticos front-end) Este paso ya no es necesario y se ha eliminado.
- Al mismo tiempo, R1 elimina incorrectamente el paso de despliegue del backend denominado deploy_production_apilo que puede provocar que los servicios back-end no se desplieguen correctamente. Además, R1 indetectable La prueba E2E ya no es relevante y conserva la configuración asociada.
Rendimiento de DeepSeek V3
DeepSeek V3 funciona ligeramente mejor que R1 en las tareas de modificación de código. Corrige algunas configuraciones de despliegue front-end que R1 pasó por alto, pero también expone nuevos problemas - por ejemplo, V3 todavía conserva el paso deploy-netlify, lo que sugiere que no entiende completamente los requisitos de la tarea. En su haber, la V3 ha hecho un buen trabajo al mantener intacto el paso de despliegue del back-end, y no ha eliminado por error la configuración de despliegue del back-end como hizo en la R1. Sin embargo, al igual que en la R1, la V3 tampoco determinó que la sección de prueba E2E podía eliminarse.
Interpretación del soneto Claude 3.5
El venerable Sonnet Claude 3.5 fue el que mejor se comportó en esta tarea de modificación del código:
- Sonnet ha eliminado con éxito la mayoría de los comandos relacionados con la implantación del front-endAunque, como el V3, también es Error al eliminar el paso deploy-netlify.
- En cuanto a los pasos de implantación de back-end, Sonnet también ha mantenido la integridad delNo, no hubo ningún borrado accidental.
- Sonnet reconoció que las pruebas E2E ya no eran necesarias, puesto que sólo quedaban los servicios de back-end.Como resultado, Sonnet ha eliminado todas las configuraciones relacionadas con las pruebas E2E, incluyendo el Cypress Binary Cache, que se utiliza para acelerar las pruebas de Cypress. Como resultado, Sonnet ha eliminado todas las configuraciones relacionadas con las pruebas E2E, incluida la Cypress Binary Cache (la caché utilizada para acelerar las pruebas de Cypress).(Conocimiento añadido: El Cypress Binary Cache se utiliza para almacenar en caché los binarios necesarios para la ejecución de las pruebas Cypress, lo que puede acelerar el inicio de las pruebas posteriores. Sin embargo, si se elimina la prueba E2E, esta configuración de caché también debe eliminarse para evitar configuraciones redundantes). Esta fue la mejor solución en esta prueba, lo que demuestra la profunda comprensión de Sonnet de la intención de la tarea y su capacidad para realizar cambios más exhaustivos en el código.
resúmenes
La plataforma Cursor introduce constantemente nuevos modelos de IA, aportando siempre nuevas opciones y posibilidades a los desarrolladores. Aunque la tarea de esta prueba comparativa era relativamente sencilla, bastó para demostrar inicialmente las capacidades de ambos modelos de DeepSeek en un escenario de desarrollo del mundo real. En comparación con Claude 3.5 Sonnet, los modelos de DeepSeek tienen sus propios puntos fuertes y débiles.
En conjunto, Claude 3.5 Sonnet está claramente por delante de los dos modelos de DeepSeek en esta prueba, tanto en velocidad de respuesta como en calidad de salida. Aunque es posible que la velocidad de respuesta del modelo de DeepSeek mejore en futuras versiones debido a la optimización del servidor, la distribución de la red y otros factores, Claude 3.5 Sonnet sigue estando en los primeros puestos en cuanto a practicidad y fiabilidad en función de los resultados reales de las pruebas realizadas hasta el momento.
En general, esta prueba muestra que Claude 3.5 Sonnet sigue siendo la opción más madura y fiable en la plataforma Cursor hoy en día. Sin embargo, el nuevo modelo de DeepSeek también muestra cierto potencial y merece la atención y experimentación continuas de los desarrolladores. A medida que el modelo continúe siendo iterado y mejorado, es posible que obtenga mejores resultados en el futuro.
© declaración de copyright
Derechos de autor del artículo Círculo de intercambio de inteligencia artificial Todos, por favor no reproducir sin permiso.
Artículos relacionados
Sin comentarios...