Recommended resources
The freely available resources this lesson will direct you to.
Welcome to your second lesson. In our first session, we established a mental model for what a Large Language Model is, framing it as the engine of a new "Software 3.0" paradigm. You learned that an LLM is a massive neural network, pre-trained on a vast corpus of text and then fine-tuned to be a helpful assistant, which we can program using natural language prompts.
Now that we understand what LLMs are, we need to get very clear on their practical strengths and weaknesses. As a product builder, your success hinges not just on knowing what's possible, but on understanding the boundaries and failure modes of your core technology. This lesson dives into the inherent capabilities and limitations of LLMs. Mastering these concepts will allow you to design products that are not just innovative, but also robust and reliable.
By the end of this lesson, you will be able to describe the core capabilities of LLMs and, more importantly, explain the critical limitations of hallucination, context limits, knowledge cutoff, and non-determinism.
The Power of Generalization
First, let's briefly touch on what makes LLMs so powerful. As we saw in the previous lesson, by training to predict the next word on a massive dataset, LLMs develop a generalized understanding of language, reasoning, and even code. This allows them to perform an incredible variety of tasks without being explicitly programmed for each one.
To get a sense of this breadth, let's quickly review the types of tasks where LLMs excel.
Large Language Models (LLMs) - Everything You NEED To Know
This clip from Matthew Berman's overview of LLMs provides a concise summary of their impressive capabilities.
Watch the short segment from this section where he lists the wide range of tasks LLMs are powerful at.
As you just heard, LLMs are adept at summarization, creative writing, question-answering, and even generating code. This flexibility is what makes them such a revolutionary tool for an indie hacker—you have a versatile, general-purpose "thinking machine" available via an API. However, this power comes with some very important caveats.
The Inherent Limitations
To build reliable products, we must treat LLMs as a powerful but flawed component. Your job as an architect is to build a system around the LLM that amplifies its strengths and mitigates its weaknesses. There are four fundamental limitations you must understand to do this effectively.
The image below highlights three of the most common issues product builders face. We'll discuss these, along with a fourth: non-determinism.

