Comprender las consideraciones de los ingenieros de IA
Cada vez con mayor frecuencia, las soluciones de software incluyen características de inteligencia artificial, por lo que los ingenieros de software necesitan saber cómo integrar las funcionalidades de inteligencia artificial en sus aplicaciones y servicios.
Los avances realizados en el aprendizaje automático, junto con la mayor disponibilidad de grandes volúmenes de datos y un proceso eficaz en el que procesarlos y entrenar modelos predictivos, han llevado a la disponibilidad de servicios de software empaquetados previamente que encapsulan funcionalidades de inteligencia artificial. Los ingenieros de software pueden aprovechar estos servicios para crear aplicaciones y agentes que usen la funcionalidad de inteligencia artificial subyacente, usándolos como bloques de creación para crear soluciones inteligentes.
Esto significa que los ingenieros de software pueden aplicar sus conocimientos sobre programación, pruebas, trabajo con sistemas de control de código fuente y empaquetado de aplicaciones para la implementación, sin tener que convertirse en científicos de datos o expertos en aprendizaje automático.
Sin embargo, para aprovechar al máximo las oportunidades de la inteligencia artificial, los ingenieros de software requieren al menos una comprensión conceptual de los principios básicos del aprendizaje automático y la inteligencia artificial.
Entrenamiento e inferencia de modelos
Muchos sistemas de inteligencia artificial se basan en modelos predictivos que deben entrenarse con datos de ejemplo. El proceso de entrenamiento analiza los datos y determina las relaciones entre las características de los datos (los valores de datos que generalmente estarán presentes en las nuevas observaciones) y la etiqueta (el valor para cuya predicción se entrena el modelo).
Una vez entrenado el modelo, puede enviar nuevos datos que incluyan valores de características conocidos y hacer que el modelo prediga la etiqueta más probable. El uso del modelo para realizar predicciones se conoce como inferencia.
Muchos de los servicios y marcos que los ingenieros de software pueden usar para crear soluciones habilitadas para inteligencia artificial requieren un proceso de desarrollo que implica entrenar un modelo a partir de datos existentes antes de que se pueda usar para inferir nuevos valores en una aplicación.
Puntuaciones de probabilidad y confianza
Un modelo de Machine Learning bien entrenado puede ser preciso, pero ningún modelo predictivo es infalible. Las predicciones realizadas por los modelos de Machine Learning se basan en la probabilidad y, aunque los ingenieros de software no requieren una comprensión matemática profunda de la teoría de la probabilidad, es importante comprender que las predicciones reflejan una probabilidad estadística, no una verdad absoluta. En la mayoría de los casos, las predicciones tienen una puntuación de confianza asociada que refleja la probabilidad de realización de la predicción. Los desarrolladores de software deben usar los valores de puntuación de confianza para evaluar las predicciones y aplicar los umbrales adecuados para optimizar la confiabilidad de las aplicaciones y mitigar el riesgo de predicciones que se pueden realizar en función de las probabilidades marginales.
Ética e inteligencia artificial responsables
Es importante que los ingenieros de software tengan en cuenta el impacto de su software en los usuarios y en la sociedad en general, incluyendo consideraciones éticas sobre su uso. Cuando la aplicación está imbuida de inteligencia artificial, estas consideraciones son especialmente importantes debido a la naturaleza del funcionamiento de los sistemas de inteligencia artificial y de cómo informan sobre las decisiones; a menudo se basan en modelos probabilísticos, que a su vez dependen de los datos con los que se entrenaron.
La naturaleza similar a la humana de las soluciones de inteligencia artificial es una ventaja importante a la hora de facilitar el uso de las aplicaciones, pero también puede hacer que los usuarios depositen una gran confianza en la capacidad de la aplicación de tomar decisiones correctas. La posibilidad de daños a individuos o grupos a través de predicciones incorrectas o un uso incorrecto de las funcionalidades de inteligencia artificial es una problema importante, y los ingenieros de software que compilan soluciones habilitadas para inteligencia artificial deben aplicar la consideración adecuada para mitigar los riesgos y garantizar la equidad, la confiabilidad y la protección adecuada frente a daños o discriminación.