You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(catalog): add model_type custom property documentation and examples (kubeflow#1988)
Add comprehensive documentation for the model_type custom property that enables
differentiating between predictive and generative AI models in the Model Registry
catalog. This feature provides a standardized approach for model classification
and filtering based on AI/ML paradigm.
Signed-off-by: Chris Hambridge <chambrid@redhat.com>
Co-authored-by: Claude <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: catalog/README.md
+198Lines changed: 198 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -62,6 +62,204 @@ Artifact references:
62
62
}
63
63
```
64
64
65
+
## Custom Properties
66
+
67
+
Custom properties provide extensible metadata for models and artifacts beyond the predefined schema fields. They enable storing domain-specific metadata, classification tags, and arbitrary key-value data.
68
+
69
+
### Overview
70
+
71
+
Custom properties can be attached to:
72
+
-**CatalogModel**: Model-level metadata (e.g., model type, validation status)
-**Value**: Typed metadata value with one of the following types:
79
+
-`MetadataStringValue`: String values
80
+
-`MetadataIntValue`: Integer values
81
+
-`MetadataDoubleValue`: Floating-point values
82
+
-`MetadataBoolValue`: Boolean values
83
+
84
+
### Model Type Property
85
+
86
+
The `model_type` custom property is a standardized property for categorizing models by their AI/ML paradigm. It enables filtering and governance based on model characteristics.
87
+
88
+
#### Specification
89
+
90
+
**Property Name**: `model_type`
91
+
92
+
**Metadata Type**: `MetadataStringValue`
93
+
94
+
**Allowed Values**:
95
+
-`predictive` - Traditional ML models (regression, classification, forecasting, clustering, etc.)
- Recommendation systems (collaborative filtering)
150
+
151
+
**Generative Models** (`generative`):
152
+
- Large Language Models (LLMs) - GPT, BERT, Llama, etc.
153
+
- Text-to-image models - Stable Diffusion, DALL-E, etc.
154
+
- Generative Adversarial Networks (GANs)
155
+
- Variational Autoencoders (VAEs)
156
+
- Diffusion models
157
+
- Text-to-speech and speech-to-text models
158
+
- Code generation models
159
+
- Transformer-based generation models
160
+
161
+
**Unknown** (`unknown`):
162
+
- Hybrid models that combine both paradigms
163
+
- Experimental models under development
164
+
- Models where classification is not yet determined
165
+
166
+
### Querying and Filtering by Custom Properties
167
+
168
+
#### Filter by Model Type
169
+
170
+
Search for all generative AI models:
171
+
```bash
172
+
GET /api/model_catalog/v1alpha1/models?source=my-catalog&filterQuery=customProperties.model_type.string_value='generative'
173
+
```
174
+
175
+
Search for predictive models:
176
+
```bash
177
+
GET /api/model_catalog/v1alpha1/models?source=my-catalog&filterQuery=customProperties.model_type.string_value='predictive'
178
+
```
179
+
180
+
#### Combining Filters
181
+
182
+
Filter by model type and other criteria:
183
+
```bash
184
+
# Generative models with production maturity
185
+
GET /api/model_catalog/v1alpha1/models?source=my-catalog&filterQuery=customProperties.model_type.string_value='generative' AND maturity='Production'
186
+
187
+
# Predictive models for specific tasks
188
+
GET /api/model_catalog/v1alpha1/models?source=my-catalog&filterQuery=customProperties.model_type.string_value='predictive' AND tasks CONTAINS 'regression'
189
+
```
190
+
191
+
### Additional Custom Properties Examples
192
+
193
+
#### Validation and Certification
194
+
195
+
```yaml
196
+
customProperties:
197
+
validated:
198
+
metadataType: MetadataStringValue
199
+
string_value: ""
200
+
validation_status:
201
+
metadataType: MetadataStringValue
202
+
string_value: "certified"
203
+
validation_date:
204
+
metadataType: MetadataStringValue
205
+
string_value: "2025-01-20"
206
+
compliance:
207
+
metadataType: MetadataStringValue
208
+
string_value: "GDPR,CCPA,SOC2"
209
+
```
210
+
211
+
#### Performance and Hardware
212
+
213
+
```yaml
214
+
customProperties:
215
+
hardware_type:
216
+
metadataType: MetadataStringValue
217
+
string_value: "H100"
218
+
hardware_count:
219
+
metadataType: MetadataIntValue
220
+
int_value: "2"
221
+
throughput_tps:
222
+
metadataType: MetadataDoubleValue
223
+
double_value: 1105.4
224
+
latency_p95_ms:
225
+
metadataType: MetadataDoubleValue
226
+
double_value: 108.3
227
+
```
228
+
229
+
#### Deployment Metadata
230
+
231
+
```yaml
232
+
customProperties:
233
+
deployment_type:
234
+
metadataType: MetadataStringValue
235
+
string_value: "production"
236
+
framework_type:
237
+
metadataType: MetadataStringValue
238
+
string_value: "vllm"
239
+
framework_version:
240
+
metadataType: MetadataStringValue
241
+
string_value: "v0.8.4"
242
+
use_case:
243
+
metadataType: MetadataStringValue
244
+
string_value: "chatbot"
245
+
```
246
+
247
+
### Best Practices
248
+
249
+
1. **Use Standardized Properties**: For common use cases like `model_type`, use the documented property names and values to ensure consistency across catalogs.
250
+
251
+
2. **Choose Appropriate Types**: Select the correct metadata type for your values:
252
+
- Use `MetadataStringValue` for text, enums, and identifiers
253
+
- Use `MetadataIntValue` for counts and whole numbers
254
+
- Use `MetadataDoubleValue` for measurements and metrics
255
+
- Use `MetadataBoolValue` for flags
256
+
257
+
3. **Document Custom Properties**: Maintain documentation for any custom properties specific to your organization or use case.
258
+
259
+
4. **Validate Values**: When using enum-like properties (like `model_type`), validate values against the allowed set to prevent inconsistencies.
260
+
261
+
5. **Use Hierarchical Keys**: For complex metadata, consider using dot-notation or underscores to create logical groupings (e.g., `validation_status`, `hardware_type`).
262
+
65
263
## Configuration
66
264
67
265
The catalog service uses **file-based configuration** instead of traditional databases:
0 commit comments