Simplify model import code
Opened this issue · 0 comments
jeffvestal commented
Feature Request
As a Python user, I would like to simplify the code required to load an inference model from Hugging Face (or private source) into Elasticsearch.
Use Case
Today eland is the way we load inference models into Elasticsearch. Many users will only use eland to load models, making it as simple to use will help the end-user experience.
Currently, in python, it requires several lines of code
eg:
hf_model_id='sentence-transformers/msmarco-MiniLM-L-12-v3'
tm = TransformerModel(hf_model_id, "text_embedding")
es_model_id = tm.elasticsearch_model_id()
tmp_path = "models"
Path(tmp_path).mkdir(parents=True, exist_ok=True)
model_path, config, vocab_path = tm.save(tmp_path)
ptm = PyTorchModel(es, es_model_id)
ptm.import_model(model_path=model_path, config_path=None, vocab_path=vocab_path, config=config)
This could be abstracted into a simple function call such as eland.ml.pytorch.import_model
and take in the minimum required parameters. Something like
def import_model(
es: Elasticsearch,
model_id: str,
task_type: str = 'text_embedding',
access_token: Union[str, bool] = False
) -> str:
where it would return the model_id as it is known in Elasticsearch so it can be used later in the code to call inference
cc: @joshdevins