ailexej commited on
Commit
579f9c2
β€’
1 Parent(s): ec658ab

Add new SentenceTransformer model

Browse files
Files changed (2) hide show
  1. README.md +483 -761
  2. model.safetensors +1 -1
README.md CHANGED
@@ -7,729 +7,472 @@ tags:
7
  - sentence-similarity
8
  - feature-extraction
9
  - generated_from_trainer
10
- - dataset_size:3284
11
  - loss:MatryoshkaLoss
12
  - loss:MultipleNegativesRankingLoss
13
  base_model: Snowflake/snowflake-arctic-embed-m-v1.5
14
  widget:
15
- - source_sentence: How do I register and activate a stack with a new orchestrator
16
- using ZenML?
17
  sentences:
18
- - "hestrator registered and part of our active stack:zenml orchestrator register\
19
- \ <ORCHESTRATOR_NAME> \\\n --flavor=airflow \\\n --local=True # set this\
20
- \ to `False` if using a remote Airflow deployment\n\n# Register and activate a\
21
- \ stack with the new orchestrator\nzenml stack register <STACK_NAME> -o <ORCHESTRATOR_NAME>\
22
- \ ... --set\n\nDue to dependency conflicts, we need to install the Python packages\
23
- \ to start a local Airflow server in a separate Python environment.\n\n# Create\
24
- \ a fresh virtual environment in which we install the Airflow server dependencies\n\
25
- python -m venv airflow_server_environment\nsource airflow_server_environment/bin/activate\n\
26
- \n# Install the Airflow server dependencies\npip install \"apache-airflow==2.4.0\"\
27
- \ \"apache-airflow-providers-docker<3.8.0\" \"pydantic~=2.7.1\"\n\nBefore starting\
28
- \ the local Airflow server, we can set a few environment variables to configure\
29
- \ it:\n\nAIRFLOW_HOME: This variable defines the location where the Airflow server\
30
- \ stores its database and configuration files. The default value is ~/airflow.\n\
31
- \nAIRFLOW__CORE__DAGS_FOLDER: This variable defines the location where the Airflow\
32
- \ server looks for DAG files. The default value is <AIRFLOW_HOME>/dags.\n\nAIRFLOW__SCHEDULER__DAG_DIR_LIST_INTERVAL:\
33
- \ This variable controls how often the Airflow scheduler checks for new or updated\
34
- \ DAGs. By default, the scheduler will check for new DAGs every 30 seconds. This\
35
- \ variable can be used to increase or decrease the frequency of the checks, depending\
36
- \ on the specific needs of your pipeline.\n\nWhen running this on MacOS, you might\
37
- \ need to set the no_proxy environment variable to prevent crashes due to a bug\
38
- \ in Airflow (see this page for more information):\n\nexport no_proxy=*\n\nWe\
39
- \ can now start the local Airflow server by running the following command:\n\n\
40
- # Switch to the Python environment that has Airflow installed before running this\
41
- \ command\nairflow standalone"
42
- - "ta stores you want to migrate, then upgrade ZenML.Decide the ZenML deployment\
43
- \ model that you want to follow for your projects. See the ZenML deployment documentation\
44
- \ for available deployment scenarios. If you decide on using a local or remote\
45
- \ ZenML server to manage your pipelines, make sure that you first connect your\
46
- \ client to it by running zenml connect.\n\nUse the zenml pipeline runs migrate\
47
- \ CLI command to migrate your old pipeline runs:\n\nIf you want to migrate from\
48
- \ a local SQLite metadata store, you only need to pass the path to the metadata\
49
- \ store to the command, e.g.:\n\nzenml pipeline runs migrate PATH/TO/LOCAL/STORE/metadata.db\n\
50
- \nIf you would like to migrate any other store, you will need to set --database_type=mysql\
51
- \ and provide the MySQL host, username, and password in addition to the database,\
52
- \ e.g.:\n\nzenml pipeline runs migrate DATABASE_NAME \\\n --database_type=mysql\
53
- \ \\\n --mysql_host=URL/TO/MYSQL \\\n --mysql_username=MYSQL_USERNAME \\\n \
54
- \ --mysql_password=MYSQL_PASSWORD\n\n\U0001F4BE The New Way (CLI Command Cheat\
55
- \ Sheet)\n\nDeploy the server\n\nzenml deploy --aws (maybe don’t do this :) since\
56
- \ it spins up infrastructure on AWS…)\n\nSpin up a local ZenML Server\n\nzenml\
57
- \ up\n\nConnect to a pre-existing server\n\nzenml connect (pass in URL / etc,\
58
- \ or zenml connect --config + yaml file)\n\nList your deployed server details\n\
59
- \nzenml status\n\nThe ZenML Dashboard is now available\n\nThe new ZenML Dashboard\
60
- \ is now bundled into the ZenML Python package and can be launched directly from\
61
- \ Python. The source code lives in the ZenML Dashboard repository.\n\nTo launch\
62
- \ it locally, simply run zenml up on your machine and follow the instructions:\n\
63
- \n$ zenml up\nDeploying a local ZenML server with name 'local'.\nConnecting ZenML\
64
- \ to the 'local' local ZenML server (http://127.0.0.1:8237).\nUpdated the global\
65
- \ store configuration.\nConnected ZenML to the 'local' local ZenML server (http://127.0.0.1:8237).\n\
66
- The local ZenML dashboard is available at 'http://127.0.0.1:8237'. You can\nconnect\
67
- \ to it using the 'default' username and an empty password."
68
- - '🐍Configure Python environments
69
-
70
-
71
- Navigating multiple development environments.
72
-
73
-
74
- PreviousHyperAI Service ConnectorNextHandling dependencies
75
-
76
-
77
- Last updated 21 days ago'
78
- - source_sentence: How do you build a simple machine learning pipeline using ZenML
79
- decorators in the code?
80
- sentences:
81
- - 'Develop a custom data validator
82
-
83
-
84
- How to develop a custom data validator
85
-
86
-
87
- Before diving into the specifics of this component type, it is beneficial to familiarize
88
- yourself with our general guide to writing custom component flavors in ZenML.
89
- This guide provides an essential understanding of ZenML''s component flavor concepts.
90
-
91
-
92
- Base abstraction in progress!
93
-
94
-
95
- We are actively working on the base abstraction for the Data Validators, which
96
- will be available soon. As a result, their extension is not recommended at the
97
- moment. When you are selecting a data validator for your stack, you can use one
98
- of the existing flavors.
99
-
100
-
101
- If you need to implement your own Data Validator flavor, you can still do so,
102
- but keep in mind that you may have to refactor it when the base abstraction is
103
- updated.
104
-
105
-
106
- ZenML comes equipped with Data Validator implementations that integrate a variety
107
- of data logging and validation libraries, frameworks and platforms. However, if
108
- you need to use a different library or service as a backend for your ZenML Data
109
- Validator, you can extend ZenML to provide your own custom Data Validator implementation.
110
-
111
-
112
- Build your own custom data validator
113
-
114
-
115
- If you want to implement your own custom Data Validator, you can follow the following
116
- steps:
117
-
118
-
119
- Create a class which inherits from the BaseDataValidator class and override one
120
- or more of the abstract methods, depending on the capabilities of the underlying
121
- library/service that you want to integrate.
122
-
123
-
124
- If you need any configuration, you can create a class which inherits from the
125
- BaseDataValidatorConfig class.
126
-
127
-
128
- Bring both of these classes together by inheriting from the BaseDataValidatorFlavor.
129
-
130
-
131
- (Optional) You should also provide some standard steps that others can easily
132
- insert into their pipelines for instant access to data validation features.
133
-
134
-
135
- Once you are done with the implementation, you can register it through the CLI.
136
- Please ensure you point to the flavor class via dot notation:'
137
- - " This is us if you want to put faces to the names!However, in order to improve\
138
- \ ZenML and understand how it is being used, we need to use analytics to have\
139
- \ an overview of how it is used 'in the wild'. This not only helps us find bugs\
140
- \ but also helps us prioritize features and commands that might be useful in future\
141
- \ releases. If we did not have this information, all we really get is pip download\
142
- \ statistics and chatting with people directly, which while being valuable, is\
143
- \ not enough to seriously better the tool as a whole.\n\nHow does ZenML collect\
144
- \ these statistics?\n\nWe use Segment as the data aggregation library for all\
145
- \ our analytics. However, before any events get sent to Segment, they first go\
146
- \ through a central ZenML analytics server. This added layer allows us to put\
147
- \ various countermeasures to incidents such as getting spammed with events and\
148
- \ enables us to have a more optimized tracking process.\n\nThe client code is\
149
- \ entirely visible and can be seen in the analytics module of our main repository.\n\
150
- \nIf I share my email, will you spam me?\n\nNo, we won't. Our sole purpose of\
151
- \ contacting you will be to ask for feedback (e.g. in the shape of a user interview).\
152
- \ These interviews help the core team understand usage better and prioritize feature\
153
- \ requests. If you have any concerns about data privacy and the usage of personal\
154
- \ information, please contact us, and we will try to alleviate any concerns as\
155
- \ soon as possible.\n\nVersion mismatch (downgrading)\n\nIf you've recently downgraded\
156
- \ your ZenML version to an earlier release or installed a newer version on a different\
157
- \ environment on the same machine, you might encounter an error message when running\
158
- \ ZenML that says:\n\n`The ZenML global configuration version (%s) is higher than\
159
- \ the version of ZenML \ncurrently being used (%s).`\n\nWe generally recommend\
160
- \ using the latest ZenML version. However, there might be cases where you need\
161
- \ to match the global configuration version with the version of ZenML installed\
162
- \ in the current environment. To do this, run the following command:\n\nzenml\
163
- \ downgrade"
164
- - "⛓️Build a pipeline\n\nBuilding pipelines is as simple as adding the `@step` and\
165
- \ `@pipeline` decorators to your code.\n\n@step # Just add this decorator\ndef\
166
- \ load_data() -> dict:\n training_data = [[1, 2], [3, 4], [5, 6]]\n labels\
167
- \ = [0, 1, 0]\n return {'features': training_data, 'labels': labels}\n\n@step\n\
168
- def train_model(data: dict) -> None:\n total_features = sum(map(sum, data['features']))\n\
169
- \ total_labels = sum(data['labels'])\n\n# Train some model here\n\nprint(f\"\
170
- Trained model using {len(data['features'])} data points. \"\n f\"Feature\
171
- \ sum is {total_features}, label sum is {total_labels}\")\n\n@pipeline # This\
172
- \ function combines steps together \ndef simple_ml_pipeline():\n dataset =\
173
- \ load_data()\n train_model(dataset)\n\nYou can now run this pipeline by simply\
174
- \ calling the function:\n\nsimple_ml_pipeline()\n\nWhen this pipeline is executed,\
175
- \ the run of the pipeline gets logged to the ZenML dashboard where you can now\
176
- \ go to look at its DAG and all the associated metadata. To access the dashboard\
177
- \ you need to have a ZenML server either running locally or remotely. See our\
178
- \ documentation on this here.\n\nCheck below for more advanced ways to build and\
179
- \ interact with your pipeline.\n\nConfigure pipeline/step parameters\n\nName and\
180
- \ annotate step outputs\n\nControl caching behavior\n\nRun pipeline from a pipeline\n\
181
- \nControl the execution order of steps\n\nCustomize the step invocation ids\n\n\
182
- Name your pipeline runs\n\nUse failure/success hooks\n\nHyperparameter tuning\n\
183
- \nAttach metadata to steps\n\nFetch metadata within steps\n\nFetch metadata during\
184
- \ pipeline composition\n\nEnable or disable logs storing\n\nSpecial Metadata Types\n\
185
- \nAccess secrets in a step\n\nPreviousBest practicesNextUse pipeline/step parameters\n\
186
- \nLast updated 1 month ago"
187
- - source_sentence: How can I integrate Large Language Models (LLMs) into my MLOps
188
- workflows using ZenML?
189
- sentences:
190
- - '🦜LLMOps guide
191
-
192
-
193
- Leverage the power of LLMs in your MLOps workflows with ZenML.
194
-
195
-
196
- Welcome to the ZenML LLMOps Guide, where we dive into the exciting world of Large
197
- Language Models (LLMs) and how to integrate them seamlessly into your MLOps pipelines
198
- using ZenML. This guide is designed for ML practitioners and MLOps engineers looking
199
- to harness the potential of LLMs while maintaining the robustness and scalability
200
- of their workflows.
201
-
202
-
203
- In this guide, we''ll explore various aspects of working with LLMs in ZenML, including:
204
-
205
-
206
- RAG with ZenML
207
-
208
-
209
- RAG in 85 lines of code
210
-
211
-
212
- Understanding Retrieval-Augmented Generation (RAG)
213
-
214
-
215
- Data ingestion and preprocessing
216
-
217
-
218
- Embeddings generation
219
-
220
-
221
- Storing embeddings in a vector database
222
-
223
-
224
- Basic RAG inference pipeline
225
-
226
-
227
- Evaluation and metrics
228
-
229
-
230
- Evaluation in 65 lines of code
231
-
232
-
233
- Retrieval evaluation
234
-
235
-
236
- Generation evaluation
237
-
238
-
239
- Evaluation in practice
240
-
241
-
242
- Reranking for better retrieval
243
-
244
-
245
- Understanding reranking
246
-
247
-
248
- Implementing reranking in ZenML
249
-
250
-
251
- Evaluating reranking performance
252
-
253
-
254
- Improve retrieval by finetuning embeddings
255
-
256
-
257
- Synthetic data generation
258
-
259
-
260
- Finetuning embeddings with Sentence Transformers
261
-
262
-
263
- Evaluating finetuned embeddings
264
-
265
-
266
- Finetuning LLMs with ZenML
267
-
268
-
269
- To follow along with the examples and tutorials in this guide, ensure you have
270
- a Python environment set up with ZenML installed. Familiarity with the concepts
271
- covered in the Starter Guide and Production Guide is recommended.
272
-
273
-
274
- We''ll showcase a specific application over the course of this LLM guide, showing
275
- how you can work from a simple RAG pipeline to a more complex setup that involves
276
- finetuning embeddings, reranking retrieved documents, and even finetuning the
277
- LLM itself. We''ll do this all for a use case relevant to ZenML: a question answering
278
- system that can provide answers to common questions about ZenML. This will help
279
- you understand how to apply the concepts covered in this guide to your own projects.'
280
- - ' data with tags
281
-
282
-
283
- Get arbitrary artifacts in a stepHandle custom data types
284
-
285
-
286
- Load artifacts into memory
287
-
288
-
289
- Datasets in ZenML
290
-
291
-
292
- Manage big data
293
-
294
-
295
- Skipping materialization
296
-
297
-
298
- Passing artifacts between pipelines
299
-
300
-
301
- Register Existing Data as a ZenML Artifact
302
-
303
-
304
- πŸ“ŠVisualizing artifacts
305
-
306
-
307
- Default visualizations
308
-
309
-
310
- Creating custom visualizations
311
-
312
-
313
- Displaying visualizations in the dashboard
314
-
315
-
316
- Disabling visualizations
317
-
318
-
319
- πŸͺ†Use the Model Control Plane
320
 
321
 
322
- Registering a Model
323
 
324
 
325
- Deleting a Model
326
 
327
 
328
- Associate a pipeline with a Model
329
 
330
 
331
- Connecting artifacts via a Model
 
332
 
333
 
334
- Controlling Model versions
335
 
336
 
337
- Load a Model in code
 
 
 
338
 
339
 
340
- Promote a Model
341
-
342
-
343
- Linking model binaries/data to a Model
344
-
345
-
346
- Load artifacts from Model
347
-
348
-
349
- πŸ“ˆTrack metrics and metadata
350
-
351
-
352
- Attach metadata to a model
353
-
354
-
355
- Attach metadata to an artifact
356
-
357
-
358
- Attach metadata to steps
359
-
360
-
361
- Group metadata
362
-
363
-
364
- Special Metadata Types
365
-
366
-
367
- Fetch metadata within steps
368
-
369
-
370
- Fetch metadata during pipeline composition
371
-
372
-
373
- πŸ‘¨β€πŸŽ€Popular integrations
374
-
375
-
376
- Run on AWS
377
-
378
-
379
- Run on GCP
380
-
381
-
382
- Run on Azure
383
-
384
-
385
- Kubeflow
386
-
387
-
388
- Kubernetes
389
-
390
-
391
- MLflow
392
-
393
-
394
- Skypilot
395
-
396
-
397
- πŸ”ŒConnect services (AWS, GCP, Azure, K8s etc)
398
-
399
-
400
- Service Connectors guide
401
-
402
-
403
- Security best practices
404
-
405
-
406
- Docker Service Connector
407
-
408
-
409
- Kubernetes Service Connector
410
-
411
-
412
- AWS Service Connector
413
-
414
-
415
- GCP Service Connector
416
-
417
-
418
- Azure Service Connector
419
-
420
-
421
- HyperAI Service Connector
422
-
423
-
424
- 🐍Configure Python environments
425
-
426
-
427
- Handling dependencies
428
-
429
-
430
- Configure the server environment
431
-
432
-
433
- πŸ”ŒConnect to a server
434
-
435
-
436
- Connect in with your User (interactive)
437
-
438
-
439
- Connect with a Service Account
440
-
441
-
442
- πŸ”Interact with secrets
443
-
444
-
445
- 🐞Debug and solve issues
446
-
447
-
448
- 🀝Contribute to ZenML
449
-
450
-
451
- Implement a custom integration
452
-
453
-
454
- Stack Components
455
-
456
-
457
- πŸ“œOverview
458
-
459
-
460
- πŸ”‹Orchestrators
461
-
462
-
463
- Local Orchestrator
464
-
465
-
466
- Local Docker Orchestrator
467
 
468
 
469
- Kubeflow Orchestrator
 
 
470
 
471
 
472
- Kubernetes Orchestrator
473
 
474
 
475
- Google Cloud VertexAI Orchestrator
 
 
476
 
477
 
478
- AWS Sagemaker Orchestrator
479
 
480
 
481
- AzureML Orchestrator
 
 
 
482
 
483
 
484
- Databricks Orchestrator
485
 
486
 
487
- Tekton Orchestrator
 
 
488
 
489
 
490
- Airflow Orchestrator
491
 
492
 
493
- Skypilot VM Orchestrator
494
 
495
 
496
- HyperAI Orchestrator
 
497
 
498
 
499
- Lightning AI Orchestrator
500
 
501
 
502
- Develop a custom orchestrator
503
 
504
 
505
- πŸͺArtifact Stores
506
 
507
 
508
- Local Artifact Store
509
 
510
 
511
- Amazon Simple Cloud Storage (S3)
 
512
 
513
 
514
- Google Cloud Storage (GCS)'
515
- - 'Troubleshoot the deployed server
516
 
517
 
518
- Troubleshooting tips for your ZenML deployment
519
 
520
 
521
- In this document, we will go over some common issues that you might face when
522
- deploying ZenML and how to solve them.
523
 
524
 
525
- Viewing logs
 
526
 
527
 
528
- Analyzing logs is a great way to debug issues. Depending on whether you have a
529
- Kubernetes (using Helm or zenml deploy) or a Docker deployment, you can view the
530
- logs in different ways.
531
 
532
 
533
- If you are using Kubernetes, you can view the logs of the ZenML server using the
534
- following method:
535
 
536
 
537
- Check all pods that are running your ZenML deployment.
538
 
539
 
540
- kubectl -n <KUBERNETES_NAMESPACE> get pods
 
 
 
541
 
542
 
543
- If you see that the pods aren''t running, you can use the command below to get
544
- the logs for all pods at once.
545
 
546
 
547
- kubectl -n <KUBERNETES_NAMESPACE> logs -l app.kubernetes.io/name=zenml
 
 
 
 
548
 
549
 
550
- Note that the error can either be from the zenml-db-init container that connects
551
- to the MySQL database or from the zenml container that runs the server code. If
552
- the get pods command shows that the pod is failing in the Init state then use
553
- zenml-db-init as the container name, otherwise use zenml.
554
 
555
 
556
- kubectl -n <KUBERNETES_NAMESPACE> logs -l app.kubernetes.io/name=zenml -c <CONTAINER_NAME>
 
 
 
 
 
557
 
558
 
559
- You can also use the --tail flag to limit the number of lines to show or the --follow
560
- flag to follow the logs in real-time.
561
 
562
 
563
- If you are using Docker, you can view the logs of the ZenML server using the following
564
- method:
565
 
566
 
567
- If you used the zenml up --docker CLI command to deploy the Docker ZenML server,
568
- you can check the logs with the command:
569
 
570
 
571
- zenml logs -f
 
572
 
573
 
574
- If you used the docker run command to manually deploy the Docker ZenML server,
575
- you can check the logs with the command:
576
 
577
 
578
- docker logs zenml -f
579
 
580
 
581
- If you used the docker compose command to manually deploy the Docker ZenML server,
582
- you can check the logs with the command:
 
583
 
584
 
585
- docker compose -p zenml logs -f
586
 
587
 
588
- Fixing database connection problems'
589
- - source_sentence: How can you disable artifact visualization in ZenML?
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
590
  sentences:
591
- - 'Secret management
592
-
593
-
594
- Configuring the secrets store.
595
-
596
-
597
- PreviousCustom secret storesNextZenML Pro
598
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
599
 
600
- Last updated 21 days ago'
601
- - ' visit our PyPi package page.
602
-
603
-
604
- Running with Dockerzenml is also available as a Docker image hosted publicly on
605
- DockerHub. Use the following command to get started in a bash environment with
606
- zenml available:
607
-
608
-
609
- docker run -it zenmldocker/zenml /bin/bash
610
 
 
 
 
611
 
612
- If you would like to run the ZenML server with Docker:
613
 
 
614
 
615
- docker run -it -d -p 8080:8080 zenmldocker/zenml-server
616
 
 
 
 
 
617
 
618
- Deploying the server
619
 
 
 
 
620
 
621
- Though ZenML can run entirely as a pip package on a local system, complete with
622
- the dashboard. You can do this easily:
623
 
 
624
 
625
- pip install "zenml[server]"
626
 
627
- zenml up # opens the dashboard locally
 
628
 
629
 
630
- However, advanced ZenML features are dependent on a centrally-deployed ZenML server
631
- accessible to other MLOps stack components. You can read more about it here.
632
 
633
 
634
- For the deployment of ZenML, you have the option to either self-host it or register
635
- for a free ZenML Pro account.
636
 
637
 
638
- PreviousIntroductionNextCore concepts
 
639
 
640
 
641
- Last updated 20 days ago'
642
- - "Disabling visualizations\n\nDisabling visualizations.\n\nIf you would like to\
643
- \ disable artifact visualization altogether, you can set enable_artifact_visualization\
644
- \ at either pipeline or step level:\n\n@step(enable_artifact_visualization=False)\n\
645
- def my_step():\n ...\n\n@pipeline(enable_artifact_visualization=False)\ndef\
646
- \ my_pipeline():\n ...\n\nPreviousDisplaying visualizations in the dashboardNextUse\
647
- \ the Model Control Plane\n\nLast updated 21 days ago"
648
- - source_sentence: How can I programmatically manage secrets using the ZenML Client
649
- API, and what are some of the methods available for tasks like fetching, updating,
650
- and deleting secrets?
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
651
  sentences:
652
- - "tack:\n\nzenml stack register-secrets [<STACK_NAME>]The ZenML client API offers\
653
- \ a programmatic interface to create, e.g.:\n\nfrom zenml.client import Client\n\
654
- \nclient = Client()\nclient.create_secret(\n name=\"my_secret\",\n values={\n\
655
- \ \"username\": \"admin\",\n \"password\": \"abc123\"\n }\n)\n\
656
- \nOther Client methods used for secrets management include get_secret to fetch\
657
- \ a secret by name or id, update_secret to update an existing secret, list_secrets\
658
- \ to query the secrets store using a variety of filtering and sorting criteria,\
659
- \ and delete_secret to delete a secret. The full Client API reference is available\
660
- \ here.\n\nSet scope for secrets\n\nZenML secrets can be scoped to a user. This\
661
- \ allows you to create secrets that are only accessible to one user.\n\nBy default,\
662
- \ all created secrets are scoped to the active user. To create a secret and scope\
663
- \ it to your active user instead, you can pass the --scope argument to the CLI\
664
- \ command:\n\nzenml secret create <SECRET_NAME> \\\n --scope user \\\n --<KEY_1>=<VALUE_1>\
665
- \ \\\n --<KEY_2>=<VALUE_2>\n\nScopes also act as individual namespaces. When\
666
- \ you are referencing a secret by name in your pipelines and stacks, ZenML will\
667
- \ look for a secret with that name scoped to the active user.\n\nAccessing registered\
668
- \ secrets\n\nReference secrets in stack component attributes and settings\n\n\
669
- Some of the components in your stack require you to configure them with sensitive\
670
- \ information like passwords or tokens, so they can connect to the underlying\
671
- \ infrastructure. Secret references allow you to configure these components in\
672
- \ a secure way by not specifying the value directly but instead referencing a\
673
- \ secret by providing the secret name and key. Referencing a secret for the value\
674
- \ of any string attribute of your stack components, simply specify the attribute\
675
- \ using the following syntax: {{<SECRET_NAME>.<SECRET_KEY>}}\n\nFor example:\n\
676
- \n# Register a secret called `mlflow_secret` with key-value pairs for the\n# username\
677
- \ and password to authenticate with the MLflow tracking server"
678
- - 'y to the active stack
679
-
680
- zenml stack update -c <NAME>Additionally, we''ll need to log in to the container
681
- registry so Docker can pull and push images. This will require your DockerHub
682
- account name and either your password or preferably a personal access token.
683
-
684
-
685
- docker login
686
-
687
-
688
- For more information and a full list of configurable attributes of the dockerhub
689
- container registry, check out the SDK Docs .
690
-
691
-
692
- PreviousDefault Container RegistryNextAmazon Elastic Container Registry (ECR)
693
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
694
 
695
- Last updated 4 months ago'
696
- - 'nect the stack component to the Service Connector:$ zenml step-operator register
697
- <NAME> --flavor kubernetes
698
 
699
- Running with active stack: ''default'' (repository)
700
 
701
- Successfully registered step operator `<NAME>`.
702
 
 
703
 
704
- $ zenml service-connector list-resources --resource-type kubernetes-cluster -e
705
 
706
- The following ''kubernetes-cluster'' resources can be accessed by service connectors
707
- that you have configured:
708
 
709
- ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━┓
710
 
711
- ┃ CONNECTOR ID β”‚ CONNECTOR NAME β”‚ CONNECTOR TYPE
712
- β”‚ RESOURCE TYPE β”‚ RESOURCE NAMES ┃
713
 
714
- ┠──────────────────────────────────────┼───────────────────────┼────────────────┼───────────────────────┼─────────────────────┨
715
 
716
- ┃ e33c9fac-5daa-48b2-87bb-0187d3782cde β”‚ aws-iam-multi-eu β”‚ πŸ”Ά aws β”‚
717
- πŸŒ€ kubernetes-cluster β”‚ kubeflowmultitenant ┃
718
 
719
- ┃ β”‚ β”‚ β”‚ β”‚
720
- zenbox ┃
721
 
722
- ┠──────────────────────────────────────┼───────────────────────┼────────────────┼───────────────────────┼─────────────────────┨
723
 
724
- ┃ ed528d5a-d6cb-4fc4-bc52-c3d2d01643e5 β”‚ aws-iam-multi-us β”‚ πŸ”Ά aws β”‚
725
- πŸŒ€ kubernetes-cluster β”‚ zenhacks-cluster ┃
726
 
727
- ┠──────────────────────────────────────┼───────────────────────┼────────────────┼───────────────────────┼─────────────────────┨
728
 
729
- ┃ 1c54b32a-4889-4417-abbd-42d3ace3d03a β”‚ gcp-sa-multi β”‚ πŸ”΅ gcp β”‚
730
- πŸŒ€ kubernetes-cluster β”‚ zenml-test-cluster ┃
731
 
732
- ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━┛'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
733
  pipeline_tag: sentence-similarity
734
  library_name: sentence-transformers
735
  metrics:
@@ -759,49 +502,49 @@ model-index:
759
  type: dim_384
760
  metrics:
761
  - type: cosine_accuracy@1
762
- value: 0.1917808219178082
763
  name: Cosine Accuracy@1
764
  - type: cosine_accuracy@3
765
- value: 0.5095890410958904
766
  name: Cosine Accuracy@3
767
  - type: cosine_accuracy@5
768
- value: 0.6986301369863014
769
  name: Cosine Accuracy@5
770
  - type: cosine_accuracy@10
771
- value: 0.810958904109589
772
  name: Cosine Accuracy@10
773
  - type: cosine_precision@1
774
- value: 0.1917808219178082
775
  name: Cosine Precision@1
776
  - type: cosine_precision@3
777
- value: 0.16986301369863013
778
  name: Cosine Precision@3
779
  - type: cosine_precision@5
780
- value: 0.13972602739726026
781
  name: Cosine Precision@5
782
  - type: cosine_precision@10
783
- value: 0.08109589041095888
784
  name: Cosine Precision@10
785
  - type: cosine_recall@1
786
- value: 0.1917808219178082
787
  name: Cosine Recall@1
788
  - type: cosine_recall@3
789
- value: 0.5095890410958904
790
  name: Cosine Recall@3
791
  - type: cosine_recall@5
792
- value: 0.6986301369863014
793
  name: Cosine Recall@5
794
  - type: cosine_recall@10
795
- value: 0.810958904109589
796
  name: Cosine Recall@10
797
  - type: cosine_ndcg@10
798
- value: 0.490826354124735
799
  name: Cosine Ndcg@10
800
  - type: cosine_mrr@10
801
- value: 0.38868232224396587
802
  name: Cosine Mrr@10
803
  - type: cosine_map@100
804
- value: 0.3947220516402755
805
  name: Cosine Map@100
806
  - task:
807
  type: information-retrieval
@@ -811,49 +554,49 @@ model-index:
811
  type: dim_256
812
  metrics:
813
  - type: cosine_accuracy@1
814
- value: 0.19726027397260273
815
  name: Cosine Accuracy@1
816
  - type: cosine_accuracy@3
817
- value: 0.5150684931506849
818
  name: Cosine Accuracy@3
819
  - type: cosine_accuracy@5
820
- value: 0.6931506849315069
821
  name: Cosine Accuracy@5
822
  - type: cosine_accuracy@10
823
- value: 0.8191780821917808
824
  name: Cosine Accuracy@10
825
  - type: cosine_precision@1
826
- value: 0.19726027397260273
827
  name: Cosine Precision@1
828
  - type: cosine_precision@3
829
- value: 0.17168949771689496
830
  name: Cosine Precision@3
831
  - type: cosine_precision@5
832
- value: 0.13863013698630136
833
  name: Cosine Precision@5
834
  - type: cosine_precision@10
835
- value: 0.08191780821917807
836
  name: Cosine Precision@10
837
  - type: cosine_recall@1
838
- value: 0.19726027397260273
839
  name: Cosine Recall@1
840
  - type: cosine_recall@3
841
- value: 0.5150684931506849
842
  name: Cosine Recall@3
843
  - type: cosine_recall@5
844
- value: 0.6931506849315069
845
  name: Cosine Recall@5
846
  - type: cosine_recall@10
847
- value: 0.8191780821917808
848
  name: Cosine Recall@10
849
  - type: cosine_ndcg@10
850
- value: 0.4973578695114294
851
  name: Cosine Ndcg@10
852
  - type: cosine_mrr@10
853
- value: 0.3948053924766253
854
  name: Cosine Mrr@10
855
  - type: cosine_map@100
856
- value: 0.39989299235069015
857
  name: Cosine Map@100
858
  - task:
859
  type: information-retrieval
@@ -863,49 +606,49 @@ model-index:
863
  type: dim_128
864
  metrics:
865
  - type: cosine_accuracy@1
866
- value: 0.19452054794520549
867
  name: Cosine Accuracy@1
868
  - type: cosine_accuracy@3
869
- value: 0.5013698630136987
870
  name: Cosine Accuracy@3
871
  - type: cosine_accuracy@5
872
- value: 0.673972602739726
873
  name: Cosine Accuracy@5
874
  - type: cosine_accuracy@10
875
- value: 0.7835616438356164
876
  name: Cosine Accuracy@10
877
  - type: cosine_precision@1
878
- value: 0.19452054794520549
879
  name: Cosine Precision@1
880
  - type: cosine_precision@3
881
- value: 0.16712328767123283
882
  name: Cosine Precision@3
883
  - type: cosine_precision@5
884
- value: 0.1347945205479452
885
  name: Cosine Precision@5
886
  - type: cosine_precision@10
887
- value: 0.07835616438356163
888
  name: Cosine Precision@10
889
  - type: cosine_recall@1
890
- value: 0.19452054794520549
891
  name: Cosine Recall@1
892
  - type: cosine_recall@3
893
- value: 0.5013698630136987
894
  name: Cosine Recall@3
895
  - type: cosine_recall@5
896
- value: 0.673972602739726
897
  name: Cosine Recall@5
898
  - type: cosine_recall@10
899
- value: 0.7835616438356164
900
  name: Cosine Recall@10
901
  - type: cosine_ndcg@10
902
- value: 0.47814279525126957
903
  name: Cosine Ndcg@10
904
  - type: cosine_mrr@10
905
- value: 0.38079147640791483
906
  name: Cosine Mrr@10
907
  - type: cosine_map@100
908
- value: 0.38821398163789955
909
  name: Cosine Map@100
910
  - task:
911
  type: information-retrieval
@@ -915,49 +658,49 @@ model-index:
915
  type: dim_64
916
  metrics:
917
  - type: cosine_accuracy@1
918
- value: 0.1780821917808219
919
  name: Cosine Accuracy@1
920
  - type: cosine_accuracy@3
921
- value: 0.4602739726027397
922
  name: Cosine Accuracy@3
923
  - type: cosine_accuracy@5
924
- value: 0.6547945205479452
925
  name: Cosine Accuracy@5
926
  - type: cosine_accuracy@10
927
- value: 0.7753424657534247
928
  name: Cosine Accuracy@10
929
  - type: cosine_precision@1
930
- value: 0.1780821917808219
931
  name: Cosine Precision@1
932
  - type: cosine_precision@3
933
- value: 0.15342465753424658
934
  name: Cosine Precision@3
935
  - type: cosine_precision@5
936
- value: 0.13095890410958905
937
  name: Cosine Precision@5
938
  - type: cosine_precision@10
939
- value: 0.07753424657534246
940
  name: Cosine Precision@10
941
  - type: cosine_recall@1
942
- value: 0.1780821917808219
943
  name: Cosine Recall@1
944
  - type: cosine_recall@3
945
- value: 0.4602739726027397
946
  name: Cosine Recall@3
947
  - type: cosine_recall@5
948
- value: 0.6547945205479452
949
  name: Cosine Recall@5
950
  - type: cosine_recall@10
951
- value: 0.7753424657534247
952
  name: Cosine Recall@10
953
  - type: cosine_ndcg@10
954
- value: 0.4625139710379368
955
  name: Cosine Ndcg@10
956
  - type: cosine_mrr@10
957
- value: 0.36313002826701446
958
  name: Cosine Mrr@10
959
  - type: cosine_map@100
960
- value: 0.37046958498969434
961
  name: Cosine Map@100
962
  ---
963
 
@@ -1012,9 +755,9 @@ from sentence_transformers import SentenceTransformer
1012
  model = SentenceTransformer("zenml/finetuned-snowflake-arctic-embed-m-v1.5")
1013
  # Run inference
1014
  sentences = [
1015
- 'How can I programmatically manage secrets using the ZenML Client API, and what are some of the methods available for tasks like fetching, updating, and deleting secrets?',
1016
- 'tack:\n\nzenml stack register-secrets [<STACK_NAME>]The ZenML client API offers a programmatic interface to create, e.g.:\n\nfrom zenml.client import Client\n\nclient = Client()\nclient.create_secret(\n name="my_secret",\n values={\n "username": "admin",\n "password": "abc123"\n }\n)\n\nOther Client methods used for secrets management include get_secret to fetch a secret by name or id, update_secret to update an existing secret, list_secrets to query the secrets store using a variety of filtering and sorting criteria, and delete_secret to delete a secret. The full Client API reference is available here.\n\nSet scope for secrets\n\nZenML secrets can be scoped to a user. This allows you to create secrets that are only accessible to one user.\n\nBy default, all created secrets are scoped to the active user. To create a secret and scope it to your active user instead, you can pass the --scope argument to the CLI command:\n\nzenml secret create <SECRET_NAME> \\\n --scope user \\\n --<KEY_1>=<VALUE_1> \\\n --<KEY_2>=<VALUE_2>\n\nScopes also act as individual namespaces. When you are referencing a secret by name in your pipelines and stacks, ZenML will look for a secret with that name scoped to the active user.\n\nAccessing registered secrets\n\nReference secrets in stack component attributes and settings\n\nSome of the components in your stack require you to configure them with sensitive information like passwords or tokens, so they can connect to the underlying infrastructure. Secret references allow you to configure these components in a secure way by not specifying the value directly but instead referencing a secret by providing the secret name and key. Referencing a secret for the value of any string attribute of your stack components, simply specify the attribute using the following syntax: {{<SECRET_NAME>.<SECRET_KEY>}}\n\nFor example:\n\n# Register a secret called `mlflow_secret` with key-value pairs for the\n# username and password to authenticate with the MLflow tracking server',
1017
- "nect the stack component to the Service Connector:$ zenml step-operator register <NAME> --flavor kubernetes\nRunning with active stack: 'default' (repository)\nSuccessfully registered step operator `<NAME>`.\n\n$ zenml service-connector list-resources --resource-type kubernetes-cluster -e\nThe following 'kubernetes-cluster' resources can be accessed by service connectors that you have configured:\n┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━┓\n┃ CONNECTOR ID β”‚ CONNECTOR NAME β”‚ CONNECTOR TYPE β”‚ RESOURCE TYPE β”‚ RESOURCE NAMES ┃\n┠──────────────────────────────────────┼───────────────────────┼────────────────┼───────────────────────┼─────────────────────┨\n┃ e33c9fac-5daa-48b2-87bb-0187d3782cde β”‚ aws-iam-multi-eu β”‚ πŸ”Ά aws β”‚ πŸŒ€ kubernetes-cluster β”‚ kubeflowmultitenant ┃\n┃ β”‚ β”‚ β”‚ β”‚ zenbox ┃\n┠──────────────────────────────────────┼───────────────────────┼────────────────┼───────────────────────┼─────────────────────┨\n┃ ed528d5a-d6cb-4fc4-bc52-c3d2d01643e5 β”‚ aws-iam-multi-us β”‚ πŸ”Ά aws β”‚ πŸŒ€ kubernetes-cluster β”‚ zenhacks-cluster ┃\n┠──────────────────────────────────────┼───────────────────────┼────────────────┼───────────────────────┼─────────────────────┨\n┃ 1c54b32a-4889-4417-abbd-42d3ace3d03a β”‚ gcp-sa-multi β”‚ πŸ”΅ gcp β”‚ πŸŒ€ kubernetes-cluster β”‚ zenml-test-cluster ┃\n┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━┛",
1018
  ]
1019
  embeddings = model.encode(sentences)
1020
  print(embeddings.shape)
@@ -1058,89 +801,89 @@ You can finetune this model on your own dataset.
1058
  * Dataset: `dim_384`
1059
  * Evaluated with [<code>InformationRetrievalEvaluator</code>](https://sbert.net/docs/package_reference/sentence_transformer/evaluation.html#sentence_transformers.evaluation.InformationRetrievalEvaluator)
1060
 
1061
- | Metric | Value |
1062
- |:--------------------|:-----------|
1063
- | cosine_accuracy@1 | 0.1918 |
1064
- | cosine_accuracy@3 | 0.5096 |
1065
- | cosine_accuracy@5 | 0.6986 |
1066
- | cosine_accuracy@10 | 0.811 |
1067
- | cosine_precision@1 | 0.1918 |
1068
- | cosine_precision@3 | 0.1699 |
1069
- | cosine_precision@5 | 0.1397 |
1070
- | cosine_precision@10 | 0.0811 |
1071
- | cosine_recall@1 | 0.1918 |
1072
- | cosine_recall@3 | 0.5096 |
1073
- | cosine_recall@5 | 0.6986 |
1074
- | cosine_recall@10 | 0.811 |
1075
- | cosine_ndcg@10 | 0.4908 |
1076
- | cosine_mrr@10 | 0.3887 |
1077
- | **cosine_map@100** | **0.3947** |
1078
 
1079
  #### Information Retrieval
1080
  * Dataset: `dim_256`
1081
  * Evaluated with [<code>InformationRetrievalEvaluator</code>](https://sbert.net/docs/package_reference/sentence_transformer/evaluation.html#sentence_transformers.evaluation.InformationRetrievalEvaluator)
1082
 
1083
- | Metric | Value |
1084
- |:--------------------|:-----------|
1085
- | cosine_accuracy@1 | 0.1973 |
1086
- | cosine_accuracy@3 | 0.5151 |
1087
- | cosine_accuracy@5 | 0.6932 |
1088
- | cosine_accuracy@10 | 0.8192 |
1089
- | cosine_precision@1 | 0.1973 |
1090
- | cosine_precision@3 | 0.1717 |
1091
- | cosine_precision@5 | 0.1386 |
1092
- | cosine_precision@10 | 0.0819 |
1093
- | cosine_recall@1 | 0.1973 |
1094
- | cosine_recall@3 | 0.5151 |
1095
- | cosine_recall@5 | 0.6932 |
1096
- | cosine_recall@10 | 0.8192 |
1097
- | cosine_ndcg@10 | 0.4974 |
1098
- | cosine_mrr@10 | 0.3948 |
1099
- | **cosine_map@100** | **0.3999** |
1100
 
1101
  #### Information Retrieval
1102
  * Dataset: `dim_128`
1103
  * Evaluated with [<code>InformationRetrievalEvaluator</code>](https://sbert.net/docs/package_reference/sentence_transformer/evaluation.html#sentence_transformers.evaluation.InformationRetrievalEvaluator)
1104
 
1105
- | Metric | Value |
1106
- |:--------------------|:-----------|
1107
- | cosine_accuracy@1 | 0.1945 |
1108
- | cosine_accuracy@3 | 0.5014 |
1109
- | cosine_accuracy@5 | 0.674 |
1110
- | cosine_accuracy@10 | 0.7836 |
1111
- | cosine_precision@1 | 0.1945 |
1112
- | cosine_precision@3 | 0.1671 |
1113
- | cosine_precision@5 | 0.1348 |
1114
- | cosine_precision@10 | 0.0784 |
1115
- | cosine_recall@1 | 0.1945 |
1116
- | cosine_recall@3 | 0.5014 |
1117
- | cosine_recall@5 | 0.674 |
1118
- | cosine_recall@10 | 0.7836 |
1119
- | cosine_ndcg@10 | 0.4781 |
1120
- | cosine_mrr@10 | 0.3808 |
1121
- | **cosine_map@100** | **0.3882** |
1122
 
1123
  #### Information Retrieval
1124
  * Dataset: `dim_64`
1125
  * Evaluated with [<code>InformationRetrievalEvaluator</code>](https://sbert.net/docs/package_reference/sentence_transformer/evaluation.html#sentence_transformers.evaluation.InformationRetrievalEvaluator)
1126
 
1127
- | Metric | Value |
1128
- |:--------------------|:-----------|
1129
- | cosine_accuracy@1 | 0.1781 |
1130
- | cosine_accuracy@3 | 0.4603 |
1131
- | cosine_accuracy@5 | 0.6548 |
1132
- | cosine_accuracy@10 | 0.7753 |
1133
- | cosine_precision@1 | 0.1781 |
1134
- | cosine_precision@3 | 0.1534 |
1135
- | cosine_precision@5 | 0.131 |
1136
- | cosine_precision@10 | 0.0775 |
1137
- | cosine_recall@1 | 0.1781 |
1138
- | cosine_recall@3 | 0.4603 |
1139
- | cosine_recall@5 | 0.6548 |
1140
- | cosine_recall@10 | 0.7753 |
1141
- | cosine_ndcg@10 | 0.4625 |
1142
- | cosine_mrr@10 | 0.3631 |
1143
- | **cosine_map@100** | **0.3705** |
1144
 
1145
  <!--
1146
  ## Bias, Risks and Limitations
@@ -1161,19 +904,19 @@ You can finetune this model on your own dataset.
1161
  #### json
1162
 
1163
  * Dataset: json
1164
- * Size: 3,284 training samples
1165
  * Columns: <code>positive</code> and <code>anchor</code>
1166
- * Approximate statistics based on the first 1000 samples:
1167
  | | positive | anchor |
1168
  |:--------|:-----------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------|
1169
  | type | string | string |
1170
- | details | <ul><li>min: 11 tokens</li><li>mean: 22.84 tokens</li><li>max: 48 tokens</li></ul> | <ul><li>min: 17 tokens</li><li>mean: 322.65 tokens</li><li>max: 512 tokens</li></ul> |
1171
  * Samples:
1172
- | positive | anchor |
1173
- |:--------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
1174
- | <code>How can impersonating accounts and assuming roles enhance flexibility and control in authentication methods for Service Connectors within ZenML?</code> | <code>ethods.<br><br>Impersonating accounts and assuming rolesThese types of authentication methods require more work to set up because multiple permission-bearing accounts and roles need to be provisioned in advance depending on the target audience. On the other hand, they also provide the most flexibility and control. Despite their operational cost, if you are a platform engineer and have the infrastructure know-how necessary to understand and set up the authentication resources, this is for you.<br><br>These authentication methods deliver another way of configuring long-lived credentials in your Service Connectors without exposing them to clients. They are especially useful as an alternative to cloud provider Service Connectors authentication methods that do not support automatically downscoping the permissions of issued temporary tokens.<br><br>The processes of account impersonation and role assumption are very similar and can be summarized as follows:<br><br>you configure a Service Connector with long-lived credentials associated with a primary user account or primary service account (preferable). As a best practice, it is common to attach a reduced set of permissions or even no permissions to these credentials other than those that allow the account impersonation or role assumption operation. This makes it more difficult to do any damage if the primary credentials are accidentally leaked.<br><br>in addition to the primary account and its long-lived credentials, you also need to provision one or more secondary access entities in the cloud platform bearing the effective permissions that will be needed to access the target resource(s):<br><br>one or more IAM roles (to be assumed)<br><br>one or more service accounts (to be impersonated)<br><br>the Service Connector configuration also needs to contain the name of a target IAM role to be assumed or a service account to be impersonated.</code> |
1175
- | <code>How can I specify the kubeflow_hostname and provide authentication details for multi-tenant Kubeflow deployments when using ZenML?</code> | <code>strator_flavor import KubeflowOrchestratorSettingskubeflow_settings = KubeflowOrchestratorSettings(<br> client_args={}, <br> user_namespace="my_namespace",<br> pod_settings={<br> "affinity": {...},<br> "tolerations": [...]<br> }<br>)<br><br>@pipeline(<br> settings={<br> "orchestrator": kubeflow_settings<br> }<br>)<br><br>This allows specifying client arguments, user namespace, pod affinity/tolerations, and more.<br><br>Multi-Tenancy Deployments<br><br>For multi-tenant Kubeflow deployments, specify the kubeflow_hostname ending in /pipeline when registering the orchestrator:<br><br>zenml orchestrator register <NAME> \<br> --flavor=kubeflow \<br> --kubeflow_hostname=<KUBEFLOW_HOSTNAME> # e.g. https://mykubeflow.example.com/pipeline<br><br>And provide the namespace, username and password in the orchestrator settings:<br><br>kubeflow_settings = KubeflowOrchestratorSettings(<br> client_username="admin",<br> client_password="abc123", <br> user_namespace="namespace_name"<br>)<br><br>@pipeline(<br> settings={<br> "orchestrator": kubeflow_settings<br> }<br>)<br><br>For more advanced options and details, refer to the full Kubeflow Orchestrator documentation.<br><br>PreviousRun on AzureNextKubernetes<br><br>Last updated 21 days ago</code> |
1176
- | <code>How can I contribute to the ZenML project?</code> | <code>ding ZenML to learn more!<br><br>Do you support Windows?ZenML officially supports Windows if you're using WSL. Much of ZenML will also work on Windows outside a WSL environment, but we don't officially support it and some features don't work (notably anything that requires spinning up a server process).<br><br>Do you support Macs running on Apple Silicon?<br><br>Yes, ZenML does support Macs running on Apple Silicon. You just need to make sure that you set the following environment variable:<br><br>export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES<br><br>This is a known issue with how forking works on Macs running on Apple Silicon and it will enable you to use ZenML and the server. This environment variable is needed if you are working with a local server on your Mac, but if you're just using ZenML as a client / CLI and connecting to a deployed server then you don't need to set it.<br><br>How can I make ZenML work with my custom tool? How can I extend or build on ZenML?<br><br>This depends on the tool and its respective MLOps category. We have a full guide on this over here!<br><br>How can I contribute?<br><br>We develop ZenML together with our community! To get involved, the best way to get started is to select any issue from the good-first-issue label. If you would like to contribute, please review our Contributing Guide for all relevant details.<br><br>How can I speak with the community?<br><br>The first point of the call should be our Slack group. Ask your questions about bugs or specific use cases and someone from the core team will respond.<br><br>Which license does ZenML use?<br><br>ZenML is distributed under the terms of the Apache License Version 2.0. A complete version of the license is available in the LICENSE.md in this repository. Any contribution made to this project will be licensed under the Apache License Version 2.0.<br><br>PreviousCommunity & content<br><br>Last updated 3 months ago</code> |
1177
  * Loss: [<code>MatryoshkaLoss</code>](https://sbert.net/docs/package_reference/sentence_transformer/losses.html#matryoshkaloss) with these parameters:
1178
  ```json
1179
  {
@@ -1328,32 +1071,11 @@ You can finetune this model on your own dataset.
1328
  </details>
1329
 
1330
  ### Training Logs
1331
- | Epoch | Step | Training Loss | dim_384_cosine_map@100 | dim_256_cosine_map@100 | dim_128_cosine_map@100 | dim_64_cosine_map@100 |
1332
- |:----------:|:-------:|:-------------:|:----------------------:|:----------------------:|:----------------------:|:---------------------:|
1333
- | 0.1949 | 10 | 1.0787 | - | - | - | - |
1334
- | 0.3898 | 20 | 0.5131 | - | - | - | - |
1335
- | 0.5847 | 30 | 0.2011 | - | - | - | - |
1336
- | 0.7795 | 40 | 0.1264 | - | - | - | - |
1337
- | 0.9744 | 50 | 0.0754 | - | - | - | - |
1338
- | 0.9939 | 51 | - | 0.3934 | 0.3870 | 0.3630 | 0.3397 |
1339
- | 1.1693 | 60 | 0.0581 | - | - | - | - |
1340
- | 1.3642 | 70 | 0.0543 | - | - | - | - |
1341
- | 1.5591 | 80 | 0.0467 | - | - | - | - |
1342
- | 1.7540 | 90 | 0.0154 | - | - | - | - |
1343
- | 1.9488 | 100 | 0.0407 | - | - | - | - |
1344
- | **1.9878** | **102** | **-** | **0.4025** | **0.4052** | **0.387** | **0.3672** |
1345
- | 2.1437 | 110 | 0.0098 | - | - | - | - |
1346
- | 2.3386 | 120 | 0.0229 | - | - | - | - |
1347
- | 2.5335 | 130 | 0.0184 | - | - | - | - |
1348
- | 2.7284 | 140 | 0.009 | - | - | - | - |
1349
- | 2.9233 | 150 | 0.0308 | - | - | - | - |
1350
- | 2.9817 | 153 | - | 0.3919 | 0.4006 | 0.3855 | 0.3718 |
1351
- | 3.1181 | 160 | 0.0048 | - | - | - | - |
1352
- | 3.3130 | 170 | 0.0079 | - | - | - | - |
1353
- | 3.5079 | 180 | 0.0156 | - | - | - | - |
1354
- | 3.7028 | 190 | 0.0075 | - | - | - | - |
1355
- | 3.8977 | 200 | 0.0254 | - | - | - | - |
1356
- | 3.9756 | 204 | - | 0.3947 | 0.3999 | 0.3882 | 0.3705 |
1357
 
1358
  * The bold row denotes the saved checkpoint.
1359
 
@@ -1362,8 +1084,8 @@ You can finetune this model on your own dataset.
1362
  - Sentence Transformers: 3.2.1
1363
  - Transformers: 4.43.1
1364
  - PyTorch: 2.5.1+cu124
1365
- - Accelerate: 1.0.1
1366
- - Datasets: 3.0.2
1367
  - Tokenizers: 0.19.1
1368
 
1369
  ## Citation
 
7
  - sentence-similarity
8
  - feature-extraction
9
  - generated_from_trainer
10
+ - dataset_size:36
11
  - loss:MatryoshkaLoss
12
  - loss:MultipleNegativesRankingLoss
13
  base_model: Snowflake/snowflake-arctic-embed-m-v1.5
14
  widget:
15
+ - source_sentence: Where can I find older versions of ZenML documentation?
 
16
  sentences:
17
+ - 'πŸ§™Installation
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
 
19
 
20
+ Installing ZenML and getting started.
21
 
22
 
23
+ ZenML is a Python package that can be installed directly via pip:
24
 
25
 
26
+ pip install zenml
27
 
28
 
29
+ Note that ZenML currently supports Python 3.8, 3.9, 3.10, and 3.11. Please make
30
+ sure that you are using a supported Python version.
31
 
32
 
33
+ Install with the dashboard
34
 
35
 
36
+ ZenML comes bundled with a web dashboard that lives inside a sister repository.
37
+ In order to get access to the dashboard locally, you need to launch the ZenML
38
+ Server and Dashboard locally. For this, you need to install the optional dependencies
39
+ for the ZenML Server:
40
 
41
 
42
+ pip install "zenml[server]"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43
 
44
 
45
+ We highly encourage you to install ZenML in a virtual environment. At ZenML, We
46
+ like to use virtualenvwrapper or pyenv-virtualenv to manage our Python virtual
47
+ environments.
48
 
49
 
50
+ Installing onto MacOS with Apple Silicon (M1, M2)
51
 
52
 
53
+ A change in how forking works on Macs running on Apple Silicon means that you
54
+ should set the following environment variable which will ensure that your connections
55
+ to the server remain unbroken:
56
 
57
 
58
+ export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
59
 
60
 
61
+ You can read more about this here. This environment variable is needed if you
62
+ are working with a local server on your Mac, but if you''re just using ZenML as
63
+ a client / CLI and connecting to a deployed server then you don''t need to set
64
+ it.
65
 
66
 
67
+ Nightly builds
68
 
69
 
70
+ ZenML also publishes nightly builds under the zenml-nightly package name. These
71
+ are built from the latest develop branch (to which work ready for release is published)
72
+ and are not guaranteed to be stable. To install the nightly build, run:
73
 
74
 
75
+ pip install zenml-nightly
76
 
77
 
78
+ Verifying installations
79
 
80
 
81
+ Once the installation is completed, you can check whether the installation was
82
+ successful either through Bash:
83
 
84
 
85
+ zenml version
86
 
87
 
88
+ or through Python:
89
 
90
 
91
+ import zenml
92
 
93
 
94
+ print(zenml.__version__)
95
 
96
 
97
+ If you would like to learn more about the current release, please visit our PyPi
98
+ package page.
99
 
100
 
101
+ Running with Docker'
102
+ - 'Finetuning LLMs with ZenML
103
 
104
 
105
+ Finetune LLMs for specific tasks or to improve performance and cost.
106
 
107
 
108
+ PreviousEvaluating finetuned embeddingsNextSet up a project repository
 
109
 
110
 
111
+ Last updated 6 months ago'
112
+ - 'ZenML - Bridging the gap between ML & Ops
113
 
114
 
115
+ Legacy Docs
 
 
116
 
117
 
118
+ Bleeding EdgeLegacy Docs0.67.0
 
119
 
120
 
121
+ πŸ§™β€β™‚οΈFind older version our docs
122
 
123
 
124
+ Powered by GitBook'
125
+ - source_sentence: How can you visualize the profiles generated by whylogs in ZenML?
126
+ sentences:
127
+ - 'Whylogs
128
 
129
 
130
+ How to collect and visualize statistics to track changes in your pipelines'' data
131
+ with whylogs/WhyLabs profiling.
132
 
133
 
134
+ The whylogs/WhyLabs Data Validator flavor provided with the ZenML integration
135
+ uses whylogs and WhyLabs to generate and track data profiles, highly accurate
136
+ descriptive representations of your data. The profiles can be used to implement
137
+ automated corrective actions in your pipelines, or to render interactive representations
138
+ for further visual interpretation, evaluation and documentation.
139
 
140
 
141
+ When would you want to use it?
 
 
 
142
 
143
 
144
+ Whylogs is an open-source library that analyzes your data and creates statistical
145
+ summaries called whylogs profiles. Whylogs profiles can be processed in your pipelines
146
+ and visualized locally or uploaded to the WhyLabs platform, where more in depth
147
+ analysis can be carried out. Even though whylogs also supports other data types,
148
+ the ZenML whylogs integration currently only works with tabular data in pandas.DataFrame
149
+ format.
150
 
151
 
152
+ You should use the whylogs/WhyLabs Data Validator when you need the following
153
+ data validation features that are possible with whylogs and WhyLabs:
154
 
155
 
156
+ Data Quality: validate data quality in model inputs or in a data pipeline
 
157
 
158
 
159
+ Data Drift: detect data drift in model input features
 
160
 
161
 
162
+ Model Drift: Detect training-serving skew, concept drift, and model performance
163
+ degradation
164
 
165
 
166
+ You should consider one of the other Data Validator flavors if you need a different
167
+ set of data validation features.
168
 
169
 
170
+ How do you deploy it?
171
 
172
 
173
+ The whylogs Data Validator flavor is included in the whylogs ZenML integration,
174
+ you need to install it on your local machine to be able to register a whylogs
175
+ Data Validator and add it to your stack:
176
 
177
 
178
+ zenml integration install whylogs -y
179
 
180
 
181
+ If you don''t need to connect to the WhyLabs platform to upload and store the
182
+ generated whylogs data profiles, the Data Validator stack component does not require
183
+ any configuration parameters. Adding it to a stack is as simple as running e.g.:'
184
+ - "Control caching behavior\n\nBy default steps in ZenML pipelines are cached whenever\
185
+ \ code and parameters stay unchanged.\n\n@step(enable_cache=True) # set cache\
186
+ \ behavior at step level\ndef load_data(parameter: int) -> dict:\n ...\n\n\
187
+ @step(enable_cache=False) # settings at step level override pipeline level\ndef\
188
+ \ train_model(data: dict) -> None:\n ...\n\n@pipeline(enable_cache=True) #\
189
+ \ set cache behavior at step level\ndef simple_ml_pipeline(parameter: int):\n\
190
+ \ ...\n\nCaching only happens when code and parameters stay the same.\n\nLike\
191
+ \ many other step and pipeline settings, you can also change this afterward:\n\
192
+ \n# Same as passing it in the step decorator\nmy_step.configure(enable_cache=...)\n\
193
+ \n# Same as passing it in the pipeline decorator\nmy_pipeline.configure(enable_cache=...)\n\
194
+ \nFind out here how to configure this in a YAML file\n\nPreviousStep output typing\
195
+ \ and annotationNextSchedule a pipeline\n\nLast updated 4 months ago"
196
+ - "ogsDataValidatorSettings,\n)\nfrom zenml import step@step(\n settings={\n\
197
+ \ \"data_validator\": WhylogsDataValidatorSettings(\n enable_whylabs=True,\
198
+ \ dataset_id=\"model-1\"\n )\n }\n)\ndef data_loader() -> Tuple[\n \
199
+ \ Annotated[pd.DataFrame, \"data\"],\n Annotated[DatasetProfileView, \"profile\"\
200
+ ]\n]:\n \"\"\"Load the diabetes dataset.\"\"\"\n X, y = datasets.load_diabetes(return_X_y=True,\
201
+ \ as_frame=True)\n\n# merge X and y together\n df = pd.merge(X, y, left_index=True,\
202
+ \ right_index=True)\n\nprofile = why.log(pandas=df).profile().view()\n return\
203
+ \ df, profile\n\nHow do you use it?\n\nWhylogs's profiling functions take in a\
204
+ \ pandas.DataFrame dataset generate a DatasetProfileView object containing all\
205
+ \ the relevant information extracted from the dataset.\n\nThere are three ways\
206
+ \ you can use whylogs in your ZenML pipelines that allow different levels of flexibility:\n\
207
+ \ninstantiate, configure and insert the standard WhylogsProfilerStep shipped with\
208
+ \ ZenML into your pipelines. This is the easiest way and the recommended approach,\
209
+ \ but can only be customized through the supported step configuration parameters.\n\
210
+ \ncall the data validation methods provided by the whylogs Data Validator in your\
211
+ \ custom step implementation. This method allows for more flexibility concerning\
212
+ \ what can happen in the pipeline step, but you are still limited to the functionality\
213
+ \ implemented in the Data Validator.\n\nuse the whylogs library directly in your\
214
+ \ custom step implementation. This gives you complete freedom in how you are using\
215
+ \ whylogs's features.\n\nYou can visualize whylogs profiles in Jupyter notebooks\
216
+ \ or view them directly in the ZenML dashboard.\n\nThe whylogs standard step"
217
+ - source_sentence: How can I build my own custom experiment tracker flavor in ZenML?
218
  sentences:
219
+ - "e details of the deployment process from the user.It needs to act as a ZenML\
220
+ \ BaseService registry, where every BaseService instance is used as an internal\
221
+ \ representation of a remote model server (see the find_model_server abstract\
222
+ \ method). To achieve this, it must be able to re-create the configuration of\
223
+ \ a BaseService from information that is persisted externally, alongside, or even\
224
+ \ as part of the remote model server configuration itself. For example, for model\
225
+ \ servers that are implemented as Kubernetes resources, the BaseService instances\
226
+ \ can be serialized and saved as Kubernetes resource annotations. This allows\
227
+ \ the model deployer to keep track of all externally running model servers and\
228
+ \ to re-create their corresponding BaseService instance representations at any\
229
+ \ given time. The model deployer also defines methods that implement basic life-cycle\
230
+ \ management on remote model servers outside the coverage of a pipeline (see stop_model_server\
231
+ \ , start_model_server and delete_model_server).\n\nPutting all these considerations\
232
+ \ together, we end up with the following interface:\n\nfrom abc import ABC, abstractmethod\n\
233
+ from typing import Dict, List, Optional, Type\nfrom uuid import UUID\n\nfrom zenml.enums\
234
+ \ import StackComponentType\nfrom zenml.services import BaseService, ServiceConfig\n\
235
+ from zenml.stack import StackComponent, StackComponentConfig, Flavor\n\nDEFAULT_DEPLOYMENT_START_STOP_TIMEOUT\
236
+ \ = 300\n\nclass BaseModelDeployerConfig(StackComponentConfig):\n \"\"\"Base\
237
+ \ class for all ZenML model deployer configurations.\"\"\"\n\nclass BaseModelDeployer(StackComponent,\
238
+ \ ABC):\n \"\"\"Base class for all ZenML model deployers.\"\"\"\n\n@abstractmethod\n\
239
+ \ def perform_deploy_model(\n self,\n id: UUID,\n config:\
240
+ \ ServiceConfig,\n timeout: int = DEFAULT_DEPLOYMENT_START_STOP_TIMEOUT,\n\
241
+ \ ) -> BaseService:\n \"\"\"Abstract method to deploy a model.\"\"\""
242
+ - 'Develop a custom experiment tracker
243
+
244
+
245
+ Learning how to develop a custom experiment tracker.
246
 
 
 
 
 
 
 
 
 
 
 
247
 
248
+ Before diving into the specifics of this component type, it is beneficial to familiarize
249
+ yourself with our general guide to writing custom component flavors in ZenML.
250
+ This guide provides an essential understanding of ZenML''s component flavor concepts.
251
 
 
252
 
253
+ Base abstraction in progress!
254
 
 
255
 
256
+ We are actively working on the base abstraction for the Experiment Tracker, which
257
+ will be available soon. As a result, their extension is not recommended at the
258
+ moment. When you are selecting an Experiment Tracker for your stack, you can use
259
+ one of the existing flavors.
260
 
 
261
 
262
+ If you need to implement your own Experiment Tracker flavor, you can still do
263
+ so, but keep in mind that you may have to refactor it when the base abstraction
264
+ is released.
265
 
 
 
266
 
267
+ Build your own custom experiment tracker
268
 
 
269
 
270
+ If you want to create your own custom flavor for an experiment tracker, you can
271
+ follow the following steps:
272
 
273
 
274
+ Create a class that inherits from the BaseExperimentTracker class and implements
275
+ the abstract methods.
276
 
277
 
278
+ If you need any configuration, create a class that inherits from the BaseExperimentTrackerConfig
279
+ class and add your configuration parameters.
280
 
281
 
282
+ Bring both the implementation and the configuration together by inheriting from
283
+ the BaseExperimentTrackerFlavor class.
284
 
285
 
286
+ Once you are done with the implementation, you can register it through the CLI.
287
+ Please ensure you point to the flavor class via dot notation:
288
+
289
+
290
+ zenml experiment-tracker flavor register <path.to.MyExperimentTrackerFlavor>
291
+
292
+
293
+ For example, if your flavor class MyExperimentTrackerFlavor is defined in flavors/my_flavor.py,
294
+ you''d register it by doing:
295
+
296
+
297
+ zenml experiment-tracker flavor register flavors.my_flavor.MyExperimentTrackerFlavor'
298
+ - "res Spark to handle the resource configuration.\"\"\"def _backend_configuration(\n\
299
+ \ self,\n spark_config: SparkConf,\n step_config:\
300
+ \ \"StepConfiguration\",\n ) -> None:\n \"\"\"Configures Spark to handle\
301
+ \ backends like YARN, Mesos or Kubernetes.\"\"\"\n\ndef _io_configuration(\n \
302
+ \ self,\n spark_config: SparkConf\n ) -> None:\n \
303
+ \ \"\"\"Configures Spark to handle different input/output sources.\"\"\"\n\n\
304
+ def _additional_configuration(\n self,\n spark_config: SparkConf\n\
305
+ \ ) -> None:\n \"\"\"Appends the user-defined configuration parameters.\"\
306
+ \"\"\n\ndef _launch_spark_job(\n self,\n spark_config: SparkConf,\n\
307
+ \ entrypoint_command: List[str]\n ) -> None:\n \"\"\"Generates\
308
+ \ and executes a spark-submit command.\"\"\"\n\ndef launch(\n self,\n\
309
+ \ info: \"StepRunInfo\",\n entrypoint_command: List[str],\n\
310
+ \ ) -> None:\n \"\"\"Launches the step on Spark.\"\"\"\n\nUnder the\
311
+ \ base configuration, you will see the main configuration parameters:\n\nmaster\
312
+ \ is the master URL for the cluster where Spark will run. You might see different\
313
+ \ schemes for this URL with varying cluster managers such as Mesos, YARN, or Kubernetes.\n\
314
+ \ndeploy_mode can either be 'cluster' (default) or 'client' and it decides where\
315
+ \ the driver node of the application will run.\n\nsubmit_args is the JSON string\
316
+ \ of a dictionary, which will be used to define additional parameters if required\
317
+ \ ( Spark has a wide variety of parameters, thus including them all in a single\
318
+ \ class was deemed unnecessary.).\n\nIn addition to this configuration, the launch\
319
+ \ method of the step operator gets additional configuration parameters from the\
320
+ \ DockerSettings and ResourceSettings. As a result, the overall configuration\
321
+ \ happens in 4 base methods:\n\n_resource_configuration translates the ZenML ResourceSettings\
322
+ \ object to Spark's own resource configuration.\n\n_backend_configuration is responsible\
323
+ \ for cluster-manager-specific configuration."
324
+ - source_sentence: What are the steps to configure RBAC for Spark in Kubernetes and
325
+ register the stack component using ZenML?
326
  sentences:
327
+ - " build to finish. More information: Build Timeout.We can register the image builder\
328
+ \ and use it in our active stack:\n\nzenml image-builder register <IMAGE_BUILDER_NAME>\
329
+ \ \\\n --flavor=gcp \\\n --cloud_builder_image=<BUILDER_IMAGE_NAME> \\\n\
330
+ \ --network=<DOCKER_NETWORK> \\\n --build_timeout=<BUILD_TIMEOUT_IN_SECONDS>\n\
331
+ \n# Register and activate a stack with the new image builder\nzenml stack register\
332
+ \ <STACK_NAME> -i <IMAGE_BUILDER_NAME> ... --set\n\nYou also need to set up authentication\
333
+ \ required to access the Cloud Build GCP services.\n\nAuthentication Methods\n\
334
+ \nIntegrating and using a GCP Image Builder in your pipelines is not possible\
335
+ \ without employing some form of authentication. If you're looking for a quick\
336
+ \ way to get started locally, you can use the Local Authentication method. However,\
337
+ \ the recommended way to authenticate to the GCP cloud platform is through a GCP\
338
+ \ Service Connector. This is particularly useful if you are configuring ZenML\
339
+ \ stacks that combine the GCP Image Builder with other remote stack components\
340
+ \ also running in GCP.\n\nThis method uses the implicit GCP authentication available\
341
+ \ in the environment where the ZenML code is running. On your local machine, this\
342
+ \ is the quickest way to configure a GCP Image Builder. You don't need to supply\
343
+ \ credentials explicitly when you register the GCP Image Builder, as it leverages\
344
+ \ the local credentials and configuration that the Google Cloud CLI stores on\
345
+ \ your local machine. However, you will need to install and set up the Google\
346
+ \ Cloud CLI on your machine as a prerequisite, as covered in the Google Cloud\
347
+ \ documentation , before you register the GCP Image Builder.\n\nStacks using the\
348
+ \ GCP Image Builder set up with local authentication are not portable across environments.\
349
+ \ To make ZenML pipelines fully portable, it is recommended to use a GCP Service\
350
+ \ Connector to authenticate your GCP Image Builder to the GCP cloud platform."
351
+ - ' your GCP Image Builder to the GCP cloud platform.To set up the GCP Image Builder
352
+ to authenticate to GCP and access the GCP Cloud Build services, it is recommended
353
+ to leverage the many features provided by the GCP Service Connector such as auto-configuration,
354
+ best security practices regarding long-lived credentials and reusing the same
355
+ credentials across multiple stack components.
356
+
357
+
358
+ If you don''t already have a GCP Service Connector configured in your ZenML deployment,
359
+ you can register one using the interactive CLI command. You also have the option
360
+ to configure a GCP Service Connector that can be used to access more than just
361
+ the GCP Cloud Build service:
362
+
363
+
364
+ zenml service-connector register --type gcp -i
365
+
366
+
367
+ A non-interactive CLI example that leverages the Google Cloud CLI configuration
368
+ on your local machine to auto-configure a GCP Service Connector for the GCP Cloud
369
+ Build service:
370
+
371
+
372
+ zenml service-connector register <CONNECTOR_NAME> --type gcp --resource-type gcp-generic
373
+ --resource-name <GCS_BUCKET_NAME> --auto-configure
374
+
375
+
376
+ Example Command Output
377
+
378
+
379
+ $ zenml service-connector register gcp-generic --type gcp --resource-type gcp-generic
380
+ --auto-configure
381
+
382
+ Successfully registered service connector `gcp-generic` with access to the following
383
+ resources:
384
+
385
+ ┏━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━┓
386
+
387
+ ┃ RESOURCE TYPE β”‚ RESOURCE NAMES ┃
388
+
389
+ ┠────────────────┼────────────────┨
390
+
391
+ ┃ πŸ”΅ gcp-generic β”‚ zenml-core ┃
392
+
393
+ ┗━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━┛
394
+
395
+
396
+ Note: Please remember to grant the entity associated with your GCP credentials
397
+ permissions to access the Cloud Build API and to run Cloud Builder jobs (e.g.
398
+ the Cloud Build Editor IAM role). The GCP Service Connector supports many different
399
+ authentication methods with different levels of security and convenience. You
400
+ should pick the one that best fits your use case.
401
+
402
+
403
+ If you already have one or more GCP Service Connectors configured in your ZenML
404
+ deployment, you can check which of them can be used to access generic GCP resources
405
+ like the GCP Image Builder required for your GCP Image Builder by running e.g.:'
406
+ - "ngs/python/Dockerfile -u 0 build\n\nConfiguring RBACAdditionally, you may need\
407
+ \ to create the several resources in Kubernetes in order to give Spark access\
408
+ \ to edit/manage your driver executor pods.\n\nTo do so, create a file called\
409
+ \ rbac.yaml with the following content:\n\napiVersion: v1\nkind: Namespace\nmetadata:\n\
410
+ \ name: spark-namespace\n---\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n\
411
+ \ name: spark-service-account\n namespace: spark-namespace\n---\napiVersion:\
412
+ \ rbac.authorization.k8s.io/v1\nkind: ClusterRoleBinding\nmetadata:\n name: spark-role\n\
413
+ \ namespace: spark-namespace\nsubjects:\n - kind: ServiceAccount\n name:\
414
+ \ spark-service-account\n namespace: spark-namespace\nroleRef:\n kind: ClusterRole\n\
415
+ \ name: edit\n apiGroup: rbac.authorization.k8s.io\n---\n\nAnd then execute\
416
+ \ the following command to create the resources:\n\naws eks --region=$REGION update-kubeconfig\
417
+ \ --name=$EKS_CLUSTER_NAME\n\nkubectl create -f rbac.yaml\n\nLastly, note down\
418
+ \ the namespace and the name of the service account since you will need them when\
419
+ \ registering the stack component in the next step.\n\nHow to use it\n\nTo use\
420
+ \ the KubernetesSparkStepOperator, you need:\n\nthe ZenML spark integration. If\
421
+ \ you haven't installed it already, run\n\nzenml integration install spark\n\n\
422
+ Docker installed and running.\n\nA remote artifact store as part of your stack.\n\
423
+ \nA remote container registry as part of your stack.\n\nA Kubernetes cluster deployed.\n\
424
+ \nWe can then register the step operator and use it in our active stack:\n\nzenml\
425
+ \ step-operator register spark_step_operator \\\n\t--flavor=spark-kubernetes \\\
426
+ \n\t--master=k8s://$EKS_API_SERVER_ENDPOINT \\\n\t--namespace=<SPARK_KUBERNETES_NAMESPACE>\
427
+ \ \\\n\t--service_account=<SPARK_KUBERNETES_SERVICE_ACCOUNT>\n\n# Register the\
428
+ \ stack\nzenml stack register spark_stack \\\n -o default \\\n -s spark_step_operator\
429
+ \ \\\n -a spark_artifact_store \\\n -c spark_container_registry \\\n \
430
+ \ -i local_builder \\\n --set"
431
+ - source_sentence: Where can I find older versions of ZenML documentation?
432
+ sentences:
433
+ - 'ZenML - Bridging the gap between ML & Ops
434
 
 
 
 
435
 
436
+ Legacy Docs
437
 
 
438
 
439
+ Bleeding EdgeLegacy Docs0.67.0
440
 
 
441
 
442
+ πŸ§™β€β™‚οΈFind older version our docs
 
443
 
 
444
 
445
+ Powered by GitBook'
446
+ - 'ZenML - Bridging the gap between ML & Ops
447
 
 
448
 
449
+ Legacy Docs
 
450
 
 
 
451
 
452
+ Bleeding EdgeLegacy Docs0.67.0
453
 
 
 
454
 
455
+ πŸ§™β€β™‚οΈFind older version our docs
456
 
 
 
457
 
458
+ Powered by GitBook'
459
+ - "tainer_registry \\\n -i local_builder \\\n --setOnce you added the step\
460
+ \ operator to your active stack, you can use it to execute individual steps of\
461
+ \ your pipeline by specifying it in the @step decorator as follows:\n\nfrom zenml\
462
+ \ import step\n\n@step(step_operator=<STEP_OPERATOR_NAME>)\ndef step_on_spark(...)\
463
+ \ -> ...:\n \"\"\"Some step that should run with Spark on Kubernetes.\"\"\"\
464
+ \n ...\n\nAfter successfully running any step with a KubernetesSparkStepOperator,\
465
+ \ you should be able to see that a Spark driver pod was created in your cluster\
466
+ \ for each pipeline step when running kubectl get pods -n $KUBERNETES_NAMESPACE.\n\
467
+ \nInstead of hardcoding a step operator name, you can also use the Client to dynamically\
468
+ \ use the step operator of your active stack:\n\nfrom zenml.client import Client\n\
469
+ \nstep_operator = Client().active_stack.step_operator\n\n@step(step_operator=step_operator.name)\n\
470
+ def step_on_spark(...) -> ...:\n ...\n\nAdditional configuration\n\nFor additional\
471
+ \ configuration of the Spark step operator, you can pass SparkStepOperatorSettings\
472
+ \ when defining or running your pipeline. Check out the SDK docs for a full list\
473
+ \ of available attributes and this docs page for more information on how to specify\
474
+ \ settings.\n\nPreviousKubernetesNextDevelop a Custom Step Operator\n\nLast updated\
475
+ \ 4 months ago"
476
  pipeline_tag: sentence-similarity
477
  library_name: sentence-transformers
478
  metrics:
 
502
  type: dim_384
503
  metrics:
504
  - type: cosine_accuracy@1
505
+ value: 1.0
506
  name: Cosine Accuracy@1
507
  - type: cosine_accuracy@3
508
+ value: 1.0
509
  name: Cosine Accuracy@3
510
  - type: cosine_accuracy@5
511
+ value: 1.0
512
  name: Cosine Accuracy@5
513
  - type: cosine_accuracy@10
514
+ value: 1.0
515
  name: Cosine Accuracy@10
516
  - type: cosine_precision@1
517
+ value: 1.0
518
  name: Cosine Precision@1
519
  - type: cosine_precision@3
520
+ value: 0.3333333333333333
521
  name: Cosine Precision@3
522
  - type: cosine_precision@5
523
+ value: 0.2
524
  name: Cosine Precision@5
525
  - type: cosine_precision@10
526
+ value: 0.1
527
  name: Cosine Precision@10
528
  - type: cosine_recall@1
529
+ value: 1.0
530
  name: Cosine Recall@1
531
  - type: cosine_recall@3
532
+ value: 1.0
533
  name: Cosine Recall@3
534
  - type: cosine_recall@5
535
+ value: 1.0
536
  name: Cosine Recall@5
537
  - type: cosine_recall@10
538
+ value: 1.0
539
  name: Cosine Recall@10
540
  - type: cosine_ndcg@10
541
+ value: 1.0
542
  name: Cosine Ndcg@10
543
  - type: cosine_mrr@10
544
+ value: 1.0
545
  name: Cosine Mrr@10
546
  - type: cosine_map@100
547
+ value: 1.0
548
  name: Cosine Map@100
549
  - task:
550
  type: information-retrieval
 
554
  type: dim_256
555
  metrics:
556
  - type: cosine_accuracy@1
557
+ value: 0.75
558
  name: Cosine Accuracy@1
559
  - type: cosine_accuracy@3
560
+ value: 1.0
561
  name: Cosine Accuracy@3
562
  - type: cosine_accuracy@5
563
+ value: 1.0
564
  name: Cosine Accuracy@5
565
  - type: cosine_accuracy@10
566
+ value: 1.0
567
  name: Cosine Accuracy@10
568
  - type: cosine_precision@1
569
+ value: 0.75
570
  name: Cosine Precision@1
571
  - type: cosine_precision@3
572
+ value: 0.3333333333333333
573
  name: Cosine Precision@3
574
  - type: cosine_precision@5
575
+ value: 0.2
576
  name: Cosine Precision@5
577
  - type: cosine_precision@10
578
+ value: 0.1
579
  name: Cosine Precision@10
580
  - type: cosine_recall@1
581
+ value: 0.75
582
  name: Cosine Recall@1
583
  - type: cosine_recall@3
584
+ value: 1.0
585
  name: Cosine Recall@3
586
  - type: cosine_recall@5
587
+ value: 1.0
588
  name: Cosine Recall@5
589
  - type: cosine_recall@10
590
+ value: 1.0
591
  name: Cosine Recall@10
592
  - type: cosine_ndcg@10
593
+ value: 0.9077324383928644
594
  name: Cosine Ndcg@10
595
  - type: cosine_mrr@10
596
+ value: 0.875
597
  name: Cosine Mrr@10
598
  - type: cosine_map@100
599
+ value: 0.875
600
  name: Cosine Map@100
601
  - task:
602
  type: information-retrieval
 
606
  type: dim_128
607
  metrics:
608
  - type: cosine_accuracy@1
609
+ value: 0.75
610
  name: Cosine Accuracy@1
611
  - type: cosine_accuracy@3
612
+ value: 1.0
613
  name: Cosine Accuracy@3
614
  - type: cosine_accuracy@5
615
+ value: 1.0
616
  name: Cosine Accuracy@5
617
  - type: cosine_accuracy@10
618
+ value: 1.0
619
  name: Cosine Accuracy@10
620
  - type: cosine_precision@1
621
+ value: 0.75
622
  name: Cosine Precision@1
623
  - type: cosine_precision@3
624
+ value: 0.3333333333333333
625
  name: Cosine Precision@3
626
  - type: cosine_precision@5
627
+ value: 0.2
628
  name: Cosine Precision@5
629
  - type: cosine_precision@10
630
+ value: 0.1
631
  name: Cosine Precision@10
632
  - type: cosine_recall@1
633
+ value: 0.75
634
  name: Cosine Recall@1
635
  - type: cosine_recall@3
636
+ value: 1.0
637
  name: Cosine Recall@3
638
  - type: cosine_recall@5
639
+ value: 1.0
640
  name: Cosine Recall@5
641
  - type: cosine_recall@10
642
+ value: 1.0
643
  name: Cosine Recall@10
644
  - type: cosine_ndcg@10
645
+ value: 0.9077324383928644
646
  name: Cosine Ndcg@10
647
  - type: cosine_mrr@10
648
+ value: 0.875
649
  name: Cosine Mrr@10
650
  - type: cosine_map@100
651
+ value: 0.875
652
  name: Cosine Map@100
653
  - task:
654
  type: information-retrieval
 
658
  type: dim_64
659
  metrics:
660
  - type: cosine_accuracy@1
661
+ value: 0.75
662
  name: Cosine Accuracy@1
663
  - type: cosine_accuracy@3
664
+ value: 1.0
665
  name: Cosine Accuracy@3
666
  - type: cosine_accuracy@5
667
+ value: 1.0
668
  name: Cosine Accuracy@5
669
  - type: cosine_accuracy@10
670
+ value: 1.0
671
  name: Cosine Accuracy@10
672
  - type: cosine_precision@1
673
+ value: 0.75
674
  name: Cosine Precision@1
675
  - type: cosine_precision@3
676
+ value: 0.3333333333333333
677
  name: Cosine Precision@3
678
  - type: cosine_precision@5
679
+ value: 0.2
680
  name: Cosine Precision@5
681
  - type: cosine_precision@10
682
+ value: 0.1
683
  name: Cosine Precision@10
684
  - type: cosine_recall@1
685
+ value: 0.75
686
  name: Cosine Recall@1
687
  - type: cosine_recall@3
688
+ value: 1.0
689
  name: Cosine Recall@3
690
  - type: cosine_recall@5
691
+ value: 1.0
692
  name: Cosine Recall@5
693
  - type: cosine_recall@10
694
+ value: 1.0
695
  name: Cosine Recall@10
696
  - type: cosine_ndcg@10
697
+ value: 0.9077324383928644
698
  name: Cosine Ndcg@10
699
  - type: cosine_mrr@10
700
+ value: 0.875
701
  name: Cosine Mrr@10
702
  - type: cosine_map@100
703
+ value: 0.875
704
  name: Cosine Map@100
705
  ---
706
 
 
755
  model = SentenceTransformer("zenml/finetuned-snowflake-arctic-embed-m-v1.5")
756
  # Run inference
757
  sentences = [
758
+ 'Where can I find older versions of ZenML documentation?',
759
+ 'ZenML - Bridging the gap between ML & Ops\n\nLegacy Docs\n\nBleeding EdgeLegacy Docs0.67.0\n\nπŸ§™\u200d♂️Find older version our docs\n\nPowered by GitBook',
760
+ 'tainer_registry \\\n -i local_builder \\\n --setOnce you added the step operator to your active stack, you can use it to execute individual steps of your pipeline by specifying it in the @step decorator as follows:\n\nfrom zenml import step\n\n@step(step_operator=<STEP_OPERATOR_NAME>)\ndef step_on_spark(...) -> ...:\n """Some step that should run with Spark on Kubernetes."""\n ...\n\nAfter successfully running any step with a KubernetesSparkStepOperator, you should be able to see that a Spark driver pod was created in your cluster for each pipeline step when running kubectl get pods -n $KUBERNETES_NAMESPACE.\n\nInstead of hardcoding a step operator name, you can also use the Client to dynamically use the step operator of your active stack:\n\nfrom zenml.client import Client\n\nstep_operator = Client().active_stack.step_operator\n\n@step(step_operator=step_operator.name)\ndef step_on_spark(...) -> ...:\n ...\n\nAdditional configuration\n\nFor additional configuration of the Spark step operator, you can pass SparkStepOperatorSettings when defining or running your pipeline. Check out the SDK docs for a full list of available attributes and this docs page for more information on how to specify settings.\n\nPreviousKubernetesNextDevelop a Custom Step Operator\n\nLast updated 4 months ago',
761
  ]
762
  embeddings = model.encode(sentences)
763
  print(embeddings.shape)
 
801
  * Dataset: `dim_384`
802
  * Evaluated with [<code>InformationRetrievalEvaluator</code>](https://sbert.net/docs/package_reference/sentence_transformer/evaluation.html#sentence_transformers.evaluation.InformationRetrievalEvaluator)
803
 
804
+ | Metric | Value |
805
+ |:--------------------|:--------|
806
+ | cosine_accuracy@1 | 1.0 |
807
+ | cosine_accuracy@3 | 1.0 |
808
+ | cosine_accuracy@5 | 1.0 |
809
+ | cosine_accuracy@10 | 1.0 |
810
+ | cosine_precision@1 | 1.0 |
811
+ | cosine_precision@3 | 0.3333 |
812
+ | cosine_precision@5 | 0.2 |
813
+ | cosine_precision@10 | 0.1 |
814
+ | cosine_recall@1 | 1.0 |
815
+ | cosine_recall@3 | 1.0 |
816
+ | cosine_recall@5 | 1.0 |
817
+ | cosine_recall@10 | 1.0 |
818
+ | cosine_ndcg@10 | 1.0 |
819
+ | cosine_mrr@10 | 1.0 |
820
+ | **cosine_map@100** | **1.0** |
821
 
822
  #### Information Retrieval
823
  * Dataset: `dim_256`
824
  * Evaluated with [<code>InformationRetrievalEvaluator</code>](https://sbert.net/docs/package_reference/sentence_transformer/evaluation.html#sentence_transformers.evaluation.InformationRetrievalEvaluator)
825
 
826
+ | Metric | Value |
827
+ |:--------------------|:----------|
828
+ | cosine_accuracy@1 | 0.75 |
829
+ | cosine_accuracy@3 | 1.0 |
830
+ | cosine_accuracy@5 | 1.0 |
831
+ | cosine_accuracy@10 | 1.0 |
832
+ | cosine_precision@1 | 0.75 |
833
+ | cosine_precision@3 | 0.3333 |
834
+ | cosine_precision@5 | 0.2 |
835
+ | cosine_precision@10 | 0.1 |
836
+ | cosine_recall@1 | 0.75 |
837
+ | cosine_recall@3 | 1.0 |
838
+ | cosine_recall@5 | 1.0 |
839
+ | cosine_recall@10 | 1.0 |
840
+ | cosine_ndcg@10 | 0.9077 |
841
+ | cosine_mrr@10 | 0.875 |
842
+ | **cosine_map@100** | **0.875** |
843
 
844
  #### Information Retrieval
845
  * Dataset: `dim_128`
846
  * Evaluated with [<code>InformationRetrievalEvaluator</code>](https://sbert.net/docs/package_reference/sentence_transformer/evaluation.html#sentence_transformers.evaluation.InformationRetrievalEvaluator)
847
 
848
+ | Metric | Value |
849
+ |:--------------------|:----------|
850
+ | cosine_accuracy@1 | 0.75 |
851
+ | cosine_accuracy@3 | 1.0 |
852
+ | cosine_accuracy@5 | 1.0 |
853
+ | cosine_accuracy@10 | 1.0 |
854
+ | cosine_precision@1 | 0.75 |
855
+ | cosine_precision@3 | 0.3333 |
856
+ | cosine_precision@5 | 0.2 |
857
+ | cosine_precision@10 | 0.1 |
858
+ | cosine_recall@1 | 0.75 |
859
+ | cosine_recall@3 | 1.0 |
860
+ | cosine_recall@5 | 1.0 |
861
+ | cosine_recall@10 | 1.0 |
862
+ | cosine_ndcg@10 | 0.9077 |
863
+ | cosine_mrr@10 | 0.875 |
864
+ | **cosine_map@100** | **0.875** |
865
 
866
  #### Information Retrieval
867
  * Dataset: `dim_64`
868
  * Evaluated with [<code>InformationRetrievalEvaluator</code>](https://sbert.net/docs/package_reference/sentence_transformer/evaluation.html#sentence_transformers.evaluation.InformationRetrievalEvaluator)
869
 
870
+ | Metric | Value |
871
+ |:--------------------|:----------|
872
+ | cosine_accuracy@1 | 0.75 |
873
+ | cosine_accuracy@3 | 1.0 |
874
+ | cosine_accuracy@5 | 1.0 |
875
+ | cosine_accuracy@10 | 1.0 |
876
+ | cosine_precision@1 | 0.75 |
877
+ | cosine_precision@3 | 0.3333 |
878
+ | cosine_precision@5 | 0.2 |
879
+ | cosine_precision@10 | 0.1 |
880
+ | cosine_recall@1 | 0.75 |
881
+ | cosine_recall@3 | 1.0 |
882
+ | cosine_recall@5 | 1.0 |
883
+ | cosine_recall@10 | 1.0 |
884
+ | cosine_ndcg@10 | 0.9077 |
885
+ | cosine_mrr@10 | 0.875 |
886
+ | **cosine_map@100** | **0.875** |
887
 
888
  <!--
889
  ## Bias, Risks and Limitations
 
904
  #### json
905
 
906
  * Dataset: json
907
+ * Size: 36 training samples
908
  * Columns: <code>positive</code> and <code>anchor</code>
909
+ * Approximate statistics based on the first 36 samples:
910
  | | positive | anchor |
911
  |:--------|:-----------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------|
912
  | type | string | string |
913
+ | details | <ul><li>min: 13 tokens</li><li>mean: 22.58 tokens</li><li>max: 44 tokens</li></ul> | <ul><li>min: 32 tokens</li><li>mean: 300.72 tokens</li><li>max: 512 tokens</li></ul> |
914
  * Samples:
915
+ | positive | anchor |
916
+ |:-----------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
917
+ | <code>How do you configure ZenML to display data visualizations in the dashboard?</code> | <code>πŸ“ŠVisualizing artifacts<br><br>Configuring ZenML to display data visualizations in the dashboard.<br><br>PreviousRegister Existing Data as a ZenML ArtifactNextDefault visualizations<br><br>Last updated 4 months ago</code> |
918
+ | <code>How does the model deployer in ZenML facilitate the deployment and management of machine learning models?</code> | <code>Develop a Custom Model Deployer<br><br>Learning how to develop a custom model deployer.<br><br>Before diving into the specifics of this component type, it is beneficial to familiarize yourself with our general guide to writing custom component flavors in ZenML. This guide provides an essential understanding of ZenML's component flavor concepts.<br><br>To deploy and manage your trained machine-learning models, ZenML provides a stack component called Model Deployer. This component is responsible for interacting with the deployment tool, framework, or platform.<br><br>When present in a stack, the model deployer can also act as a registry for models that are served with ZenML. You can use the model deployer to list all models that are currently deployed for online inference or filtered according to a particular pipeline run or step, or to suspend, resume or delete an external model server managed through ZenML.<br><br>Base Abstraction<br><br>In ZenML, the base abstraction of the model deployer is built on top of three major criteria:<br><br>It needs to ensure efficient deployment and management of models in accordance with the specific requirements of the serving infrastructure, by holding all the stack-related configuration attributes required to interact with the remote model serving tool, service, or platform.<br><br>It needs to implement the continuous deployment logic necessary to deploy models in a way that updates an existing model server that is already serving a previous version of the same model instead of creating a new model server for every new model version (see the deploy_model abstract method). This functionality can be consumed directly from ZenML pipeline steps, but it can also be used outside the pipeline to deploy ad-hoc models. It is also usually coupled with a standard model deployer step, implemented by each integration, that hides the details of the deployment process from the user.</code> |
919
+ | <code>How can I track the improvement of my RAG pipeline using evaluation and metrics?</code> | <code>Evaluation and metrics<br><br>Track how your RAG pipeline improves using evaluation and metrics.<br><br>PreviousBasic RAG inference pipelineNextEvaluation in 65 lines of code<br><br>Last updated 4 months ago</code> |
920
  * Loss: [<code>MatryoshkaLoss</code>](https://sbert.net/docs/package_reference/sentence_transformer/losses.html#matryoshkaloss) with these parameters:
921
  ```json
922
  {
 
1071
  </details>
1072
 
1073
  ### Training Logs
1074
+ | Epoch | Step | dim_384_cosine_map@100 | dim_256_cosine_map@100 | dim_128_cosine_map@100 | dim_64_cosine_map@100 |
1075
+ |:-------:|:-----:|:----------------------:|:----------------------:|:----------------------:|:---------------------:|
1076
+ | **1.0** | **1** | **0.875** | **0.875** | **0.875** | **0.875** |
1077
+ | 2.0 | 3 | 1.0 | 0.875 | 0.875 | 0.875 |
1078
+ | 3.0 | 4 | 1.0 | 0.875 | 0.875 | 0.875 |
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1079
 
1080
  * The bold row denotes the saved checkpoint.
1081
 
 
1084
  - Sentence Transformers: 3.2.1
1085
  - Transformers: 4.43.1
1086
  - PyTorch: 2.5.1+cu124
1087
+ - Accelerate: 1.1.0
1088
+ - Datasets: 3.1.0
1089
  - Tokenizers: 0.19.1
1090
 
1091
  ## Citation
model.safetensors CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:1fc1bdb3410373f27919be5fd3542e57376d56857e01f20f4226a06d38d2ac74
3
  size 435588776
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:463d27a3e88a748997316367c419bbdab4d809300a5f24b9b19ba9b2dc08ffdd
3
  size 435588776