Website profiles · Technology insights · Alternatives

docs.baseten.co

Package, configure, and iterate on a model with Truss at whatever level of control your model needs.

Paid content
Visit website
Profile views 7 Outbound visits 1 Normal
Develop a model on Baseten - Baseten Full homepage screenshot

At a glance

Category
Development
Language
English
Paid-content signal
Paid contentObserved
Registered
2019
Hosting
VercelInferred
HTTPS certificate trusted
PassedObserved
Last updated

Website review

This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.

What is Baseten?

Baseten is a platform for running, deploying and training machine-learning models on production GPU infrastructure. Rather than being a single product, it covers three related jobs: calling hosted models through an API, deploying your own models on dedicated GPUs, and training or fine-tuning models whose checkpoints you can then serve. Baseten handles the surrounding operational work — model containers, GPU capacity across clouds and regions, scaling and observability — and its inference engines optimise supported model architectures for production traffic.

Three ways to use it

Path What you get Choose it when
Model APIs Hosted endpoints for a curated set of models, callable with the OpenAI Chat Completions API (and the Anthropic Messages API in beta) A supported model fits your application and you want to start with an API call; Baseten manages the model, engine, hardware and scaling
Dedicated inference Your open-source, fine-tuned or custom model on dedicated infrastructure, defined by a config.yaml, a Python model class, or a custom Docker server, deployed with the Baseten CLI You need control over the model, hardware, autoscaling settings and release lifecycle, or you need custom pre/post-processing, dependencies or server behaviour
Training Fine-tuning with Loops, or your own training code via Training Jobs You want to produce checkpoints and serve them on the same platform

What that means in practice

A small team shipping a chat feature would likely start with Model APIs: an API key and the OpenAI SDK get a first call working quickly, and there is no serving code to maintain. A team with a private checkpoint, unusual preprocessing, or latency and cost constraints would move to a dedicated deployment, where a config.yaml may be enough for supported architectures but a Python model class or custom Docker server is available when custom logic is required. Dedicated deployments also support separate development, staging and production environments, which matters if you want a stable release lifecycle rather than editing a live endpoint.

The trade-off is the usual managed-versus-controlled one: Model APIs minimise operational work but limit you to supported models and their configuration, while dedicated inference gives you flexibility in exchange for defining and maintaining the deployment yourself.

A useful next step is to read the quickstart for making a first inference call, then decide which path fits by asking whether a curated hosted model is sufficient. If it is not, follow the guide to deploying a first model (for example, a Hugging Face model with config.yaml and the CLI). For cost planning, the documentation includes pages on pricing and limits and on billing and usage at Baseten.

How do I make my first inference call using the OpenAI SDK?

Use Baseten's Model APIs and the OpenAI SDK: you point the SDK's base_url at Baseten and authenticate with your Baseten API key, then call a supported hosted model exactly as you would call OpenAI. Baseten manages the model, engine, hardware and scaling, so there is no deployment step for this path.

The practical shape of the first call:

  1. Pick a model from the Model Library that Model APIs expose.
  2. Create an API key in your Baseten workspace.
  3. Install the OpenAI SDK and set base_url to Baseten's Model APIs endpoint, with the key as the API credential.
  4. Send a Chat Completions request with that model ID and check the response.

Model APIs support the OpenAI Chat Completions API, with the Anthropic Messages API in beta, so existing client code usually needs only the base URL, key and model name changed. The exact base URL, model IDs and a runnable snippet are in the quickstart on Baseten's documentation.

When this is the right starting point — and when it isn't

Situation Better first step
A supported hosted model fits your app Model APIs via the OpenAI SDK
You have a fine-tuned or custom checkpoint Dedicated deployment with the Baseten CLI
You need custom preprocessing, postprocessing or dependencies Python model class or custom Docker server
You only need speech-to-text A speech model from the Model Library

The trade-off is control: Model APIs are the fastest route but limited to the curated set of models and their exposed behaviour. If you need a specific checkpoint, particular hardware, autoscaling settings or a stable staging-to-production release lifecycle, move to a dedicated deployment. For supported architectures, a config.yaml can define the model, hardware and inference engine without serving code; a Python model class or Docker server is for when you need custom logic.

A useful next step: make one hosted call and confirm the response, then decide whether the hosted model is sufficient or whether your use case needs a dedicated deployment. If you plan to have a coding agent call these endpoints, the documentation also covers pointing agents at Model APIs and letting an agent manage your workspace.

When should I use Model APIs instead of deploying a dedicated model?

Use Model APIs when a supported hosted model already fits your application and you want to start with an API call rather than manage serving code or GPU capacity. Baseten's own guidance frames it this way: Model APIs expose hosted endpoints for a curated set of models, while dedicated inference is for open-source, fine-tuned or custom models on infrastructure you configure. Model APIs support the OpenAI Chat Completions API and the Anthropic Messages API in beta, so you can keep familiar client SDKs.

