Plataforma de información sobre las propuestas presidenciales de Corea del Sur
(github.com/MinsuChae)Información de los candidatos a la 21.ª elección presidencial de un vistazo
- El título suena grandilocuente, pero dicho de forma simple, este es un proyecto que busca ofrecer información sobre la trayectoria de los candidatos presidenciales, sus propuestas de campaña y las controversias que los rodean de cara a la 21.ª elección presidencial.
- 🔗 https://daeseoneunjigeum.com
Objetivo de su creación
Personas conocidas mías de entre 20 y tantos años mostraron interés en el presidente y en las elecciones presidenciales, y pensé que, debido a varios acontecimientos recientes, el interés de la juventud por las elecciones había crecido y que era necesario fomentar su participación en la elección presidencial.
Sin embargo, al momento de votar, la realidad es que resulta difícil revisar a cada persona en detalle y no es fácil juzgar quién es mejor al compararlos con otros candidatos.
Entonces lo hice a partir de una idea muy simple: “Hagamos un sitio que responda preguntas de inmediato con un LLM”. La planificación tomó entre 2 y 5 días, y la programación y el despliegue alrededor de dos días.
Funciones disponibles
- Resumen de trayectoria, propuestas y controversias por candidato
(Como aún no se ha publicado el boletín electoral oficial, por ahora es un borrador basado en noticias.) - Preguntas y respuestas en tiempo real, como “Cuéntame las principales propuestas del candidato ○○”
(Gemma‑3‑1b‑itgenera las respuestas. Se ejecuta solo con CPU 😅 )
Planes a futuro
- Proveer información basada en los materiales oficiales de propaganda electoral
- Si recibe gran interés no solo a nivel de desarrolladores sino del público de Corea del Sur en general, o apoyo de instituciones, mejorar el modelo LLM a Gemma‑3‑27b
Puntos pendientes
- Tamaño del modelo
Originalmente quería ejecutar la versión de 27 b parámetros, pero requería 48 GB de VRAM.
Al final tuve que conformarme con el modelo de 1 b. (Incluso alquilar una sola A6000 costaría alrededor de 600 mil wones al mes.) - Calidad de datos limitada
Aunque hice una depuración a través de artículos de noticias, al no haber materiales oficiales todavía existe el problema de que es difícil identificar propuestas concretas. Planeo actualizarlo en cuanto se publiquen los boletines electorales. - Velocidad de respuesta del modelo LLM
Si se hacen saludos simples, responde en pocos segundos, pero cuando se le hacen preguntas clave sobre propuestas y temas similares, el problema es que tarda más de 1 minuto. Es difícil llamarlo tiempo real. Se debe a que corre en CPU. 😅
Solicitudes
- Si encuentran información incorrecta o algo incómodo de usar, por favor avísenme en los comentarios.
- El patrocinio de GPU o alianzas en la nube siempre son bienvenidos.
- ¡Les agradecería que evitaran pruebas de carga excesivas!
Como la participación electoral de los jóvenes se ha vuelto más importante recientemente, lo hice para que la información política sea más fácil y rápida de consultar.
Pasen a echarle un vistazo, busquen al candidato que les genere curiosidad y señalen lo que haga falta mejorar. 🙏
Aunque mi especialidad está en el área de computación, mi perfil está más orientado a investigador de IA que a desarrollador, así que puede haber cosas como código de prueba o validaciones de tipos de datos que resulten incómodas de ver para desarrolladores más experimentados.
9 comentarios
Hola. Me inspiré al ver esta publicación y también hice algo parecido, aunque con un formato un poco distinto. Personalmente he estado probando varias posibilidades de desarrollo de aplicaciones con IA desde una perspectiva de servicio, y esta vez fue una buena experiencia en cuanto al enfoque técnico y la implementación.
Lo estaré ejecutando con gemma 12b del 8 al 11 de mayo. Participé en una prueba beta realizada por una empresa que ofrece servicios similares a la computación en la nube con GPU, y llevé a cabo pruebas de carga relacionadas, aplicándolo para poder conocer la carga real.
Como es difícil seguir corrigiendo continuamente la información relacionada, la estoy actualizando cada vez que hay cambios importantes. La próxima actualización será la mañana del día 12, cuando queden definidos oficialmente los candidatos electorales, y después, cuando se publique el material oficial de campaña, planeo mejorarlo para brindar esta información mediante RAG.
El propósito es muy bueno, pero creo que si esta información se entrega con base en un LLM (y se proporciona de forma inexacta), también podría haber problemas legales..!
No lo había subido a varios sitios, pero no sé si fue por mis pruebas internas o por alguien más; de todos modos, por una carga excesiva quedó como zombie. Es una IA local y un modelo liviano, así que no pensé que se le pudiera meter una carga tan fuerte, pero al ejecutarlo en un entorno virtualizado terminó entrando en estado zombie...;; Lo revisaré y lo restauraré.
Para quienes ofrecen servicios de IA local, si usan procesamiento en GPU quizá sea menos grave, pero con CPU... creo que es mejor rendirse. No parece que alguien lo haya usado tanto como para esto...;;
Era un servidor físico donde no se hacían trabajos grandes, pero lo levanté como servicio en un docker container, y por muy bajas que fueran las especificaciones, la carga de CPU fue tan excesiva que hasta era difícil conectarse por
ssh...; No le puse límite de CPU, así que por eso hasta el servidor host terminó con problemas...Y tampoco parece que haya habido tantos usuarios reales usándolo...
¿Han considerado emitir una clave de OpenRouter para que se pueda usar, o también probar con WebLLM o Gemini Nano?
Gracias por avisarme. Primero, como no es un sitio estático, prefiero hacerlo en el backend en lugar de procesarlo necesariamente en el frontend, y así intentar ocultar la clave de API lo más posible.
Antes no lo tenía tan pensado, pero planeo usar OpenAI u otra API 7 o 14 días antes del día de la elección.
Hasta entonces, aunque se puedan reducir costos usando modelos pequeños, no puedo estimar cuánto se va a usar, así que soy cauteloso con su implementación.
Gracias a ti estuve investigando WebLLM. Desde mi posición como investigador en deep learning, estaba pensando en servir y ejecutar el modelo en algo como un CDN, y ahora supe que existe una forma de servirlo así. Pero todavía hay partes que me generan dudas. Si se ejecuta en el frontend, claro que la carga baja, pero me preocupa que la parte inicial de servir el modelo tome algo de tiempo. Esa parte me sigue haciendo pensar. Aun así, gracias a ti conocí un proyecto muy bueno como ese. Como todavía no lo he revisado bien, no terminé de entender si solo funcionan los modelos que están en el README, si también se pueden servir modelos compatibles, o si habría que subirlos a otro CDN. Yo creo que probablemente haya que servir el modelo por separado. Entonces creo que esa parte sería la que más me preocuparía. No sé cómo será en el extranjero, pero en Corea me pregunto si habrá algún CDN donde se puedan servir modelos. Por lo que encontré, los CDN nacionales que vi por lo general solo permiten imágenes.
Uy, no... T_T
Aunque es un modelo LLM de 1B, de todos modos parece que requiere bastante cómputo. Ayer todo fue un caos y de repente el contenedor quedó en estado zombi, así que estuve haciendo pruebas cambiando continuamente el límite de uso de CPU en Docker, y al final parece que apenas aguanta entre 3 y 5 solicitudes simultáneas.
Visto de otra manera, mientras hacía este proyecto sencillo, también quería entender qué tanta carga implicaría ofrecer un servicio de LLM en una situación con escasez de recursos de GPU, considerando que la IA local probablemente llegará en unos años.
La CPU del servidor es un AMD 7700. Al final me di cuenta de que, para hacerlo con IA local, hay que considerar muchas cosas. Hay un problema de timeouts antes de que llegue la respuesta después de enviar el POST, y al final pensé que, para ofrecer un servicio estable, sería mejor contar con muchas GPU o dispositivos dedicados a inferencia (por ejemplo, Google TPU), de modo que la velocidad de respuesta sea favorable, y que también habría que ofrecerlo en forma de cola.
En realidad, en Corea son pocas las empresas que operan LLM de forma adecuada (como las ya conocidas Naver, Kakao y Upstage), y como en muchos casos los chatbots solo cumplen funciones determinadas o se conectan a APIs de modelos LLM, esto me hizo pensar cuánta carga puede generar y, si se quisiera reducir la carga del servidor para ofrecer este tipo de servicio en la web, cómo habría que hacerlo.
Como referencia, algunas personas que vean este comentario podrían pensar: "¿no basta con pasar el modelo y desplegarlo?", pero el tamaño de
gemma3 1bsupera 1 GB, y aunque estoy usando hosting de servidor, no creí que pudiera soportar ese tráfico.Tal vez se podría preinstalar de alguna forma en formato de app, pero creo que las empresas que hayan pensado bien cómo ofrecer este tipo de servicio en la web reduciendo la carga del servidor podrían terminar operando con costos de mantenimiento más bajos.
Muchas gracias por compartir una experiencia tan valiosa.