Developing artificial intelligence (AI) products involves creating models and feeding data to train them, testing the models, and deploying them. Software engineers can support the adoption of AI and machine learning (ML) in companies by building an understanding of the technologies, encouraging experimentation, and ensuring compliance with regulations and ethical standards.
Zorina Alliata spoke about AI product development at OOP 2023 Digital.
To create AI products such as forecasting software or recommendation engines, we have to create models based on patterns in historical data, Alliata explained. To develop these models, we use development techniques that are different from regular software development. For example, there are a lot of unknowns, iterative processes, and mysteries to be found when analysing the data, Alliata said.
According to Alliata, the machine learning process is based on the following steps:
- Feed data into an algorithm
- Use this data to train a model
- Test and deploy the model
- Consume the deployed model to do an automated predictive task
Data is extremely important, Alliata argued. The algorithms require a lot of data to learn patterns from. Having enough data, clean data, fair and trustworthy data alone is a new level of processing that we did not do to this extent in the past, she said.
The result of product development, the model, is a series of algorithms that identify various information in the ocean of data, and most of the time the data scientists have to try several algorithms to see which one works best in each use case, Alliata mentioned. This introduces the need to iterate and try various approaches, so team leads should understand that they need to allow enough time during the modeling phase.
Alliata said that once an AI product is delivered, it needs constant care and monitoring as well, to make sure it still performs optimally as patterns might change. Occasionally, the model will need re-training so it can learn from the newer data provided by consumers, as well as from feedback of its own behavior and performance.
Software engineers can contribute to the adoption of AI and ML in their companies by gaining an understanding of these new technologies and their specific challenges, Alliata said. Software engineers can also help to create an environment that encourages experimentation and learning, and provide guidance on best practices for AI development, she added.
Additionally, software engineers can help to ensure that ML models are compliant with relevant regulations and ethical standards. Setting standards and a clear operating model will enable better communication and collaboration between all teams, technical and business, Alliata concluded.
InfoQ interviewed Zorina Alliata about AI product development.
InfoQ: How do AI transformations relate to agile?
Zorina Alliata: AI transformations relate to agile in that they both involve a process of transition. Agile leaders can play an important role in AI transformations by promoting lean budgeting, agile teams and teams of teams, agile delivery that fails fast, and specific reports to show value delivered.
Agile leaders bring value to the AI transformation by using their Agile expertise in managing training schedules and content, promoting technical excellence, checking for compliance/bias/fairness features, and proposing changes as needed to the current processes to enable scalability.
Agile leaders also know how to deliver correctly and on time, create metrics for important KPIs and trends, and provide visibility into the work. All these skills are very useful and needed during an AI transformation.
InfoQ: What have you learned from AI product delivery?
Alliata: There is a possibility of data being altered from the future - something I found out the hard way! This happens, for example, when we apply a data fix and inadvertently change old records, even slightly. Then we train the ML model on that old data, expecting that it had captured the state at the time it was recorded, while in fact the data has been changed.
Then there is the infrastructure - you need to train the model, then release the model, then keep it updated. The environment and the tools you use to write ML models and monitor ML models have to be compliant with your company’s security standards and regulatory requirements. The infrastructure is different for AI and ML products, and it will require some investments up front, as well as specialised supporting roles such as Machine Learning engineers.