Where the line usually falls

Situation Better fit
The task is general chat, summarization, extraction or similar, and a curated hosted model handles it Model APIs
You need custom preprocessing, postprocessing, dependencies or server behavior Dedicated inference
You have a private checkpoint or fine-tuned weights Dedicated inference
You want a quick first call to validate an idea Model APIs
You need control over hardware, autoscaling settings and release lifecycle Dedicated inference
You want stable development, staging and production environments for your own model Dedicated inference

The trade-off is control versus overhead. Model APIs leave the model, engine, hardware and scaling to the platform, which is why they suit teams that want to ship an API call. Dedicated deployments give you control over the model, hardware, autoscaling and release lifecycle, but you define the model with a configuration file, a Python model class or a custom Docker server and deploy it with the Baseten CLI.

A practical test

Ask one question first: does a supported hosted model meet your quality bar on real examples? Prototype on Model APIs and evaluate on your own data. If quality holds, stop there. If it falls short because of domain-specific behavior, proprietary data or latency and cost constraints you cannot meet with a hosted endpoint, move to dedicated inference — that is the point where the extra control earns its setup cost.

For a concrete case: a team building an internal document Q&A tool can call a hosted model through the OpenAI SDK for the answering step and only deploy a dedicated model if they later need a private fine-tune or custom retrieval-side serving logic. Start with the quickstart to make your first inference call, then read Baseten's documentation on developing a model if the prototype shows you need dedicated deployment.

How do I deploy my own model on dedicated GPUs with the Baseten CLI?

You deploy a model on dedicated GPUs by defining it (a config.yaml, a Python model class, or a custom Docker server), then shipping it with the Baseten CLI. The CLI handles the build-and-deploy step; Baseten manages the containers, GPU capacity, scaling, and observability around your deployment.

The three definition paths

Approach Use it when What you write
config.yaml Your model architecture is supported and needs no custom serving code A config file declaring the model, hardware, and inference engine
Python model class You need custom preprocessing, postprocessing, or extra dependencies A Python class plus the CLI deploy step
Custom Docker server You need full control over the server, dependencies, or HTTP behavior Your own Dockerfile and server, deployed via the CLI

Start with config.yaml if you are deploying a Hugging Face model and want the shortest path. Move to a Python class or Docker server only when the config cannot express what your model needs.

What dedicated deployments give you

Unlike Model APIs, where Baseten manages the model, engine, hardware, and scaling for a curated set of hosted models, a dedicated deployment puts the model, hardware, autoscaling settings, and release lifecycle under your control. That control is the point: you get stable environments for development, staging, and production, and you can ship a private checkpoint or a fully custom model rather than choosing from a hosted catalog.

A practical first deployment

  1. Pick the definition path above based on whether you need custom code.
  2. Write the config, model class, or Docker server.
  3. Deploy with the Baseten CLI.
  4. Verify with an inference call, then promote the release through your staging and production environments.

If your goal is simply to call a supported language model, skip dedicated GPUs entirely and use Model APIs with the OpenAI SDK or the Anthropic Messages API (beta) — that avoids managing hardware and scaling yourself. The official docs for the deployment workflow are at Baseten documentation; for cost planning before you commit GPU capacity, see the pricing and limits and billing pages linked from those docs.

How does Baseten handle autoscaling, cold starts, and billing for deployments?

Baseten splits autoscaling, cold-start handling, and billing across two deployment paths: hosted Model APIs and dedicated deployments. Your choice of path determines who controls the scaling knobs and how you pay.

Autoscaling and cold starts

  • Model APIs (hosted): Baseten manages the model, engine, hardware, and scaling for you. You call a curated model through an OpenAI-compatible endpoint and don't configure capacity, so autoscaling and cold-start behavior are handled platform-side.
  • Dedicated deployments: You deploy your own model on dedicated GPUs and control the autoscaling settings and release lifecycle. This is the path where scaling configuration is actually your decision rather than a managed default.

The docs describe the platform as managing GPU capacity across clouds and regions, plus cold-start handling as part of its build-and-routing pipeline. The practical trade-off: hosted APIs remove operational work but limit you to supported models and architectures; dedicated deployments give you control over hardware and scaling but put capacity decisions in your hands.

Billing

Billing is organized around usage, with two reference pages: pricing and limits for Model APIs, and billing and usage for organization-level accounting. Because the two paths differ in who owns the hardware, expect the cost model to differ too — hosted endpoints are typically consumed per call, while dedicated deployments involve provisioned GPU capacity that keeps running according to your autoscaling and scale-to-zero settings. Confirm current rates and limits on the pricing pages rather than assuming.

A concrete decision

