TrueML #22 - Plataforma de Machine Learning e LLMs @ Voiceflow

Built for Speed: ~10ms Latency, Even Under Load
Blazingly fast way to build, track and deploy your models!
- Handles 350+ RPS on just 1 vCPU — no tuning needed
- Production-ready with full enterprise support
Estamos de volta com mais um episódio do True ML Talks. Neste, aprofundamos em Voiceflowa plataforma de ML da Voiceflow, bem como os LLMs, e estamos conversando com Denys Linkov
Denys lidera a equipe de machine learning aqui na Voiceflow. Ele ingressou como o engenheiro de ML fundador. Antes disso, ele trabalhou como arquiteto sênior de nuvem para um banco global, atuando em sistemas de dados, MLOps e infraestrutura central.
📌
Nossas conversas com Adhitihya abordarão os seguintes aspectos:
- Machine Learning na Voiceflow
- A Jornada de MLOps da Voiceflow
- Automatização da implantação e observabilidade de modelos para reduzir a troca de contexto e melhorar a eficiência
- Pipeline de inferência em tempo real: Benefícios e desafios
- A abordagem da Voiceflow para IA generativa
Assista ao episódio completo abaixo:
Machine Learning na Voiceflow
Voiceflow é uma plataforma no-code que permite às empresas construir e implantar aplicações de IA conversacional. Pode ser usada para criar chatbots, assistentes virtuais e outras interfaces conversacionais para uma ampla gama de indústrias, incluindo:
- E-commerce
- Imobiliário
- Bancário
- Automotivo
- Serviços Públicos
- Governo
O modelo NLU da Voiceflow é capaz de cobrir uma ampla gama de indústrias porque é treinado em um vasto conjunto de dados de texto e código de diversas fontes. Isso permite que a Voiceflow compreenda e responda a uma vasta gama de consultas em linguagem natural, independentemente da indústria.
Por exemplo: Um chatbot da Voiceflow poderia ser usado por uma empresa de e-commerce para ajudar clientes a encontrar produtos, responder a perguntas sobre produtos e fazer pedidos. Um chatbot da Voiceflow também poderia ser usado por uma imobiliária para ajudar potenciais compradores a encontrar casas, agendar visitas com agentes e aprender sobre o processo de compra de imóveis.
Um dos desafios de construir um modelo NLU que possa cobrir todas essas indústrias é que cada indústria tem sua própria linguagem e jargão únicos. No entanto, o modelo NLU da Voiceflow é capaz de aprender essas diferenças ao longo do tempo, à medida que é exposto a mais dados de diferentes indústrias.
A Jornada MLOps da Voiceflow: Construindo e Implementando Modelos de Machine Learning para IA Conversacional
Um dos primeiros desafios que a Voiceflow enfrentou foi decidir se construiria seus próprios modelos ou usaria modelos externos. A Voiceflow decidiu explorar ambas as opções e construiu alguns protótipos. A primeira funcionalidade que a Voiceflow construiu foi a geração de enunciados, que usa machine learning para gerar exemplos que um usuário precisa adicionar para enriquecer seu próprio modelo de dados.
Para implementar o modelo de geração de enunciados em produção, a Voiceflow construiu sua plataforma MLOps. O objetivo da plataforma era ser capaz de implementar vários experimentos em produção muito rapidamente, bem como gerenciar os ambientes.
O modelo de geração de enunciados foi o primeiro a ser descontinuado com o lançamento do ChatGPT, que é um modelo generativo mais avançado. Isso ensinou à Voiceflow a importância de ser flexível e estar disposta a descontinuar seus próprios desenvolvimentos, se necessário, a fim de focar no que é melhor para a experiência do cliente.
A Voiceflow também discute a enorme mudança que ocorreu no espaço da IA conversacional desde o lançamento de modelos baseados em GPT ajustados por instruções. A Voiceflow admite que foi um erro estratégico não ter pensado em usar o GPT-3 na época, mas também aprendeu que é importante ser adaptável e estar disposta a mudar sua abordagem à medida que o campo evolui.
Aqui está um blog que você pode ler sobre Criando o NLU da Voiceflow:
eAutomatizando a implementação e observabilidade de modelos para reduzir a troca de contexto e melhorar a eficiência
No processo tradicional de desenvolvimento de machine learning, os cientistas de dados treinam modelos em notebooks Jupyter e depois os entregam a engenheiros de machine learning ou engenheiros de backend para implementá-los em produção. Isso pode levar a trocas de contexto e atrasos, pois os engenheiros precisam entender o modelo e os dados para implementá-lo com sucesso.
Automatizar a implementação e observabilidade de modelos
Uma forma de abordar este desafio é automatizar a implantação e a observabilidade de modelos. Isso pode ser feito criando um conjunto de ferramentas e processos que permitem aos cientistas de dados implantar e monitorar seus modelos em produção sem a necessidade de envolver outros engenheiros.
Um exemplo disso é usar uma plataforma baseada em nuvem que oferece serviços gerenciados para implantação e observabilidade de modelos. Essas plataformas podem fornecer uma variedade de recursos, como:
- Implantação e escalonamento automático de modelos
- Monitoramento de modelos em tempo real
- Detecção de desvio e alertas
- Versionamento e reversão de modelos
Desenvolva suas próprias ferramentas e processos personalizados
Outra abordagem para automatizar a implantação e a observabilidade de modelos é desenvolver suas próprias ferramentas e processos personalizados. Isso pode oferecer mais flexibilidade e controle, mas também exige mais investimento.
Aqui está um exemplo específico de como uma empresa automatizou a implantação e a observabilidade de modelos usando esta abordagem:
- Criar um conjunto de scripts automatizados que configurariam um ambiente de nuvem com todos os serviços necessários para implantar e monitorar seus modelos.
- Desenvolver uma ferramenta CLI que facilitasse a implantação de novos modelos no ambiente de nuvem.
- A ferramenta CLI criaria automaticamente todas as pastas e arquivos Terraform necessários para implantar o modelo.
- A ferramenta CLI também especificaria o ambiente no qual o modelo seria implantado.
Essa automação permitiu que os cientistas de dados da empresa implantassem e monitorassem seus modelos em produção sem a necessidade de envolver outros engenheiros.
Desafios de desenvolver suas próprias ferramentas e processos personalizados
Existem também alguns desafios que precisam ser considerados ao desenvolver suas próprias ferramentas e processos personalizados para implantação e observabilidade de modelos:
- Complexidade: Desenvolver suas próprias ferramentas e processos personalizados pode ser complexo e demorado.
- Depuração: Pode ser difícil depurar problemas quando eles ocorrem, especialmente se os cientistas de dados não tiverem visibilidade total dos pipelines que foram construídos.
- Manutenção: Ferramentas e processos personalizados exigem manutenção e suporte contínuos.
Como mitigar os desafios
Há algumas coisas que podem ser feitas para mitigar os desafios de desenvolver suas próprias ferramentas e processos personalizados para implantação de modelos e observabilidade:
- Comece pequeno: Comece desenvolvendo um conjunto básico de ferramentas e processos que atendam às suas necessidades imediatas. Você pode então adicionar mais recursos e funcionalidades ao longo do tempo.
- Use ferramentas e bibliotecas de código aberto: Existem várias ferramentas e bibliotecas de código aberto disponíveis que podem ajudá-lo a desenvolver suas próprias ferramentas e processos personalizados. Usar essas ferramentas e bibliotecas pode reduzir a quantidade de trabalho de desenvolvimento necessário.
- Documente suas ferramentas e processos: Documente minuciosamente suas ferramentas e processos para que cientistas de dados e outros engenheiros possam compreendê-los e usá-los facilmente.
- Ofereça treinamento e suporte: Ofereça treinamento e suporte a cientistas de dados e outros engenheiros sobre como usar suas ferramentas e processos personalizados.
Pipeline de inferência em tempo real: Benefícios e desafios
Pipelines de inferência em tempo real oferecem uma série de benefícios, incluindo:
- Menor latência: Pipelines de inferência em tempo real podem entregar previsões aos usuários com atraso mínimo.
- Maior escalabilidade: Pipelines de inferência em tempo real podem ser escalados para cima ou para baixo para atender à demanda, tornando-os ideais para aplicações de alto volume.
- Flexibilidade aprimorada: Pipelines de inferência em tempo real podem ser usados para implementar uma variedade de modelos de aprendizado de máquina, incluindo classificação, regressão e detecção de objetos.
No entanto, os pipelines de inferência em tempo real também apresentam alguns desafios, tais como:
- Maior complexidade: Pipelines de inferência em tempo real podem ser complexos de projetar e implementar, exigindo experiência em aprendizado de máquina, sistemas distribuídos e infraestrutura.
- Maior custo: Pipelines de inferência em tempo real podem ser mais caros de operar do que pipelines de inferência em lote, devido à necessidade de hardware e infraestrutura mais potentes.
- Maior risco de erros: Pipelines de inferência em tempo real podem ser mais propensos a erros do que pipelines de inferência em lote, devido à necessidade de processar dados e gerar previsões em tempo real.
Autoescalonamento em um pipeline de aprendizado de máquina em tempo real
Um dos desafios de construir e implantar um pipeline de aprendizado de máquina em tempo real é como autoescalonar o sistema para lidar com mudanças no tráfego. Há vários fatores a serem considerados, como a previsibilidade dos padrões de tráfego, os requisitos de latência dos modelos e a complexidade do algoritmo de autoescalonamento.
Uma abordagem para autoescalonar um pipeline de aprendizado de máquina em tempo real é usar um sistema de filas. Isso permite desacoplar os produtores (que geram as requisições de inferência) dos consumidores (que processam as requisições de inferência). Isso oferece mais flexibilidade na forma como você escala o sistema.
Para autoescalonar um sistema baseado em filas, você pode usar uma variedade de métricas, como o número de mensagens na fila, a latência média das requisições ou a utilização da CPU dos workers. Você também pode usar uma combinação dessas métricas.
É importante ajustar cuidadosamente o algoritmo de autoescalonamento para evitar o superescalonamento ou o subescalonamento do sistema. O superescalonamento pode levar ao desperdício de recursos, enquanto o subescalonamento pode levar a problemas de desempenho.
Aqui estão algumas considerações adicionais sobre o autoescalonamento de um sistema baseado em filas para inferência em tempo real:
- Use uma plataforma baseada em nuvem: Plataformas baseadas em nuvem podem facilitar o autoescalonamento do seu sistema à medida que seus padrões de tráfego mudam. Por exemplo, você pode usar um balanceador de carga baseado em nuvem para distribuir o tráfego entre seus pods e escalar o número de pods para cima ou para baixo conforme necessário.
- Use um sistema de filas que suporte autoescalonamento: Alguns sistemas de filas suportam autoescalonamento, o que significa que eles podem escalar automaticamente o número de workers para cima ou para baixo com base no número de mensagens na fila. Isso pode ajudar a garantir que seu sistema possa lidar com picos de tráfego sem qualquer intervenção manual.
- Monitore seu sistema: É importante monitorar seu sistema de perto para identificar quaisquer problemas com o autoescalonamento. Por exemplo, você pode precisar ajustar os limites que acionam o escalonamento para cima ou para baixo, ou pode precisar identificar e resolver gargalos específicos em seu sistema.
Servidores de modelo para sistemas em tempo real sensíveis à latência
A escolha de um servidor de modelos para aplicações sensíveis à latência pode ser desafiadora por várias razões. Primeiro, existem muitos servidores de modelos diferentes disponíveis, cada um com seus próprios pontos fortes e fracos. Segundo, os requisitos para aplicações sensíveis à latência podem variar amplamente dependendo da aplicação específica e dos tipos de modelos utilizados. Finalmente, muitas vezes é difícil prever como um servidor de modelos se comportará em um ambiente de produção.
Fatores a considerar
Ao escolher um servidor de modelos para uma aplicação sensível à latência, é importante considerar os seguintes fatores:
- Latência do modelo: A latência do servidor de modelos deve ser baixa o suficiente para atender aos requisitos da aplicação.
- Escalabilidade: O servidor de modelos deve ser capaz de escalar para atender às demandas de tráfego da aplicação.
- Flexibilidade: O servidor de modelos deve ser flexível o suficiente para suportar as necessidades específicas da aplicação, como diferentes frameworks e plataformas de hardware.
- Facilidade de uso: O servidor de modelos deve ser fácil de usar e gerenciar.
- Benchmarks: É importante realizar benchmarks em diferentes servidores de modelos para ver qual deles tem o melhor desempenho para as suas necessidades específicas.
- Suporte: Considere o nível de suporte disponível para o servidor de modelos.
- Comunidade: Considere o tamanho e a atividade da comunidade em torno do servidor de modelos.
💡
Outros insights sobre a plataforma de ML na Voiceflow:
A Voiceflow utiliza uma combinação de AWS e GCP, já que diferentes clientes empresariais têm requisitos distintos. Eles ainda não exploraram o uso de Karpenter ou Autopilot, pois já estavam construindo sua infraestrutura quando esses recursos foram lançados. Eles também precisam usar GPUs T4 para muitas de suas cargas de trabalho, que não são ideais para o Autopilot. No geral, eles estão priorizando o tempo de engenharia por enquanto e eventualmente migrarão para soluções de infraestrutura mais avançadas à medida que escalarem.
A abordagem da Voiceflow à IA generativa
A Voiceflow está adotando uma abordagem cautelosa em relação à IA generativa de código aberto. Eles estão cientes dos potenciais benefícios desses modelos, mas também dos desafios envolvidos. Estão comprometidos em oferecer a melhor experiência possível aos seus usuários e mudarão para modelos de código aberto quando for o momento certo para o seu negócio.
Desafios da IA generativa de código aberto
Existem alguns desafios associados à IA generativa de código aberto:
- Evolução rápida: Os modelos de IA generativa de código aberto estão evoluindo rapidamente, o que pode dificultar o acompanhamento das otimizações mais recentes.
- Custo: Os modelos de IA generativa de código aberto podem ser computacionalmente caros para treinar e implementar.
- Suporte: Os modelos de IA generativa de código aberto podem não ter o mesmo nível de suporte que os modelos proprietários.
Benefícios da IA generativa de código aberto
Apesar dos desafios, os modelos de IA generativa de código aberto também oferecem uma série de benefícios:
- Transparência: Os modelos de IA generativa de código aberto são mais transparentes que os modelos proprietários, o que significa que os usuários podem entender melhor como funcionam e confiar nos resultados.
- Reprodutibilidade: Os modelos de IA generativa de código aberto são mais reprodutíveis que os modelos proprietários, o que significa que os usuários podem replicar os resultados de experimentos e compartilhar seu trabalho com outras pessoas.
- Personalização: Os modelos de IA generativa de código aberto podem ser personalizados e estendidos para atender a necessidades específicas.
Gerenciamento da latência
A latência é um fator crítico a considerar ao escolher um modelo para um sistema de geração aumentada por recuperação. A melhor abordagem é dar aos usuários uma escolha de modelos para usar e fornecer orientação sobre o que usar para diferentes tarefas.
Por exemplo, se a latência for o fator mais importante, então é recomendável usar uma abordagem baseada em NLU com enunciados intensos e respostas estáticas. Os modelos NLU são tipicamente muito mais rápidos que os modelos generativos, e as respostas estáticas podem ser entregues com latência muito baixa.
Se o usuário precisar de maior precisão ou melhor formatação, então é recomendável usar um modelo generativo como o GPT-4. Os modelos generativos são mais poderosos que os modelos NLU e podem gerar texto mais natural e envolvente. No entanto, é importante notar que os modelos generativos também são muito mais lentos que os modelos NLU.
Outra forma de reduzir a latência é usar uma arquitetura distribuída. Numa arquitetura distribuída, as tarefas de recuperação e geração são realizadas em servidores separados. Isso permite que o sistema seja dimensionado para atender às necessidades até das aplicações mais exigentes.
Construindo um Sistema de Geração Aumentada por Recuperação de Alto Desempenho
Os sistemas de geração aumentada por recuperação (RAG) são uma nova e poderosa abordagem para a geração de texto que combinam os pontos fortes dos modelos de recuperação e generativos. Os sistemas RAG funcionam primeiro recuperando passagens relevantes de uma base de conhecimento e depois usando um modelo generativo para gerar texto com base nas passagens recuperadas.
Os sistemas RAG podem ser usados para uma variedade de tarefas, incluindo resposta a perguntas, sumarização e escrita criativa. No entanto, construir um sistema RAG de alto desempenho pode ser desafiador.
Nesta publicação do blog, discutimos alguns dos fatores-chave a considerar ao construir um sistema RAG, incluindo:
- Seleção do modelo: Há uma variedade de modelos de recuperação e generativos disponíveis. É importante escolher modelos que sejam apropriados para as suas necessidades específicas. Por exemplo, se precisar de gerar texto numa língua específica, então terá de escolher um modelo que tenha sido treinado em texto nessa língua.
- Seleção de dados: A qualidade dos dados que utiliza para treinar o seu sistema terá um impacto significativo no seu desempenho. É importante escolher dados que sejam relevantes para as suas tarefas-alvo e que estejam livres de erros.
- Seleção de hardware: O hardware que utiliza também terá um impacto significativo no desempenho do seu sistema. Por exemplo, usar GPUs pode acelerar significativamente as tarefas de recuperação e geração.
- Arquitetura do sistema: Os sistemas RAG podem ser implementados de várias formas diferentes. É importante escolher uma arquitetura de sistema que seja apropriada para as suas necessidades específicas. Por exemplo, se precisar de implementar o seu sistema em produção, então terá de escolher uma arquitetura que seja escalável e fiável.
Além dos fatores mencionados acima, é também importante ter em mente que os sistemas RAG são complexos e podem ser difíceis de generalizar. O domínio e o caso de uso de cada utilizador serão diferentes, por isso é importante dar aos utilizadores o poder de testar os seus próprios prompts, processamento e estratégias de segmentação. Isso permitirá que os utilizadores personalizem o sistema para atender às suas necessidades específicas.
Aqui pode ler mais sobre como implementar uma arquitetura RAG no TrueFoundry:
Transição para a IA Generativa: Desafios e Oportunidades
Empresas que construíram soluções baseadas em PNL usando métodos tradicionais agora enfrentam o desafio de fazer a transição para a IA generativa. Modelos de IA generativa, como GPT-4 e LaMDA, oferecem diversas vantagens sobre os métodos tradicionais, incluindo a capacidade de gerar texto, traduzir idiomas e responder a perguntas de forma abrangente e informativa. No entanto, também existem diversos desafios associados à transição para a IA generativa.
Um desafio é que os modelos de IA generativa ainda estão em desenvolvimento e podem ser caros de usar. Além disso, o conceito de criação de prompts ainda é bastante ambíguo e desafiador. As empresas precisam ser capazes de desenvolver técnicas eficazes de criação de prompts para tirar o máximo proveito dos modelos de IA generativa.
Outro desafio é integrar os modelos de IA generativa na infraestrutura existente. As empresas precisam garantir que seus sistemas possam lidar com a carga e a complexidade aumentadas dos modelos de IA generativa.
Apesar dos desafios, também existem diversas oportunidades associadas à transição para a IA generativa. Os modelos de IA generativa podem ajudar as empresas a melhorar a qualidade de seus produtos e serviços, automatizar tarefas e criar novos produtos e serviços.
Aqui estão algumas dicas para empresas que estão fazendo a transição para a IA generativa:
- Comece avaliando suas necessidades. Quais são as tarefas específicas que você precisa que os modelos de IA generativa executem? Quais são suas restrições orçamentárias? Depois de ter uma boa compreensão de suas necessidades, você pode começar a identificar os modelos de IA generativa certos para o seu caso de uso.
- Experimente diferentes modelos e técnicas. Não existe uma abordagem única para todos para a transição para a IA generativa. As empresas precisam experimentar diferentes modelos e técnicas para encontrar o que funciona melhor para elas.
- Integre modelos de IA generativa em sua infraestrutura existente. As empresas precisam garantir que seus sistemas possam lidar com a carga e a complexidade aumentadas dos modelos de IA generativa. Isso pode exigir o dimensionamento de sua infraestrutura ou a realização de alterações em seu software.
- Treine sua equipe. Os modelos de IA generativa são ferramentas poderosas, mas também podem ser complexos de usar. As empresas precisam treinar sua equipe sobre como usar os modelos de IA generativa de forma eficaz.
A transição para a IA generativa pode ser um desafio, mas também é uma oportunidade para as empresas melhorarem seus produtos e serviços e criarem novos produtos e serviços. Ao seguir as dicas acima, as empresas podem tornar a transição para a IA generativa o mais tranquila e bem-sucedida possível.
Leia nossos blogs anteriores da Série TrueML
Continue assistindo à TrueML série do YouTube e lendo todos os TrueML série do blog.
TrueFoundry é uma PaaS de Implantação de ML sobre Kubernetes para acelerar os fluxos de trabalho dos desenvolvedores, permitindo-lhes total flexibilidade no teste e implantação de modelos, ao mesmo tempo que garante total segurança e controle para a equipe de Infraestrutura. Através da nossa plataforma, capacitamos as equipes de Machine Learning a implantar e monitorar modelos em 15 minutos com 100% de confiabilidade, escalabilidade e a capacidade de reverter em segundos - permitindo-lhes economizar custos e lançar modelos em produção mais rapidamente, possibilitando a realização de valor de negócio real.
TrueFoundry AI Gateway delivers ~3–4 ms latency, handles 350+ RPS on 1 vCPU, scales horizontally with ease, and is production-ready, while LiteLLM suffers from high latency, struggles beyond moderate RPS, lacks built-in scaling, and is best for light or prototype workloads.
The fastest way to build, govern and scale your AI














.webp)






.webp)

.webp)
.webp)





.png)



