As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Enriquecimento semântico automático para Serverless
Introdução
O recurso de enriquecimento semântico automático pode ajudar a melhorar a relevância da pesquisa em até 20% em relação à pesquisa léxica. O enriquecimento semântico automático elimina o trabalho pesado indiferenciado de gerenciar sua própria infraestrutura de modelo de ML (aprendizado de máquina) e a integração com o mecanismo de pesquisa. O recurso está disponível para todos os três tipos de coleção sem servidor: Pesquisa, Série Temporal e Vetor.
O que é pesquisa semântica
Os mecanismos de pesquisa tradicionais dependem da word-to-word correspondência (conhecida como pesquisa léxica) para encontrar resultados para consultas. Embora isso funcione bem para consultas específicas, como números de modelos de televisão, ele tem dificuldades com pesquisas mais abstratas. Por exemplo, ao pesquisar por “sapatos para a praia”, uma pesquisa léxica apenas corresponde às palavras individuais “sapatos”, “praia”, “para” e “o” nos itens do catálogo, potencialmente sem produtos relevantes, como “sandálias resistentes à água” ou “calçados de surfe”, que não contêm os termos de pesquisa exatos.
A pesquisa semântica retorna resultados de consulta que incorporam não apenas a correspondência às palavras-chave, mas a intenção e o significado contextual da pesquisa do usuário. Por exemplo, se um usuário pesquisar “como tratar uma dor de cabeça”, um sistema de busca semântica pode retornar os seguintes resultados:
-
Remédios para enxaqueca
-
Técnicas de controle da dor
-
Over-the-counter analgésicos
Detalhes do modelo e benchmark de desempenho
Embora esse recurso lide com as complexidades técnicas nos bastidores sem expor o modelo subjacente, fornecemos transparência por meio de uma breve descrição do modelo e resultados de benchmark para ajudá-lo a tomar decisões informadas sobre a adoção de recursos em suas cargas de trabalho críticas.
O enriquecimento semântico automático usa um modelo esparso pré-treinado e gerenciado por serviços que funciona de forma eficaz sem exigir ajustes personalizados. O modelo analisa os campos que você especifica, expandindo-os em vetores esparsos com base em associações aprendidas de diversos dados de treinamento. Os termos expandidos e seus pesos de significância são armazenados no formato nativo do índice Lucene para uma recuperação eficiente. Otimizamos esse processo usando o modo somente documentos,
Nossa validação de desempenho durante o desenvolvimento do recurso usou o conjunto de dados de recuperação de passagens MS MARCO
-
Idioma inglês - Melhoria de relevância de 20% em relação à pesquisa léxica. Também reduziu a latência de pesquisa do P90 em 7,7% em relação à pesquisa lexical (BM25 é 26 ms e o enriquecimento semântico automático é 24 ms).
-
Multilíngue - Melhoria de relevância de 105% em relação à pesquisa lexical, enquanto a latência da pesquisa P90 aumentou 38,4% em relação à pesquisa lexical (BM25 é 26 ms e o enriquecimento semântico automático é 36 ms).
Dada a natureza exclusiva de cada carga de trabalho, recomendamos que você avalie esse recurso em seu ambiente de desenvolvimento usando seus próprios critérios de benchmarking antes de tomar decisões de implementação.
Idiomas suportados
O recurso oferece suporte ao inglês. Além disso, o modelo também oferece suporte para árabe, bengali, chinês, finlandês, francês, hindi, indonésio, japonês, coreano, persa, russo, espanhol, suaíli e telugu.
Configure um índice automático de enriquecimento semântico para coleções sem servidor
É fácil configurar um índice com o enriquecimento semântico automático ativado para seus campos de texto e você pode gerenciá-lo por meio do console e de CloudFormation modelos durante a criação do novo índice. APIs Para habilitá-lo para um índice existente, você precisa recriar o índice com o enriquecimento semântico automático ativado para campos de texto.
Experiência de console - O AWS console permite criar facilmente um índice com campos de enriquecimento semântico automático. Depois de selecionar uma coleção, você encontrará o botão criar índice na parte superior do console. Depois de clicar no botão criar índice, você encontrará opções para definir campos de enriquecimento semântico automático. Em um índice, você pode ter combinações de enriquecimento semântico automático para inglês e multilíngue, bem como campos lexicais.
Experiência de API - Para criar um índice automático de enriquecimento semântico usando a interface de linha de AWS comando (AWS CLI), use o comando create-index:
aws opensearchserverless create-index \ --id [collection_id] \ --index-name [index_name] \ --index-schema [index_body] \
No exemplo de esquema de índice a seguir, o campo title_semantic tem um tipo de campo definido como texto e o parâmetro semantic_enrichment definido como status ENABLED. Definir o parâmetro semantic_enrichment ativa o enriquecimento semântico automático no campo title_semantic. Você pode usar o campo language_options para especificar inglês ou multilíngue.
aws opensearchserverless create-index \ --id XXXXXXXXX \ --index-name 'product-catalog' \ --index-schema '{ "mappings": { "properties": { "product_id": { "type": "keyword" }, "title_semantic": { "type": "text", "semantic_enrichment": { "status": "ENABLED", "language_options": "english" } }, "title_non_semantic": { "type": "text" } } } }'
Para descrever o índice criado, use o seguinte comando:
aws opensearchserverless get-index \ --id [collection_id] \ --index-name [index_name] \
Você também pode usar CloudFormation modelos (Tipo:AWS::OpenSearchServerless::CollectionIndex) para criar uma pesquisa semântica durante o provisionamento da coleção, bem como após a criação da coleção.
Ingestão e pesquisa de dados
Depois de criar um índice com o enriquecimento semântico automático ativado, o recurso funciona automaticamente durante o processo de ingestão de dados, sem necessidade de configuração adicional.
Ingestão de dados: quando você adiciona documentos ao seu índice, o sistema automaticamente:
-
Analisa os campos de texto que você designou para enriquecimento semântico
-
Gera codificações semânticas usando o modelo esparso gerenciado por OpenSearch serviços
-
Armazena essas representações enriquecidas junto com seus dados originais
Esse processo usa conectores OpenSearch de ML e pipelines de ingestão integrados, que são criados e gerenciados automaticamente nos bastidores.
Pesquisa: os dados de enriquecimento semântico já estão indexados, então as consultas são executadas com eficiência sem invocar o modelo de ML novamente. Isso significa que você obtém maior relevância de pesquisa sem sobrecarga adicional de latência de pesquisa.
Configurar permissões para enriquecimento semântico automático
Antes de criar um índice de enriquecimento semântico automático, é necessário configurar as permissões necessárias. Esta seção explica as permissões necessárias e como configurá-las.
Permissões de política do IAM
Use a seguinte política AWS Identity and Access Management (IAM) para conceder as permissões necessárias para trabalhar com o enriquecimento semântico automático:
- Permissões de chave
-
-
As permissões
aoss:*Indexhabilitam o gerenciamento de índices -
A
aoss:APIAccessAllpermissão permite operações OpenSearch de API -
Para restringir as permissões a uma coleção específica, substitua
"Resource": "*"pelo ARN da coleção
-
Configurar permissões de acesso a dados
Para configurar um índice para enriquecimento semântico automático, você deve ter as políticas de acesso a dados apropriadas que concedam permissão para acessar recursos de índice, pipeline e coleção de modelos. Para saber mais sobre políticas de acesso a dados, consulte Controle de acesso a dados para Amazon OpenSearch Serverless. Para obter o procedimento de configuração de uma política de acesso a dados, consulte Criação de políticas de acesso a dados (console).
Permissões de acesso a dados
[ { "Description": "Create index permission", "Rules": [ { "ResourceType": "index", "Resource": ["index/collection_name/*"], "Permission": [ "aoss:CreateIndex", "aoss:DescribeIndex", "aoss:UpdateIndex", "aoss:DeleteIndex" ] } ], "Principal": [ "arn:aws:iam::account_id:role/role_name" ] }, { "Description": "Create pipeline permission", "Rules": [ { "ResourceType": "collection", "Resource": ["collection/collection_name"], "Permission": [ "aoss:CreateCollectionItems", "aoss:DescribeCollectionItems" ] } ], "Principal": [ "arn:aws:iam::account_id:role/role_name" ] }, { "Description": "Create model permission", "Rules": [ { "ResourceType": "model", "Resource": ["model/collection_name/*"], "Permission": ["aoss:CreateMLResource"] } ], "Principal": [ "arn:aws:iam::account_id:role/role_name" ] }, ]
Permissões de acesso à rede
Para permitir que APIs o serviço acesse coleções particulares, você deve configurar políticas de rede que permitam o acesso necessário entre a API do serviço e a coleção. Para obter mais informações sobre políticas de rede, consulte Acesso à rede para Amazon OpenSearch Serverless.
[ { "Description":"Enable automatic semantic enrichment in a private collection", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/collection_name" ] } ], "AllowFromPublic":false, "SourceServices":[ "aoss.amazonaws.com" ], } ]
Para configurar as permissões de acesso à rede para uma coleção privada
-
Faça login no console OpenSearch de serviço em https://console.aws.amazon.com/aos/casa
. -
No painel de navegação à esquerda, escolha Políticas de rede. Depois, siga um destes procedimentos:
-
Escolha o nome de uma política existente e escolha Editar
-
Escolha Criar política de rede e configure os detalhes da política
-
-
Na área Tipo de acesso, escolha Privado (recomendado) e selecione Acesso privado ao serviço da AWS .
-
No campo de pesquisa, escolha Serviço e depois aoss.amazonaws.com.
-
Na área Tipo de recurso, selecione a caixa Habilitar acesso ao OpenSearch endpoint.
-
Em Pesquisar coleções ou inserir termos de prefixo específicos, no campo de pesquisa, selecione Nome da coleção. Em seguida, insira ou selecione o nome das coleções a serem associadas à política de rede.
-
Escolha Criar para uma nova política de rede ou Atualizar para uma política de rede existente.
Regravações de consultas
O enriquecimento semântico automático converte automaticamente suas consultas de “correspondência” existentes em consultas de pesquisa semântica sem exigir modificações na consulta. Se uma consulta de correspondência fizer parte de uma consulta composta, o sistema percorrerá sua estrutura de consulta, localizará consultas de correspondência e as substituirá por consultas neurais esparsas. Atualmente, o recurso suporta apenas a substituição de consultas “correspondentes”, seja uma consulta autônoma ou parte de uma consulta composta. “multi_match” não é suportado. Além disso, o recurso oferece suporte a todas as consultas compostas para substituir suas consultas de correspondência aninhadas. As consultas compostas incluem: bool, boosting, constant_score, dis_max, function_score e hybrid.
Limitações do enriquecimento semântico automático
A pesquisa semântica automática é mais eficaz quando aplicada a campos small-to-medium de tamanho contendo conteúdo em linguagem natural, como títulos de filmes, descrições de produtos, avaliações e resumos. Embora a pesquisa semântica aumente a relevância para a maioria dos casos de uso, ela pode não ser ideal para determinados cenários. Considere as seguintes limitações ao decidir se deve implementar o enriquecimento semântico automático para seu caso de uso específico.
-
Documentos muito longos — O modelo esparso atual processa apenas os primeiros 8.192 tokens de cada documento em inglês. Para documentos multilíngues, são 512 tokens. Para artigos longos, considere implementar a fragmentação de documentos para garantir o processamento completo do conteúdo.
-
Cargas de trabalho de análise de registros — O enriquecimento semântico aumenta significativamente o tamanho do índice, o que pode ser desnecessário para a análise de registros, onde a correspondência exata normalmente é suficiente. O contexto semântico adicional raramente melhora a eficácia da pesquisa de registros o suficiente para justificar o aumento dos requisitos de armazenamento.
-
O enriquecimento semântico automático não é compatível com o recurso Fonte Derivada.
Preços
OpenSearch O Serverless cobra o enriquecimento semântico automático com base nas unidades de OpenSearch computação (OCUs) consumidas durante a geração de vetores esparsos no momento da indexação. Você é cobrado somente pelo uso real durante a indexação. Você pode monitorar esse consumo usando a SemanticSearch OCU CloudWatch métrica da Amazon. Para obter detalhes específicos sobre os limites do token do modelo, a taxa de transferência de volume por OCU e um exemplo de cálculo de amostra, visite Preços de OpenSearch serviços