O API de consulta preditiva permite que os aplicativos aproveitem modelos pré-treinados de aprendizado de máquina (ML) para executar consultas preditivas em relação aos dados no banco de dados Couchbase Lite incorporado de forma conveniente, rápida e sempre disponível. Essas previsões podem ser combinadas com previsões feitas com base em dados em tempo real capturados pelo seu aplicativo para permitir uma variedade de aplicativos atraentes. A API Predictive Query no Couchbase Lite é a primeira desse tipo em um banco de dados incorporado. Nós tínhamos anunciado a versão Developer Preview da Predictive Query API com o Couchbase Mobile 2.5 no ano passado. Com Couchbase Mobile 2.7Com isso, temos o prazer de anunciar a disponibilidade geral desse recurso.
Nesta postagem, apresentamos uma visão geral do recurso, incluindo o contexto do motivo pelo qual o desenvolvemos e os tipos de aplicativos que ele oferece. pode permitir. Também demonstramos o uso da Predictive API com um exemplo. Você pode consultar o exemplo documentação para obter informações específicas sobre a API e exemplos de trechos de código.
Aprendizado de máquina em dispositivos móveis - Motivação
Tradicionalmente, o aprendizado de máquina tem sido feito na nuvem. Com acesso a recursos de computação e armazenamento "ilimitados", parecia ser o único lugar viável para fazer isso. Embora isso possa ser verdade para determinados aplicativos, há vários motivos para executar o aprendizado de máquina localmente em um dispositivo móvel.
Rápido e responsivo
Ao evitar o tempo de ida e volta para a nuvem, é possível garantir que os tempos de resposta às previsões sejam da ordem de alguns milissegundos, independentemente do estado da conexão de rede. Isso é importante, pois a capacidade de resposta de um aplicativo está diretamente relacionada à experiência do usuário final, o que é importante para a retenção do aplicativo.
Sempre disponível
Ao executar o aprendizado de máquina localmente no dispositivo, você pode fazer previsões mesmo em estado desconectado. Seu aplicativo e seus dados estão sempre disponíveis. Isso é particularmente relevante no caso de aplicativos de campo implantados em ambientes desconectados.
Privacidade de dados
A execução de previsões localmente no dispositivo implica que os dados confidenciais não precisam sair do dispositivo. Você pode usar isso para criar aplicativos com experiências altamente personalizadas sem comprometer as restrições de privacidade de dados.
Economia de largura de banda
Ao evitar a necessidade de transferir dados para a nuvem, você pode economizar nos custos de largura de banda. Isso é particularmente importante no caso de ambientes com restrições de largura de banda de rede, em que os planos de dados são mais caros.
Todos os benefícios mencionados acima se alinham bem com o paradigma de computação de borda onde há uma necessidade crescente de levar o armazenamento e a computação para mais perto da borda.
ML móvel - Ecossistema
O ML móvel é uma realidade e há vários facilitadores de ecossistema que tornam isso possível.
Dispositivos móveis potentes
Os dispositivos móveis estão se tornando incrivelmente poderosos. Por exemplo, o recém-lançado iPhone11 e Pixel 4 incluem mecanismos de núcleo neural dedicados. A inovação na camada de silício torna viável a execução de modelos de ML localmente em dispositivos móveis. Ao aproveitar os recursos de aceleração de hardware da plataforma, os modelos podem ser executados de forma eficiente.
Modelos otimizados para celular
Tradicionalmente, os modelos de aprendizado de máquina têm exigido muito armazenamento e computação. Há vários esforços/projetos em andamento para otimizar os modelos para utilização de recursos e, ao mesmo tempo, manter o nível de precisão necessário. Há uma rede crescente de modelos de ML pré-treinados de código aberto, como MobileNet e SqueezeNet que são otimizados para serem executados em dispositivos móveis.
Estruturas de aprendizado de máquina
Todas as principais plataformas móveis incluem suporte para estruturas e bibliotecas de aprendizado de máquina que tornam extremamente fácil para os desenvolvedores integrar o suporte de aprendizado de máquina em seus aplicativos. Essas estruturas aproveitam a aceleração de hardware e as APIs de baixo nível que as tornam muito eficientes. Os exemplos incluem Núcleo ML para iOS, Tensorflow lite para Android, ML.NET para Windows e Kit ML entre outros.
Criação de modelos de ML
Há um número crescente de ferramentas e plataformas de código aberto, como TensorFlow e createML que facilitam mais do que nunca a criação de modelos de aprendizado de máquina. Você não precisa ser um cientista de dados para criar um modelo.
API de consulta preditiva
A API Predictive Queries permite que os aplicativos móveis aproveitem modelos de aprendizado de máquina (ML) pré-treinados para fazer previsões sobre os dados do Couchbase Lite. A API pode ser usada para combinar previsões em tempo real feitas sobre dados inseridos no aplicativo em tempo real com previsões sobre dados do aplicativo armazenados no Couchbase Lite.
Por construção índice de previsão Durante o tempo de gravação, os usuários podem ver melhorias significativas no desempenho de suas consultas. Os resultados da previsão podem ser materializados no Couchbase Lite e sincronizados com outros clientes por meio de Gateway de sincronização.
Aplicativos
Há várias aplicações de aprendizado de máquina em dispositivos móveis, incluindo classificações de imagens, reconhecimento de voz, reconhecimento de objetos e sistemas de recomendação baseados em conteúdo. A combinação dessas previsões com os dados armazenados no Couchbase Lite tem o potencial de revolucionar as atividades cotidianas em vários setores. Todos esses aplicativos se beneficiam da execução do aprendizado de máquina localmente, ou seja, alta disponibilidade garantida, resposta mais rápida, uso eficiente da largura de banda da rede e privacidade dos dados. Aqui estão alguns exemplos
Varejo e comércio eletrônico
Considere este fluxo de trabalho
- Você entra em uma loja com uma foto de um item de interesse. Por exemplo, a foto de uma bolsa que você viu em alguém.
- Você se dirige ao vendedor para perguntar se o item está disponível.
- O vendedor tira uma foto do item com seu tablet que está executando um aplicativo de catálogo/estoque
- A imagem capturada é usada para pesquisar o banco de dados do catálogo da loja para determinar sua disponibilidade.
- Se o item estiver disponível na loja, você será direcionado para o corredor correto. Também podem ser apresentadas alternativas e recomendações sobre outros itens relacionados.

