def METHOD_NAME(self, task):
    """
    Defines inputs and outputs for an ONNX model.
    Args:
        task: task name used to lookup model configuration
    Returns:
        (inputs, outputs, model function)
    """
    inputs = OrderedDict(
        [
            ("input_ids", {0: "batch", 1: "sequence"}),
            ("attention_mask", {0: "batch", 1: "sequence"}),
            ("token_type_ids", {0: "batch", 1: "sequence"}),
        ]
    )
    config = {
        "default": (OrderedDict({"last_hidden_state": {0: "batch", 1: "sequence"}}), AutoModel.from_pretrained),
        "pooling": (OrderedDict({"embeddings": {0: "batch", 1: "sequence"}}), lambda x: MeanPoolingOnnx(x, -1)),
        "question-answering": (
            OrderedDict(
                {
                    "start_logits": {0: "batch", 1: "sequence"},
                    "end_logits": {0: "batch", 1: "sequence"},
                }
            ),
            AutoModelForQuestionAnswering.from_pretrained,
        ),
        "text-classification": (OrderedDict({"logits": {0: "batch"}}), AutoModelForSequenceClassification.from_pretrained),
    }
    # Aliases
    config["zero-shot-classification"] = config["text-classification"]
    return (inputs,) + config[task]