program(1.0)
[buildInfo = dict<tensor<string, []>, tensor<string, []>>({{"coremlc-component-MIL", "3520.4.1"}, {"coremlc-version", "3520.5.1"}, {"coremltools-component-torch", "2.10.0"}, {"coremltools-source-dialect", "TorchScript"}, {"coremltools-version", "7.2"}})]
{
    func main<ios16>(tensor<int32, [1, 2048]> bytes) {
            tensor<fp32, [512]> ln1_bias = const()[name = tensor<string, []>("ln1_bias"), val = tensor<fp32, [512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(64)))];
            tensor<fp32, [512]> ln1_scale = const()[name = tensor<string, []>("ln1_scale"), val = tensor<fp32, [512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2176)))];
            tensor<fp32, [64]> dense0_bias = const()[name = tensor<string, []>("dense0_bias"), val = tensor<fp32, [64]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(4288)))];
            tensor<fp32, [257, 64]> embedding_weight = const()[name = tensor<string, []>("embedding_weight"), val = tensor<fp32, [257, 64]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(4608)))];
            tensor<fp32, [512]> conv_bias = const()[name = tensor<string, []>("conv_bias"), val = tensor<fp32, [512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(70464)))];
            tensor<fp32, [512, 256, 5]> conv_weight = const()[name = tensor<string, []>("conv_weight"), val = tensor<fp32, [512, 256, 5]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(72576)))];
            tensor<fp32, [214]> dense1_bias = const()[name = tensor<string, []>("dense1_bias"), val = tensor<fp32, [214]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2694080)))];
            tensor<fp32, [214, 512]> dense1_weight = const()[name = tensor<string, []>("dense1_weight"), val = tensor<fp32, [214, 512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2695040)))];
            tensor<int32, []> embedded_axis_0 = const()[name = tensor<string, []>("embedded_axis_0"), val = tensor<int32, []>(0)];
            tensor<int32, []> embedded_batch_dims_0 = const()[name = tensor<string, []>("embedded_batch_dims_0"), val = tensor<int32, []>(0)];
            tensor<fp32, [1, 2048, 64]> embedded = gather(axis = embedded_axis_0, batch_dims = embedded_batch_dims_0, indices = bytes, x = embedding_weight)[name = tensor<string, []>("embedded")];
            tensor<fp32, [1, 2048, 64]> x_3 = add(x = embedded, y = dense0_bias)[name = tensor<string, []>("x_3")];
            tensor<string, []> after_gelu1_mode_0 = const()[name = tensor<string, []>("after_gelu1_mode_0"), val = tensor<string, []>("TANH_APPROXIMATION")];
            tensor<fp32, [1, 2048, 64]> after_gelu1 = gelu(mode = after_gelu1_mode_0, x = x_3)[name = tensor<string, []>("after_gelu1")];
            tensor<int32, [3]> var_43 = const()[name = tensor<string, []>("op_43"), val = tensor<int32, [3]>([1, 512, 256])];
            tensor<fp32, [1, 512, 256]> x_5 = reshape(shape = var_43, x = after_gelu1)[name = tensor<string, []>("x_5")];
            tensor<int32, [1]> var_46 = const()[name = tensor<string, []>("op_46"), val = tensor<int32, [1]>([1])];
            tensor<bool, []> var_47 = const()[name = tensor<string, []>("op_47"), val = tensor<bool, []>(true)];
            tensor<fp32, [1, 1, 256]> mean = reduce_mean(axes = var_46, keep_dims = var_47, x = x_5)[name = tensor<string, []>("mean")];
            tensor<fp32, [1, 512, 256]> x_centered = sub(x = x_5, y = mean)[name = tensor<string, []>("x_centered")];
            tensor<fp32, [1, 512, 256]> var_52 = mul(x = x_centered, y = x_centered)[name = tensor<string, []>("op_52")];
            tensor<int32, [1]> var_54 = const()[name = tensor<string, []>("op_54"), val = tensor<int32, [1]>([1])];
            tensor<bool, []> var_55 = const()[name = tensor<string, []>("op_55"), val = tensor<bool, []>(true)];
            tensor<fp32, [1, 1, 256]> var = reduce_mean(axes = var_54, keep_dims = var_55, x = var_52)[name = tensor<string, []>("var")];
            tensor<fp32, []> var_59 = const()[name = tensor<string, []>("op_59"), val = tensor<fp32, []>(0x1.0c6f7ap-20)];
            tensor<fp32, [1, 1, 256]> var_60 = add(x = var, y = var_59)[name = tensor<string, []>("op_60")];
            tensor<fp32, [1, 1, 256]> var_61 = sqrt(x = var_60)[name = tensor<string, []>("op_61")];
            tensor<fp32, [1, 512, 256]> x_norm = real_div(x = x_centered, y = var_61)[name = tensor<string, []>("x_norm")];
            tensor<fp32, [1, 512, 1]> var_67 = const()[name = tensor<string, []>("op_67"), val = tensor<fp32, [1, 512, 1]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(3133376)))];
            tensor<fp32, [1, 512, 256]> var_68 = mul(x = x_norm, y = var_67)[name = tensor<string, []>("op_68")];
            tensor<fp32, [1, 512, 1]> var_73 = const()[name = tensor<string, []>("op_73"), val = tensor<fp32, [1, 512, 1]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(3135488)))];
            tensor<fp32, [1, 512, 256]> after_ln0 = add(x = var_68, y = var_73)[name = tensor<string, []>("after_ln0")];
            tensor<int32, [3]> input_1_perm_0 = const()[name = tensor<string, []>("input_1_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
            tensor<int32, []> var_82 = const()[name = tensor<string, []>("op_82"), val = tensor<int32, []>(1)];
            tensor<int32, [1]> var_85 = const()[name = tensor<string, []>("op_85"), val = tensor<int32, [1]>([1])];
            tensor<int32, [1]> var_87 = const()[name = tensor<string, []>("op_87"), val = tensor<int32, [1]>([1])];
            tensor<string, []> x_pad_type_0 = const()[name = tensor<string, []>("x_pad_type_0"), val = tensor<string, []>("custom")];
            tensor<int32, [2]> x_pad_0 = const()[name = tensor<string, []>("x_pad_0"), val = tensor<int32, [2]>([0, 0])];
            tensor<fp32, [1, 256, 512]> transpose_0 = transpose(perm = input_1_perm_0, x = after_ln0)[name = tensor<string, []>("transpose_0")];
            tensor<fp32, [1, 512, 508]> x = conv(bias = conv_bias, dilations = var_87, groups = var_82, pad = x_pad_0, pad_type = x_pad_type_0, strides = var_85, weight = conv_weight, x = transpose_0)[name = tensor<string, []>("x")];
            tensor<string, []> after_gelu2_mode_0 = const()[name = tensor<string, []>("after_gelu2_mode_0"), val = tensor<string, []>("TANH_APPROXIMATION")];
            tensor<fp32, [1, 512, 508]> after_gelu2 = gelu(mode = after_gelu2_mode_0, x = x)[name = tensor<string, []>("after_gelu2")];
            tensor<int32, [1]> reduce_max_0_axes_0 = const()[name = tensor<string, []>("reduce_max_0_axes_0"), val = tensor<int32, [1]>([2])];
            tensor<bool, []> reduce_max_0_keep_dims_0 = const()[name = tensor<string, []>("reduce_max_0_keep_dims_0"), val = tensor<bool, []>(false)];
            tensor<fp32, [1, 512]> reduce_max_0 = reduce_max(axes = reduce_max_0_axes_0, keep_dims = reduce_max_0_keep_dims_0, x = after_gelu2)[name = tensor<string, []>("reduce_max_0")];
            tensor<int32, [1]> var_110 = const()[name = tensor<string, []>("op_110"), val = tensor<int32, [1]>([1])];
            tensor<bool, []> var_111 = const()[name = tensor<string, []>("op_111"), val = tensor<bool, []>(true)];
            tensor<fp32, [1, 1]> ln1_mean = reduce_mean(axes = var_110, keep_dims = var_111, x = reduce_max_0)[name = tensor<string, []>("ln1_mean")];
            tensor<fp32, [1, 512]> pooled_centered = sub(x = reduce_max_0, y = ln1_mean)[name = tensor<string, []>("pooled_centered")];
            tensor<fp32, [1, 512]> var_116 = mul(x = pooled_centered, y = pooled_centered)[name = tensor<string, []>("op_116")];
            tensor<int32, [1]> var_118 = const()[name = tensor<string, []>("op_118"), val = tensor<int32, [1]>([1])];
            tensor<bool, []> var_119 = const()[name = tensor<string, []>("op_119"), val = tensor<bool, []>(true)];
            tensor<fp32, [1, 1]> ln1_var = reduce_mean(axes = var_118, keep_dims = var_119, x = var_116)[name = tensor<string, []>("ln1_var")];
            tensor<fp32, []> var_123 = const()[name = tensor<string, []>("op_123"), val = tensor<fp32, []>(0x1.0c6f7ap-20)];
            tensor<fp32, [1, 1]> var_124 = add(x = ln1_var, y = var_123)[name = tensor<string, []>("op_124")];
            tensor<fp32, [1, 1]> var_125 = sqrt(x = var_124)[name = tensor<string, []>("op_125")];
            tensor<fp32, [1, 512]> pooled_norm = real_div(x = pooled_centered, y = var_125)[name = tensor<string, []>("pooled_norm")];
            tensor<fp32, [1, 512]> var_127 = mul(x = pooled_norm, y = ln1_scale)[name = tensor<string, []>("op_127")];
            tensor<fp32, [1, 512]> input = add(x = var_127, y = ln1_bias)[name = tensor<string, []>("input")];
            tensor<fp32, [1, 214]> linear_0 = linear(bias = dense1_bias, weight = dense1_weight, x = input)[name = tensor<string, []>("linear_0")];
            tensor<int32, []> var_133 = const()[name = tensor<string, []>("op_133"), val = tensor<int32, []>(1)];
            tensor<fp32, [1, 214]> probabilities = softmax(axis = var_133, x = linear_0)[name = tensor<string, []>("op_135")];
        } -> (probabilities);
}