A pesquisa baseada em imagens aumenta a experiência de pesquisa mais tradicional baseada em texto e até mesmo baseada em voz, que depende da capacidade do usuário de descrever o item de interesse. Os aplicativos com busca baseada em imagens podem melhorar significativamente a experiência de compra on-line e na loja. Embora as vantagens da pesquisa baseada em imagens sejam bastante óbvias no caso de aplicativos de comércio eletrônico, fluxos de trabalho como o descrito acima oferecem uma oportunidade para as lojas tradicionais competirem com as experiências de compras on-line.
Nos bastidores, o aplicativo de catálogo/inventário usa um modelo de ML de classificador de imagem para identificar o item que é capturado usando a câmera do tablet. Uma vez identificado, o aplicativo consulta o banco de dados local do Couchbase Lite para verificar se o item está disponível na loja e recupera outros detalhes relevantes, como se está em estoque e o corredor onde pode ser encontrado. As imagens nunca saem do aplicativo da loja e podem ser excluídas localmente após o uso, aliviando qualquer preocupação com a privacidade.
Hospitalidade
Considere um quiosque de autoatendimento em um restaurante de fast food. Aqui está um fluxo de trabalho típico.
- Você se dirige ao quiosque equipado com uma câmera que captura sua imagem (você tem que optar por participar)
- A imagem facial capturada é usada para consultar o banco de dados de clientes registrados para identificar suas preferências
- O sistema pode obter o histórico de pedidos, sugerir pedidos de refeições, aplicar pontos de fidelidade e outros. Seu pedido pode ser feito usando as informações de cartão de crédito registradas.

Os quiosques de autoatendimento são bastante onipresentes e revolucionaram a experiência de pedidos de refeições ao reduzir os tempos de espera, resultando em um serviço mais rápido. Equipar esses quiosques com a tecnologia de reconhecimento facial pode tornar essa experiência ainda mais perfeita e rápida.
Nos bastidores, o quiosque está executando um aplicativo que usa um modelo de ML de reconhecimento facial, como OpenFace para gerar uma impressão digital exclusiva da imagem facial capturada. Em seguida, o aplicativo executa uma correspondência de similaridade entre a impressão digital da imagem facial capturada e as impressões digitais das imagens no banco de dados Couchbase Lite para identificar a correspondência mais próxima.
Apresentação dos recursos
A melhor maneira de entender como a API funciona é por meio de um exemplo. Nesta publicação, descreverei como você pode implementar o aplicativo de reconhecimento facial discutido acima usando a API Predictive Query. Esse é provavelmente o fluxo de trabalho mais complicado. O aplicativo de pesquisa baseado em imagem usando o modelo de classificador segue um padrão semelhante, exceto pelo fato de ser muito mais simples.
- Pré-requisitos
- O modelo de ML de reconhecimento facial está disponível no aplicativo. O modelo de ML poderia ter sido incluído no aplicativo ou retirado de um repositório externo, com técnicas semelhantes a este. O modelo recebe uma imagem e gera uma "impressão digital" ou "incorporação de rosto", que é essencialmente uma representação vetorial de recursos de imagem.
- O banco de dados do Couchbase Lite é preenchido com dados relevantes. No nosso caso de uso, isso corresponderia a um banco de dados de usuários registrados com "usuário" documentos do tipo. Cada documento de usuário inclui uma bolha correspondente a uma foto do usuário registrado.
- O modelo de ML de reconhecimento facial está disponível no aplicativo. O modelo de ML poderia ter sido incluído no aplicativo ou retirado de um repositório externo, com técnicas semelhantes a este. O modelo recebe uma imagem e gera uma "impressão digital" ou "incorporação de rosto", que é essencialmente uma representação vetorial de recursos de imagem.
- Etapa 1: Registre o modelo de ML com o Cuchbase Lite
Você pode executar previsões usando qualquer Modelo de ML. Como desenvolvedor de aplicativos, você implementará o PredictiveModel interface e registro com o Couchbase Lite. Essa interface é muito simples e define um único predict() que deve ser implementado pelo desenvolvedor do aplicativo. A qualquer momento, o Função de previsão é invocado no Couchbase Lite, o método predict() subjacente no PredictiveModel é invocado.

