Model reference · open weights
openchat is an open-weight language model from openchat. openchat (BF16) weighs 26.0 GB; the smallest configuration that runs it is 2× RTX 4060 Ti 16 GB.
For self-hosting, compare this build's requirements below with the GPU you plan to rent.
Summary of the openchat/openchat model card, 2026-10-01
What it is
| Released by | openchat |
|---|---|
| Released | 2023-06-22 |
| VRAM | 26.0 GB for the weights |
What it runs on
| Card | Requests at once | Context max | Memory |
|---|---|---|---|
| 2K each | |||
| RTX 3060 12 GB … RTX 4090 24 GB 4 smaller cards | |||
| RTX 5090 32 GB | 2 | all 2K | 31.0 GB |
| L40S 48 GB | 10 | all 2K | 44.0 GB |
| A100 80 GB | 30 | all 2K | 78.2 GB |
| H100 80 GB | 28 | all 2K | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | 38 | all 2K | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | 46 | all 2K | 107 GB |
| H200 141 GB | 64 | all 2K | 138 GB |
| B200 180 GB | 86 | all 2K | 176 GB |
| 2× RTX 4060 Ti 16 GB tensor parallel | 2 | all 2K | 15.4 GB a card |
| 2× RTX 4090 24 GB tensor parallel | 11 | all 2K | 23.4 GB a card |
| 2× RTX 3090 24 GB tensor parallel | 11 | all 2K | 23.4 GB a card |
| 2× RTX 5090 32 GB tensor parallel | 20 | all 2K | 31.0 GB a card |
| Requests at once | 2K tokens each |
|---|---|
| 1 | 28.4 GB |
| 5 | 35.1 GB |
| 8 | 40.1 GB |
| 16 | 53.5 GB |
| 32 | 80.4 GB |
| 64 | 134 GB |
One card, with vLLM's small-card settings.
From the model card
OpenChat is a series of open-source language models fine-tuned on a diverse and high-quality dataset of multi-round conversations. With only ~6K GPT-4 conversations filtered from the ~90K ShareGPT conversations, OpenChat is designed to achieve high performance with limited data.
Generic models:
Code models:
Note: Please load the pretrained models using bfloat16
We provide the full source code, including an inference server compatible with the "ChatCompletions" API, in the OpenChat GitHub repository.
OpenChat also includes a web UI for a better user experience. See the GitHub repository for instructions.
The conversation template involves concatenating tokens.
Besides base model vocabulary, an end-of-turn token `` is added, with id eot_token_id.
# OpenChat
[bos_token_id] + tokenize("Human: ") + tokenize(user_question) + [eot_token_id] + tokenize("Assistant: ")
# OpenCoder
tokenize("User:") + tokenize(user_question) + [eot_token_id] + tokenize("Assistant:")
Hint: In BPE, tokenize(A) + tokenize(B) does not always equals to tokenize(A + B)
Following is the code for generating the conversation templates:
@dataclass
class ModelConfig:
# Prompt
system: Optional[str]
role_prefix: dict
ai_role: str
eot_token: str
bos_token: Optional[str] = None
# Get template
def generate_conversation_template(self, tokenize_fn, tokenize_special_fn, message_list):
tokens = []
masks = []
# begin of sentence (bos)
if self.bos_token:
t = tokenize_special_fn(self.bos_token)
tokens.append(t)
masks.append(False)
# System
if self.system:
t = tokenize_fn(self.system) + [tokenize_special_fn(self.eot_token)]
tokens.extend(t)
masks.extend([False] * len(t))
# Messages
for idx, message in enumerate(message_list):
# Prefix
t = tokenize_fn(self.role_prefix[message["from"]])
tokens.extend(t)
masks.extend([False] * len(t))
# Message
if "value" in message:
t = tokenize_fn(message["value"]) + [tokenize_special_fn(self.eot_token)]
tokens.extend(t)
masks.extend([message["from"] == self.ai_role] * len(t))
else:
assert idx == len(message_list) - 1, "Empty message for completion must be on the last."
return tokens, masks
MODEL_CONFIG_MAP = {
# OpenChat / OpenChat-8192
"openchat": ModelConfig(
# Prompt
system=None,
role_prefix={
"human": "Human: ",
"gpt": "Assistant: "
},
ai_role="gpt",
eot_token="",
bos_token="",
),
# OpenCoder / OpenCoderPlus
"opencoder": ModelConfig(
# Prompt
system=None,
role_prefix={
"human": "User:",
"gpt": "Assistant:"
},
ai_role="gpt",
eot_token="",
bos_token=None,
)
}
Our weight license is subject to their corresponding base model. For example, OpenChat and OpenChat-8192 are the same as the model License of LLaMA for non-commercial use only, while OpenCoderPlus is under the License of StarCoder. Furthermore, we should follow the Privacy Practices of ShareGPT. The code released on GitHub is under Apache License 2.0.
@software{openllms23,
title = {{OpenLLMs: Less is More for Open-source Models}},
author = {Wang, Guan and Cheng, Sijie and Yu, Qiying and Liu, Changling},
doi = {10.5281/zenodo.8105775},
url = {https://github.com/imoneoi/openchat},
version = {pre-release},
year = {2023},
month = {7},
}
Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.