If you're prototyping a chatbot on a supported open model, start with Model APIs: one API key, the OpenAI SDK, no capacity planning. If you have a fine-tuned checkpoint, custom preprocessing, or need a stable staging-to-production release cycle, go dedicated and treat autoscaling settings as your main cost lever — aggressive scale-to-zero cuts idle spend but adds cold-start latency on the first request after a quiet period.

Next step: read the quickstart to make a first inference call, then compare the two pricing pages before committing to dedicated capacity. For background on the platform itself, see Baseten.

How can I train or fine-tune a model on Baseten?

Baseten offers two paths for training or fine-tuning, and they differ mainly in how much of the training loop you control.

Fine-tune with Loops is the managed option: you bring a dataset and a supported base model, and Baseten handles the training run. Use this when your goal is a working fine-tuned checkpoint rather than a custom training pipeline.

Training Jobs let you run your own training code on Baseten's GPU infrastructure. Choose this when you need a custom loss function, a non-standard architecture, a specific distributed-training setup, or dependencies that a managed fine-tuning flow won't accommodate. You supply the code and the environment; Baseten supplies the GPUs.

A practical decision rule

  • If a supported base model plus your dataset gets you the behavior you want, start with Loops.
  • If you've already written training code that works locally or on another cluster, Training Jobs is the more direct fit.
  • If you're unsure, prototype with Loops first. Switching later costs less than debugging a custom training job you didn't need.

What happens after training

Training produces checkpoints, and Baseten's platform is built to serve resulting checkpoints as deployed models. That means the same infrastructure story applies after training as before it: you can deploy the fine-tuned model on dedicated GPUs, with Baseten managing containers, GPU capacity across clouds and regions, scaling, and observability. If your fine-tune lands on a supported architecture, a config.yaml can define the model, hardware, and inference engine without custom serving code; you'd reach for a Python model class or a custom Docker server only when you need custom preprocessing, postprocessing, dependencies, or server behavior.

Concrete scenario

Say you're a small team adapting an open-source language model to your domain's jargon. You have a few thousand labeled examples and no interest in maintaining a training cluster. Loops gets you a checkpoint, and you deploy it on dedicated infrastructure with autoscaling settings you choose. If, six months later, you need a custom tokenizer or a modified attention implementation, you move that work into a Training Job and keep the same serving setup.

Next step

Read the training and deployment sections of the documentation together rather than in isolation, since the checkpoint you produce determines which deployment path you'll take. The overview at Baseten links both, along with the quickstart for a first inference call if you want to confirm the serving side works before committing to a training run.

Related questions

More questions →
How to Use Ahrefs for Your First SEO Audit: A Step-by-Step Tutorial

If you're new to Ahrefs and want to run your first SEO audit, the fastest path is: open Site Explorer, enter your target URL, review the Overview for a health snapshot, then dig into Organic Keywords, Top Pages, and Site Audit to find specific problems. From there, build a short prioritized to-do list instead of trying to fix everything at once.

This tutorial walks through that workflow using a realistic starting scenario, explains what the numbers mean, and shows how to turn findings into actions.

Before You Start: Pick a Narrow Scope

A common beginner mistake is auditing an entire large website on day one. The reports become overwhelming, and you can't tell which issues matter.

Instead, choose one of these starting points:

  • A single important page (your homepage or a key product/service page)
  • A small site (under ~50 pages, e.g., a personal blog or small business site)
  • One section of a bigger site (e.g., /blog/)

For this tutorial, assume you're auditing a small business site with about 30 pages. The same steps scale up later.

You'll need an Ahrefs account to follow along. Ahrefs offers paid plans, and pricing and feature limits change over time, so check the current Pricing page for what's included in each tier before committing.

Step 1: Enter Your Target in Site Explorer

Site Explorer is Ahrefs' core tool for analyzing any website or URL.

  1. Open Site Explorer from the top navigation.
  2. In the search box, paste your domain (e.g., example.com).
  3. Choose the Exact URL or Domain mode depending on scope. For a full-site view, use Domain or Prefix; for a single page, use Exact URL.
  4. Press Enter.

You'll land on the Overview report. Don't try to absorb everything — focus on four numbers first.

Reading the Overview Snapshot

Metric What it tells you How to use it
Ahrefs Rank (AR) Relative strength of the site's backlink profile vs. others in the database Useful for comparing against competitors, not as a standalone goal
Organic traffic Estimated monthly visits from search A rough trend indicator, not exact analytics
Organic keywords Estimated number of keywords the site ranks for Shows breadth of visibility
Backlinks / Referring domains Total links and unique sites linking to you Referring domains matter more than raw backlink count

Important caveat: Ahrefs' traffic and keyword numbers are estimates based on its own data. They won't match Google Search Console or your analytics exactly. Treat them as directional, not absolute.

Step 2: See What You Already Rank For

