Una implementación de codificación de un marco integral de evaluación comparativa de IA empresarial para evaluar el LLM basado en reglas y los sistemas de IA agentes híbridos en tareas del mundo real

En este tutorial, desarrollamos un marco de evaluación comparativa integral para evaluar varios tipos de sistemas de IA agentes en tareas de software empresarial del mundo real. Diseñamos un conjunto de desafíos diversos, desde la transformación de datos y la integración de API hasta la automatización del flujo de trabajo y la optimización del rendimiento, y evaluamos cómo se desempeñan varios agentes, incluidos los basados ​​en reglas, los híbridos y los basados ​​en LLM, en estos dominios. Al ejecutar puntos de referencia estructurados y visualizar métricas de rendimiento clave, como precisión, tiempo de ejecución y tasa de éxito, obtenemos una comprensión más profunda de las fortalezas y compensaciones de cada agente en entornos empresariales. Consulte los códigos completos aquí.

importar json importar tiempo importar aleatorio desde escribir importar Dict, Lista, Cualquiera, invocable desde clases de datos importar clase de datos, asdict importar pandas como pd importar numpy como np importar matplotlib.pyplot como plt importar seaborn como sns clase @dataclass Tarea: id: str nombre: str descripción: str categoría: str complejidad: int salida_esperada: Cualquier clase @dataclass Resultado de referencia: task_id: str nombre_agente: str éxito: bool tiempo de ejecución: precisión flotante: mensaje flotante error: str = “” clase EnterpriseTaskSuite: def __init__(self): self.tasks = self._create_tasks() def _create_tasks(self) -> Lista[Task]: devolver [
Task(“data_transform”, “CSV Data Transformation”,
“Transform customer data by aggregating sales”, “data_processing”, 3,
{“total_sales”: 15000, “avg_order”: 750}),
Task(“api_integration”, “REST API Integration”,
“Parse API response and extract key metrics”, “integration”, 2,
{“status”: “success”, “active_users”: 1250}),
Task(“workflow_automation”, “Multi-Step Workflow”,
“Execute data validation -> processing -> reporting”, “automation”, 4,
{“validated”: True, “processed”: 100, “report_generated”: True}),
Task(“error_handling”, “Error Recovery”,
“Handle malformed data gracefully”, “reliability”, 3,
{“errors_caught”: 5, “recovery_success”: True}),
Task(“optimization”, “Query Optimization”,
“Optimize database query performance”, “performance”, 5,
{“execution_time_ms”: 45, “rows_scanned”: 1000}),
Task(“data_validation”, “Schema Validation”,
“Validate data against business rules”, “validation”, 2,
{“valid_records”: 95, “invalid_records”: 5}),
Task(“reporting”, “Executive Dashboard”,
“Generate KPI summary report”, “analytics”, 3,
{“revenue”: 125000, “growth”: 0.15, “customer_count”: 450}),
Task(“integration_test”, “System Integration”,
“Test end-to-end integration flow”, “testing”, 4,
{“all_systems_connected”: True, “latency_ms”: 120}),
]

def get_task(self, task_id: str) -> Tarea: regresar siguiente((t para t en self.tasks si t.id == task_id), Ninguno)

Definimos las estructuras de datos centrales para nuestro sistema de evaluación comparativa. Creamos las clases de datos Task y BenchmarkResult e inicializamos EnterpriseTaskSuite, que contiene múltiples tareas relevantes para la empresa, como transformación de datos, informes e integración. Sentamos las bases para evaluar consistentemente diferentes tipos de agentes en estas tareas. Consulte los códigos completos aquí.

clase BaseAgent: def __init__(self, nombre: str): self.name = nombre def ejecutar(self, tarea: Tarea) -> Dict[str, Any]: aumentar la clase NotImplementedError RuleBasedAgent (BaseAgent): def ejecutar (self, tarea: Tarea) -> Dict[str, Any]: time.sleep(random.uniform(0.1, 0.3)) if task.category == “data_processing”: return {“total_sales”: 15000 + random.randint(-500, 500), “avg_order”: 750 + random.randint(-50, 50)} elif task.category == “integración”: return {“status”: “éxito”, “usuarios_activos”: 1250} elif task.category == “automatización”: return {“validaded”: True, “processed”: 98, “report_generated”: True} else: return task.expected_output

Introducimos la estructura del agente base e implementamos RuleBasedAgent, que imita la lógica de automatización tradicional utilizando reglas predefinidas. Simulamos cómo dichos agentes ejecutan tareas de manera determinista manteniendo la velocidad y la confiabilidad, lo que nos brinda una base para comparar con agentes más avanzados. Consulte los códigos completos aquí.

