Codificación con IA: Un Espectro de Colaboración Humano-IA

2025-08-02
Codificación con IA: Un Espectro de Colaboración Humano-IA

Este artículo explora estrategias para la codificación asistida por IA, describiendo el proceso como un espectro de colaboración humano-IA. Desde la mínima dependencia de la IA (similar a discutir problemas con colegas de otra empresa) hasta la máxima dependencia (delegar tareas a un programador junior), el autor detalla los diferentes niveles de interacción y enfatiza la importancia de elegir la estrategia correcta según el contexto, equilibrando la profundidad del aprendizaje y la eficiencia.

Leer más

Una Comedia de Errores: Mi Biblioteca de Búsqueda Amateur vs. Elasticsearch

2025-06-06
Una Comedia de Errores: Mi Biblioteca de Búsqueda Amateur vs. Elasticsearch

El autor compara su biblioteca de búsqueda de texto completo basada en Pandas, SearchArray, con Elasticsearch utilizando el benchmark BEIR. Los resultados son humillantes: SearchArray tiene un rendimiento significativamente inferior al de Elasticsearch en todos los aspectos. El artículo profundiza en las razones, destacando las optimizaciones en motores de búsqueda listos para producción, como el algoritmo WAND e índices invertidos eficientes. La falta de estas optimizaciones en SearchArray conduce a un rendimiento deficiente. El autor concluye que SearchArray es adecuado para prototipado en conjuntos de datos más pequeños, pero no para sistemas de recuperación a gran escala.

Leer más
Desarrollo

Supercarga la Búsqueda con LLMs: Un Enfoque Barato y Rápido

2025-04-09
Supercarga la Búsqueda con LLMs: Un Enfoque Barato y Rápido

Este artículo muestra cómo construir un servicio de búsqueda rápido y rentable utilizando Modelos de Lenguaje Grandes (LLMs). El autor implementa una aplicación FastAPI que llama a un LLM ligero (Qwen2-7B), aprovechando Google Kubernetes Engine (GKE) Autopilot para la gestión automatizada de clústeres, con el fin de lograr el análisis estructurado de las consultas de búsqueda. La creación e implementación de imágenes Docker, combinadas con un mecanismo de caché Valkey, mejoran significativamente el rendimiento y la escalabilidad. Este enfoque evita llamadas frecuentes a APIs en la nube costosas, reduciendo costes y mostrando el potencial de ejecutar LLMs en infraestructura local, ofreciendo una nueva perspectiva en la construcción de motores de búsqueda más inteligentes y rápidos.

Leer más
Desarrollo

Conquistando Jueces de Búsqueda LLM Torpes con ML Clásico

2025-01-24
Conquistando Jueces de Búsqueda LLM Torpes con ML Clásico

El autor explora el uso de un LLM local como juez de relevancia de búsqueda, una alternativa económica a OpenAI. Los juicios individuales de LLM son poco fiables, por lo que el artículo propone combinar las evaluaciones de varios atributos de productos (nombre, clasificación, descripción, etc.) de múltiples LLMs utilizando aprendizaje automático tradicional (por ejemplo, árboles de decisión) para mejorar la precisión. Los experimentos muestran que este enfoque puede predecir las preferencias humanas y revelar la lógica detrás de las etiquetas humanas, ayudando en la optimización de los motores de búsqueda.

Leer más
Desarrollo

Priorizar el código desechable sobre los documentos de diseño: Un enfoque de desarrollo de software más eficiente

2024-12-15
Priorizar el código desechable sobre los documentos de diseño: Un enfoque de desarrollo de software más eficiente

En el desarrollo de software, el método tradicional de documento de diseño más desarrollo incremental no siempre es eficiente. El autor Doug Turnbull propone un enfoque de "ataque de código": implementar rápidamente un prototipo usando un PR temporal, obtener retroalimentación temprana del equipo, refinar el diseño y luego dividirlo gradualmente en PRs implementables. Este método fomenta la iteración rápida, la detección temprana de problemas y considera el código en sí como la mejor documentación. Si bien los documentos de diseño todavía tienen valor en situaciones específicas, el autor aboga por "mostrar, no contar", utilizando prototipos de código para una validación e iteración rápidas para lograr un desarrollo de software más eficiente.

Leer más