Go to Organic Keywords in the left sidebar. This shows queries where your site appears in search results.

Sort by Traffic (descending) to see which pages bring the most estimated visitors. Then look for:

  • Keywords ranking in positions 4–15 — these are often the easiest wins. A small content or on-page improvement can push them onto page one.
  • Keywords with high volume but low position — potential opportunities if the topic is relevant.
  • Irrelevant keywords — if you rank for something off-topic, it may signal thin or mismatched content.

Write down 5–10 of the position 4–15 keywords. These become your first optimization targets.

Step 3: Find Your Best and Weakest Pages

Open Top Pages. This ranks your URLs by estimated organic traffic.

Look for two things:

  1. Your top performers — understand what topics and formats work. Can you create more content like this?
  2. Pages with traffic but poor rankings — these may need on-page fixes (title, headings, internal links).

If a page gets zero traffic and targets a topic you care about, it's a candidate for a rewrite or consolidation.

Step 4: Run a Technical Site Audit

Now move to Site Audit. This crawls your site and flags technical and on-page issues.

  1. Click Site Audit → New project.
  2. Enter your domain and set crawl settings (default is usually fine for a small site).
  3. Start the crawl and wait for it to finish.

Once complete, you'll see a Health Score and a list of issues grouped by category.

Which Issues to Fix First

Not all issues are equal. Prioritize in this order:

Priority Issue type Why it matters
1 Broken links (404s) Bad for users and crawl efficiency
2 Pages blocked from indexing They can't rank at all
3 Missing or duplicate title tags Directly affects click-through and relevance
4 Slow-loading pages Affects experience and rankings
5 Thin content Low value to users and search engines

Ignore low-impact warnings (like minor meta description length) until the big items are handled.

Step 5: Turn Findings Into a To-Do List

You now have raw data. Convert it into a short, actionable list. Example:

  1. Fix 3 broken links found in Site Audit.
  2. Rewrite title tags on 5 pages with duplicate titles.
  3. Improve 4 pages ranking in positions 6–12 by adding missing subtopics and internal links.
  4. Remove or update 2 thin pages with no traffic.

Keep the list to 5–10 items max for your first audit. Finishing a short list beats starting a long one.

Common Beginner Mistakes

  • Chasing every red flag. Site Audit flags many minor issues. Fix what affects rankings and users first.
  • Trusting estimates as exact numbers. Ahrefs data is modeled, not measured from your analytics.
  • Auditing a huge site too early. Start small to learn the interface.
  • Ignoring search intent. A page can be technically perfect but still fail if it doesn't match what searchers want.
  • Forgetting to re-crawl. After fixes, run Site Audit again to confirm improvements.

Where to Go Next

Once your first audit is done:

  • Compare with competitors using Site Explorer's Competing Domains and Content Gap reports.
  • Track keyword rankings over time with Rank Tracker.
  • Explore backlink opportunities in the Backlinks and Link Intersect reports.
  • Set up recurring Site Audit crawls so new issues surface automatically.

Your first audit isn't about perfection — it's about building a repeatable habit: enter a target, read the key reports, pick the highest-impact fixes, and act. Do that once a month and your site's health compounds.

How to Make Your First Inference Call or Deploy Your First Model on Baseten

Baseten supports two distinct first steps: calling a hosted model through Model APIs with an API key and the OpenAI SDK, or deploying your own model on dedicated GPUs using a config.yaml and the Baseten CLI. Choose the first if a supported model already fits your application and you want to start with an API call. Choose the second if you need a specific open-source model, a private checkpoint, or custom serving logic.

Path 1: Make your first inference call with Model APIs

Model APIs expose hosted endpoints for a curated set of models. Baseten manages the model, engine, hardware, and scaling, so you only supply an API key and a request.

What you need

  • A Baseten account with an API key
  • The OpenAI SDK installed in your environment
  • A model from the supported Model APIs list

Steps

  1. Get your API key from your Baseten workspace.
  2. Install the OpenAI SDK if you have not already.
  3. Send a request using the OpenAI client, pointing the base URL at Baseten's Model APIs endpoint and passing your API key.
  4. Read the response the same way you would from any OpenAI-compatible Chat Completions call.

The expected result is a normal chat completion response. Because Model APIs support the OpenAI Chat Completions API (and the Anthropic Messages API in beta), you can reuse existing client code and swap the endpoint and key.

When this path fits

  • A supported model meets your quality and latency needs.
  • You do not want to manage containers, GPUs, or scaling.
  • You want the fastest route from zero to a working call.

Path 2: Deploy your first model on dedicated infrastructure

Dedicated inference lets you deploy an open-source model, a private checkpoint, or a custom model on GPUs you control. Baseten still handles containers, GPU capacity across clouds and regions, scaling, and observability, but you define the model and its serving behavior.

