Multilingual_Intent_classifier_v1

8-layer Gemma 3 intent classifier exported to ONNX. The encoder is dynamic INT8. The linear intent head stays FP32. model.onnx is the file to deploy.

Intents

provide_info, affirm, deny, correction, question, clarify_request, unclear

Languages

Hindi, Tamil, Telugu, Kannada, Marathi, Malayalam, Bengali, Gujarati, Odia, and English. Utterances may be in the native script, romanized, or code-mixed.

I/O

logits [batch, 7]. Inputs: input_ids, attention_mask (int64, max length 64).

import json
from pathlib import Path

import numpy as np
import onnxruntime as ort
from transformers import AutoTokenizer

MODEL_DIR = Path(".")  # or snapshot_download("blue-machines/Multilingual_Intent_classifier_v1")
tokenizer = AutoTokenizer.from_pretrained(MODEL_DIR)
if tokenizer.pad_token is None:
    tokenizer.pad_token = tokenizer.eos_token

with open(MODEL_DIR / "label_map.json", encoding="utf-8") as handle:
    id2label = {int(k): v for k, v in json.load(handle)["head4_intent"]["id2label"].items()}

session = ort.InferenceSession(str(MODEL_DIR / "model.onnx"), providers=["CPUExecutionProvider"])

def predict(text: str) -> str:
    enc = tokenizer(text, return_tensors="np", truncation=True, max_length=64, padding="max_length")
    logits = session.run(
        None,
        {
            "input_ids": enc["input_ids"].astype(np.int64),
            "attention_mask": enc["attention_mask"].astype(np.int64),
        },
    )[0]
    return id2label[int(logits[0].argmax())]
Downloads last month
9
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support