Reader small image

You're reading from  Machine Learning Infrastructure and Best Practices for Software Engineers

Product typeBook
Published inJan 2024
Reading LevelIntermediate
PublisherPackt
ISBN-139781837634064
Edition1st Edition
Languages
Right arrow
Author (1)
Miroslaw Staron
Miroslaw Staron
author image
Miroslaw Staron

Miroslaw Staron is a professor of Applied IT at the University of Gothenburg in Sweden with a focus on empirical software engineering, measurement, and machine learning. He is currently editor-in-chief of Information and Software Technology and co-editor of the regular Practitioner's Digest column of IEEE Software. He has authored books on automotive software architectures, software measurement, and action research. He also leads several projects in AI for software engineering and leads an AI and digitalization theme at Software Center. He has written over 200 journal and conference articles.
Read more about Miroslaw Staron

Right arrow

Summary and Where to Go Next

This is the last chapter of this book. We’ve learned a lot – starting with understanding the differences between traditional and machine learning-based software. We’ve learned how to handle data and how to work with algorithms. We’ve also looked at how to deploy models and how to work ethically with machine learning. In this chapter, we’ll summarize the best practices and try to get a glimpse of future developments in the area of machine learning overlapped with software engineering.

In this chapter, we’re going to cover the following main topics:

  • To know where we are going, we need to know where we’ve been
  • Best practices
  • Current developments
  • My view on the future

To know where we’re going, we need to know where 
we’ve been

My journey with computers started in the early 1990s, with Atari 800XL. Once I got my hands on that computer, I was amazed by the sheer fact that it could do what I told it to do. My first program was, of course, a program in BASIC:

10 PRINT Hello world!
20 GOTO 10

It’s neither well-formed nor a very useful program, but that was all I could do at the time. This first program shaped my entire career as it sparked my interest in software development. Later on, during my professional career, I realized that professional software engineering is much more than just writing source code and compiling it. The programs need to be well-formed, well-documented, well-designed, and well-tested (among many other things). This observation, in turn, shaped my view on software engineering as a discipline that can turn homebrewed software into a piece of art that can be used over long periods if well maintained...

Best practices

The first part of this book contains significantly more best practices, which is because these best practices relate to engineering software, designing it, and making crucial decisions about machine learning – for example, the first best practice tells us when to use (and not to use) machine learning.

As this part of this book was about the machine learning landscape in software engineering, we’ll discuss different types of models and data and show how they come together.

The list of best practices from the first part of this book is presented in Table 17.1:

Current developments

At the time of writing this book, the Technology Innovation Institute (https://www.tii.ae/) has just released its largest model – Falcon 170B. It is the largest fully open source model that is similar to the GPT-3.5 model. It shows the current direction of the research in large language models.

Although GPT-4 exists, which is larger by a factor of 1,000, we can develop very good software with moderately large models such as GPT-3.5. This brings us to some of the current topics that we, as a community, need to discuss. One of them is the energy sustainability of these models. Falcon-170B requires 400 GB of RAM (eight times that of an Nvidia A100 GPU) to execute (according to Hugging Face). We do not know how much hardware the GPT-4 model needs. The amount of electricity that it takes and the resources that it uses must be on par with what we get as value from that model.

We also approach limits to the conventional computational power when it comes...

My view on the future

Based on my observations of the machine learning landscape today, with a particular focus on software engineering, I can see a few trends.

Language models will get better at completing software engineering tasks, such as requirements, testing, and documenting. This means that software engineers will be able to focus on their core work – engineering software – rather than on tedious, repetitive tasks. We will see models that will test software, document it, explain it, and maybe even repair it. The latest advancements in this field are very promising.

Hybrid models will be more popular. Combining symbolic analysis and neural networks will gain traction and be able to assist us in finding advanced vulnerabilities in software, as well as identifying them before they are exploited. This will make our software more robust and more resilient over time.

Large models and the availability of significant computational power will help us also to detect...

Final remarks

I hope that this book was interesting for you and that you have gained new knowledge in machine learning, AI, and engineering software. I hope that you can use this book as a reference and that you will use the associated code to create new products. I would also greatly appreciate it if you could let me know if you liked it, connect via LinkedIn, and contribute to this book’s GitHub repository. I will monitor it and integrate all pull requests that you may have.

Before we part, I have one last best practice.

Best practice #79

Never stop learning.

Take this from a university professor. The field of machine learning grows quickly, with new models being introduced almost every week. Make sure that you observe the scientific publications in this area and commercial developments. This will help you keep your knowledge up-to-date and help you advance in your professional career.

References

  • Cerezo, M., G. Verdon, H.-Y. Huang, L. Cincio and P. J. Coles (2022). Challenges and opportunities in quantum machine learning. Nature Computational Science 2(9): 567-576.
  • Gao, C., Y. Zheng, N. Li, Y. Li, Y. Qin, J. Piao, Y. Quan, J. Chang, D. Jin and X. He (2023). A survey of graph neural networks for recommender systems: Challenges, methods, and directions. ACM Transactions on Recommender Systems 1(1): 1-51.
  • Meskó, B. and E. J. Topol (2023). The imperative for regulatory oversight of large language models (or generative AI) in healthcare. npj Digital Medicine 6(1): 120.
  • Rajeesh Kumar, N. V., N. Jaya Lakshmi, B. Mallala and V. Jadhav (2023). Secure trust aware multi-objective routing protocol based on battle competitive swarm optimization in IoT. Artificial Intelligence Review.
  • Rosenberg, L. (2016). Artificial Swarm Intelligence, a Human-in-the-loop approach to AI. Proceedings of the AAAI conference on artificial intelligence.
lock icon
The rest of the chapter is locked
You have been reading a chapter from
Machine Learning Infrastructure and Best Practices for Software Engineers
Published in: Jan 2024Publisher: PacktISBN-13: 9781837634064
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
undefined
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime

Author (1)

author image
Miroslaw Staron

Miroslaw Staron is a professor of Applied IT at the University of Gothenburg in Sweden with a focus on empirical software engineering, measurement, and machine learning. He is currently editor-in-chief of Information and Software Technology and co-editor of the regular Practitioner's Digest column of IEEE Software. He has authored books on automotive software architectures, software measurement, and action research. He also leads several projects in AI for software engineering and leads an AI and digitalization theme at Software Center. He has written over 200 journal and conference articles.
Read more about Miroslaw Staron

ID

Best Practice

1

Use machine learning algorithms when your problem is focused on data, not on the algorithm.

2

Before you start developing a machine learning system, do due diligence and identify the right...