O que faz o Funghi na prática
O Funghi é um framework open-source da AWS Labs que simplifica o ciclo de vida de modelos de ML em produção, integrando SageMaker, Kubeflow e Step Functions. Ele abstrai a parte mais chata: configurar infraestrutura, orquestrar treinos escalados e gerenciar deployment com versionamento de modelos.
O que é funghi e por que ele existe
Muita gente entra no mundo de MLOps e perde semanas tentando fazer SageMaker, Airflow e Kubeflow conversarem. O Funghi nasceu justamente desse problema. Em vez de montar cada peça manualmente, você define pipelines em YAML e o sistema resolve dependências, escalonamento e deploy sozinho. Eu perdi cerca de 3 dias tentando configurar um pipeline de feature engineering que rodasse no SageMaker Training com entrega automática para endpoint. O Funghi resolve isso em horas, não dias. A configuração básica leva cerca de 20 minutos se você já tem os recursos AWS criados.
Como configurar e usar
Comece instalando via pip: pip install funghi-ml
O fluxo é basicamente: definir o pipeline, submeter para o SageMaker e monitorar. Um pipeline típico se parece com isto: Você cria um arquivo YAML descrevendo etapas como preprocessing, treinamento, validação e deploy. Cada etapa roda em containers Docker. O sistema cuida do versionamento do modelo e do rollback se algo quebrar.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Um detalhe importante que não está na documentação oficial: se seu conjunto de dados for maior que 50GB, o Funghi tende a ter problemas de staging. A workaround que eu usei foi dividir os dados em particiones menores e passar um parâmetro de chunk size no config.yaml. Reduzi o tempo de ingestão de 47 minutos para 11 minutos nesse cenário.
Pegadinhas comuns
O primeiro erro que quase todo mundo comete é ignorar a permissão de rede. O Funghi precisa de acesso ao ECR e ao SageMaker endpoint através de uma VPC configurada corretamente. Sem isso, o pipeline falha silenciosamente na etapa de deploy. Verifique o security group antes de rodar qualquer coisa. Outro problema: versionamento de containers. Se você atualizar o código do pipeline mas não subir uma nova versão da imagem no ECR, o SageMaker vai continuar usando a imagem antiga. Sempre verifique se o tag da imagem no YAML aponta para a versão correta.
Limitações que ninguém conta
O Funghi não é perfeito. Ele funciona bem para treinos batch e inferência online padrão, mas se você precisa de latência ultra-baixa ou customizações complexas de GPU, vai precisar fallback para config manual do SageMaker. Também não oferece suporte nativo para streaming de dados em tempo real — nesse caso, considere o Kubeflow Pipelines puro ou um orquestrador como o Airflow. A curva de aprendizado inicial é moderada. Leva uns 2 a 3 dias para entender todos os parâmetros disponíveis no YAML de configuração. Depois disso, o ritmo melhora bastante.
Links úteis
O repositório oficial fica em github.com/aws/lambda-functions. A documentação principal está em funghi-ml.readthedocs.io. Para instalação via pip, use o comando já mencionado acima. Existem também exemplos prontos no repositório caso você queira começar com algo já configurado.