Commit Graph

572 Commits

Author SHA1 Message Date
Lisa Cawley 3418c6a2af
[DOCS] Alerts-as-data for anomaly detection rules (#100864) 2023-10-17 07:37:22 -07:00
Max Hniebergall 7c21ce3f1b
Platform specific models (#99584)
* Added platform architecture field to TrainedModelMetadata and users of TrainedModelMetadata

* Added TransportVersions guarding for TrainedModelMetadata

* Prevent platform-specific models from being deployed on the wrong architecture

* Added logic to only verify node architectures for models which are platform specific

* Handle null platform architecture

* Added logging for the detection of heterogeneous platform architectures among ML nodes and refactoring to support this

* Added platform architecture field to TrainedModelConfig

* Stop platform-speficic model when rebalance occurs and the cluster has a heterogeneous architecture among ML nodes

* Added logic to TransportPutTrainedModelAction to return a warning response header when the model is paltform-specific and cannot be depoloyed on the cluster at that time due to heterogenous architectures among ML nodes

* Added MlPlatformArchitecturesUtilTests

* Updated Create Trained Models API docs to describe the new platform_architecture optional field.

* Updated/incremented InferenceIndexConstants

* Added special override to make  models with linux-x86_64 in the model ID to be platform specific
2023-09-28 13:56:45 -04:00
DeDe Morton e3f1c15788
Update ml-delayed-data-detection.asciidoc (#99843) 2023-09-26 11:18:24 +02:00
James Rodewig 255c9a7f95
[DOCS] Move x-pack docs to `docs/reference` dir (#99209)
**Problem:**
For historical reasons, source files for the Elasticsearch Guide's security, watcher, and Logstash API docs are housed in the `x-pack/docs` directory. This can confuse new contributors who expect Elasticsearch Guide docs to be located in `docs/reference`. 

**Solution:**
- Move the security, watcher, and Logstash API doc source files to the `docs/reference` directory
- Update doc snippet tests to use security

Rel: https://github.com/elastic/platform-docs-team/issues/208
2023-09-12 14:53:41 -04:00
Jonathan Buttner 1ca66bde91
[ML] Safely drain deployment request queues before allowing node to shutdown (#98406)
* isSafeToShutdown checks routing table

* Rebalancer changes and tests

* Update docs/changelog/98406.yaml

* Forcing lifecycle tests to avoid over time case

* Changes and remaining tests

* Adding node service changes

* Finishing unit tests

* Adding wait for completion paramater

* Adding stop deployment integration tests

* Cleaning up code

* Fixing stop deployment test

* Fixing string formatter issue and timeout

* Investigating deadlock

* More testing

* More logging

* Prevent model reloading while stopping

* Fixing compile error

* More code clean up

* Adding test for loading model after stopping

* Addressing review feedback

* Fixing a couple shutdown -> shutdownNow tests

* Adding doc changes and refactoring
2023-08-31 15:37:11 -04:00
István Zoltán Szabó 947128e76d
[DOCS] Fixes NOTE display error. (#98783) 2023-08-23 12:18:54 +02:00
Ed Savage 3682a88199
[ML] Update documentation regarding versioning. (#98320)
Update the ml and transform reference documentation to provide information regarding the new versioning schemes independent from the product versions.

Co-authored-by: István Zoltán Szabó <istvan.szabo@elastic.co>
2023-08-10 11:20:58 +01:00
István Zoltán Szabó 3fd94678e6
[DOCS] Adds important admonition to handling delayed data page (#97753) 2023-07-19 13:32:06 +02:00
David Roberts e810d7b77b
[ML] `inference_config` is optional for the infer trained model API (#97464)
It was made optional in #92359 which was released in version 8.6.1,
but the docs weren't updated to reflect this.
2023-07-12 08:35:06 +01:00
Max Hniebergall 3a4113801c
[NLP] Support the different mask tokens used by NLP models for Fill Mask (#97453)
Add mask_token field to fill_mask of _ml/trained_models.

This change will enable users and Kibana to get the particular mask tokens needed for deployed models by adding a mask_token field to the GET _ml/trained_models API, as an enhancement to support kibana#159577.
2023-07-11 14:42:44 -04:00
István Zoltán Szabó 8d5b803bff
[DOCS] Adds API docs for bert_ja text embedding tokenizer option (#96873) 2023-06-26 11:36:08 +02:00
Benjamin Trent 14ca8fee20
[ML] add support for xlm_roberta tokenized models (#94089)
Many multi-lingual and newer models use a tokenization scheme similar to
sentence-piece. This PR adds support for one of those tokenization
schemes, XLMRoBERTa. 

The main changes are:  - Support for xlm_roberta tokenization
configuration  - Adding `scores` to the vocabulary document stored,
requiring that scores be the same size as the vocabulary  - Adding a new
flat text file to resources that is the spm char normalizer.
2023-06-13 08:40:55 -04:00
debadair 777598d602
[DOCS] Remove redirect pages (#88738)
* [DOCS] Remove manual redirects

* [DOCS] Removed refs to modules-discovery-hosts-providers

* [DOCS] Fixed broken internal refs

* Fixing bad cross links in ES book, and adding redirects.asciidoc[] back into docs/reference/index.asciidoc.

* Update docs/reference/search/point-in-time-api.asciidoc

Co-authored-by: James Rodewig <james.rodewig@elastic.co>

* Update docs/reference/setup/restart-cluster.asciidoc

Co-authored-by: James Rodewig <james.rodewig@elastic.co>

* Update docs/reference/sql/endpoints/translate.asciidoc

Co-authored-by: James Rodewig <james.rodewig@elastic.co>

* Update docs/reference/snapshot-restore/restore-snapshot.asciidoc

Co-authored-by: James Rodewig <james.rodewig@elastic.co>

* Update repository-azure.asciidoc

* Update node-tool.asciidoc

* Update repository-azure.asciidoc

---------

Co-authored-by: amyjtechwriter <61687663+amyjtechwriter@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: Amy Jonsson <amy.jonsson@elastic.co>
Co-authored-by: James Rodewig <james.rodewig@elastic.co>
2023-05-24 12:32:46 +01:00
István Zoltán Szabó b164555072
[DOCS] Adds deployment ID param documentation to trained model APIs (#96174) 2023-05-17 15:56:58 +02:00
David Kyle 6de8469a51
[ML] Include model definition install status for Pytorch models (#95271)
Adds a new include flag definition_status to the GET trained models API.
When present the trained model configuration returned in the response 
will have the new boolean field fully_defined if the full model definition 
is exists.
2023-04-17 18:12:26 +01:00
David Kyle 7d90c519ef
[ML] Add embedding_size to text embedding config (#95176) 2023-04-17 11:49:35 +01:00
David Roberts 708730e27c
[ML] Add _meta field to data frame analytics config (#94529)
This PR adds a new field, `_meta`, to the data frame
analytics configuration.

The `_meta` field stores an arbitrary key-value map.
Keys are strings. Values are arbitrary objects
(possibly also maps).

The `_meta` field can be updated using the data frame
analytics `_update` endpoint.
2023-03-20 11:53:53 +00:00
Lisa Cawley f49bb09503
[DOCS] Refresh screenshots for machine learning rules (#93805) 2023-02-15 15:43:30 -08:00
István Zoltán Szabó c08c16e311
[DOCS] Removes semantic search reference docs (#93500) 2023-02-06 11:00:25 +01:00
István Zoltán Szabó 9229011000
[DOCS] Adds size parameter details to aggregating data for faster performance page (#93475) 2023-02-02 19:29:11 +01:00
István Zoltán Szabó 05c77534fe
[DOCS] Fixes markup for example in count function docs. (#93308) 2023-01-27 14:41:30 +01:00
Valeriy Khakhutskyy c24712bfa7
[ML] Add multimodal distribution field processing for anomaly score explanation (#92978)
The companion PR to elastic/ml-cpp#2440 adds processing of multimodal_distribution field in the anomaly score explanation. I added a changelog entry in the ml-cpp PR hence I mark this PR as a non-issue.
2023-01-17 21:16:12 +01:00
David Kyle 6acfbbcd8b
[ML] Utilise parallel allocations where the inference request contains multiple documents (#92359)
Divide work from the _infer API among all allocations
2023-01-11 12:38:35 +00:00
David Kyle fbb6abd2f4
[ML] Increase the default timeout for start trained model deployment (#92328)
A 30 second timeout is inline with the default value used in most ML APIs.
2022-12-14 13:32:23 +00:00
David Roberts 6fa3d73fd5
[ML] Make native inference generally available (#92213)
Previously this functionality was beta. This PR changes it to GA.
2022-12-12 15:43:30 +00:00
David Roberts 1be17d8c55
[ML] Correct the update datafeed docs (#92227)
These docs previously implied that you could update datafeed
properties while the datafeed was running, but then would have
to stop and restart it for the changes to take effect.

In fact datafeed updates can only be made while the datafeed is
stopped (and this has been the case for many years, if not forever).
2022-12-08 09:58:48 +00:00
Nik Everett 6481342466
Fix sneaky docs test failure (#91829)
This prevents docs files from *starting* with a "response" because when
that happens the response is converted to an assertion and appended
to the last snippet that was processed. If that last snipper was in a
different file then it's very hard to reason about the tests. That goes
double because the order we iterate files isn't defined....

Anyway! This adds a guard in the build, removes the offending
"response", and reenables the tests that we'd thought we failing here.

Closes #91081
2022-12-07 11:02:44 -05:00
István Zoltán Szabó f5b98b3182
[DOCS] Documents how aggregate_metric_double works in datafeeds (#92139) 2022-12-07 09:28:38 +01:00
Lisa Cawley 3f2f9de928
[DOCS] Refresh machine learning rule docs (#92013) 2022-12-05 07:47:42 -08:00
István Zoltán Szabó 99415818e2
[DOCS] Adds semantic search API to the trained model API list (#91815) 2022-11-22 18:08:06 +01:00
Ed Savage e0e32caf28
[ML] Option to delete user-added annotations for the reset/delete job APIs (#91698)
Currently there is no way to remove user-added annotations when a job is deleted or reset.
This change adds an option - delete_user_annotations - to both the delete and reset job APIs.
The default value is false, to keep the behaviour of these calls as it is currently.
2022-11-18 17:17:33 +00:00
David Kyle 7b9a6fe3db
{ML] Correct index for text_similarity config (#91644) 2022-11-17 10:58:36 +00:00
István Zoltán Szabó 612a7b673a
[DOCS] Highlights inference caching behavior (#91608) 2022-11-16 13:17:49 +01:00
Benjamin Trent 2e8bf33b0a
[ML] allow model_aliases to be used with Pytorch trained models (#91296)
This adds model_alias support for native pytorch models.

Model aliases can be used in `_infer` or within the inference processor. This way the alias can be atomically changed without down time to another deployed model. 

Restrictions:
 - Model alias changes need to be done between two models of the same kind (e.g. pytorch -> pytorch)
 - Model alias change is not allowed between a model that is deployed to a model that is not
 - Model alias change is not allowed between a model that deployed AND allocated to a model that is deployed but NOT allocated (not assigned to any nodes).
 - A deployment cannot be stopped (without supplying the `force` parameter) when the model has a model alias that is used by a pipeline.


closes: https://github.com/elastic/elasticsearch/issues/90960
2022-11-08 08:35:33 -05:00
Lisa Cawley 9e83084020
[DOCS] Clarify description of geo_results (#91237) 2022-11-04 08:15:46 -07:00
Dimitris Athanasiou 4e67df8b05
[ML] Low priority trained model deployments (#91234)
This adds a new parameter to the start trained model deployment API,
namely `priority`. The available settings are `normal` and `low`.

For normal priority deployments the allocations get distributed so that
node processors are never oversubscribed.

Low priority deployments allow users to test model functionality even if there
are no node processors available. They are limited to 1 allocation with a single thread.
In addition, the process is executed in low priority which limits the amount of
CPU that can be used when the CPU is under pressure. The intention of this is to
limit the impact of low priority deployments on normal priority deployments.

When we rebalance model assignments we now:

  1. compute a plan just for normal priority deployments
  2. fix the resources used by normal deployments
  3. compute a plan just for low priority deployments
  4. merge the two plans

Closes #91024
2022-11-04 14:22:30 +02:00
Valeriy Khakhutskyy 7c4186ddbc
[ML] Update API documentation for anomaly score explanation (#91177)
This PR updates the API documentation to match the UI.

Co-authored-by: lcawl <lcawley@elastic.co>
2022-11-01 21:43:33 +01:00
Valeriy Khakhutskyy 95758e88a2
[ML] Explain anomaly score factors (#90675)
This PR surfaces new information about the impact of the factors on the initial anomaly score in the anomaly record:

- single bucket impact is determined by the deviation between actual and typical in the current bucket
- multi-bucket impact is determined by the deviation between actual and typical in the past 12 buckets
- anomaly characteristics are statistical properties of the current anomaly compared to the historical observations
- high variance penalty is the reduction of anomaly score in the buckets with large confidence intervals.
- incomplete bucket penalty is the reduction of anomaly score in the buckets with fewer samples than historically expected.

Additionally, we compute lower- and upper-confidence bounds and the typical value for the anomaly records. This improves the explainability of the cases where the model plot is not activated with only a slight overhead in performance (1-2%).
2022-10-12 16:57:06 +02:00
Dimitris Athanasiou 16bfc550ea
[ML] Add api to update trained model deployment number_of_allocations (#90728)
This commit adds a new API that users can use calling:

```
POST _ml/trained_models/{model_id}/deployment/_update
{
  "number_of_allocations": 4
}
```

This allows a user to update the number of allocations for a deployment
that is `started`.

If the allocations are increased we rebalance and let the assignment
planner find how to allocate the additional allocations.

If the allocations are decreased we cannot use the assignment planner.
Instead, we implement the reduction in a new class `AllocationReducer`
that tries to reduce the allocations so that:

  1. availability zone balance is maintained
  2. assignments that can be completely stopped are preferred to release memory
2022-10-12 10:04:23 +03:00
Lisa Cawley db2882cbb5
[DOCS] Add links to clear trained model deployment cache API (#90727) 2022-10-06 10:10:55 -07:00
David Kyle 17579ae1af
[ML] Add stat for non cache hit inference time (#90464) 2022-09-29 12:18:27 +01:00
David Roberts d9ea080d10
[ML] Release native inference functionality as beta (#90418)
Previously this functionality was tech preview (aka experimental).
This PR changes it to beta.
2022-09-28 11:09:02 +01:00
Ed Savage fd20027751
[ML] Performance improvements for categorization jobs (#89824)
Categorization of strings which break down to a huge number of tokens can cause the C++ backend process to choke - see elastic/ml-cpp#2403.

This PR adds a limit filter to the default categorization analyzer which caps the number of tokens passed to the backend at 100.

Unfortunately this isn't a complete panacea to all the issues surrounding categorization of many tokened / large messages as verification checks on the frontend can also fail due to calls to the datafeed _preview API returning an excessive amount of data.
2022-09-08 18:41:01 +01:00
István Zoltán Szabó 7de1a6efc5
[DOCS] Simplifies composite aggregation recommendation (#89878) 2022-09-07 17:54:05 +02:00
István Zoltán Szabó e244473962
[DOCS] Reworks aggregating data for faster performance page (#89575) 2022-09-01 13:59:05 +02:00
István Zoltán Szabó cbda0a51c6
[DOCS] Adds text similarity task example to API docs (#89756) 2022-09-01 11:53:26 +02:00
Dimitris Athanasiou b5504ea701
[ML] Lift limit of max number of classes for classification to 100 (#89755)
Limit was previously set to `30`. After the improvements in elastic/ml-cpp#2395
we now raist the limit to `100`.
2022-09-01 10:47:58 +03:00
Dimitris Athanasiou 32d512286d
[ML] Validate trained model deployment queue_capacity limit (#89573)
When starting a trained model deployment, a queue is created.
If the queue_capacity is too large, it can lead to OOM and a node
crash.

This commit adds validation that the queue_capacity cannot be more
than 1M.

Closes #89555
2022-08-24 16:52:19 +03:00
István Zoltán Szabó 74d694e0fd
[DOCS] Resizes anomaly detection screenshot properly. (#89544) 2022-08-23 16:38:15 +02:00
István Zoltán Szabó ac71b52ab3
[DOCS] Updates anomaly detection alert rule type screenshot. (#89532) 2022-08-23 15:37:40 +02:00