Systems or machines that can simulate human intelligence.
| Supervised | Unsupervised | Reinforcement |
|---|---|---|
| Learns from labeled data | Finds patterns in unlabeled data | Learns by trial, reward, penalty |
| Predicts outcomes for new inputs | Groups and structures data on its own | An agent acts inside an environment |
| Spam filters, price prediction | Customer segments, anomaly detection | Game AI, robotics, self-driving |
Generative AI is the fourth flavor - instead of classifying, it creates. That is where LLMs live.
Stateless & recursive: every click re-reads the entire sentence so far.
LLMs don't read words or letters - they read tokens.
token + ization; rare words and code split into more pieces.Try it live: platform.openai.com/tokenizer
Every token becomes an embedding: a vector of numbers that captures meaning.
Similar meanings land close together: this is what powers semantic search and RAG.
An embedding model turns text into a fixed-length 1 × N array of floating-point numbers.
"Bugün hava güzel" → [ 0.021, -0.184, 0.77, …, 0.043 ]
a 1 × 768 vector (nomic-embed-text)
| Model | Dimensions | Notes |
|---|---|---|
| nomic-embed-text | 768 | open source, runs locally |
| all-MiniLM-L6-v2 | 384 | tiny & fast (sentence-transformers) |
| bge-large-en | 1024 | strong open model |
| OpenAI text-embedding-3-small | 1536 | hosted API |
| OpenAI text-embedding-3-large | 3072 | highest quality, hosted |
More dimensions = more nuance, but more storage and slower search. These vectors live in a vector database (e.g. Chroma) for semantic search.
Because words are vectors, you can add and subtract their meanings.
The Transformer is the architecture behind every modern LLM (the 2017 paper "Attention Is All You Need", Vaswani et al.).
Parameters are the learned weights - the knobs tuned during training.
The max tokens the model can consider at once: its working memory. When it fills up, the oldest tokens fall out.
For each token the model checks the cache: if its key/value is already there it is a hit (reuse it); if not, a miss (compute it, then store it).
Weights stay fixed, but the KV cache grows with the context window.
| Context used | Weights | KV cache | Total memory |
|---|---|---|---|
| 4K tokens | ~8 GB | ~0.8 GB | ~9 GB |
| 16K tokens | ~8 GB | ~3 GB | ~11 GB |
| 32K tokens | ~8 GB | ~6 GB | ~14 GB |
| 128K tokens | ~8 GB | ~26 GB | ~34 GB |
KV figures are rough fp16 estimates; Gemma 3's sliding-window attention reduces them in practice.
Gemma 4B fits on one GPU. Frontier models are far bigger, handle ~1M-token context, and serve millions of users at once.
Every long conversation needs its own KV cache, so a huge GPU fleet runs in parallel. Figures are orders of magnitude; exact numbers are undisclosed.
A knob that controls randomness when picking the next token. Drag it:
Storing the weights at lower precision to save memory.
Three stages turn raw text into a helpful assistant.
LLMs are stateless - they only know what's in the current context window.
An LLM can only produce text - tools give it hands.
System prompt and tools go on every call. Messages reset on a new session.
Combine retrieving relevant info from external sources with generating a natural-language answer - for more accurate, grounded responses.
An open standard (Anthropic, 2024) for connecting AI apps to external tools and data - the USB-C port for AI.
AI systems that autonomously perceive their environment, reason, and take actions to achieve a goal - often using chain-of-thought reasoning.
An agent runs an LLM in a loop: think → act (use a tool) → observe → repeat until the goal is done.
The model is just the brain. The harness is everything wrapped around it that makes it actually work:
Model = the engine; harness = the whole car. Same model + a better harness = very different results. Examples: Claude Code, Codex, opencode, OpenClaw.
We connect Claude Code to our flight-booking MCP server.