1. Hallucination and Factual Inaccuracy
Perhaps the most well-known limitation of LLMs is their tendency to "hallucinate"—a term for when the model generates text that is plausible-sounding but is factually incorrect, nonsensical, or disconnected from the provided context.
Because an LLM is a pattern-matching, next-word-prediction engine, it doesn't possess a true "understanding" or a database of facts. It generates what is statistically likely, not what is true. This can lead to it confidently stating misinformation.
10 Biggest Limitations of Large Language Models
The article from ProjectPro gives a good explanation of what hallucinations are and why they occur.
Please read section 2 of the article, titled "LLM Hallucinations and Inaccuracies". Pay close attention to the reasons given for why these inaccuracies happen.
These hallucinations can be subtle. A model might invent a plausible-sounding academic citation, or misremember a minor historical detail. Or, they can be glaringly obvious, as in this simple example.
Large Language Models (LLMs) - Everything You NEED To Know
Let's return to the video by Matthew Berman for a clear, undeniable example of a hallucination in action.
Watch the brief clip from this section on hallucinations, where the model fails a simple character-counting task.
Product Builder Implication: You can never blindly trust the output of an LLM for factual information. Any feature that presents facts to a user (e.g., a research assistant, a summary of legal documents) must have a verification mechanism. This could be a user-in-the-loop workflow where the user confirms the details, or, more powerfully, by citing sources—a technique we'll explore in the module on Retrieval-Augmented Generation (RAG).
2. Knowledge Cutoff
LLMs are not connected to the live internet. Their knowledge is frozen at the point their training data was collected. A model trained in late 2023 will have no knowledge of events that happened in 2024, nor can it access real-time information like stock prices, news headlines, or your company's latest internal documentation.
10 Biggest Limitations of Large Language Models
The ProjectPro article also explains this limitation very clearly.
Now, read section 3 of the same article, titled "Limited Knowledge Update". The example about COVID-19 developments makes the point well.
Product Builder Implication: An LLM cannot, by itself, power a product that requires up-to-date information or knowledge of private, proprietary data. This is perhaps the single biggest driver for building more complex AI systems. To solve this, you need to give the model the information it needs at the time of the request. This is the core idea behind Retrieval-Augmented Generation (RAG), a pattern we will dedicate an entire module to later in the course.
The short video clip below introduces this concept.
Large Language Models (LLMs) - Everything You NEED To Know
This quick mention of RAG hints at the solution to the knowledge cutoff problem.
Watch the segment from this section, where the concept of Retrieval-Augmented Generation is introduced.
3. Context Limits
The "context window" (or context length) is one of the most important technical specifications of an LLM. It refers to the amount of text—both your input and the model's output—that the model can consider at one time. Think of it as the model's working memory or "attention span."
If a conversation or a document exceeds the context window, the model effectively forgets what happened at the beginning. This concept is fundamental to designing everything from simple chatbots to complex document analysis tools.
The following video provides an excellent and thorough explanation of what a context window is, how it's measured, and its profound implications.
What is a Context Window? Unlocking LLM Secrets
This video from IBM Technology is the best explanation you'll find on this topic. It covers the concept, the measurement in "tokens," and the surprising downsides of having an extremely large context window.
Please watch the video from the beginning to the end. Pay special attention to these key ideas: The core analogy of the context window as working memory. The explanation of tokens as the unit of measurement. What kinds of information fill up the context window (it's not just your chat history). The critical challenges of large context windows, including compute cost and performance degradation.
Product Builder Implication: The context window is a finite and expensive resource. You can't just feed endless text into a model.
- Cost: Larger context windows are computationally more expensive, which translates directly to higher API costs for your product.
- Performance: As the video explained, models can suffer from a "lost in the middle" problem, where they struggle to pay attention to information buried in a very long context. Bigger is not always better.
- Design: This limitation forces you to be smart about what information you provide to the model. It motivates techniques like text chunking for RAG, and conversation summarization for chatbots, which we will cover in later modules.
4. Non-Determinism
If you use traditional code (Software 1.0), you expect that giving a function the same input will always produce the same output. This is called determinism. LLMs are fundamentally non-deterministic. If you ask the same question multiple times, you may get slightly (or very) different answers each time.
This can be a source of creativity and pleasant variety, but for many product workflows, it's a liability. You can't build a reliable process on a component that behaves unpredictably. The key, as a product builder, is not to force the LLM to be deterministic, but to architect your system to manage its chaotic nature.
Stop Asking LLMs to Be Deterministic - DEV Community
This article from DEV Community offers a fantastic perspective for developers and builders. It argues that we should embrace the non-determinism of LLMs for tasks requiring judgment, and surround them with deterministic code for everything else.
Read the first half of the article, focusing on two key parts: The section Non-determinism → Guaranteed determinism, which frames the problem. The Case study: The ops review, which provides a brilliant, practical example of how to combine deterministic code (API calls, statistical analysis) with a non-deterministic LLM (summarizing the results).
Product Builder Implication: This is a core principle of robust LLM application architecture. Your system should use deterministic code for all predictable tasks: fetching data, validating inputs, performing calculations, and formatting outputs. You should reserve the LLM call for the specific step that requires judgment, synthesis, or creativity. By "surrounding the chaos with code," you get the best of both worlds: the power of the LLM and the reliability of traditional software.
Conclusion
In this lesson, we moved from the "what" of LLMs to the "how" and "how not to." You've learned that while LLMs possess incredible generalized capabilities, they are constrained by fundamental limitations.
Key Takeaways:
- Capabilities: LLMs excel at a wide variety of language-based tasks like summarization, translation, and creative generation due to their generalized nature.
- Hallucination: Models can invent facts and be confidently wrong. You must design systems that allow for verification.
- Knowledge Cutoff: A model's knowledge is static. For real-time or private information, you must provide it with the necessary context, typically via a pattern like RAG.
- Context Limits: The model's "working memory" is finite and expensive. You must be strategic about the information you pass into the context window.
- Non-Determinism: LLMs are not predictable. The best practice is to isolate their creative/judgmental role and surround it with reliable, deterministic code for structural tasks.
Understanding these limitations isn't about being pessimistic; it's about being a pragmatic and effective engineer. These constraints are the puzzle pieces you'll be working with to design and build useful AI products.
In our next lesson, we will get more concrete by comparing the major LLM providers like OpenAI, Anthropic, and Google. We'll look at how they differ on practical axes like cost, speed, and the size of their context windows, helping you make informed decisions when choosing the right model for your product idea.