Three ways to define a model

Approach Use it when What you write
config.yaml A supported architecture fits and you want no custom serving code A config file defining model, hardware, and inference engine
Python model class You need custom preprocessing, postprocessing, or dependencies A Python class plus supporting files
Custom Docker server You need full control over server behavior Your own Docker-based server

For a first deployment, the documented starting point is a Hugging Face model defined with config.yaml and deployed with the Baseten CLI. This avoids writing serving code while still giving you a dedicated deployment.

Steps for the config.yaml route

  1. Pick a supported model architecture from Hugging Face.
  2. Write a config.yaml that names the model, the hardware, and the inference engine.
  3. Deploy with the Baseten CLI. The CLI builds the container, provisions GPU capacity, and routes traffic to your deployment.
  4. Verify by sending a request to the deployment endpoint and checking the response.

The expected result is a running dedicated deployment you can call, with Baseten handling autoscaling, cold starts, and release promotion.

When to move to a Python class or Docker server

Switch from config.yaml when you need any of the following:

  • Custom preprocessing or postprocessing of inputs and outputs
  • Extra dependencies not covered by the default engine
  • Custom server behavior that the config file cannot express

How to choose between the two paths

Question Model APIs Dedicated inference
Do you need a specific or private model? No Yes
Do you need custom serving code? No Yes, via Python class or Docker server
Who manages hardware and scaling? Baseten Baseten, but you set autoscaling and hardware
Do you need dev/staging/production environments? Not the focus Yes, stable environments and release lifecycle
Fastest first call? Yes No

Start with Model APIs if a supported model works. Move to dedicated inference when model choice, customization, or environment control becomes a requirement.

Common sticking points

  • Skipping the "Choose how to start" decision. The docs split into "Call a hosted model" and "Deploy your model" for a reason. Picking the wrong entry point wastes time.
  • Reaching for a Docker server too early. If a supported architecture fits, config.yaml gets you deployed without serving code.
  • Assuming Model APIs cover every model. They cover a curated set. Anything outside that set belongs on dedicated inference.
  • Forgetting that pricing and limits are separate pages. Check the Pricing and limits and Billing and usage docs before committing to a path, since cost and quota behavior differ between hosted calls and dedicated deployments.
Baseten Model APIs vs. Dedicated Inference: Which Path Should You Choose?

Use Model APIs when a supported hosted model already fits your application and you want to start with a single API call. Choose dedicated inference when you need to run an open-source model, a private checkpoint, or a custom model on GPUs you control. The deciding factors are how much customization you need and how much of the serving stack you want Baseten to manage for you.

The two paths at a glance

Dimension Model APIs Dedicated inference
What you run A curated set of hosted models Open-source, fine-tuned, or custom models
Who manages the model, engine, hardware, and scaling Baseten You define the model; Baseten manages the infrastructure
API compatibility OpenAI Chat Completions API, Anthropic Messages API (beta) Your own serving behavior
How you define the model Nothing to define — call the endpoint A config.yaml, a Python model class, or a custom Docker server
Control over hardware and autoscaling Not your concern You set hardware, autoscaling, and release lifecycle
Environment stability Managed for you Stable environments for development, staging, and production

When Model APIs are the right fit

Model APIs expose hosted endpoints for a curated set of models. Because they support the OpenAI Chat Completions API (and the Anthropic Messages API in beta), you can point familiar client SDKs at them without writing serving code.

Pick this path when:

  • A supported model already meets your application's needs.
  • You want to start with an API call rather than a deployment.
  • You don't want to think about model containers, GPU capacity, scaling, or observability — Baseten handles all of that.

The quickstart is exactly this: call a hosted model through Model APIs with an API key and the OpenAI SDK.

When dedicated inference is the right fit

Dedicated inference deploys an open-source model, a private checkpoint, or a custom model on dedicated infrastructure. You define the model in one of three ways, then deploy it with the Baseten CLI:

  • config.yaml — for supported architectures, define the model, hardware, and inference engine without writing custom serving code.
  • A Python model class — use this when you need custom preprocessing, postprocessing, dependencies, or server behavior.
  • A custom Docker server — for full control over the serving environment.

Choose this path when you need control over the model itself, the hardware, autoscaling settings, and the release lifecycle — or when you need stable environments for development, staging, and production.

How to decide

Ask yourself these questions in order:

  1. Does a supported hosted model already fit? If yes, start with Model APIs.
  2. Do you need custom preprocessing, postprocessing, dependencies, or server behavior? If yes, you need dedicated inference — a Python model class or a custom Docker server.
  3. Do you need to control hardware, autoscaling, or the release lifecycle? If yes, dedicated inference gives you that control.
  4. Do you need separate development, staging, and production environments? Dedicated deployments support stable environments for each.

If you answered "no" to all of these, Model APIs will get you to a working call fastest.

