Model reference · open weights

typhoon2.5-qwen3

LLMs typhoon-ai Text gen · MoE 2 builds Open weights 132k dl/mo

typhoon2.5-qwen3 is an open-weight language model from typhoon-ai. typhoon2.5-qwen3-30b-a3b (BF16) weighs 61.1 GB; the smallest configuration that runs it is H100 80 GB.

For self-hosting, compare this build's requirements below with the GPU you plan to rent.

  • Typhoon2.5-Qwen3-30B-A3B is an instruct text-generation model developed by typhoon-ai, designed primarily for Thai and English tasks.
  • It is a 30.5B parameter mixture-of-experts model with 3B active parameters, a 256k context length, and function-calling capabilities.
  • The model is released under the Apache 2.0 license.

Summary of the typhoon-ai/typhoon2.5-qwen3-30b-a3b model card, 2026-10-01

What it is

Released bytyphoon-ai
Released2025-09-23
Parameters30.5B
VRAM61.1 GB for the weights

What it runs on

Memory and cards for typhoon2.5-qwen3-30b-a3b (BF16)

61.1 GBweights, file size
98 MBcache per 1K tokens
1.1 GBruntime overhead, at least
262,144 tokenscontext max
CardRequests at onceContext maxMemory
8K each32K each
RTX 3060 12 GB … L40S 48 GB
6 smaller cards
A100 80 GB194158K78.2 GB
H100 80 GB123103K78.1 GB
RTX PRO 6000 Blackwell 96 GB328all 256K93.8 GB
DGX Spark (GB10) 128 GB unified4912all 256K107 GB
H200 141 GB8721all 256K138 GB
B200 180 GB13132all 256K176 GB
2× L40S 48 GB
tensor parallel
307244K44.0 GB a card
4× RTX 4090 24 GB
tensor parallel
348all 256K23.4 GB a card
4× RTX 3090 24 GB
tensor parallel
348all 256K23.4 GB a card
4× RTX 5090 32 GB
tensor parallel
7218all 256K31.0 GB a card
2× H100 80 GB
tensor parallel
10125all 256K78.1 GB a card
Memory needed at each load
Requests at once8K tokens each32K tokens each
163.0 GB65.4 GB
566.2 GB78.3 GB
868.6 GB88.0 GB
1675.1 GB114 GB
3288.0 GB165 GB
64114 GB268 GB

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

Builds

Sizes, precisions & builds

BuildParamsPrecisionWeightsSmallest setup
typhoon2.5-qwen3-30b-a3b (above) ↗ 30.5BBF16 61.1 GBH100 80 GB
typhoon2.5-qwen3-4b ↗ 4.0BBF16 8.0 GBRTX 3060 12 GB

From the model card

What typhoon-ai says about typhoon2.5-qwen3

Read the model card

Typhoon2.5-Qwen3-30B-A3B: Thai Large Language Model (Instruct)

Typhoon2.5-Qwen3-30B-A3B is a instruct Thai 🇹🇭 large language model with 3 billion active parameters, a 256k context length, and function-calling capabilities. It is based on Qwen3 30B A3B.

By using this model, you agree to the OpenTyphoon Terms and Conditions and acknowledge the Privacy Notice: https://opentyphoon.ai/tac · https://opentyphoon.ai/privacy

Performance

Model Description

  • Model type: A 30B instruct mixture of expert (3B active) decoder-only model based on Qwen3 architecture.
  • Requirement: transformers 4.51.0 or newer.
  • Primary Language(s): Thai 🇹🇭 and English 🇬🇧
  • Context Length: 256K
  • License: Apache 2.0 License

Usage Example

This code snippet shows how to use the Typhoon2.5-Qwen3-30B-A3B model for Thai or English text generation using the transformers library. It includes setting up the model and tokenizer, formatting chat messages in a system-user style, and generating a response.

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

model_id = "scb10x/typhoon2.5-qwen3-30b-a3b"

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    torch_dtype=torch.bfloat16,
    device_map="auto",
)

