simple.py
 1  from sentence_transformers import SentenceTransformer
 2  
 3  import mlflow
 4  import mlflow.sentence_transformers
 5  
 6  model = SentenceTransformer("all-MiniLM-L6-v2")
 7  
 8  example_sentences = ["This is a sentence.", "This is another sentence."]
 9  
10  # Define the signature
11  signature = mlflow.models.infer_signature(
12      model_input=example_sentences,
13      model_output=model.encode(example_sentences),
14  )
15  
16  # Log the model using mlflow
17  with mlflow.start_run():
18      logged_model = mlflow.sentence_transformers.log_model(
19          model=model,
20          name="sbert_model",
21          signature=signature,
22          input_example=example_sentences,
23      )
24  
25  # Load option 1: mlflow.pyfunc.load_model returns a PyFuncModel
26  loaded_model = mlflow.pyfunc.load_model(logged_model.model_uri)
27  embeddings1 = loaded_model.predict(["hello world", "i am mlflow"])
28  
29  # Load option 2: mlflow.sentence_transformers.load_model returns a SentenceTransformer
30  loaded_model = mlflow.sentence_transformers.load_model(logged_model.model_uri)
31  embeddings2 = loaded_model.encode(["hello world", "i am mlflow"])
32  
33  print(embeddings1)
34  
35  """
36  >> [[-3.44772562e-02  3.10232025e-02  6.73496164e-03  2.61089969e-02
37    ...
38    2.37922110e-02 -2.28897743e-02  3.89375277e-02  3.02067865e-02]
39   [ 4.81191138e-03 -9.33756605e-02  6.95968643e-02  8.09735525e-03
40    ...
41     6.57437667e-02 -2.72239652e-02  4.02687863e-02 -1.05599344e-01]]
42  """