Summary
In this chapter, we covered LLMs by providing an overview of their concepts but also a simple, practical example of building a simple LLM application using OpenAI APIs and the popular LLM application development framework LangChain.
LLMs typically use pre-trained models, and we looked at how we can bring our own data using RAG and fine-tuning.
Finally, we discussed how LLMs change Adversarial AI with their non-deterministic outputs, complexity, and size.
Armed with this knowledge, we will delve into a practical exploration of adversarial attacks on LLMs in the next three chapters. We will start by examining adversarial attacks on LLM input and outputs.