-
Notifications
You must be signed in to change notification settings - Fork 24.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Platform specific models #99584
Platform specific models #99584
Conversation
…f TrainedModelMetadata
Hi @maxhniebergall, I've created a changelog YAML for you. |
…es among ML nodes and refactoring to support this
…bergall/elasticsearch into platform-specific-models
…platform-specific-models
...ain/java/org/elasticsearch/xpack/ml/inference/deployment/SupportedPlatformArchitectures.java
Outdated
Show resolved
Hide resolved
...ain/java/org/elasticsearch/xpack/ml/inference/deployment/SupportedPlatformArchitectures.java
Outdated
Show resolved
Hide resolved
...ugin/ml/src/main/java/org/elasticsearch/xpack/ml/inference/deployment/DeploymentManager.java
Outdated
Show resolved
Hide resolved
...ugin/ml/src/main/java/org/elasticsearch/xpack/ml/inference/deployment/DeploymentManager.java
Outdated
Show resolved
Hide resolved
...ugin/ml/src/main/java/org/elasticsearch/xpack/ml/inference/deployment/DeploymentManager.java
Outdated
Show resolved
Hide resolved
...ugin/ml/src/main/java/org/elasticsearch/xpack/ml/inference/deployment/DeploymentManager.java
Outdated
Show resolved
Hide resolved
...ugin/ml/src/main/java/org/elasticsearch/xpack/ml/inference/deployment/DeploymentManager.java
Outdated
Show resolved
Hide resolved
...va/org/elasticsearch/xpack/ml/inference/assignment/TrainedModelAssignmentClusterService.java
Outdated
Show resolved
Hide resolved
A few bug fixes from Dave R Co-authored-by: David Roberts <dave.roberts@elastic.co>
...va/org/elasticsearch/xpack/ml/inference/assignment/TrainedModelAssignmentClusterService.java
Outdated
Show resolved
Hide resolved
...ain/java/org/elasticsearch/xpack/ml/inference/deployment/SupportedPlatformArchitectures.java
Outdated
Show resolved
Hide resolved
...ain/java/org/elasticsearch/xpack/ml/inference/deployment/SupportedPlatformArchitectures.java
Outdated
Show resolved
Hide resolved
…tput from dataframe analytics
8336ec5
to
b6747b4
Compare
…bergall/elasticsearch into platform-specific-models
The failure in elasticsearch-ci/part-2 seems to be unrelated. I was able to reproduce it on my local machine with the reproduce command, but not without the particular parameters. I will create an issue for this.
|
https://gradle-enterprise.elastic.co/s/arrn2n6mkbcgc In the stack trace: on that line:
due to |
...va/org/elasticsearch/xpack/ml/inference/assignment/TrainedModelAssignmentClusterService.java
Show resolved
Hide resolved
x-pack/plugin/src/yamlRestTest/resources/rest-api-spec/test/ml/inference_crud.yml
Outdated
Show resolved
Hide resolved
…ously Co-authored-by: David Roberts <dave.roberts@elastic.co>
...ugin/ml/src/main/java/org/elasticsearch/xpack/ml/inference/deployment/DeploymentManager.java
Outdated
Show resolved
Hide resolved
… to take a TrainedModelConfig actionListener (rather than void) that always triggers
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Now this is passing CI let's get it merged unless somebody else can see something really bad.
Any nits can be resolved in a followup PR.
One such followup should be removing the hack the looks at the model name to determine if it's Linux x86.
I confirmed with manual testing that the headerwarning shows up on put trained model, and the backend refuses to start platform specific models. |
* 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
* 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
## Summary Adds support for ELSER v2 download from the Trained Models UI. - Marks an appropriate model version for the current cluster configuration with the recommended flag. - Updates the state column with better human-readable labels and colour indicators. - Adds a callout promoting a new version of ELSER <img width="1686" alt="image" src="https://github.com/elastic/kibana/assets/5236598/0deea53a-6d37-4af6-97bc-9f46e36f113b"> #### Notes for reviews - We need to wait for elastic/elasticsearch#99584 to get the start deployment validation functionality. At the moment you can successfully start deployment of the wrong model version. ### Checklist - [x] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [x] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [x] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl= - [x] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [x] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers)
Adds the new platform_architecture field from elastic#99584 to the package config used when downloading Elastic models from GCS.
Adds the new platform_architecture field from #99584 to the package config used when downloading Elastic models from GCS.
Adding support for platform specific models