Has someone tried the last update of GCP TextEmbeddingInput that allows to specify the task_type of your application? Theoretically it should allows you to use different fine tuned models to generate embeddings but I cannot see any difference between embeddings generated for different task_type.
from vertexai.language_models import TextEmbeddingModel
from vertexai.language_models import TextEmbeddingInput
def text_embedding():
"""Text embedding with a Large Language Model."""
model = TextEmbeddingModel.from_pretrained("textembedding-gecko-multilingual@001")
embeddings = model.get_embeddings(["La vita è un viaggio, ma non è solo un percorso da seguire. È un'esperienza che ci forma e ci cambia. È un'opportunità per imparare e crescere, per affrontare le sfide e superare gli ostacoli. È un'occasione per conoscere noi stessi e gli altri, per creare legami e costruire relazioni."])
return embeddings
def text_embedding2():
"""Text embedding with a Large Language Model."""
model = TextEmbeddingModel.from_pretrained("textembedding-gecko-multilingual@001")
text = TextEmbeddingInput(text="La vita è un viaggio, ma non è solo un percorso da seguire. È un'esperienza che ci forma e ci cambia. È un'opportunità per imparare e crescere, per affrontare le sfide e superare gli ostacoli. È un'occasione per conoscere noi stessi e gli altri, per creare legami e costruire relazioni.", task_type='CLUSTERING')
embeddings = model.get_embeddings([text])
return embeddings
text_embedding2()[0].values == text_embedding()[0].values
I am not sure I agree, I have modified slightly your code and I get different results for the embeddings: