> ## Documentation Index
> Fetch the complete documentation index at: https://runinfra.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Models

> Name any compatible Hugging Face model in chat. RunInfra checks that it can read it and that it can serve it, before anything is charged.

You give the agent a Hugging Face model id. Before the run costs you anything, RunInfra checks that your workspace can actually read that repository and that its weights can be served.

<div className="block dark:hidden">
  <svg viewBox="0 0 720 260" width="100%" role="img" aria-label="Naming a model id and accepting the plan runs a Hugging Face access check before any work starts or credit is reserved, and it ends readable, fixable by connecting an account, unservable for adapter-only or GGUF-only repositories, or retryable when Hugging Face timed out." fill="none" xmlns="http://www.w3.org/2000/svg"><text x="24" y="16" fill="#6e6d64" fontFamily="Consolas, Menlo, monospace" fontSize="9" fontWeight="500" letterSpacing="0.3">Model access</text><text x="696" y="16" fill="#6e6d64" fontFamily="Consolas, Menlo, monospace" fontSize="10.5" letterSpacing="0" textAnchor="end">checked at accept time</text><rect x="24.5" y="34.5" width="189" height="39" fill="#ffffff" stroke="#e8e8e3" strokeWidth="1" shapeRendering="crispEdges" /><text x="38" y="59" fill="#0f0f0e" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="12.5" fontWeight="500" letterSpacing="-0.12">You name a model id</text><line x1="214" y1="54" x2="250" y2="54" stroke="#bbb9b1" strokeWidth="1" /><path d="M 250 54 l -5 -3 v 6 z" fill="#bbb9b1" /><rect x="250.5" y="34.5" width="189" height="39" fill="#ffffff" stroke="#e8e8e3" strokeWidth="1" shapeRendering="crispEdges" /><text x="264" y="59" fill="#0f0f0e" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="12.5" fontWeight="500" letterSpacing="-0.12">You accept the plan</text><line x1="440" y1="54" x2="476" y2="54" stroke="#bbb9b1" strokeWidth="1" /><path d="M 476 54 l -5 -3 v 6 z" fill="#bbb9b1" /><rect x="476.5" y="34.5" width="219" height="39" fill="#ffffff" stroke="#e8e8e3" strokeWidth="1" shapeRendering="crispEdges" /><text x="490" y="59" fill="#0f0f0e" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="12.5" fontWeight="500" letterSpacing="-0.12">Access check</text><text x="682" y="59" fill="#6e6d64" fontFamily="Consolas, Menlo, monospace" fontSize="10.5" letterSpacing="0" textAnchor="end">no charge yet</text><text x="24" y="96" fill="#6e6d64" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="10.5" letterSpacing="0">The check runs with the same Hugging Face token the run itself would use, before any work starts and</text><text x="24" y="112" fill="#6e6d64" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="10.5" letterSpacing="0">before any credit is reserved. A model you are licensed for is verified and accepted normally.</text><line x1="24" y1="126" x2="696" y2="126" stroke="#e8e8e3" strokeWidth="1" strokeDasharray="3 3" /><rect x="21.5" y="123.5" width="5" height="5" fill="#bbb9b1" shapeRendering="crispEdges" /><rect x="693.5" y="123.5" width="5" height="5" fill="#bbb9b1" shapeRendering="crispEdges" /><rect x="24" y="140" width="5" height="5" fill="#76b900" shapeRendering="crispEdges" /><text x="40" y="148" fill="#0f0f0e" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="12.5" fontWeight="500" letterSpacing="-0.12">Readable</text><text x="226" y="148" fill="#52524c" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="10.5" letterSpacing="0">The run starts.</text><rect x="24" y="166" width="5" height="5" fill="#b07f24" shapeRendering="crispEdges" /><text x="40" y="174" fill="#0f0f0e" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="12.5" fontWeight="500" letterSpacing="-0.12">Access is fixable</text><text x="226" y="174" fill="#52524c" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="10.5" letterSpacing="0">Connect or reconnect an account, accept the license, then accept the plan again.</text><rect x="24" y="192" width="5" height="5" fill="#b95f5f" shapeRendering="crispEdges" /><text x="40" y="200" fill="#0f0f0e" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="12.5" fontWeight="500" letterSpacing="-0.12">Cannot be served as it is</text><text x="226" y="200" fill="#52524c" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="10.5" letterSpacing="0">Adapter-only and GGUF-only repositories need different weights.</text><rect x="24" y="218" width="5" height="5" fill="#6e6d64" shapeRendering="crispEdges" /><text x="40" y="226" fill="#0f0f0e" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="12.5" fontWeight="500" letterSpacing="-0.12">Hugging Face timed out</text><text x="226" y="226" fill="#52524c" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="10.5" letterSpacing="0">Stays retryable, never recorded as an access refusal.</text></svg>