What both paths share

Either way, you're running on production GPU infrastructure that Baseten manages across clouds and regions, including model containers, scaling, and observability. Inference engines optimize supported model architectures for production traffic. The difference is where the boundary of your responsibility sits: at the API call, or at the model definition.

For current pricing and usage details, see the Pricing and limits and Billing and usage pages.

How Baseten Handles Deployment, Scaling, and Release Management

Baseten is a platform for model inference and training that manages model containers, GPU capacity across clouds and regions, scaling, and observability on your behalf. If you want to know whether it is production-ready for running models, the short answer is: yes, for the parts it manages — you get dedicated infrastructure, autoscaling controls, cold-start handling, and a release lifecycle with stable environments for development, staging, and production. The trade-off is that the level of control you get depends on which deployment path you choose.

Two paths, two levels of control

Baseten offers two ways to run models, and they differ in how much of the operational stack you own.

Model APIs Dedicated inference
What runs A curated set of hosted models Your open-source, fine-tuned, or custom model
Who manages the model, engine, hardware, scaling Baseten You configure; Baseten runs the infrastructure
API compatibility OpenAI Chat Completions API, Anthropic Messages API (beta) Your own serving code or a supported engine
Best when A supported model fits your application and you want to start with an API call You need custom preprocessing, postprocessing, dependencies, or server behavior

With Model APIs, Baseten manages the model, engine, hardware, and scaling — you just call an endpoint. With dedicated inference, you define the model and Baseten handles the containers, GPU capacity, scaling, and observability around it.

How deployment works

For dedicated inference, you define the model in one of three ways, then deploy it with the Baseten CLI:

  • A config.yaml — for supported architectures, this defines the model, hardware, and inference engine without any custom serving code.
  • A Python model class — use this when you need custom preprocessing, postprocessing, or dependencies.
  • A custom Docker server — use this when you need full control over server behavior.

The choice maps directly to how much custom logic you need. If a supported architecture fits, config.yaml is the lightest option. If you need to transform inputs or outputs, a Python model class covers it. If you need to change how the server itself behaves, go with a custom Docker server.

Once deployed, Baseten manages the model containers and the GPU capacity behind them, drawing on capacity across clouds and regions. Its inference engines optimize supported model architectures for production traffic, so you are not tuning serving performance from scratch.

How scaling and cold starts are handled

Dedicated deployments give you control over autoscaling settings. That means you decide how the deployment responds to traffic rather than accepting a fixed capacity. Baseten also handles cold-start behavior as part of the deployment lifecycle — relevant when a model scales down and needs to come back up under load.

The practical implication: you can tune for cost (scale down when idle) or for latency (keep capacity warm), and Baseten manages the mechanics of bringing instances up and routing traffic to them.

How release management works

Dedicated deployments support a release lifecycle with stable environments for development, staging, and production. This lets you promote a model version through environments rather than deploying straight to production. Combined with control over the model, hardware, autoscaling settings, and release lifecycle, this is what makes the dedicated path suitable for teams that need a repeatable promotion process.

What to check before committing

  • Confirm your model architecture is supported if you want the config.yaml route — otherwise you will need a Python model class or custom Docker server.
  • Decide your scaling posture up front — autoscaling settings are yours to configure, so know whether you are optimizing for cost or latency.
  • Review pricing and limits before sizing a production deployment. Baseten publishes a Pricing and limits page and a Billing and usage page; the documentation does not state that any tier is free, so treat cost as something to verify rather than assume.
  • Start with the quickstart if you have not deployed yet: call a hosted model through Model APIs with an API key and the OpenAI SDK, then move to a dedicated deployment once you know your requirements.

If your goal is simply to call a supported model, Model APIs remove nearly all operational work. If your goal is to run your own model in production with control over hardware, scaling, and releases, dedicated inference is the path — and Baseten handles the containers, capacity, scaling, and observability underneath it.

Can You Train or Fine-Tune Models on Baseten?

Yes. Baseten is a platform for both model inference and training, and its documentation states that you can train models and serve the resulting checkpoints. Two paths are documented: fine-tuning with Loops, or running your own training code with Training Jobs. Training runs on production GPU infrastructure, and the checkpoints you produce can then be served through Baseten's inference paths.

The two documented training paths

Loops (fine-tuning)

Use Loops when you want to fine-tune rather than write a training loop from scratch. The overview lists it as the fine-tuning option alongside Training Jobs. The documentation does not, in the material available here, spell out Loops' supported base models, dataset formats, or hyperparameters — check the Loops section of the docs before committing to it.

Training Jobs (your own code)

Use Training Jobs when you want to run your own training code on Baseten's GPU infrastructure. This is the more flexible path: you bring the training script, and Baseten provides the compute. As with Loops, the specifics of job configuration and artifact output are not detailed in the overview excerpt, so treat the Training Jobs docs as the source of truth for setup.

