Model reference · open weights

opencoderplus

LLMs openchat Text gen 1 build Licence not stated 118 dl/mo

opencoderplus is an open-weight language model from openchat. opencoderplus (BF16) weighs 31.6 GB; the smallest configuration that runs it is L40S 48 GB.

  • OpenCoderPlus is a text-generation model developed by openchat, based on the StarCoderPlus architecture.
  • It features a native context length of 8192 tokens and supports the English language.
  • The model card reports a score of 102.5% of the ChatGPT score on the Vicuna GPT-4 evaluation and a 78.7% win-rate on AlpacaEval.

Summary of the openchat/opencoderplus model card, 2026-10-01

What it is

Released byopenchat
Released2023-06-30
VRAM31.6 GB for the weights

What it runs on

Memory and cards for opencoderplus (BF16)

31.6 GBweights, file size
20 MBcache per 1K tokens
782 MBruntime overhead, at least
8,192 tokenscontext max
CardRequests at onceContext maxMemory
8K each
RTX 3060 12 GB … RTX 5090 32 GB
5 smaller cards
——
L40S 48 GB68all 8K44.0 GB
A100 80 GB272all 8K78.2 GB
H100 80 GB250all 8K78.1 GB
RTX PRO 6000 Blackwell 96 GB344all 8K93.8 GB
DGX Spark (GB10) 128 GB unified425all 8K107 GB
H200 141 GB607all 8K138 GB
B200 180 GB828all 8K176 GB
2× RTX 4090 24 GB
tensor parallel
40all 8K23.4 GB a card
2× RTX 3090 24 GB
tensor parallel
40all 8K23.4 GB a card
2× RTX 5090 32 GB
tensor parallel
85all 8K31.0 GB a card
Memory needed at each load
Requests at once8K tokens each
132.6 GB
533.3 GB
833.8 GB
1635.1 GB
3237.8 GB
6443.2 GB

One card, with vLLM's small-card settings.

From the model card

What openchat says about opencoderplus

Read 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:

  • OpenChat: based on LLaMA-13B (2048 context length)
    • 🚀 105.7% of ChatGPT score on Vicuna GPT-4 evaluation
    • 🔥 80.9% Win-rate on AlpacaEval
    • 🤗 Only used 6K data for finetuning!!!
  • OpenChat-8192: based on LLaMA-13B (extended to 8192 context length)
    • 106.6% of ChatGPT score on Vicuna GPT-4 evaluation
    • 79.5% of ChatGPT score on Vicuna GPT-4 evaluation

Code models:

  • OpenCoderPlus: based on StarCoderPlus (native 8192 context length)
    • 102.5% of ChatGPT score on Vicuna GPT-4 evaluation
    • 78.7% Win-rate on AlpacaEval

Note: Please load the pretrained models using bfloat16

Code and Inference Server

We provide the full source code, including an inference server compatible with the "ChatCompletions" API, in the OpenChat GitHub repository.

Web UI

OpenChat also includes a web UI for a better user experience. See the GitHub repository for instructions.

Conversation Template

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,
    )
}

Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.

© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms