Estimando o tempo, o custo e as entregas de um projeto de aplicativo de ML
Publicados: 2019-11-20Imagine-se indo comprar uma carteira personalizada em uma loja.
Embora você esteja ciente de que tipo de carteira você precisa, mas não sabe o custo ou o tempo necessário para obter a versão personalizada.
O mesmo acontece com projetos de aprendizado de máquina. E para te ajudar nesse dilema, disponibilizamos informações detalhadas para você ter um projeto de sucesso.
Machine Learning é como uma moeda que tem dois lados .
Por um lado, ajuda a eliminar as incertezas dos processos. Mas, por outro lado , seu desenvolvimento é cheio de incertezas.
Enquanto o resultado final de quase todos os projetos de Machine Learning (ML) é uma solução que melhora os negócios e simplifica os processos; a parte de desenvolvimento tem uma história completamente diferente para compartilhar.
Embora o ML tenha desempenhado um papel importante na mudança da história de lucro e do modelo de negócios de várias marcas de aplicativos móveis estabelecidas, ele ainda opera no início. Essa novidade, por sua vez, torna ainda mais desafiador para os desenvolvedores de aplicativos móveis lidar com um plano de projeto de ML e torná-lo pronto para produção, mantendo as restrições de tempo e custo em mente.
Uma solução ( provavelmente a única solução ) para essa dificuldade é a estimativa do projeto do aplicativo Machine Learning em preto e branco do tempo, custo e entregas.
Mas antes de entrarmos nessas seções, vamos primeiro ver o que faz valer a pena a dificuldade e a queima das velas noturnas.
Por que seu aplicativo precisa de uma estrutura de aprendizado de máquina?
Você pode estar pensando por que estamos falando de estrutura no meio das estimativas de tempo, custo e entregas.
Mas a verdadeira razão por trás do tempo e do custo está aqui, que nos informa sobre nosso motivo por trás do desenvolvimento de aplicativos. Se você precisa de aprendizado de máquina para:
Por oferecer experiência personalizada
Para Incorporar Pesquisa Avançada m
Para prever o comportamento do usuário
Para uma melhor segurança
Para envolvimento profundo do usuário
Com base nessas razões, o tempo, o custo e a entrega dependerão de acordo.
Tipos de modelos de aprendizado de máquina
Que tipo de modelo você consideraria para ajustar o tempo e o custo? Se você não sabe, nós fornecemos informações para você entender e escolher modelos, dependendo de suas necessidades e orçamento.
O aprendizado de máquina em meio a seus diferentes casos de uso pode ser categorizado em três tipos de modelos, que desempenham um papel na transformação de aplicativos rudimentares em aplicativos móveis inteligentes – Supervisionado, Não Supervisionado e Reforço. O conhecimento do que esses modelos de aprendizado de máquina representam é o que ajuda a definir como desenvolver um aplicativo habilitado para ML.
Aprendizado Supervisionado
É o processo onde o sistema recebe dados onde as entradas do algoritmo e suas saídas são rotuladas corretamente. Como as informações de entrada e saída são rotuladas, o sistema é treinado para identificar os padrões nos dados dentro do algoritmo.
Torna-se ainda mais benéfico porque é usado para prever o resultado com base em dados de entrada futuros. Um exemplo disso pode ser visto quando a mídia social reconhece o rosto de alguém quando ele é marcado em uma fotografia.
Aprendizado não supervisionado
No caso de aprendizado não supervisionado, os dados são alimentados no sistema, mas suas saídas não são rotuladas como no caso do modelo supervisionado. Ele permite que o sistema identifique dados e determine padrões a partir das informações. Uma vez que os padrões são armazenados, todas as entradas futuras são atribuídas ao padrão para produzir uma saída.
Um exemplo desse modelo pode ser visto nos casos em que as mídias sociais dão sugestões aos amigos com base em vários dados conhecidos, como demografia, formação educacional etc.
Aprendizado por Reforço
Como no caso do aprendizado não supervisionado, os dados fornecidos ao sistema no aprendizado por reforço também não são rotulados. Ambos os tipos de aprendizado de máquina diferem porque, quando a saída correta é produzida, o sistema é informado de que a saída está correta. Esse tipo de aprendizado permite que o sistema aprenda com o ambiente e as experiências.
Um exemplo disso pode ser visto no Spotify. O aplicativo Spotify faz uma recomendação de músicas que os usuários devem dar um polegar para cima ou para baixo. Com base na seleção, o aplicativo Spotify aprende o gosto musical dos usuários.
Ciclo de vida de um projeto de aprendizado de máquina
O ciclo de vida de um cronograma de entregas de projeto de Machine Learning geralmente aparece assim:
Configuração do plano de projeto de ML
- Defina a tarefa e os requisitos
- Identifique a viabilidade do projeto
- Discutir as compensações gerais do modelo
- Criar uma base de código do projeto
Coleta e rotulagem de dados
- Crie a documentação de rotulagem
- Crie o pipeline de ingestão de dados
- Validação da qualidade dos dados
Exploração do modelo
- Estabeleça a linha de base para o desempenho do modelo
- Criar um modelo simples com pipeline de dados inicial
- Tente ideias paralelas durante os estágios iniciais
- Encontre o modelo SoTA para o domínio do problema, se houver, e reproduza os resultados.
Refinamento do Modelo
- Faça otimizações centradas em modelos
- Depure modelos à medida que a complexidade é adicionada
- Conduza a análise de erros para descobrir os modos de falha.
Testar e avaliar
- Avalie o modelo na distribuição de teste
- Revisite a métrica de avaliação do modelo, garantindo que ela impulsione o comportamento desejável do usuário
- Escreva testes para – função de inferência do modelo, pipeline de dados de entrada, cenários explícitos esperados na produção.
Implantação do Modelo
- Expor o modelo por meio da API REST
- Implante o novo modelo em um subconjunto de usuários para garantir que tudo esteja tranquilo antes do lançamento final.
- Ter a capacidade de reverter os modelos para sua versão anterior
- Monitore os dados ao vivo.
Manutenção do modelo
- Retreinar o modelo para evitar a obsolescência do modelo
- Educar a equipe se houver uma transferência na propriedade do modelo
Como estimar o escopo de um projeto de aprendizado de máquina?
A equipe do Appinventiv Machine Learning depois de examinar o tipo de Machine Learning e o ciclo de vida de desenvolvimento passa a definir a estimativa do projeto do aplicativo Machine Learning do projeto seguindo estas fases:
Fase 1 – Descoberta (7 a 14 dias)
O roteiro do plano de projeto de ML começa com a definição de um problema. Analisa as questões e ineficiências operacionais que devem ser abordadas.
O objetivo aqui é identificar os requisitos e verificar se o Machine Learning atende às metas de negócios . O estágio exige que nossos engenheiros se reúnam com os empresários do lado do cliente para entender sua visão em termos de quais problemas eles estão procurando resolver.
Em segundo lugar, a equipe de desenvolvimento deve identificar que tipo de dados eles possuem e se eles precisariam buscá-los em um serviço externo.
Em seguida, os desenvolvedores precisam avaliar se são capazes de supervisionar algoritmos – se ele retorna a resposta correta toda vez que uma previsão é feita.
Entregável – Uma Declaração do Problema que definiria se um projeto é trivial ou complexo.
Fase 2 - Exploração (6 a 8 semanas)
O objetivo deste estágio é construir uma Prova de Conceito que pode ser instalada como API. Depois que um modelo de linha de base é treinado, nossa equipe de especialistas em ML estima o desempenho da solução pronta para produção.
Este estágio nos dá clareza sobre qual desempenho deve ser esperado com as métricas planejadas no estágio de descoberta.
Entregável - Uma Prova de Conceito
Fase 3 - Desenvolvimento (4+ meses)
Esta é a etapa em que a equipe trabalha iterativamente até chegar a uma resposta pronta para produção. Como há muito menos incertezas quando o projeto atinge esse estágio, a estimativa fica muito precisa.
Mas caso o resultado não seja melhorado, os desenvolvedores teriam que aplicar um modelo diferente ou retrabalhar os dados ou até mesmo mudar o método, se necessário.
Nesta fase, nossos desenvolvedores trabalham em sprints e decidem o que deve ser feito após cada iteração individual. Os resultados de cada sprint podem ser previstos de forma eficaz.
Embora o resultado do sprint possa ser previsto de forma eficaz, o planejamento de sprints com antecedência pode ser um erro no caso de Machine Learning, pois você estará trabalhando em águas desconhecidas.
Entregável – Uma solução de ML pronta para produção
Fase 4 - Melhoria (contínua)
Uma vez implantado, os tomadores de decisão estão quase sempre com pressa para encerrar o projeto para economizar custos. Embora a fórmula funcione em 80% dos projetos, o mesmo não se aplica em aplicativos de Machine Learning.
O que acontece é que os dados mudam em toda a linha do tempo do projeto de Machine Learning. Esta é a razão pela qual um modelo de IA deve ser monitorado e revisado constantemente – para salvá-lo da degradação e fornecer uma IA segura, permitindo o desenvolvimento de aplicativos móveis .
Os projetos centrados em Machine Learning exigem tempo para alcançar resultados satisfatórios. Mesmo quando você encontra seus algoritmos superando os benchmarks desde o início, é provável que eles sejam um strike e o programa possa se perder quando usado em um conjunto de dados diferente.
Fatores que afetam o custo geral
A maneira de desenvolver um sistema de aprendizado de máquina tem algumas características distintivas, como problemas relacionados a dados e fatores relacionados ao desempenho que decidem a última despesa.
Problemas relacionados a dados
O desenvolvimento de aprendizado de máquina confiável depende não apenas de codificação fenomenal, mas a qualidade e a quantidade das informações de treinamento também desempenham um papel crucial.
- Falta de dados adequados
- Extrair Complexo, Transformar, Carregar Procedimentos
- Processamento de dados não estruturados
Problemas relacionados ao desempenho
O desempenho adequado do algoritmo é outro fator de custo importante, pois um algoritmo de alta qualidade requer várias rodadas de sessões de ajuste.
- A taxa de precisão varia
- Desempenho de Algoritmos de Processamento
Como estimamos o custo de um projeto de aprendizado de máquina?
Quando falamos sobre a estimativa de custo de um projeto de machine learning, é importante identificar primeiro de qual tipo de projeto se fala.
Existem basicamente três tipos de projetos de Aprendizado de Máquina , que desempenham um papel em responder quanto custa o Aprendizado de Máquina:
Primeiro – Este tipo já tem uma solução – ambos: arquitetura de modelo e conjunto de dados já existe. Esses tipos de projetos são praticamente gratuitos, então não vamos falar sobre eles.
Segundo – Esses projetos precisam de pesquisa fundamental – aplicação de ML em um domínio completamente novo ou em estruturas de dados diferentes em comparação com os modelos convencionais. O custo desses tipos de projeto geralmente é aquele que a maioria das startups não pode pagar.
Terceiro – Estes são os que vamos focar em nossa estimativa de custos. Aqui, você pega a arquitetura do modelo e os algoritmos que já existem e os altera para se adequar aos dados em que está trabalhando.
Vamos agora para a parte em que estimamos o custo do projeto de ML.
O custo dos dados
Os dados são a moeda principal de um projeto de Machine Learning. A maioria das soluções e pesquisas se concentra nas variações do modelo de aprendizado supervisionado. É um fato bem conhecido que quanto mais profundo for o aprendizado supervisionado, maior será a necessidade de dados anotados e, por sua vez, maior será o custo de desenvolvimento do aplicativo Machine Learning .
Agora, enquanto serviços como Scale e Mechanical Turk da Amazon podem ajudá-lo com a coleta e anotação de dados, e a Qualidade?
Pode ser extremamente demorado verificar e corrigir as amostras de dados. A solução para o problema é dupla – terceirizar a coleta de dados ou refiná-la internamente.
Você deve terceirizar a maior parte do trabalho de validação e refinamento de dados e, em seguida, nomear uma ou duas pessoas internas para limpar as amostras de dados e rotulá-las.
O custo da pesquisa
A parte de pesquisa do projeto, como compartilhamos acima, trata do estudo de viabilidade de nível de entrada, pesquisa de algoritmo e fase de experimentação. A informação que normalmente vem de um Workshop de Entrega de Produto . Basicamente, a fase exploratória é aquela pela qual todo projeto passa antes de sua produção.
Completar a etapa com a máxima perfeição é um processo que vem com um número anexado no custo de implementação da discussão de ML.
O custo de produção
A parte de produção do custo do projeto de Machine Learning é composta pelo custo de infraestrutura, custo de integração e custo de manutenção. Desses custos, você terá que fazer o menor gasto com a computação em nuvem. Mas isso também varia de acordo com a complexidade de um algoritmo para outro.
O custo de integração varia de um caso de uso para outro. Normalmente, basta colocar um endpoint de API na nuvem e documentá-lo para ser usado pelo restante do sistema.
Um fator-chave que as pessoas tendem a ignorar ao desenvolver um projeto de aprendizado de máquina é a necessidade de passar por suporte contínuo durante todo o ciclo de vida do projeto. Os dados que vêm de APIs devem ser limpos e anotados corretamente. Em seguida, os modelos devem ser treinados em novos dados e testados, implantados.
Além dos pontos mencionados acima, há mais dois fatores que têm importância na estimativa do custo para desenvolver um aplicativo de IA/aplicativo de ML .
Desafios no desenvolvimento de aplicativos de aprendizado de máquina
Normalmente, quando uma estimativa de projeto de aplicativo de aprendizado de máquina é feita, os desafios de desenvolvimento associados a ela também são levados em consideração. Mas pode haver casos em que os desafios são encontrados no meio do processo de desenvolvimento de aplicativos com ML. Em casos como esses, a estimativa geral de tempo e custo aumenta automaticamente.
Os desafios para projetos de Machine Learning podem variar de:
- Decidir qual conjunto de recursos se tornaria recursos de aprendizado de máquina
- Déficit de talentos no domínio de IA e Machine Learning
- Adquirir conjuntos de dados é caro
- Leva tempo para alcançar resultados satisfatórios
Conclusão
Estimar a mão de obra e o tempo necessários para concluir um projeto de software é relativamente fácil quando ele é desenvolvido com base em projetos modulares e é gerenciado por uma equipe experiente seguindo uma abordagem ágil . O mesmo, no entanto, se torna ainda mais difícil quando você trabalha na criação da estimativa de projeto de aplicativo de aprendizado de máquina inteligente de tempo e esforço.
Mesmo que os objetivos possam ser bem definidos, a garantia de que um modelo alcançaria ou não o resultado desejado não existe. Normalmente, não é possível diminuir o escopo e, em seguida, executar o projeto em uma configuração de caixa de tempo por meio de uma data de entrega predefinida.
É de primordial importância que você identifique que haverá incertezas. Uma abordagem que pode ajudar a mitigar atrasos é garantir que os dados de entrada estejam no formato correto para o Machine Learning.
Mas, em última análise, não importa qual abordagem você planeja seguir, ela só será considerada bem-sucedida quando você fizer parceria com uma agência de desenvolvimento de aplicativos de aprendizado de máquina que saiba como desenvolver e implantar as complexidades em sua forma mais simples.
Perguntas frequentes sobre a estimativa de projeto do aplicativo Machine Learning
P. Por que usar o Machine Learning no desenvolvimento de um aplicativo?
Há uma série de benefícios que as empresas podem aproveitar com a incorporação do Machine Learning em seus aplicativos móveis. Alguns dos mais prevalentes estão na frente de marketing de aplicativos –
- Oferecendo experiência personalizada
- Busca Avançada
- Prevendo o comportamento do usuário
- Maior envolvimento do usuário
P. Como o aprendizado de máquina pode ajudar sua empresa?
Os benefícios do Machine Learning para as empresas vão além de marcá-las como uma marca disruptiva. Isso se reflete em suas ofertas se tornando mais personalizadas e em tempo real.
O Machine Learning pode ser a fórmula secreta que aproxima as empresas de seus clientes, exatamente como eles querem ser abordados.
P. Como estimar o ROI no desenvolvimento de um projeto de Machine Learning?
Embora o artigo tenha ajudado você a estabelecer a estimativa do projeto do aplicativo Machine Learning, calcular o ROI é um jogo diferente. Você terá que levar em consideração o custo de oportunidade no mix também. Além disso, você terá que analisar a expectativa que sua empresa tem do projeto.
P. Qual plataforma é melhor para um projeto de ML?
Sua escolha de se conectar com uma empresa de desenvolvimento de aplicativos Android ou com desenvolvedores iOS dependerá inteiramente de sua base de usuários e da intenção – seja ela lucrativa ou centrada em valor.