blob: d43b596f12703975e07e1fdbca3fdbafc224c2ea [file] [log] [blame]
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
edition = "2023";
package optimization_guide.proto;
option optimize_for = LITE_RUNTIME;
option java_package = "org.chromium.components.optimization_guide.proto";
option java_outer_classname = "OnDeviceBaseModelMetadataProto";
// Specifies the version information of the currently downloaded on-device base
// model. This is used to maintain compatibility of additional data requested
// from the server for new features.
message OnDeviceBaseModelMetadata {
// The name of the base model currently stored on-device.
string base_model_name = 1 [features.utf8_validation = NONE];
// The version of the base model currently stored on-device.
string base_model_version = 2 [features.utf8_validation = NONE];
// The performance hints supported for the device and base model combination.
//
// If not set, the device only supports the highest quality performance hint.
repeated OnDeviceModelPerformanceHint supported_performance_hints = 3
[features.repeated_field_encoding = EXPANDED];
}
enum OnDeviceModelPerformanceHint {
option features.enum_type = CLOSED;
ON_DEVICE_MODEL_PERFORMANCE_HINT_UNSPECIFIED = 0;
// Allows for use of the highest quality GPU model for the feature, which is
// only supported for "high-end" devices.
ON_DEVICE_MODEL_PERFORMANCE_HINT_HIGHEST_QUALITY = 1;
// Allows for use of the smaller GPU model for the feature, which can result
// in degraded quality but results in higher user reach.
ON_DEVICE_MODEL_PERFORMANCE_HINT_FASTEST_INFERENCE = 2;
// Allows for use of a model that can run on CPU.
ON_DEVICE_MODEL_PERFORMANCE_HINT_CPU = 3;
}