milvus-logo
LFAI
Home
  • Modelos

Transformadores de frases

O Milvus integra-se com modelos pré-treinados do Sentence Transformer através da classe SentenceTransformerEmbeddingFunction. Esta classe fornece métodos para codificar documentos e consultas usando os modelos pré-treinados do Sentence Transformer e retornando os embeddings como vetores densos compatíveis com a indexação do Milvus.

Para usar esse recurso, instale as dependências necessárias:

pip install --upgrade pymilvus
pip install "pymilvus[model]"

Em seguida, instancie a SentenceTransformerEmbeddingFunction:

from pymilvus import model

sentence_transformer_ef = model.dense.SentenceTransformerEmbeddingFunction(
    model_name='all-MiniLM-L6-v2', # Specify the model name
    device='cpu' # Specify the device to use, e.g., 'cpu' or 'cuda:0'
)

Parâmetros:

  • nome_do_modelo(string)

    O nome do modelo do Sentence Transformer a ser usado para codificação. O valor predefinido é all-MiniLM-L6-v2. Pode utilizar qualquer um dos modelos pré-treinados dos Transformadores de frases. Para obter uma lista dos modelos disponíveis, consulte Modelos pré-treinados.

  • dispositivo(string)

    O dispositivo a ser usado, com cpu para a CPU e cuda:n para o enésimo dispositivo GPU.

Para criar embeddings para documentos, use o método encode_documents():

docs = [
    "Artificial intelligence was founded as an academic discipline in 1956.",
    "Alan Turing was the first person to conduct substantial research in AI.",
    "Born in Maida Vale, London, Turing was raised in southern England.",
]

docs_embeddings = sentence_transformer_ef.encode_documents(docs)

# Print embeddings
print("Embeddings:", docs_embeddings)
# Print dimension and shape of embeddings
print("Dim:", sentence_transformer_ef.dim, docs_embeddings[0].shape)

O resultado esperado é semelhante ao seguinte:

Embeddings: [array([-3.09392996e-02, -1.80662833e-02,  1.34775648e-02,  2.77156215e-02,
       -4.86349640e-03, -3.12581174e-02, -3.55921760e-02,  5.76934684e-03,
        2.80773244e-03,  1.35783911e-01,  3.59678417e-02,  6.17732145e-02,
...
       -4.61330153e-02, -4.85207550e-02,  3.13997865e-02,  7.82178566e-02,
       -4.75336798e-02,  5.21207601e-02,  9.04406682e-02, -5.36676683e-02],
      dtype=float32)]
Dim: 384 (384,)

Para criar embeddings para consultas, utilize o método encode_queries():

queries = ["When was artificial intelligence founded", 
           "Where was Alan Turing born?"]

query_embeddings = sentence_transformer_ef.encode_queries(queries)

# Print embeddings
print("Embeddings:", query_embeddings)
# Print dimension and shape of embeddings
print("Dim:", sentence_transformer_ef.dim, query_embeddings[0].shape)

O resultado esperado é semelhante ao seguinte:

Embeddings: [array([-2.52114702e-02, -5.29330298e-02,  1.14570223e-02,  1.95571519e-02,
       -2.46500354e-02, -2.66519729e-02, -8.48201662e-03,  2.82961670e-02,
       -3.65092754e-02,  7.50745758e-02,  4.28900979e-02,  7.18822703e-02,
...
       -6.76431581e-02, -6.45996556e-02, -4.67132553e-02,  4.78532910e-02,
       -2.31596199e-03,  4.13446948e-02,  1.06935494e-01, -1.08258888e-01],
      dtype=float32)]
Dim: 384 (384,)

Traduzido porDeepLogo

Tabela de conteúdos

Try Zilliz Cloud for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Esta página foi útil?