</div>

<div className="hidden dark:block">
  <svg viewBox="0 0 720 260" width="100%" role="img" aria-label="Naming a model id and accepting the plan runs a Hugging Face access check before any work starts or credit is reserved, and it ends readable, fixable by connecting an account, unservable for adapter-only or GGUF-only repositories, or retryable when Hugging Face timed out." fill="none" xmlns="http://www.w3.org/2000/svg"><text x="24" y="16" fill="#8f8e83" fontFamily="Consolas, Menlo, monospace" fontSize="9" fontWeight="500" letterSpacing="0.3">Model access</text><text x="696" y="16" fill="#9a998e" fontFamily="Consolas, Menlo, monospace" fontSize="10.5" letterSpacing="0" textAnchor="end">checked at accept time</text><rect x="24.5" y="34.5" width="189" height="39" fill="#161614" stroke="#383833" strokeWidth="1" shapeRendering="crispEdges" /><text x="38" y="59" fill="#f0efe2" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="12.5" fontWeight="500" letterSpacing="-0.12">You name a model id</text><line x1="214" y1="54" x2="250" y2="54" stroke="#6e6d64" strokeWidth="1" /><path d="M 250 54 l -5 -3 v 6 z" fill="#6e6d64" /><rect x="250.5" y="34.5" width="189" height="39" fill="#161614" stroke="#383833" strokeWidth="1" shapeRendering="crispEdges" /><text x="264" y="59" fill="#f0efe2" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="12.5" fontWeight="500" letterSpacing="-0.12">You accept the plan</text><line x1="440" y1="54" x2="476" y2="54" stroke="#6e6d64" strokeWidth="1" /><path d="M 476 54 l -5 -3 v 6 z" fill="#6e6d64" /><rect x="476.5" y="34.5" width="219" height="39" fill="#161614" stroke="#383833" strokeWidth="1" shapeRendering="crispEdges" /><text x="490" y="59" fill="#f0efe2" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="12.5" fontWeight="500" letterSpacing="-0.12">Access check</text><text x="682" y="59" fill="#9a998e" fontFamily="Consolas, Menlo, monospace" fontSize="10.5" letterSpacing="0" textAnchor="end">no charge yet</text><text x="24" y="96" fill="#9a998e" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="10.5" letterSpacing="0">The check runs with the same Hugging Face token the run itself would use, before any work starts and</text><text x="24" y="112" fill="#9a998e" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="10.5" letterSpacing="0">before any credit is reserved. A model you are licensed for is verified and accepted normally.</text><line x1="24" y1="126" x2="696" y2="126" stroke="#383833" strokeWidth="1" strokeDasharray="3 3" /><rect x="21.5" y="123.5" width="5" height="5" fill="#6e6d64" shapeRendering="crispEdges" /><rect x="693.5" y="123.5" width="5" height="5" fill="#6e6d64" shapeRendering="crispEdges" /><rect x="24" y="140" width="5" height="5" fill="#76b900" shapeRendering="crispEdges" /><text x="40" y="148" fill="#f0efe2" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="12.5" fontWeight="500" letterSpacing="-0.12">Readable</text><text x="226" y="148" fill="#c8c7ba" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="10.5" letterSpacing="0">The run starts.</text><rect x="24" y="166" width="5" height="5" fill="#d9a64a" shapeRendering="crispEdges" /><text x="40" y="174" fill="#f0efe2" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="12.5" fontWeight="500" letterSpacing="-0.12">Access is fixable</text><text x="226" y="174" fill="#c8c7ba" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="10.5" letterSpacing="0">Connect or reconnect an account, accept the license, then accept the plan again.</text><rect x="24" y="192" width="5" height="5" fill="#c76f6f" shapeRendering="crispEdges" /><text x="40" y="200" fill="#f0efe2" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="12.5" fontWeight="500" letterSpacing="-0.12">Cannot be served as it is</text><text x="226" y="200" fill="#c8c7ba" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="10.5" letterSpacing="0">Adapter-only and GGUF-only repositories need different weights.</text><rect x="24" y="218" width="5" height="5" fill="#9a998e" shapeRendering="crispEdges" /><text x="40" y="226" fill="#f0efe2" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="12.5" fontWeight="500" letterSpacing="-0.12">Hugging Face timed out</text><text x="226" y="226" fill="#c8c7ba" fontFamily="'Helvetica Neue', Helvetica, Arial, sans-serif" fontSize="10.5" letterSpacing="0">Stays retryable, never recorded as an access refusal.</text></svg>
