As of January 1, 2020 this library no longer supports Python 2 on the latest released version. Library versions released prior to that date will continue to be available. For more information please visit Python 2 support on Google Cloud.

Source code for google.ai.generativelanguage_v1beta3.types.tuned_model

# -*- coding: utf-8 -*-
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
from __future__ import annotations

from typing import MutableMapping, MutableSequence

from google.protobuf import timestamp_pb2  # type: ignore
import proto  # type: ignore

__protobuf__ = proto.module(
    package="google.ai.generativelanguage.v1beta3",
    manifest={
        "TunedModel",
        "TunedModelSource",
        "TuningTask",
        "Hyperparameters",
        "Dataset",
        "TuningExamples",
        "TuningExample",
        "TuningSnapshot",
    },
)


[docs]class TunedModel(proto.Message): r"""A fine-tuned model created using ModelService.CreateTunedModel. This message has `oneof`_ fields (mutually exclusive fields). For each oneof, at most one member field can be set at the same time. Setting any member of the oneof automatically clears all other members. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields Attributes: tuned_model_source (google.ai.generativelanguage_v1beta3.types.TunedModelSource): Optional. TunedModel to use as the starting point for training the new model. This field is a member of `oneof`_ ``source_model``. base_model (str): Immutable. The name of the ``Model`` to tune. Example: ``models/text-bison-001`` This field is a member of `oneof`_ ``source_model``. name (str): Output only. The tuned model name. A unique name will be generated on create. Example: ``tunedModels/az2mb0bpw6i`` If display_name is set on create, the id portion of the name will be set by concatenating the words of the display_name with hyphens and adding a random portion for uniqueness. Example: display_name = "Sentence Translator" name = "tunedModels/sentence-translator-u3b7m". display_name (str): Optional. The name to display for this model in user interfaces. The display name must be up to 40 characters including spaces. description (str): Optional. A short description of this model. temperature (float): Optional. Controls the randomness of the output. Values can range over ``[0.0,1.0]``, inclusive. A value closer to ``1.0`` will produce responses that are more varied, while a value closer to ``0.0`` will typically result in less surprising responses from the model. This value specifies default to be the one used by the base model while creating the model. This field is a member of `oneof`_ ``_temperature``. top_p (float): Optional. For Nucleus sampling. Nucleus sampling considers the smallest set of tokens whose probability sum is at least ``top_p``. This value specifies default to be the one used by the base model while creating the model. This field is a member of `oneof`_ ``_top_p``. top_k (int): Optional. For Top-k sampling. Top-k sampling considers the set of ``top_k`` most probable tokens. This value specifies default to be used by the backend while making the call to the model. This value specifies default to be the one used by the base model while creating the model. This field is a member of `oneof`_ ``_top_k``. state (google.ai.generativelanguage_v1beta3.types.TunedModel.State): Output only. The state of the tuned model. create_time (google.protobuf.timestamp_pb2.Timestamp): Output only. The timestamp when this model was created. update_time (google.protobuf.timestamp_pb2.Timestamp): Output only. The timestamp when this model was updated. tuning_task (google.ai.generativelanguage_v1beta3.types.TuningTask): Required. The tuning task that creates the tuned model. """
[docs] class State(proto.Enum): r"""The state of the tuned model. Values: STATE_UNSPECIFIED (0): The default value. This value is unused. CREATING (1): The model is being created. ACTIVE (2): The model is ready to be used. FAILED (3): The model failed to be created. """ STATE_UNSPECIFIED = 0 CREATING = 1 ACTIVE = 2 FAILED = 3
tuned_model_source: "TunedModelSource" = proto.Field( proto.MESSAGE, number=3, oneof="source_model", message="TunedModelSource", ) base_model: str = proto.Field( proto.STRING, number=4, oneof="source_model", ) name: str = proto.Field( proto.STRING, number=1, ) display_name: str = proto.Field( proto.STRING, number=5, ) description: str = proto.Field( proto.STRING, number=6, ) temperature: float = proto.Field( proto.FLOAT, number=11, optional=True, ) top_p: float = proto.Field( proto.FLOAT, number=12, optional=True, ) top_k: int = proto.Field( proto.INT32, number=13, optional=True, ) state: State = proto.Field( proto.ENUM, number=7, enum=State, ) create_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=8, message=timestamp_pb2.Timestamp, ) update_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=9, message=timestamp_pb2.Timestamp, ) tuning_task: "TuningTask" = proto.Field( proto.MESSAGE, number=10, message="TuningTask", )
[docs]class TunedModelSource(proto.Message): r"""Tuned model as a source for training a new model. Attributes: tuned_model (str): Immutable. The name of the ``TunedModel`` to use as the starting point for training the new model. Example: ``tunedModels/my-tuned-model`` base_model (str): Output only. The name of the base ``Model`` this ``TunedModel`` was tuned from. Example: ``models/text-bison-001`` """ tuned_model: str = proto.Field( proto.STRING, number=1, ) base_model: str = proto.Field( proto.STRING, number=2, )
[docs]class TuningTask(proto.Message): r"""Tuning tasks that create tuned models. Attributes: start_time (google.protobuf.timestamp_pb2.Timestamp): Output only. The timestamp when tuning this model started. complete_time (google.protobuf.timestamp_pb2.Timestamp): Output only. The timestamp when tuning this model completed. snapshots (MutableSequence[google.ai.generativelanguage_v1beta3.types.TuningSnapshot]): Output only. Metrics collected during tuning. training_data (google.ai.generativelanguage_v1beta3.types.Dataset): Required. Input only. Immutable. The model training data. hyperparameters (google.ai.generativelanguage_v1beta3.types.Hyperparameters): Immutable. Hyperparameters controlling the tuning process. If not provided, default values will be used. """ start_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=1, message=timestamp_pb2.Timestamp, ) complete_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=2, message=timestamp_pb2.Timestamp, ) snapshots: MutableSequence["TuningSnapshot"] = proto.RepeatedField( proto.MESSAGE, number=3, message="TuningSnapshot", ) training_data: "Dataset" = proto.Field( proto.MESSAGE, number=4, message="Dataset", ) hyperparameters: "Hyperparameters" = proto.Field( proto.MESSAGE, number=5, message="Hyperparameters", )
[docs]class Hyperparameters(proto.Message): r"""Hyperparameters controlling the tuning process. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields Attributes: epoch_count (int): Immutable. The number of training epochs. An epoch is one pass through the training data. If not set, a default of 10 will be used. This field is a member of `oneof`_ ``_epoch_count``. batch_size (int): Immutable. The batch size hyperparameter for tuning. If not set, a default of 16 or 64 will be used based on the number of training examples. This field is a member of `oneof`_ ``_batch_size``. learning_rate (float): Immutable. The learning rate hyperparameter for tuning. If not set, a default of 0.0002 or 0.002 will be calculated based on the number of training examples. This field is a member of `oneof`_ ``_learning_rate``. """ epoch_count: int = proto.Field( proto.INT32, number=14, optional=True, ) batch_size: int = proto.Field( proto.INT32, number=15, optional=True, ) learning_rate: float = proto.Field( proto.FLOAT, number=16, optional=True, )
[docs]class Dataset(proto.Message): r"""Dataset for training or validation. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields Attributes: examples (google.ai.generativelanguage_v1beta3.types.TuningExamples): Optional. Inline examples. This field is a member of `oneof`_ ``dataset``. """ examples: "TuningExamples" = proto.Field( proto.MESSAGE, number=1, oneof="dataset", message="TuningExamples", )
[docs]class TuningExamples(proto.Message): r"""A set of tuning examples. Can be training or validatation data. Attributes: examples (MutableSequence[google.ai.generativelanguage_v1beta3.types.TuningExample]): Required. The examples. Example input can be for text or discuss, but all examples in a set must be of the same type. """ examples: MutableSequence["TuningExample"] = proto.RepeatedField( proto.MESSAGE, number=1, message="TuningExample", )
[docs]class TuningExample(proto.Message): r"""A single example for tuning. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields Attributes: text_input (str): Optional. Text model input. This field is a member of `oneof`_ ``model_input``. output (str): Required. The expected model output. """ text_input: str = proto.Field( proto.STRING, number=1, oneof="model_input", ) output: str = proto.Field( proto.STRING, number=3, )
[docs]class TuningSnapshot(proto.Message): r"""Record for a single tuning step. Attributes: step (int): Output only. The tuning step. epoch (int): Output only. The epoch this step was part of. mean_loss (float): Output only. The mean loss of the training examples for this step. compute_time (google.protobuf.timestamp_pb2.Timestamp): Output only. The timestamp when this metric was computed. """ step: int = proto.Field( proto.INT32, number=1, ) epoch: int = proto.Field( proto.INT32, number=2, ) mean_loss: float = proto.Field( proto.FLOAT, number=3, ) compute_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=4, message=timestamp_pb2.Timestamp, )
__all__ = tuple(sorted(__protobuf__.manifest))