How training results get served

The overview states plainly that you can "train models and serve the resulting checkpoints." The serving side works through the same inference options Baseten offers generally:

Serving path What it is When it fits
Model APIs Hosted endpoints for a curated set of models, using the OpenAI Chat Completions API (and Anthropic Messages API in beta) A supported model fits your application and you want to start with an API call
Dedicated inference Your open-source model, private checkpoint, or custom model on dedicated GPUs You need control over the model, hardware, autoscaling, and release lifecycle

A trained checkpoint is a private artifact, so serving it points toward dedicated inference rather than Model APIs — Model APIs expose a curated set of hosted models, not arbitrary checkpoints. On the dedicated side, you define the model in one of three ways:

  • config.yaml — for supported architectures, defines the model, hardware, and inference engine without custom serving code
  • Python model class — when you need custom preprocessing, postprocessing, or dependencies
  • Custom Docker server — when you need full control over server behavior

Deployment is done with the Baseten CLI. Dedicated deployments also give you stable environments for development, staging, and production, plus control over autoscaling settings and the release lifecycle.

What Baseten manages for you

Across both inference and training, Baseten handles model containers, GPU capacity across clouds and regions, scaling, and observability. Its inference engines optimize supported model architectures for production traffic. That means the training-to-serving handoff does not require you to stand up your own container or GPU fleet — but it also means supported architectures matter: config.yaml-based deployment depends on the architecture being supported, which is why custom serving code exists as a fallback.

Practical starting order

  1. Decide whether you need fine-tuning (Loops) or full control over training code (Training Jobs).
  2. Run the training job and produce a checkpoint.
  3. Choose a serving definition — config.yaml if your architecture is supported, otherwise a Python model class or custom Docker server.
  4. Deploy with the Baseten CLI and verify with an inference call.

For pricing and usage limits on training and inference, see the "Pricing and limits" and "Billing and usage" pages in the docs; the overview excerpt does not include rates or quotas.

Website Overview

An established domain and managed infrastructure suggest continuity of operations and may support dependable delivery, although neither guarantees service quality. Page metadata, canonical configuration and social previews work together to provide more consistent search and sharing presentation.

Domain and Registration

Registered in 2019, this domain has about 7 years of history. That suggests continuity, although ownership and purpose may have changed. Transfer-protection status is present, helping reduce the risk of unauthorized domain transfers. The domain uses the common .co extension, which is not an independent safety signal.

DNS and Email

Nameservers are provided by Google Cloud DNS, indicating managed DNS hosting. MX records point to the Google Workspace email service. SPF and DMARC are configured. DKIM status is unknown. TXT records include verification markers for Google, Apple, Microsoft. Such markers may also remain after a service stops being used. DNSSEC signatures were not detected, so this additional DNS authenticity protection is not confirmed.

TLS and Certificates

The certificate uses an RSA 2048-bit public key, offering broad client compatibility. The server supplied a complete certificate chain. No organization name is present in the certificate; the available fields are consistent with domain validation. The certificate was issued by Let's Encrypt, commonly associated with automated certificate services. The certificate's total validity is about 89 days, consistent with a short renewal cycle.

HTTP and Browser Security

The response lacks these common security headers: Referrer-Policy, Permissions-Policy. No X-Powered-By header was found, reducing one common source of backend fingerprinting information. The cf-ray response header indicates a CDN or caching proxy in the delivery path. No obvious internal addresses or debug information were found in the headers. The Server header contains the custom value Vercel.

Technology Stack Analysis

The public page identifies Mintlify, Next.js, Cloudflare, Vercel without precise versions, leaving fewer clues for version-specific scanning.

Search and Social Sharing

The Generator tag identifies Mintlify, making the publishing system easier to fingerprint. Twitter Card metadata is configured. JSON-LD includes Organization data, helping describe the organization as an entity. The title has 26 characters, within a common display range. A meta description is present, with 91 characters.

Hosting and Email

DNSGoogle Cloud DNS
HostingVercel
EmailGoogle Workspace
Approximate IP geolocation (inferred; a CDN or proxy may differ from the origin server) United States flagUnited States Inferred 66.33.60.193

Registration details

RDAP / WHOIS

RegistrarKey-Systems GmbH
Registered2019-07-26
Expires2027-07-26
Domain statusclientDeleteProhibited https://icann.org/epp#clientDeleteProhibited、clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Nameserversns-cloud-e1.googledomains.com、ns-cloud-e2.googledomains.com、ns-cloud-e3.googledomains.com、ns-cloud-e4.googledomains.com
DNSSECunsigned

DNS records

DNS