</div>

## Support is decided before pricing

When you select a model for optimization, RunInfra shows one of three verdicts before it shows a charge:

| Verdict | Meaning |
| - | - |
| **Supported** | RunInfra can measure and optimize the model. |
| **Benchmark only** | RunInfra can measure a baseline, but it cannot optimize this model shape. |
| **Not yet supported** | RunInfra refuses the optimization for the stated reason and lists the model families it can optimize. |

A temporary metadata outage is separate from a permanent refusal and offers **Retry**. A refused model creates no hold, reservation, or ledger entry. RunInfra decides the refusal before any charge preview appears.

## Every refusal names one next action

| Situation | What to do |
| - | - |
| The model is gated or private and no token that can read it is connected | Connect a Hugging Face account with access from **Settings > Connected clouds**, then accept the runbook again. |
| Hugging Face rejected the connected token | Reconnect a valid token from **Settings > Connected clouds**, then accept again. |
| The connected account cannot read the model | Open the model page on Hugging Face, accept its license and request access with that same account, then accept again. Choosing an ungated model also unblocks the runbook. |
| The model is gated and access could not be confirmed for the connected account | Accept the model license on Hugging Face with that account, then accept again. |
| The repository publishes only adapter weights (LoRA or PEFT) | An adapter cannot be served on its own. Merge it into its base model and point the runbook at the merged repository, or choose a model that ships full weights. |
| The repository publishes only GGUF files | This optimization path cannot load GGUF. Point the runbook at a safetensors or bin build of the same model. A local runtime format is something a run can produce for you as an output, not something it can start from. |
| The id does not resolve to a Hugging Face repository | Point the runbook at a verified `owner/repo` model id, then accept again. |

## Naming a model

Three forms, all resolved to the same Hugging Face id:

```text theme={"dark"}
Use Llama 3.1 8B for this pipeline
Optimize @Qwen2.5-14B-Instruct with FP8
Deploy microsoft/Phi-3-mini-4k-instruct optimized for latency
```

A full `owner/repo` id is exact. A name or an `@` mention is resolved for you. A description ("a fast multilingual 7B") makes the agent recommend one.

## What can be served

Large language models, embeddings, rerankers, vision-language models, speech-to-text, text-to-speech, and image generation, sourced from Hugging Face. Availability for a given model depends on the selected runtime and the deployment support for that modality, and the agent tells you before it provisions anything.

You can also chain models into one pipeline, for example speech-to-text feeding a language model feeding text-to-speech for a voice assistant.

## Limits

* The maximum context window is set by the model itself. A request that exceeds it is rejected. See [Errors](/docs/api-reference/errors) for the response shape.
* Multimodal request limits depend on the selected model and runtime. The agent reports the limits that apply to your configuration before it provisions.
* A rerank deployment answers its own rerank route, not the chat-completions route. Some rerank models are text-only, and where the deployed model supports it, document `content` arrays carry text, images, and video. The agent reports the route and the accepted content types for your deployment.
* Some model licenses carry commercial-use or user-count gates. RunInfra passes them through and you agree to them on your own Hugging Face account. RunInfra adds no restrictions of its own.
* Fine-tuning is external today. Train elsewhere, then bring the weights.

<Accordion title="Uploading your own weights (Enterprise)">
  Uploading model weights is an **Enterprise** capability. On other plans the upload is refused with an upgrade path. [Contact sales](https://runinfra.ai/contact?category=sales).

  An upload is a **folder**, not a file: the complete Hugging Face model repo you exported, with `config.json` at the root, safetensors or PyTorch `.bin` weights (plus the index file when sharded), and the tokenizer files. Extra files are stored as they are. The ceiling is 50 GB.

  Validation runs in the browser before any bytes move and again on the server. The stored model ends up either validated and ready for measured optimization, or stored incomplete with the specific reason. Interrupted uploads can be retried, and nothing is ever marked ready that is not.

  Uploaded models go through the same optimization path as any other, and you reference one by the name you gave it:

  ```text theme={"dark"}
  Use my uploaded model "fine-tuned-llama-7b" for this pipeline
  ```

  Uploads live at [runinfra.ai/models](https://runinfra.ai/models). That page is not in the dashboard sidebar while the dashboard narrows around Model APIs, but the route, your bookmarks, and the command palette all still open it.
</Accordion>

## Next steps

<Columns cols={2}>
  <Card title="Optimization runs" icon="zap" href="/docs/features/optimization">
    Plan, filter, measure, rank, pick.
  </Card>

  <Card title="Lossless first" icon="shield-check" href="/docs/features/lossless-first">
    Why your weights are left at full precision by default.
  </Card>
</Columns>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.