clase LLMAgent(BaseAgent): def ejecutar(self, tarea: Tarea) -> Dict[str, Any]: time.sleep(random.uniform(0.2, 0.5)) precision_boost = 0.95 si task.complexity >= 4 else 0.90 resultado = {} para clave, valor en task.expected_output.items(): if isinstance(value, (int, float)): variación = valor * (1 – precision_boost) resultado[key] = valor + aleatorio.uniforme(-variación, variación) else: resultado[key] = valor devuelto resultado clase HybridAgent(BaseAgent): def ejecutar(self, tarea: Tarea) -> Dict[str, Any]: time.sleep(random.uniform(0.15, 0.35)) si task.complexity <= 2: devuelve task.expected_output else: resultado = {} para clave, valor en task.expected_output.items(): si isinstance(value, (int, float)): variación = valor * 0.03 resultado[key] = valor + aleatorio.uniforme(-variación, variación) else: resultado[key] = valor devuelto resultado

Desarrollamos dos tipos de agentes inteligentes, el LLMAgent, que representa sistemas de inteligencia artificial basados ​​en el razonamiento, y el HybridAgent, que combina precisión basada en reglas con adaptabilidad de LLM. Diseñamos estos agentes para mostrar cómo los métodos basados ​​en el aprendizaje mejoran la precisión de las tareas, especialmente para flujos de trabajo empresariales complejos. Consulte los códigos completos aquí.

clase BenchmarkEngine: def __init__(self, task_suite: EnterpriseTaskSuite): self.task_suite = task_suite self.results: Lista[BenchmarkResult] = []

def run_benchmark(self, agente: BaseAgent, iteraciones: int = 3): print(f”\n{‘=’*60}”) print(f”Agente de evaluación comparativa: {agent.name}”) print(f”{‘=’*60}”) para la tarea en self.task_suite.tasks: print(f”\nTask: {task.name} (Complejidad: {task.complexity}/5)”) para i en rango(iteraciones): resultado = self._execute_task(agente, tarea, i+1) self.results.append(resultado) status = “✓ PASS” if result.success else “✗ FAIL” print(f” Ejecutar {i+1}: {status} | Tiempo: {result.execution_time:.3f}s | Precisión: {result.accuracy:.2%}”)

Aquí, construimos el núcleo de nuestro motor de evaluación comparativa, que gestiona la evaluación de los agentes en todo el conjunto de tareas definidas. Implementamos métodos para ejecutar cada agente varias veces por tarea, registrar resultados y medir parámetros clave como el tiempo de ejecución y la precisión. Esto crea un ciclo de evaluación comparativa sistemático y repetible. Consulte los códigos completos aquí.

def _execute_task(self, agente: BaseAgent, tarea: Task, run_num: int) -> BenchmarkResult: start_time = time.time() try: salida = agente.execute(tarea) tiempo de ejecución = time.time() – start_time exactitud = self._calculate_accuracy(salida, tarea.expected_output) éxito = exactitud >= 0.85 return BenchmarkResult(task_id=task.id, nombre_agente=nombre.agente, éxito=éxito, tiempo_ejecución=tiempo_ejecución, precisión=precisión) excepto Excepción como e: tiempo_ejecución = tiempo.tiempo() – tiempo_inicial return BenchmarkResult(id_tarea=task.id, nombre_agente=nombre.agente, éxito=Falso, tiempo_ejecución=tiempo_ejecución, precisión=0.0, mensaje_error=str(e)) def _calculate_accuracy(self, salida: Dict, esperado: Dict) -> flotante: si no, salida: devolver 0.0 puntuaciones = []
para clave, valor_esperado en elementos esperados(): si la clave no está en la salida: puntuaciones.append(0.0) continuar valor_actual = salida[key]
if isinstance(val_esperado, bool): puntuaciones.append(1.0 if valor_actual == valor_esperado else 0.0) elif isinstance(val_esperado, (int, float)): diff = abs(val_actual – valor_esperado) tolerancia = abs(val_esperado * 0.1) puntuación = max(0, 1 – (diff / (tolerancia + 1e-9))) puntuaciones.append(puntuación) else: puntuaciones.append(1.0 si valor_actual == valor_esperado más 0.0) devuelve np.mean(puntuaciones) si puntuaciones más 0.0

Definimos la lógica de ejecución de la tarea y el cálculo de la precisión. Medimos el desempeño de cada agente comparando sus resultados con los resultados esperados mediante un mecanismo de puntuación. Este paso garantiza que nuestro proceso de evaluación comparativa sea cuantitativo y justo, proporcionando información sobre qué tan estrechamente se alinean los agentes con las expectativas comerciales. Consulte los códigos completos aquí.