TypeNameValueTTLPriority
Acname.vercel-dns.com66.33.60.193300—
Acname.vercel-dns.com76.76.21.241300—
MXbaseten.coaspmx.l.google.com3001
MXbaseten.coalt1.aspmx.l.google.com3005
MXbaseten.coalt2.aspmx.l.google.com3005
MXbaseten.coalt3.aspmx.l.google.com30010
MXbaseten.coalt4.aspmx.l.google.com30010
NSbaseten.cons-cloud-e1.googledomains.com300—
NSbaseten.cons-cloud-e2.googledomains.com300—
NSbaseten.cons-cloud-e3.googledomains.com300—
NSbaseten.cons-cloud-e4.googledomains.com300—
TXTbaseten.co1password-site-verification=754XZKMILNGRHFMW4S3P6ZIO6E300—
TXTbaseten.coMS=ms80800795300—
TXTbaseten.coTAILSCALE-QslSDJhqoTCmMGij86jy300—
TXTbaseten.coZOOM_verify_TUoi5vUNZchIQICHlxf64V300—
TXTbaseten.coanthropic-domain-verification-ecp4s5=j4cpgEY8JNqd89rk7MORuAXMz300—
TXTbaseten.coapple-domain-verification=IcKSXOzeEKwJxlCa300—
TXTbaseten.coapple-domain-verification=dbuuDagClgNE9RTf300—
TXTbaseten.cocursor-domain-verification-1hfrcy=uB5v3zPXZDEDsR4otCZxCq7Kp300—
TXTbaseten.codocker-verification=12764859-81b7-4357-a07e-03a01cf2e4ca300—
TXTbaseten.cogoogle-site-verification=VVhz-ynnmzCQjQ-qqWi2fdRY1qXkEN71gZ7sGbY9Pdw300—
TXTbaseten.cogoogle-site-verification=am-fAQNrFz7sB9H68QffXkOZfaQz-gALoDQbhlWGutc300—
TXTbaseten.cohcp-domain-verification=c64c6e5024d72f1ee049a3eb321f54a6b479c9b932b3ba791f6ddecfff441546300—
TXTbaseten.colinear-domain-verification=657164300—
TXTbaseten.colinear-domain-verification=xhj6pj4md4zr300—
TXTbaseten.conotion-domain-verification=8SB1Pg7KSS1wVEJMaQVdTaSsuQybdWetgIwBErUwE9B300—
TXTbaseten.coopenai-domain-verification=dv-3YsoocFQXB6HA0sBGaCIbBOe300—
TXTbaseten.corunreveal-domain-verification-r6jxrm=md2LtQ1Him4JwDe6aGhK1UBfd300—
TXTbaseten.co[email protected]300—
TXTbaseten.costripe-verification=07845d7fcf36141205ba877a3dac633d781977c4b7b3f32e5a6883bcb487c056300—
TXTbaseten.cov=spf1 include:_spf.google.com include:sendgrid.net include:_spf.salesforce.com include:ab.sendgrid.net -all300—
CNAMEdocs.baseten.cocname.vercel-dns.com300—
DMARCbaseten.co.dmarc.dns.suped.comv=DMARC1; p=quarantine; rua=mailto:[email protected],mailto:[email protected]; sp=none; pct=100; adkim=r; aspf=r; ri=864003600—

TLS and certificates

TLS / SSL

AssessmentNormal configuration
Supported protocolsTLSv1.2、TLSv1.3
Negotiated protocolTLSv1.3
Certificate subjectdocs.baseten.co
IssuerLet's Encrypt
Valid until2026-12-16T23:56 · Remaining when checked: 72 days
Verification detailsCertificate trust: Passed · Hostname match: Passed

HTTP response headers

HTTP

HeaderValue
content-typetext/html; charset=utf-8
cache-controlno-store, no-cache, must-revalidate, proxy-revalidate, max-age=0
serverVercel
strict-transport-securitymax-age=63072000
content-security-policyworker-src 'self' blob:; object-src 'none'; base-uri 'self'; upgrade-insecure-requests; frame-ancestors 'self' https://dashboard.mintlify.com https://app.mintlify.com; form-action 'self'; default-src 'self' https:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https:; style-src 'self' 'unsafe-inline' https:; img-src 'self' data: blob: https:; font-src 'self' data: https:; media-src 'self' data: blob: https:; frame-src 'self' blob: https:; connect-src 'self' data: https: wss:;
x-frame-optionsDENY
x-content-type-optionsnosniff

Identified technologies

MintlifyNext.jsCloudflareVercel

Pages, Search and Sharing

Meta descriptionRun hosted models, deploy custom models, and train models on production GPU infrastructure.
Canonical URLhttps://docs.baseten.co/overview
LanguageEnglish (default)
Twitter Cardsummary_large_image
All bots 0 allowed · 1 disallowed
  • Disallow/cdn-cgi/

User reviews (0)

  • No reviews yet.