Get desktop application:
View/edit binary Protocol Buffers messages
Provides access to AI models served by AI-Serving.
Specifies model with its type to validate. Currently, both types "PMML" and "ONNX" are supported.
Specifies a servable name, and model with its type. Currently, both types "PMML" and "ONNX" are supported.
Specifies the deployed model specification: the specified servable name and the deployed version starts from 1.
Specifies which model to un-deploy.
Specifies which model has been un-deployed.
Request to predict
Input payload
Output filters to specify which output fields need to be returned. If the list is empty, all outputs will be included.
Response for predicting request on successful run
Output result
Specifies which model to get metadata.
Specifies which model metadata is returned.
Model metadata.
Field info
Used in:
A unique name.
Field type, main two kinds: - scalar types for PMML models: float, double, integer, string and so on. - tensor, map, and list for ONNX models.
Determines which operations are defined on the values: - categorical - ordinal - continuous
Field shape dimensions, mainly used for the tensor field, None for others.
A string describes valid values for this field.
Used in:
,Repeated field of dynamically typed values.
Used as response type in: DeploymentService.Validate
Used as field type in:
Model type.
Model serialization type.
The runtime library to handle such model.
A list of predictors involved to predict this model.
A list of targets.
A list of outputs could be produced by this model.
A list of redundancy fields not picked up by this model.
Model algorithm.
Mining function: regression, classification, clustering, or associationRules.
Model description.
Model version.
The version of model serialization standard.
The MD5 hash string of this model file.
The size of this model file in bytes
Model creation timestamp.
The application that generated this model.
The version of the application.
Model copyright.
Original model source.
Model metadata with versions
Used in:
Model ID
A unique model name
Model creation timestamp.
Model last updated timestamp.
The latest version number.
Model version(s).
Contains the model name and version
Used in:
, , , , , ,Required servable name.
Optional choice of which version of the model to use. The latest version is used when left unspecified
Used in:
Null value.
Used in:
,Unordered map of dynamically typed values.
Takes more than one records, there are two formats supported: - `records` : list like [{column -> value}, … , {column -> value}] - `split` : dict like {columns -> [columns], data -> [values]}
Used in:
,StringStringEntryProto follows the pattern for cross-proto-version maps. See https://developers.google.com/protocol-buffers/docs/proto3#maps
Used in:
Tensors A serialized tensor value. Compatible with the onnx.TensorProto: https://github.com/onnx/onnx/blob/main/onnx/onnx.proto3
Used in:
The shape of the tensor.
The data type of the tensor. This field MUST have a valid TensorProto.DataType value
For float and complex64 values Complex64 tensors are encoded as a single array of floats, with the real components appearing in odd numbered positions, and the corresponding imaginary component appearing in the subsequent even numbered position. (e.g., [1.0 + 2.0i, 3.0 + 4.0i] is encoded as [1.0, 2.0 ,3.0 ,4.0] When this field is present, the data_type field MUST be FLOAT or COMPLEX64.
For int32, uint8, int8, uint16, int16, uint4, int4, bool, float8 and float16 values float16 and float8 values must be bit-wise converted to an uint16_t prior to writing to the buffer. uint4 and int4 values must be packed to 4bitx2 prior to writing to the buffer, the first element is stored in the 4 LSB and the second element is stored in the 4 MSB. When this field is present, the data_type field MUST be INT32, INT16, INT8, INT4, UINT16, UINT8, UINT4, BOOL, FLOAT16, BFLOAT16, FLOAT8E4M3FN, FLOAT8E4M3FNUZ, FLOAT8E5M2, FLOAT8E5M2FNUZ
For strings. Each element of string_data is a UTF-8 encoded Unicode string. No trailing null, no leading BOM. The protobuf "string" scalar type is not used to match ML community conventions. When this field is present, the data_type field MUST be STRING
For int64. When this field is present, the data_type field MUST be INT64
Optionally, a name for the tensor.
namespace Value
A human-readable documentation for this tensor. Markdown is allowed.
Serializations can either use one of the fields above, or use this raw bytes field. The only exception is the string case, where one is required to store the content in the repeated bytes string_data field. When this raw_data field is used to store tensor value, elements MUST be stored in as fixed-width, little-endian order. Floating-point data types MUST be stored in IEEE 754 format. Complex64 elements must be written as two consecutive FLOAT values, real component first. Complex128 elements must be written as two consecutive DOUBLE values, real component first. Boolean type MUST be written one byte per tensor element (00000001 for true, 00000000 for false). uint4 and int4 values must be packed to 4bitx2, the first element is stored in the 4 LSB and the second element is stored in the 4 MSB. Note: the advantage of specific field rather than the raw_data field is that in some cases (e.g. int data), protobuf does a better packing via variable length storage, and may lead to smaller binary footprint. When this field is present, the data_type field MUST NOT be STRING or UNDEFINED
Data can be stored inside the protobuf file using type-specific fields or raw_data. Alternatively, raw bytes data can be stored in an external file, using the external_data field. external_data stores key-value pairs describing data location. Recognized keys are: - "location" (required) - POSIX filesystem path relative to the directory where the ONNX protobuf model was stored - "offset" (optional) - position of byte at which stored data begins. Integer stored as string. Offset values SHOULD be multiples 4096 (page size) to enable mmap support. - "length" (optional) - number of bytes containing data. Integer stored as string. - "checksum" (optional) - SHA1 digest of file specified in under 'location' key.
If value not set, data is stored in raw_data (if set) otherwise in type-specified field.
For double Complex128 tensors are encoded as a single array of doubles, with the real components appearing in odd numbered positions, and the corresponding imaginary component appearing in the subsequent even numbered position. (e.g., [1.0 + 2.0i, 3.0 + 4.0i] is encoded as [1.0, 2.0 ,3.0 ,4.0] When this field is present, the data_type field MUST be DOUBLE or COMPLEX128
For uint64 and uint32 values When this field is present, the data_type field MUST be UINT32 or UINT64
Named metadata values; keys should be distinct.
Location of the data for this tensor. MUST be one of: - DEFAULT - data stored inside the protobuf message. Data is stored in raw_data (if set) otherwise in type-specified field. - EXTERNAL - data stored in an external location as described by external_data field.
Used in:
Basic types.
float
uint8_t
int8_t
uint16_t
int16_t
int32_t
int64_t
string
bool
IEEE754 half-precision floating-point format (16 bits wide). This format has 1 sign bit, 5 exponent bits, and 10 mantissa bits.
complex with float32 real and imaginary components
complex with float64 real and imaginary components
Non-IEEE floating-point format based on IEEE754 single-precision floating-point number truncated to 16 bits. This format has 1 sign bit, 8 exponent bits, and 7 mantissa bits.
Non-IEEE floating-point format based on papers FP8 Formats for Deep Learning, https://arxiv.org/abs/2209.05433, 8-bit Numerical Formats For Deep Neural Networks, https://arxiv.org/pdf/2206.02915.pdf. Operators supported FP8 are Cast, CastLike, QuantizeLinear, DequantizeLinear. The computation usually happens inside a block quantize / dequantize fused by the runtime.
float 8, mostly used for coefficients, supports nan, not inf
float 8, mostly used for coefficients, supports nan, not inf, no negative zero
follows IEEE 754, supports nan, inf, mostly used for gradients
follows IEEE 754, supports nan, not inf, mostly used for gradients, no negative zero
4-bit data-types
Unsigned integer in range [0, 15]
Signed integer in range [-8, 7], using two's-complement representation
For very large tensors, we may want to store them in chunks, in which case the following fields will specify the segment that is stored in the current TensorProto.
Used in:
Extends `Value` of `Struct` with the support of TensorValue
Used in:
,The kind of value.
Represents a null value.
Represents a double value.
Represents a string value.
Represents a boolean value.
Represents a structured value.
Represents a repeated `Value`.
Represents a tensor `Value`.