private ExpressionNode transformTokenInputIds(ReferenceNode feature,
                                                  RankProfileTransformContext context,
                                                  ExpressionNode cls,
                                                  ExpressionNode sep,
                                                  int fromArg) {
        checkReferenceArguments(feature, fromArg);

        TensorType type = createTensorType(feature.getName(), feature.getArguments().expressions().get(fromArg - 1));

        // we need to add functions calculating the token lengths of the arguments
        createTokenLengthFunctions(feature, context, fromArg);

        // create token sequence: CLS + arg1 + SEP + arg2 + SEP + ....
        ExpressionNode tokenSequenceExpr = createTokenSequenceExpr(0, createTokenSequence(feature, cls, sep, fromArg));
        return new TensorFunctionNode(Generate.bound(type, wrapScalar(tokenSequenceExpr)));
    }
Transforms a feature of the form

    customTokenInputIds(1, 2, 128, a, b, ...)

to an expression that concatenates the arguments a, b, ... using the
first and second arguments as the CLS and SEP padding tokens, here
1 and 2, respectively. Otherwise, identical to tokenInputIds.
config-model/src/main/java/com/yahoo/schema/expressiontransforms/TokenTransformer.java