Skip to content
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

Onboard ML inference ingest processor #172

Merged
merged 9 commits into from
Jun 11, 2024

Conversation

ohltyler
Copy link
Member

@ohltyler ohltyler commented Jun 10, 2024

Description

This PR onboards the generic ML inference ingest processor into the plugin. Specifically:

  • adds the MLInferenceProcessor interface used when constructing the workflow template
  • updates the MLTransformer under components/ (the interfaces for the ReactFlow drag-and-drop components)
  • adds and refactors configs under configs/ (the interfaces/classes used for the WorkflowInputs form) to support the ML inference processor. Specifies the base ml_processor config at the top-level, as the form inputs will be identical across the underlying ingest / search request / search response processors
  • adds a map config field type and associated interfaces to represent a map as a list of k/v pairs (note this is the format expected in the ml inference processors)
  • updates and simplifies fns in workflow_to_template_utils and removes the logic around pretrained models and handling model provisioning, as this is not in the target scope of initial release for this
  • updates the pre-defined semantic search template to use the generic ml processor instead of the explicit text embedding processor
  • adds a new MapField for processing a dynamic list of k/v pairs to represent a mapping - includes the components, Formik form integration, and yup schema validation
  • (unrelated change) updates the parsing logic of the search workflows response, as the original issue has been resolved. After rebasing, this was throwing NPE errors.

Demo video, showing the dynamic list of mappings for the input and output maps, persisted in the config, form validation, and actual execution. (Errors on the execution can be ignored for now; this work is in-progress. I have confirmed the ingest pipeline, default pipeline on the index, and execution of the ingest are all working as expected, as the errors faced are replicable by perform ingest directly against the created index.)

screen-capture.39.webm

Issues Resolved

Makes progress on #23

Check List

  • Commits are signed per the DCO using --signoff

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.

@ohltyler ohltyler marked this pull request as ready for review June 11, 2024 21:49
@ohltyler ohltyler merged commit f077c82 into opensearch-project:main Jun 11, 2024
6 checks passed
@ohltyler ohltyler deleted the ml-inference-processor branch June 11, 2024 22:34
opensearch-trigger-bot bot pushed a commit that referenced this pull request Jun 11, 2024
Signed-off-by: Tyler Ohlsen <[email protected]>
(cherry picked from commit f077c82)
ohltyler added a commit that referenced this pull request Jun 11, 2024
Signed-off-by: Tyler Ohlsen <[email protected]>
(cherry picked from commit f077c82)

Co-authored-by: Tyler Ohlsen <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants