Desenvolver interfaces da Web para interagir com um modelo de aprendizado de máquina (ML) é uma tarefa tediosa. Com Iluminado, é fácil desenvolver aplicativos de demonstração para sua solução de ML. Iluminado é uma biblioteca Python de código aberto que facilita a criação e o compartilhamento de aplicativos da Web para ML e ciência de dados. Como cientista de dados, talvez você queira mostrar suas descobertas para um conjunto de dados ou implantar um modelo treinado. Os aplicativos Streamlit são úteis para apresentar o andamento de um projeto para sua equipe, obter e compartilhar insights com seus gerentes e até mesmo obter feedback dos clientes.
Com o ambiente de desenvolvimento integrado (IDE) da Estúdio Amazon SageMaker de Laboratório Jupyter 3, podemos criar, executar e servir aplicativos da Web Streamlit a partir desse mesmo ambiente para fins de desenvolvimento. Esta postagem descreve como criar e hospedar aplicativos Streamlit no Studio de maneira segura e reproduzível sem nenhum desenvolvimento front-end demorado. Como exemplo, usamos um costume Reconhecimento da Amazônia demo, que irá anotar e rotular uma imagem carregada. Isso servirá como ponto de partida e pode ser generalizado para demonstrar qualquer modelo de ML personalizado. O código para este blog pode ser encontrado neste Repositório GitHub.
Visão geral da solução
A seguir está o diagrama de arquitetura da nossa solução.
Um usuário primeiro acessa o Studio por meio do navegador. O Jupyter Server associado ao perfil do usuário é executado dentro da instância do Studio Amazon Elastic Compute Cloud (Amazon EC2). Dentro da instância do Studio EC2 existe o código de exemplo e a lista de dependências. O usuário pode executar o aplicativo Streamlit, app.py, no terminal do sistema. O Studio executa a IU do JupyterLab em um Jupyter Server, separado dos kernels do notebook. O Jupyter Server vem com um proxy e nos permite acessar nosso aplicativo Streamlit. Depois que o aplicativo estiver em execução, o usuário poderá iniciar uma sessão separada por meio do AWS Jupyter Proxy ajustando a URL.
Do ponto de vista da segurança, o AWS Jupyter Proxy é estendido pela autenticação da AWS. Contanto que um usuário tenha acesso à conta da AWS, ID de domínio do Studio e perfil de usuário, ele poderá acessar o link.
Criar estúdio usando o JupyterLab 3.0
O Studio com JupyterLab 3 deve ser instalado para que esta solução funcione. As versões mais antigas podem não oferecer suporte aos recursos descritos nesta postagem. Para mais informações, consulte Amazon SageMaker Studio e SageMaker Notebook Instance agora vêm com notebooks JupyterLab 3 para aumentar a produtividade do desenvolvedor. Por padrão, o Studio vem com o JupyterLab 3. Você deve verificar a versão e alterá-la se estiver executando uma versão mais antiga. Para mais informações, consulte Versão JupyterLab.
Você pode configurar o Studio usando o Kit de desenvolvimento em nuvem da AWS (AWSCDK); para mais informações, consulte Configure o Amazon SageMaker Studio com o Jupyter Lab 3 usando o AWS CDK. Como alternativa, você pode usar o console do SageMaker para alterar as configurações do domínio. Conclua as seguintes etapas:
- No console SageMaker, escolha domínios no painel de navegação.
- Selecione seu domínio e escolha Editar.
- Escolha Versão padrão do Jupyter Lab, verifique se a versão está definida como Laboratório Jupyter 3.0.
(Opcional) Crie um espaço compartilhado
Podemos usar o console SageMaker ou a AWS CLI para adicionar suporte para espaços compartilhados a um domínio existente seguindo as etapas nos documentos ou neste blog. Criar um espaço compartilhado na AWS tem os seguintes benefícios:
- Colaboração: um espaço compartilhado permite que vários usuários ou equipes colaborem em um projeto ou conjunto de recursos, sem a necessidade de duplicar dados ou infraestrutura.
- Economia de custos: em vez de cada usuário ou equipe criar e gerenciar seus próprios recursos, um espaço compartilhado pode ser mais econômico, pois os recursos podem ser agrupados e compartilhados entre vários usuários.
- Gerenciamento simplificado: com um espaço compartilhado, os administradores podem gerenciar recursos centralmente, em vez de gerenciar várias instâncias dos mesmos recursos para cada usuário ou equipe.
- Escalabilidade aprimorada: um espaço compartilhado pode ser ampliado ou reduzido com mais facilidade para atender às demandas em constante mudança, pois os recursos podem ser alocados dinamicamente para atender às necessidades de diferentes usuários ou equipes.
- Segurança aprimorada: ao centralizar os recursos em um espaço compartilhado, a segurança pode ser aprimorada, pois os controles de acesso e monitoramento podem ser aplicados de maneira mais fácil e consistente.
Instale as dependências e clone o exemplo no Studio
Em seguida, iniciamos o Studio e abrimos o terminal do sistema. Usamos o SageMaker IDE para clonar nosso exemplo e o terminal do sistema para iniciar nosso aplicativo. O código para este blog pode ser encontrado neste Repositório GitHub. Começamos com a clonagem do repositório:
Em seguida, abrimos o Terminal do sistema.
Depois de clonado, no terminal do sistema, instale as dependências para executar nosso código de exemplo executando o seguinte comando. Isso primeiro pip instalará as dependências executando pip install --no-cache-dir -r requirements.txt
. O no-cache-dir
flag desabilitará o cache. O cache ajuda a armazenar os arquivos de instalação (.whl
) dos módulos que você instala através do pip. Ele também armazena os arquivos de origem (.tar.gz
) para evitar o download novamente quando ainda não tiverem expirado. Se não houver espaço em nosso disco rígido ou se quisermos manter uma imagem do Docker o menor possível, podemos usar esse sinalizador para que o comando seja executado até a conclusão com uso mínimo de memória. Em seguida, o script instalará pacotes iproute
e jq
, que será usado na próxima etapa.sh setup.sh
Execute a demonstração do Streamlit e crie um link compartilhável
Para verificar se todas as dependências foram instaladas com êxito e visualizar a demonstração do Amazon Rekognition, execute o seguinte comando:
O número da porta que hospeda o aplicativo será exibido.
Observe que, durante o desenvolvimento, pode ser útil reexecutar automaticamente o script ao app.py
é modificado no disco. Para fazer, podemos modificar o runOnSave opção de configuração adicionando o --server.runOnSave true
flag ao nosso comando:
A captura de tela a seguir mostra um exemplo do que deve ser exibido no terminal.
No exemplo acima, vemos o número da porta, o ID do domínio e a URL do estúdio em que estamos executando nosso aplicativo. Por fim, podemos ver a URL que precisamos usar para acessar nosso aplicativo streamlit. Este script está modificando o URL do Studio, substituindo lab?
de proxy/[PORT NUMBER]/
. A demonstração do Rekognition Object Detection será exibida, conforme mostrado na captura de tela a seguir.
Agora que temos o aplicativo Streamlit funcionando, podemos compartilhar esse URL com qualquer pessoa que tenha acesso a esse ID de domínio e perfil de usuário do Studio. Para facilitar o compartilhamento dessas demonstrações, podemos verificar o status e listar todos os aplicativos streamlit em execução executando o seguinte comando: sh status.sh
Podemos usar scripts de ciclo de vida ou espaços compartilhados para estender esse trabalho. Em vez de executar manualmente os scripts de shell e instalar dependências, use scripts de ciclo de vida para agilizar este processo. Para desenvolver e estender este aplicativo com uma equipe e compartilhar painéis com colegas, use espaços compartilhados. Ao criar espaços compartilhados no Studio, os usuários podem colaborar no espaço compartilhado para desenvolver um aplicativo Streamlit em tempo real. Todos os recursos em um espaço compartilhado são filtrados e marcados, facilitando o foco em projetos de ML e o gerenciamento de custos. Consulte o código a seguir para criar seus próprios aplicativos no Studio.
Limpar
Assim que terminarmos de usar o aplicativo, queremos liberar as portas de escuta. Para obter todos os processos em execução streamlit e liberá-los para uso, podemos executar nosso script de limpeza: sh cleanup.sh
Conclusão
Nesta postagem, mostramos um exemplo completo de hospedagem de uma demonstração do Streamlit para uma tarefa de detecção de objetos usando o Amazon Rekognition. Detalhamos as motivações para criar aplicativos Web rápidos, as considerações de segurança e a configuração necessária para executar nosso próprio aplicativo Streamlit no Studio. Por fim, modificamos o padrão de URL em nosso navegador da Web para iniciar uma sessão separada por meio do AWS Jupyter Proxy.
Esta demonstração permite fazer upload de qualquer imagem e visualizar as saídas do Amazon Rekognition. Os resultados também são processados e você pode baixar um arquivo CSV com todas as caixas delimitadoras por meio do aplicativo. Você pode estender este trabalho para anotar e rotular seu próprio conjunto de dados ou modificar o código para mostrar seu modelo personalizado!
Sobre os autores
Dipika Khullar é um engenheiro de ML no Laboratório de soluções de ML da Amazon. Ela ajuda os clientes a integrar soluções de ML para resolver seus problemas de negócios. Mais recentemente, ela construiu pipelines de treinamento e inferência para clientes de mídia e modelos preditivos para marketing.
Marcelo Aberle é engenheiro de ML na organização AWS AI. Ele está liderando os esforços da MLOps no Laboratório de soluções de ML da Amazon, ajudando os clientes a projetar e implementar sistemas de ML escalonáveis. Sua missão é orientar os clientes em sua jornada de ML empresarial e acelerar seu caminho de ML para a produção.
Yash Shah é Gerente Científico da Laboratório de soluções de ML da Amazon. Ele e sua equipe de cientistas aplicados e engenheiros de ML trabalham em uma variedade de casos de uso de ML de saúde, esportes, automotivo e manufatura.
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- Platoblockchain. Inteligência Metaverso Web3. Conhecimento Ampliado. Acesse aqui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/build-streamlit-apps-in-amazon-sagemaker-studio/
- :é
- $UP
- 100
- 7
- a
- acima
- acelerar
- Acesso
- Conta
- em
- administradores
- AI
- Todos os Produtos
- alocado
- permite
- Amazon
- Amazon EC2
- Reconhecimento da Amazônia
- Amazon Sage Maker
- Estúdio Amazon SageMaker
- e
- qualquer um
- app
- aplicações
- aplicado
- Aplicativos
- arquitetura
- SOMOS
- AS
- aspecto
- associado
- At
- Autenticação
- automaticamente
- automotivo
- AWS
- BE
- Benefícios
- Blog
- impulsionar
- caixas
- navegador
- construir
- Prédio
- construído
- negócio
- by
- Esconderijo
- CAN
- casos
- alterar
- mudança
- verificar
- Escolha
- Na nuvem
- código
- colaborar
- como
- completar
- realização
- Computar
- Considerações
- cônsul
- controles
- relação custo-benefício
- custos
- crio
- Criar
- personalizadas
- Clientes
- dados,
- ciência de dados
- cientista de dados
- Padrão
- demandas
- Demos
- implantar
- Design
- detalhado
- Detecção
- desenvolver
- Developer
- em desenvolvimento
- Desenvolvimento
- diferente
- Estivador
- domínio
- down
- download
- distância
- dinamicamente
- cada
- mais fácil
- facilmente
- esforços
- end-to-end
- engenheiro
- Engenheiros
- Empreendimento
- Meio Ambiente
- Mesmo
- exemplo
- existente
- existe
- estender
- Funcionalidades
- retornos
- Envie o
- Arquivos
- Finalmente
- Primeiro nome
- Foco
- seguinte
- Escolha
- encontrado
- Gratuito
- da
- ganhando
- ter
- obtendo
- guia
- Queijos duros
- disco rígido
- Ter
- ter
- saúde
- útil
- ajuda
- ajuda
- hospedeiro
- hospedagem
- Como funciona o dobrador de carta de canal
- Como Negociar
- HTML
- HTTPS
- ID
- imagem
- executar
- melhorado
- in
- INFORMAÇÕES
- Infraestrutura
- iniciar
- insights
- instalar
- instalado
- instalando
- instância
- em vez disso
- integrar
- integrado
- interagir
- interfaces de
- IT
- viagem
- jpg
- Guarda
- laboratório
- O rótulo
- lançamento
- principal
- aprendizagem
- Biblioteca
- wifecycwe
- LINK
- Lista
- Escuta
- longo
- máquina
- aprendizado de máquina
- fazer
- FAZ
- Fazendo
- gerencia
- de grupos
- Gerente
- Gerentes
- gestão
- maneira
- manualmente
- fabrica
- Marketing
- Posso..
- Mídia
- Conheça
- Memória
- poder
- mínimo
- Missão
- ML
- MLOps
- modelo
- modelos
- modificada
- modificar
- Módulos
- monitoração
- mais
- a maioria
- motivações
- múltiplo
- Navegação
- você merece...
- Cria
- Próximo
- caderno
- número
- objeto
- Detecção de Objetos
- of
- on
- aberto
- open source
- organização
- delineado
- contornos
- próprio
- pacotes
- pão
- caminho
- padrão
- platão
- Inteligência de Dados Platão
- PlatãoData
- ponto
- possível
- Publique
- problemas
- processo
- Processado
- processos
- Produção
- Perfil
- Progresso
- projeto
- projetos
- procuração
- fins
- Python
- Links
- alcance
- em vez
- reais
- em tempo real
- recentemente
- repositório
- requeridos
- Requisitos
- Recursos
- Resultados
- Execute
- corrida
- sábio
- mesmo
- Poupança
- AMPLIAR
- escalável
- Ciência
- Cientista
- cientistas
- Scripts
- seguro
- segurança
- separado
- servir
- Sessão
- conjunto
- Configurações
- instalação
- Partilhar
- compartilhado
- compartilhando
- concha
- rede de apoio social
- mostrar
- mostrando
- Shows
- pequeno
- So
- solução
- Soluções
- RESOLVER
- fonte
- Espaço
- espaços
- Esportes
- começo
- Comece
- Status
- Passo
- Passos
- loja
- lojas
- simplificar
- estudo
- entraram com sucesso
- ajuda
- .
- sistemas
- Tarefa
- Profissionais
- equipes
- terminal
- que
- A
- A fonte
- deles
- Eles
- Este
- Através da
- tempo
- demorado
- para
- treinado
- Training
- ui
- carregado
- URL
- us
- Uso
- usar
- Utilizador
- usuários
- verificar
- versão
- Ver
- web
- Aplicativos da web
- navegador web
- O Quê
- qual
- enquanto
- QUEM
- precisarão
- de
- dentro
- sem
- Atividades:
- trabalhar
- Vocês
- investimentos
- zefirnet