Generative AI Models: How to Compare and Choose One
Model leaderboards change often. A repeatable comparison on your own task lasts longer than any ranking.
A Generative AI model is a trained system that produces new content from an input. To choose one, compare candidate models on your own task: output quality on a test set, supported modalities, hosting and licence terms, context length, latency and cost. The best model for one application can be the wrong one for another.
What a model actually is
A model is a set of learned parameters plus the architecture that uses them. It is trained once, at great cost, and then used many times for inference, which is the step that produces an output for your request. When you use a chat product, you are using an application built around one or more models, not the model alone.
Language models usually come in two forms. A base model has been trained to continue text and is useful mainly to researchers and for further training. An instruction-tuned or chat model has been trained further to follow requests, hold a conversation and decline harmful tasks. Applications almost always use the instruction-tuned form.
Each model has a name and a version, and the version matters. A provider’s model card or documentation describes what that version can do, its limits, its context length and how it was evaluated. Read it before you build on the model.
The model landscape in brief
Widely used text and multimodal model families include OpenAI's GPT models, Anthropic's Claude, Google's Gemini, Meta's Llama and models from Mistral AI. Image generation includes diffusion-based families such as Stable Diffusion. Speech recognition and synthesis use their own specialised models.
Vendors release new versions frequently, and capabilities, prices and limits change with them. Read the provider's current documentation and model card for the exact version you plan to use rather than relying on a summary article, including this one.
Match the model type to the task
Not every job needs a large chat model. Many applications combine several specialised models, each doing the part it is best at.
| Task | Model type to consider | Note |
|---|---|---|
| Writing, summarising, answering questions | General instruction-tuned language model | Pair with retrieval when answers must come from your documents |
| Search and retrieval | Embedding model | Produces vectors for similarity search, not text |
| Ranking search results | Reranker | Reorders retrieved passages by relevance before generation |
| Simple classification or routing | Small language model or a fine-tuned classifier | Often faster and cheaper than a large model |
| Images from text | Diffusion-based image model | Check licence and content policy for commercial use |
| Speech to text and text to speech | Speech recognition and synthesis models | Test with the accents and languages of your users |
Hosted API models and open-weight models
Open-weight does not always mean unrestricted. Read the licence for commercial use, attribution and acceptable-use conditions before building on a model.
Running an open-weight model yourself has become easier. Tools such as Ollama and llama.cpp run smaller models on a laptop, often using quantisation, which stores parameters at lower precision to save memory at some cost in quality. Larger models still need GPUs and serving infrastructure.
| Consideration | Hosted API model | Open-weight model you run |
|---|---|---|
| Setup | An account and an API key | Infrastructure, serving software and monitoring |
| Data handling | Governed by the provider's terms and settings | Stays within the environment you control |
| Cost pattern | Usage-based pricing | Compute and engineering time, used or idle |
| Customisation | Prompting, retrieval and any offered tuning | Prompting, retrieval and fine-tuning within the licence |
| Updates | Provider-managed versions and retirements | You choose when to change versions |
Criteria that matter for an application
- Task quality on examples drawn from your real inputs, including difficult cases.
- Modalities: text only, or also images, audio, documents or tool calls.
- Context length relative to the documents and conversation you need to supply.
- Latency and throughput at the volume you expect.
- Cost per completed task, not only price per token.
- Data, privacy and regional requirements for your users.
- Safety behaviour and how the model responds to unsafe or out-of-scope requests.
Read the model card and pricing page
- Context window and maximum output length, in tokens.
- Input and output token prices, which often differ, plus any discounts for caching or batch processing.
- Rate limits for your account tier.
- Knowledge cutoff date, after which the model has no training information.
- Supported languages and modalities, including file and image inputs.
- Data retention and whether your inputs may be used for training.
- Deprecation schedule, so you know when a version will be retired.
Build a small evaluation before you choose
Collect twenty to fifty representative inputs with written expectations. Include routine cases, edge cases and inputs the system should refuse. Run each candidate model with the same prompt and settings, then score the outputs with clear criteria such as correct, supported by the supplied context, and in the required format.
Public benchmarks are a starting signal, but they rarely match your documents, users or output format. Keep your test set and rerun it when you change model versions or prompts, so a regression is visible before users see it.
The sketch below runs the same test cases through several models and reports an average score and median latency. Replace call_model with your provider’s SDK and score with a function that applies your written criteria.
import statistics
import time
def evaluate(model_name, call_model, test_cases, score):
results = []
for case in test_cases:
start = time.perf_counter()
output = call_model(model_name, case['input'])
latency = time.perf_counter() - start
results.append((score(output, case), latency))
return {
'model': model_name,
'mean_score': statistics.mean(s for s, _ in results),
'median_latency_s': statistics.median(t for _, t in results),
}
for name in ['model-a', 'model-b']:
print(evaluate(name, call_model, test_cases, score))Estimate cost per completed task
Token prices are quoted per million tokens, with separate prices for input and output. A request that sends 2,000 input tokens and receives 300 output tokens costs (2,000 × input price + 300 × output price) ÷ 1,000,000. Multiply by the number of requests a task needs, including retries, retrieval and any checking step.
A cheaper model that needs two attempts can cost more than a dearer one that succeeds first time. Some providers also discount repeated prompt prefixes through caching or offer cheaper batch processing for work that is not urgent. Measure tokens on your own test cases instead of estimating from word counts.
Larger is not automatically better
A larger model can follow complex instructions more reliably, but a smaller one may meet a narrow requirement at lower latency and cost. Many applications route simple requests to a smaller model and reserve a larger one for harder cases. Decide from measured results on your task, not from parameter counts.
Smaller models are often produced by distillation, in which a small model is trained to imitate a larger one on a particular kind of task. Combined with quantisation, this can make a model fast enough to run on a laptop or phone, at some loss of general capability.
Prompting, retrieval or fine-tuning?
| Approach | Use it when | Effort |
|---|---|---|
| Prompting | The task can be described with instructions and a few examples | Low; start here every time |
| Retrieval (RAG) | Answers must come from current or private documents | Moderate; needs indexing and retrieval tests |
| Fine-tuning | A consistent style, format or narrow skill is not reliable with prompting | Higher; needs curated examples and re-evaluation |
| Training from scratch | Almost never for applications; reserved for research or very large organisations | Very high data, compute and expertise |
Sources: Lewis et al.: Retrieval-Augmented Generation. Checked 23 October 2026.
Plan for model changes
- Call models through a thin internal wrapper so that switching providers changes one module, not the whole application.
- Pin exact model versions in configuration and record which version produced each result.
- Rerun your test set before moving to a new version, because prompts tuned for one model can behave differently on another.
- Watch deprecation notices and schedule migrations before retirement dates.
- Keep a fallback model for outages if the application is critical.
What to practise at each level
| Level | Practise | Outcome |
|---|---|---|
| Beginner | Use two chat assistants on the same ten tasks and read one model card | You can explain why outputs differ and what a model card tells you |
| Intermediate | Call two model APIs with a 30-case test set; record quality, latency and tokens | A comparison table you can defend in an interview |
| Advanced | Run a quantised open-weight model locally, compare it with a hosted model and add routing | A measured decision about cost, quality and data handling |
Common questions
What is the best Generative AI model?
There is no single best model. Quality, cost, latency and licence terms differ by task. Test candidate models on examples from your own application and choose the smallest one that meets the requirement.
What is the difference between a model and an application like a chatbot?
The model generates content. An application adds instructions, retrieval, tools, user interface, permissions and checks around it. The same model can power very different applications.
Should a beginner learn one model or several?
Learn the shared concepts — tokens, context, prompting, retrieval and evaluation — and practise with at least two providers. That makes switching models a routine engineering task.
What is an open-weight model?
A model whose trained parameters are published so that you can run it on your own hardware, subject to its licence. It is not necessarily open source in the full sense, because training data and code may not be released.
Can I run a Generative AI model on my laptop?
Smaller open-weight models, especially quantised ones, can run on a modern laptop for experiments. Larger models need GPUs, so most applications use hosted APIs for them.
What is a context window?
The maximum amount of input and output, measured in tokens, that a model can handle in one request. Long documents and conversations must fit inside it or be shortened and retrieved selectively.