1 2 |
// 1: Modelo de registro Banco de dados.previsão.registerModel(mlModel, withName: modelName) |
- Etapa 2: Criar o Predictive Index
Criar um índice preditivo nas imagens do banco de dados Couchbase Lite executando uma previsão em todas as imagens usando o modelo de ML registrado. Embora essa etapa seja opcional, é altamente recomendável criar o índice, pois ele tem um impacto significativo no desempenho do tempo de consulta

1 2 3 4 |
// 2: Criar índice de previsão de previsões em imagens no banco de dados deixar índice = IndexBuilder.predictiveIndex(modelo: modelName, entrada: imagePropertyInDB) db.createIndex(índice, withName: "faceIndex") // Gerar impressões digitais executando previsões em imagens no banco de dados deixar impressão digital de imagens no banco de dados = Função.previsão(modelo: modelName, entrada: imagePropertyInDB) |
- Etapa 3: Previsão na imagem capturada
Execute a previsão na entrada de imagens no aplicativo usando Função de previsão

1 2 |
// 3: Gerar a impressão digital executando a previsão na imagem de entrada deixar fingerPrintOfInputImage (impressão digital da imagem de entrada) = Função.previsão(modelo: modelName, entrada: inputPhoto) |
- Etapa 4: correspondência de similaridade e consulta de documento do usuário
Execute uma correspondência de similaridade entre a imagem capturada e as imagens no banco de dados usando um dos muitos vetor de distância funções. Consultar o banco de dados do Couchbase Lite em busca de documentos com a correspondência mais próxima

1 2 3 4 5 6 7 8 |
// 4: Encontrar a distância entre as impressões digitais (correspondência de similaridade dos resultados da previsão) deixar distância entre imagens = Função.cosineDistance(entre: fingerPrintOfInputImage (impressão digital da imagem de entrada), e: impressão digital de imagens no banco de dados) // Consulta de documentos no banco de dados com a correspondência mais próxima (conforme medido pela comparação de distância) deixar consulta = Criador de consultas.selecionar(SelecionarResultado.todos()) .de(Fonte de dados.banco de dados(db)) .orderBy(Pedidos.expressão(distância).ascendente()) .limite(Expressão.int(1)) |
É isso aí! Em apenas 4 etapas simples, você pode usar a API Predictive Query para implementar um aplicativo de reconhecimento facial com base em dados no Couchbase Lite.
O que vem a seguir
Com a nova Predictive Functions API, a Couhbase continua a demonstrar sua liderança na área de armazenamento de dados móveis e incorporados. Neste post, discutimos alguns aplicativos e apresentamos um exemplo de como você poderia aproveitar a Predictive Query API. Esperamos que isso tenha inspirado você a criar o seu próprio aplicativo e mal podemos esperar para ver os novos recursos que você habilitará em seus aplicativos com esse recurso.
Aqui estão os links diretos para alguns recursos úteis
– Documentação da consulta preditiva.
Inclui um guia passo a passo para usar a API
– Downloads do Couchbase Lite
A Predictive Query API está disponível sob a licença Enterprise. Nossa Enterprise Edition também é gratuita para download e uso para fins de desenvolvimento.
– Aplicativo de amostra
Aplicativo de amostra que demonstra o uso da Predictive API com um modelo de ML de classificador
– Blogs do Couchbase Mobile
– Fóruns do Couchbase
Se tiver dúvidas ou comentários, deixe um comentário abaixo ou entre em contato comigo pelo Twitter ou enviar-me um e-mail
excelente blog e recurso super útil no CB Lite!