Skip to content

Entities and Entity Spaces

Entities

Entities represent things that can be measured. Examples are molecules or points in an application configuration space.

Entities all have a set of constitutive properties which define them. A molecule's constitutive properties might be a SMILES or INCHI string. The constitutive properties of a fine-tuning deployment configuration might be GPU model, number of GPUs and batch size.

An entity will also have observed properties. These are properties measured by an experiment (or experiment protocol). For example, a molecule might have an observed properties for its band-gap while a fine-tuning deployment configuration might have an observed properties related to tokens throughput.

Example: FM Fine-tuning Deployment Configuration

Here's an example of an entity that represents a FM fine-tuning deployment

Identifier: dataset_id.news-tokens-16384plus-entries-4096-model_name.llama3-8b-number_gpus.4.0-model_max_length.2048.0-torch_dtype.bfloat16-batch_size.16.0-gpu_model.NVIDIA-A100-80GB-PCIe
Generator: explicit_grid_sample_generator

Constitutive properties:
                 name                               value
  0        dataset_id  news-tokens-16384plus-entries-4096
  1        model_name                           llama3-8b
  2       number_gpus                                 4.0
  3  model_max_length                              2048.0
  4       torch_dtype                            bfloat16
  5        batch_size                                16.0
  6         gpu_model               NVIDIA-A100-80GB-PCIe

Observed properties:
                                                   name                                         experiment                    target-property                values
  0   finetune-lora-fsdp-r-4-a-16-tm-default-v1.2.0-...  SFTTrainer.finetune-lora-fsdp-r-4-a-16-tm-defa...        gpu_compute_utilization_min   [98.14772727272727]
  1   finetune-lora-fsdp-r-4-a-16-tm-default-v1.2.0-...  SFTTrainer.finetune-lora-fsdp-r-4-a-16-tm-defa...        gpu_compute_utilization_avg   [98.26988636363636]
  2   finetune-lora-fsdp-r-4-a-16-tm-default-v1.2.0-...  SFTTrainer.finetune-lora-fsdp-r-4-a-16-tm-defa...        gpu_compute_utilization_max   [98.38636363636364]
  3   finetune-lora-fsdp-r-4-a-16-tm-default-v1.2.0-...  SFTTrainer.finetune-lora-fsdp-r-4-a-16-tm-defa...         gpu_memory_utilization_min  [33.709723284090906]
  4   finetune-lora-fsdp-r-4-a-16-tm-default-v1.2.0-...  SFTTrainer.finetune-lora-fsdp-r-4-a-16-tm-defa...         gpu_memory_utilization_avg  [33.709723284090906]
  5   finetune-lora-fsdp-r-4-a-16-tm-default-v1.2.0-...  SFTTrainer.finetune-lora-fsdp-r-4-a-16-tm-defa...         gpu_memory_utilization_max  [33.709723284090906]
  6   finetune-lora-fsdp-r-4-a-16-tm-default-v1.2.0-...  SFTTrainer.finetune-lora-fsdp-r-4-a-16-tm-defa...        gpu_memory_utilization_peak           [34.065475]
  7   finetune-lora-fsdp-r-4-a-16-tm-default-v1.2.0-...  SFTTrainer.finetune-lora-fsdp-r-4-a-16-tm-defa...            cpu_compute_utilization   [98.94999999999999]
  8   finetune-lora-fsdp-r-4-a-16-tm-default-v1.2.0-...  SFTTrainer.finetune-lora-fsdp-r-4-a-16-tm-defa...             cpu_memory_utilization  [6.3182326931818205]
  9   finetune-lora-fsdp-r-4-a-16-tm-default-v1.2.0-...  SFTTrainer.finetune-lora-fsdp-r-4-a-16-tm-defa...                      train_runtime            [887.5672]
  10  finetune-lora-fsdp-r-4-a-16-tm-default-v1.2.0-...  SFTTrainer.finetune-lora-fsdp-r-4-a-16-tm-defa...           train_samples_per_second               [4.615]
  11  finetune-lora-fsdp-r-4-a-16-tm-default-v1.2.0-...  SFTTrainer.finetune-lora-fsdp-r-4-a-16-tm-defa...             train_steps_per_second               [0.072]
  12  finetune-lora-fsdp-r-4-a-16-tm-default-v1.2.0-...  SFTTrainer.finetune-lora-fsdp-r-4-a-16-tm-defa...            train_tokens_per_second            [9451.236]
  13  finetune-lora-fsdp-r-4-a-16-tm-default-v1.2.0-...  SFTTrainer.finetune-lora-fsdp-r-4-a-16-tm-defa...    train_tokens_per_gpu_per_second            [2362.809]
  14  finetune-lora-fsdp-r-4-a-16-tm-default-v1.2.0-...  SFTTrainer.finetune-lora-fsdp-r-4-a-16-tm-defa...                    model_load_time                [-1.0]
  15  finetune-lora-fsdp-r-4-a-16-tm-default-v1.2.0-...  SFTTrainer.finetune-lora-fsdp-r-4-a-16-tm-defa...          dataset_tokens_per_second   [9451.237044361262]
  16  finetune-lora-fsdp-r-4-a-16-tm-default-v1.2.0-...  SFTTrainer.finetune-lora-fsdp-r-4-a-16-tm-defa...  dataset_tokens_per_second_per_gpu  [2362.8092610903154]
  17  finetune-lora-fsdp-r-4-a-16-tm-default-v1.2.0-...  SFTTrainer.finetune-lora-fsdp-r-4-a-16-tm-defa...                           is_valid                 [1.0]

Associated experiments:
  
  SFTTrainer.finetune-lora-fsdp-r-4-a-16-tm-default-v1.2.0

For more about the meaning of observed properties see target & observed properties

Entity Spaces

An Entity Space describes a set of entities. The set could be discrete or continuous, bounded or unbounded. In ado you normally define Entity Spaces and then sample Entities from them.

Example: Molecules

This space has a single dimension with type identifier. This is a property whose values are a, potential very large, set of unique-ids generated in some fashion.

  Space with non-discrete dimensions. Cannot count entities
  Identifier properties:
         name
    0  smiles

Example: Fine-tuning Deployment Configuration

This space has 7 dimensions, 4 categorical and 3 discrete. Each of the 4 categorical dimensions has only a single value. The discrete dimensions each have a range of values they can take.

 Number entities: 80
  Categorical properties:
              name                                values
    0   dataset_id  [news-tokens-16384plus-entries-4096]
    1   model_name                [granite-8b-code-base]
    2  torch_dtype                            [bfloat16]
    3    gpu_model               [NVIDIA-A100-80GB-PCIe]
  
  Discrete properties:
                   name        range interval                         values
    0       number_gpus       [2, 5]     None                         [2, 4]
    1  model_max_length  [512, 8193]     None  [512, 1024, 2048, 4096, 8192]
    2        batch_size     [1, 129]     None  [1, 2, 4, 8, 16, 32, 64, 128]

Property Domains

Each property in an entity space can be associated with a domain. The domain is the range of values the property can take and also the probability of those values. In the Fine-tuning Deployment Configuration example we can see the domains for each property. The categorical properties have a set of values and the discrete properties a range and also a set of values.

In the Molecules example we see there is no domain, which means any value of smiles is allowed. When there is no domain it also means the Entity Space alone does not contain sufficient information by itself on how to sample the entities.

By default, the probability is uniform, every value is equally likely, but it could also be more complex.