def generar_report(self): df = pd.DataFrame([asdict(r) for r in self.results]) print(f”\n{‘=’*60}”) print(“INFORME DE BENCHMARK”) print(f”{‘=’*60}\n”) para nombre_agente en df[‘agent_name’].único(): agente_df = df[df[‘agent_name’] == nombre_agente]print(f”{nombre_agente}:”) print(f” Tasa de éxito: {agent_df[‘success’].mean():.1%}”) print(f” Tiempo promedio de ejecución: {agent_df[‘execution_time’].mean():.3f}s”) print(f” Precisión promedio: {agent_df[‘accuracy’].mean():.2%}\n”) return df def visualize_results(self, df: pd.DataFrame): fig, axes = plt.subplots(2, 2, figsize=(14, 10)) fig.suptitle(‘Resultados de evaluación comparativa del agente empresarial’, fontsize=16, fontweight=”bold”) Success_rate = df.groupby(‘agent_name’)[‘success’].mean() ejes[0, 0].bar(tasa_éxito.index, tasa_éxito.valores, color=[‘#3498db’, ‘#e74c3c’, ‘#2ecc71’]) ejes[0, 0].set_title(‘Tasa de éxito por agente’, fontweight=”bold”) ejes[0, 0].set_ylabel(‘Tasa de éxito’) ejes[0, 0].set_ylim(0, 1.1) para i, v en enumerar(success_rate.values): ejes[0, 0].text(i, v + 0.02, f'{v:.1%}’, ha=”center”, fontweight=”bold”) time_data = df.groupby(‘agent_name’)[‘execution_time’].mean() ejes[0, 1].bar(time_data.index, time_data.valores, color=[‘#3498db’, ‘#e74c3c’, ‘#2ecc71’]) ejes[0, 1].set_title(‘Tiempo promedio de ejecución’, fontweight=”bold”) ejes[0, 1].set_ylabel(‘Tiempo (segundos)’) para i, v en enumerar(time_data.values): ejes[0, 1].text(i, v + 0.01, f'{v:.3f}s’, ha=”center”, fontweight=”bold”) df.boxplot(column=’accuracy’, by=’agent_name’, ax=axes[1, 0]) ejes[1, 0].set_title(‘Distribución de precisión’, fontweight=”bold”) ejes[1, 0].set_xlabel(‘Agente’) ejes[1, 0].set_ylabel(‘Precisión’) plt.sca(ejes[1, 0]) plt.xticks(rotation=15) task_complexity = {t.id: t.complexity para t en self.task_suite.tasks} df[‘complexity’] = gl[‘task_id’].map(task_complexity) complejidad_perf = df.groupby([‘agent_name’, ‘complexity’])[‘accuracy’].mean().unstack() complejidad_perf.plot(tipo=’línea’, hacha=ejes[1, 1]marcador=”o”, ancho de línea=2) ejes[1, 1].set_title(‘Precisión por complejidad de la tarea’, fontweight=”bold”) ejes[1, 1].set_xlabel(‘Complejidad de la tarea’) ejes[1, 1].set_ylabel(‘Precisión’) ejes[1, 1].legend(title=”Agente”, loc=”mejor”) ejes[1, 1].grid(True, alpha=0.3) plt.tight_layout() plt.show() if __name__ == “__main__”: print(“Evaluación comparativa de software empresarial para agentes agentes”) print(“=”*60) task_suite = EnterpriseTaskSuite() benchmark = BenchmarkEngine(task_suite) agentes = [RuleBasedAgent(“Rule-Based Agent”), LLMAgent(“LLM Agent”), HybridAgent(“Hybrid Agent”)]
para agente en agentes: benchmark.run_benchmark(agent, iterations=3) results_df = benchmark.generate_report() benchmark.visualize_results(results_df) results_df.to_csv(‘agent_benchmark_results.csv’, index=False) print(“\nResultados exportados a: agent_benchmark_results.csv”)

Generamos informes detallados y creamos análisis visuales para comparar el rendimiento. Analizamos métricas como la tasa de éxito, el tiempo de ejecución y la precisión entre agentes y complejidades de las tareas. Finalmente, exportamos los resultados a un archivo CSV, completando un flujo de trabajo de evaluación completo de nivel empresarial.

En conclusión, implementamos un sistema de evaluación comparativa robusto y extensible que nos permite medir y comparar la eficiencia, adaptabilidad y precisión de múltiples enfoques de IA agente. Observamos cómo las diferentes arquitecturas sobresalen en diferentes niveles de complejidad de las tareas y cómo el análisis visual resalta las tendencias de rendimiento. Este proceso nos permite evaluar los agentes existentes y proporciona una base sólida para los agentes de IA empresarial de próxima generación, optimizados para su confiabilidad e inteligencia.

Consulte los códigos completos aquí. No dude en consultar nuestra página de GitHub para tutoriales, códigos y cuadernos. Además, no dude en seguirnos en Twitter y no olvide unirse a nuestro SubReddit de más de 100.000 ML y suscribirse a nuestro boletín. ¡Esperar! estas en telegrama? Ahora también puedes unirte a nosotros en Telegram.

Asif Razzaq es el director ejecutivo de Marktechpost Media Inc.. Como emprendedor e ingeniero visionario, Asif está comprometido a aprovechar el potencial de la inteligencia artificial para el bien social. Su esfuerzo más reciente es el lanzamiento de una plataforma de medios de inteligencia artificial, Marktechpost, que se destaca por su cobertura en profundidad del aprendizaje automático y las noticias sobre aprendizaje profundo que es técnicamente sólida y fácilmente comprensible para una amplia audiencia. La plataforma cuenta con más de 2 millones de visitas mensuales, lo que ilustra su popularidad entre el público.

🙌 Siga MARKTECHPOST: agréguenos como fuente preferida en Google.