messages = [
    {"role": "system", "content": "You are a male AI assistant named Typhoon created by SCB 10X to be helpful, harmless, and honest. Typhoon is happy to help with analysis, question answering, math, coding, creative writing, teaching, role-play, general discussion, and all sorts of other tasks. Typhoon responds directly to all human messages without unnecessary affirmations or filler phrases like “Certainly!”, “Of course!”, “Absolutely!”, “Great!”, “Sure!”, etc. Specifically, Typhoon avoids starting responses with the word “Certainly” in any way. Typhoon follows this information in all languages, and always responds to the user in the language they use or request. Typhoon is now being connected with a human. Write in fluid, conversational prose, Show genuine interest in understanding requests, Express appropriate emotions and empathy. Also showing information in term that is easy to understand and visualized."},
    {"role": "user", "content": "ขอสูตรไก่ย่าง"},
]

input_ids = tokenizer.apply_chat_template(
    messages,
    add_generation_prompt=True,
    return_tensors="pt",
).to(model.device)

outputs = model.generate(
    input_ids,
    max_new_tokens=512,
    do_sample=True,
    temperature=0.6,
    top_p=0.95,
    repetition_penalty=1.05,
)
response = outputs[0][input_ids.shape[-1]:]
print(tokenizer.decode(response, skip_special_tokens=True))

Deploy as Server

This section shows how to run Typhoon2.5 as an OpenAI-compatible API server using vllm.

pip install vllm
vllm serve scb10x/typhoon2.5-qwen3-30b-a3b --max-model-len 8192 --tool-call-parser hermes --enable-auto-tool-choice --gpu-memory-utilization 0.95
# adjust --max-model-len based on your avaliable memory

Using Tools

You can provide tools to the vLLM-powered OpenAI-compatible API for functionality.

from openai import OpenAI
import json

client = OpenAI(base_url="http://localhost:8000/v1", api_key="dummy")

def get_weather(location: str, unit: str):
    return f"Getting the weather for {location} in {unit}..."

tool_functions = {"get_weather": get_weather}

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Get the current weather in a given location",
        "parameters": {
            "type": "object",
            "properties": {
                "location": {"type": "string", "description": "City and state, e.g., 'San Francisco, CA'"},
                "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
            },
            "required": ["location", "unit"]
        }
    }
}]

response = client.chat.completions.create(
    model=client.models.list().data[0].id,
    messages=[{"role": "user", "content": "What's the weather like in San Francisco?"}],
    tools=tools,
    tool_choice="auto",
    extra_body={
      "repetition_penalty": 1.05
    }
)

tool_call = response.choices[0].message.tool_calls[0].function
print(f"Function called: {tool_call.name}")
print(f"Arguments: {tool_call.arguments}")
print(f"Result: {get_weather(**json.loads(tool_call.arguments))}")

Sampling Parameters

For this model, we encourage you to use a low temperature and set "repetition_penalty" = 1.05 to improve performance and reduce repetition.

Intended Uses & Limitations

This model is an instructional model. However, it’s still undergoing development. It incorporates some level of guardrails, but it still may produce answers that are inaccurate, biased, or otherwise objectionable in response to user prompts. We recommend that developers assess these risks in the context of their use case.

Follow us

https://twitter.com/opentyphoon

Support

https://discord.gg/us5gAYmrxw

Citation

  • If you find Typhoon2 useful for your work, please cite it using:
@misc{typhoon2,
      title={Typhoon 2: A Family of Open Text and Multimodal Thai Large Language Models},
      author={Kunat Pipatanakul and Potsawee Manakul and Natapong Nitarach and Warit Sirichotedumrong and Surapon Nonesung and Teetouch Jaknamon and Parinthapat Pengpun and Pittawat Taveekitworachai and Adisai Na-Thalang and Sittipong Sripaisarnmongkol and Krisanapong Jirayoot and Kasima Tharnpipitchai},
      year={2024},
      eprint={2412.13702},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={https://arxiv.org/abs/2412.13702},
}

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