Integrações
Use modelos de incorporação para criar incorporação de texto que capturem o significado de uma frase ou passagem. Você pode usar esses modelos com classificadores, como máquinas de vetores de suporte. Os modelos de incorporação também podem ajudá-lo com tarefas de geração aumentada por recuperação.
O diagrama a seguir ilustra o padrão de geração aumentado por recuperação com suporte de incorporação.
O padrão de geração aumentada por recuperação com suporte de incorporação envolve as seguintes etapas:
- Converta seu conteúdo em incorporações de texto e armazene-as em um armazenamento de dados vetoriais.
- Use o mesmo modelo de incorporação para converter a entrada do usuário em incorporação de texto.
- Execute uma pesquisa de similaridade ou semântica em sua base de conhecimento para obter conteúdo relacionado à pergunta de um usuário.
- Inclua os resultados de pesquisa mais relevantes em seu prompt como contexto e adicione uma instrução, como "Responda à pergunta a seguir usando somente as informações das passagens a seguir"
- Envie o texto combinado do prompt (instrução + resultados da pesquisa + pergunta) para o modelo de base.
- O modelo básico usa informações contextuais do prompt para gerar uma resposta factual.
Para obter mais informações, consulte:
Incorporação de USO
Os embeddings do USE são envoltórios dos embeddings do Google Universal Sentence Encoder que estão disponíveis no TFHub. Essas integrações são usadas no algoritmo SVM de classificação de documentos. Para obter uma lista de incorporações pré-treinadas de USE e seus idiomas compatíveis, consulte Inclusão de incorporações pré-treinadas de USE
Ao utilizar as integrações USE, considere o seguinte:
Escolha
embedding_use_en_stockse a sua tarefa envolve texto em inglês.Escolha uma das integrações USE multilíngues se sua tarefa envolver texto em uma língua não inglesa ou se você deseja treinar modelos multilíngues.
As integrações USE exibem diferentes trade-offs entre qualidade do modelo treinado e rendimento no tempo de inferência, conforme descrito a seguir. Experimente integrações diferentes para decidir o trade-off entre qualidade de resultado e rendimento de inferência que sejam apropriados para o seu caso de uso.
- O
embedding_use_multi_smalltem qualidade razoável, mas é rápido no tempo de inferência - O
embedding_use_en_stocké uma versão apenas em inglês doembedding_embedding_use_multi_small, portanto, é menor e apresenta maior rendimento de inferência - O
embedding_use_multi_largebaseia-se na arquitetura do Transformer e, portanto, proporciona maior qualidade de resultado, com rendimento inferior no tempo de inferência
- O
Código de amostra
import watson_nlp
syntax_model = watson_nlp.load("syntax_izumo_en_stock")
embeddings_model = watson_nlp.load("embedding_use_en_stock")
text = "python"
syntax_doc = syntax_model.run(text)
embedding = embeddings_model.run(syntax_doc)
print(embedding)
Saída do exemplo de código:
{
"data": {
"data": [
-0.01909315399825573,
-0.009827353060245514,
...
0.008978910744190216,
-0.0702751949429512
],
"rows": 1,
"cols": 512,
"dtype": "float32"
},
"offsets": null,
"producer_id": null
}
Incluiu embeddings de USE pré-treinados
A tabela a seguir lista os blocos pré-treinados para integrações USE que estão disponíveis e os idiomas que são suportados. Para obter uma lista dos códigos de idioma e dos idiomas correspondentes, consulte Códigos de idiomas.
| Nome do Bloco | Nome do modelo | Idiomas suportados |
|---|---|---|
use |
embedding_use_en_stock |
Inglês apenas |
use |
embedding_use_multi_small |
ar, de, el, en, es, fr, it, ja, ko, nb, nl, pl, pt, ru, th, tr, zh_tw, zh |
use |
embedding_use_multi_large |
ar, de, el, en, es, fr, it, ja, ko, nb, nl, pl, pt, ru, th, tr, zh_tw, zh |
Embeddings GloVe
Os embeddings GloVe são usados pelo classificador CNN.
Nome do bloco: ' embedding_glove__stock
Idiomas suportados: ar, de, en, es, fr, it, ja, ko, nl, pt, zh-cn
Código de amostra
import watson_nlp
syntax_model = watson_nlp.load("syntax_izumo_en_stock")
embeddings_model = watson_nlp.load("embedding_glove_en_stock")
text = "python"
syntax_doc = syntax_model.run(text)
embedding = embeddings_model.run(syntax_doc)
print(embedding)
Saída do exemplo de código:
{
"data": {
"data": [
-0.01909315399825573,
-0.009827353060245514,
...
0.008978910744190216,
-0.0702751949429512
],
"rows": 1,
"cols": 512,
"dtype": "float32"
},
"offsets": null,
"producer_id": null
}
Embeddings de transformadores
Nomes de blocos
embedding_transformer_en_slate.125membedding_transformer_en_slate.30m
Idiomas suportados
Inglês apenas
Código de amostra
import watson_nlp
# embeddings_model = watson_nlp.load("embedding_transformer_en_slate.125m")
embeddings_model = watson_nlp.load("embedding_transformer_en_slate.30m")
text = "python"
embedding = embeddings_model.run(text)
print(embedding)
Saída da amostra de código
{
"data": {
"data": [
-0.055536773055791855,
0.008286023512482643,
...
-0.3202415108680725,
5.000295277568512e-05
],
"rows": 1,
"cols": 384,
"dtype": "float32"
},
"offsets": null,
"producer_id": {
"name": "Transformer Embeddings",
"version": "0.0.1"
}
}