-
Notifications
You must be signed in to change notification settings - Fork 148
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
support step size for embedding model which outputs less embeddings #1586
Conversation
Signed-off-by: Yaliang Wu <ylwu@amazon.com>
Signed-off-by: Yaliang Wu <ylwu@amazon.com>
...rithms/src/main/java/org/opensearch/ml/engine/algorithms/remote/RemoteConnectorExecutor.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Yaliang Wu <ylwu@amazon.com>
Codecov Report
@@ Coverage Diff @@
## 2.11 #1586 +/- ##
============================================
- Coverage 79.96% 79.92% -0.04%
Complexity 2458 2458
============================================
Files 197 197
Lines 9822 9825 +3
Branches 990 991 +1
============================================
- Hits 7854 7853 -1
- Misses 1500 1503 +3
- Partials 468 469 +1
Flags with carried forward coverage won't be shown. Click here to find out more.
|
when(response.getEntity()).thenReturn(entity); | ||
when(executor.getHttpClient()).thenReturn(httpClient); | ||
when(executor.getConnector()).thenReturn(connector); | ||
MLInputDataset inputDataSet = TextDocsInputDataSet.builder().docs(Arrays.asList("test doc1", "test doc2")).build(); |
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.
May be we should provide 4 documents to see if we are getting 2 outputs? But we can do it later too.
// This is to support some model which takes N text docs and embedding size is less than N-1. | ||
// We need to tell executor what's the step size for each model run. | ||
Map<String, String> parameters = getConnector().getParameters(); | ||
if (parameters != null && parameters.containsKey("input_docs_processed_step_size")) { | ||
processedDocs += Integer.parseInt(parameters.get("input_docs_processed_step_size")); |
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.
- Is this standard param? Can different connector have different parameter name to represent step size?
- What is the value returned is invalid int or out of range? (-ve value)
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.
- This will be a reserved param for AI connector, just like the
region
for AWS region andaccess_key
for AWS access key. All AI connector have to use this parameter to represent step size, just like they have to useaccess_key
to represent AWS access key. - Good point, will add check logic, the step value should be greater than 0, not necessary to be less than input doc size.
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.
Addressed in this PR #1587
…pensearch-project#1586) * support step size for embedding model which outputs less embeddings Signed-off-by: Yaliang Wu <ylwu@amazon.com> * tune parameter name Signed-off-by: Yaliang Wu <ylwu@amazon.com> * fine tune processed doc to always respect step size Signed-off-by: Yaliang Wu <ylwu@amazon.com> --------- Signed-off-by: Yaliang Wu <ylwu@amazon.com> Signed-off-by: Sicheng Song <sicheng.song@outlook.com>
* Merge update model API and model level throttling/quota (#1624) * Update Model API (#1350) * Update Model API POC Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Using GetRequest to get model Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Finalize model update API Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Fix compile Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Fix compileTest Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Add Unit Test Cases for Update Model API Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Tune back test coverage thereshold Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Add more unit tests on Update model API Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Add unit test for TransportUpdateModelAction class Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Fix a test error Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Change exception thrown to failure response Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Move the function judgement to the outter block Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Check if model is undeployed before update model Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Add more unit test for update model API Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Fix unit test due to blocking java 11 CI workflow Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Enabling auto bumping model version during registering to a new model group and address reviewers' other concern Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Autobump new model groups' latest version when register to a new model Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Change the REST API method from POST to PUT Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Change the update REST API endpoint Signed-off-by: Sicheng Song <sicheng.song@outlook.com> --------- Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Fix java compile when merging Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Fix model/connector update API to address security concern (#1595) * Fix model/connector update API to address appsec concern Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Fix compile and build failure Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Improve unit test coverage Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Fix spotless Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Merge update connector feature flag to remote inference feature flag Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Fix compile Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Fix exception status Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Keep fixing exception status Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Spotless fix Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Add UT on parsing exception Signed-off-by: Sicheng Song <sicheng.song@outlook.com> --------- Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * return parsing exception 400 for parsing errors (#1603) add more ut in restupdateconnector Signed-off-by: Xun Zhang <xunzh@amazon.com> Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * throttling and quota feature on single node cluster Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Fix java compile when merging Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Enabling in-place update on multi-node Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Fix confidential rotation in update internal connector Signed-off-by: Sicheng Song <sicheng.song@outlook.com> --------- Signed-off-by: Sicheng Song <sicheng.song@outlook.com> Signed-off-by: Xun Zhang <xunzh@amazon.com> Co-authored-by: Xun Zhang <xunzh@amazon.com> Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * merge conflict Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * Change rate limiter token capacity setting (#1635) Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * support step size for embedding model which outputs less embeddings (#1586) * support step size for embedding model which outputs less embeddings Signed-off-by: Yaliang Wu <ylwu@amazon.com> * tune parameter name Signed-off-by: Yaliang Wu <ylwu@amazon.com> * fine tune processed doc to always respect step size Signed-off-by: Yaliang Wu <ylwu@amazon.com> --------- Signed-off-by: Yaliang Wu <ylwu@amazon.com> Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * validate step size (#1587) Signed-off-by: Yaliang Wu <ylwu@amazon.com> Signed-off-by: Sicheng Song <sicheng.song@outlook.com> * backport to 2.11 (#1639) Signed-off-by: xinyual <xinyual@amazon.com> Signed-off-by: Sicheng Song <sicheng.song@outlook.com> --------- Signed-off-by: Sicheng Song <sicheng.song@outlook.com> Signed-off-by: Xun Zhang <xunzh@amazon.com> Signed-off-by: Yaliang Wu <ylwu@amazon.com> Signed-off-by: xinyual <xinyual@amazon.com> Co-authored-by: Xun Zhang <xunzh@amazon.com> Co-authored-by: Yaliang Wu <ylwu@amazon.com> Co-authored-by: xinyual <74362153+xinyual@users.noreply.github.com>
…pensearch-project#1586) * support step size for embedding model which outputs less embeddings Signed-off-by: Yaliang Wu <ylwu@amazon.com> * tune parameter name Signed-off-by: Yaliang Wu <ylwu@amazon.com> * fine tune processed doc to always respect step size Signed-off-by: Yaliang Wu <ylwu@amazon.com> --------- Signed-off-by: Yaliang Wu <ylwu@amazon.com>
…1586) * support step size for embedding model which outputs less embeddings Signed-off-by: Yaliang Wu <ylwu@amazon.com> * tune parameter name Signed-off-by: Yaliang Wu <ylwu@amazon.com> * fine tune processed doc to always respect step size Signed-off-by: Yaliang Wu <ylwu@amazon.com> --------- Signed-off-by: Yaliang Wu <ylwu@amazon.com>
…pensearch-project#1586) * support step size for embedding model which outputs less embeddings Signed-off-by: Yaliang Wu <ylwu@amazon.com> * tune parameter name Signed-off-by: Yaliang Wu <ylwu@amazon.com> * fine tune processed doc to always respect step size Signed-off-by: Yaliang Wu <ylwu@amazon.com> --------- Signed-off-by: Yaliang Wu <ylwu@amazon.com>
…1586) * support step size for embedding model which outputs less embeddings Signed-off-by: Yaliang Wu <ylwu@amazon.com> * tune parameter name Signed-off-by: Yaliang Wu <ylwu@amazon.com> * fine tune processed doc to always respect step size Signed-off-by: Yaliang Wu <ylwu@amazon.com> --------- Signed-off-by: Yaliang Wu <ylwu@amazon.com>
…pensearch-project#1586) * support step size for embedding model which outputs less embeddings Signed-off-by: Yaliang Wu <ylwu@amazon.com> * tune parameter name Signed-off-by: Yaliang Wu <ylwu@amazon.com> * fine tune processed doc to always respect step size Signed-off-by: Yaliang Wu <ylwu@amazon.com> --------- Signed-off-by: Yaliang Wu <ylwu@amazon.com>
Description
For some model , they may took multiple input docs and output less embeddings. For example, multi-modal model will take 2 input docs, but output just 1 embedding.
Add a step size parameter to control the process step for integration with neural-search.
Issues Resolved
[List any issues this PR will resolve]
Check List
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.