Blog oficial para desenvolvedores que falam português
Aprendizado unificado: aprendizado de máquina colaborativo sem centralização dos dados de treinamento
12/05/2017
Postado por Brendan McMahan e Daniel Ramage, cientistas de pesquisa
A abordagem do aprendizado de máquina padrão exige centralização dos dados de treinamento em uma máquina ou em um datacenter. Por isso, o Google criou uma das infraestruturas de nuvem mais seguras e sólidas para processar esses dados e melhorar nossos serviços. Agora, para modelos treinados a partir da interação do usuário com dispositivos móveis, estamos apresentando uma nova abordagem:
o aprendizado unificado
.
O aprendizado unificado permite que celulares assimilem um modelo de previsão compartilhado de forma colaborativa e, ao mesmo tempo, manter todos os dados de treinamento no dispositivo, desvinculando a capacidade de usar o aprendizado de máquina da necessidade de armazenar os dados na nuvem. Isso vai além do uso de modelos locais que fazem previsões em dispositivos móveis (como a
Mobile Vision API
e o
On-Device Smart Reply
) porque traz o
treinamento-modelo
para o dispositivo.
Funciona mais ou menos assim: seu dispositivo baixa o modelo atual, melhora ele assimilando dados do seu celular e resume as mudanças em uma atualização direcionada pequena. Somente essa atualização do modelo é enviada para a nuvem, com comunicação criptografada, e lá ele se mistura com outras atualizações do usuário para melhorar o modelo compartilhado. Todos os dados de treinamento continuam no dispositivo, e nenhuma atualização individual é armazenada na nuvem.
Seu celular personaliza o modelo localmente com base no uso (A). Muitas atualizações do usuários são agregadas (B) para dar forma a uma alteração consensual (C) ao modelo compartilhado, e esse processo se repete em seguida.
O aprendizado unificado possibilita modelos mais inteligentes, menor latência e menos consumo de energia, sem comprometer a privacidade. Essa abordagem ainda tem outro benefício imediato: além de fornecer uma atualização ao modelo compartilhado, o modelo melhorado do seu celular também pode ser usado imediatamente, amparando experiências personalizadas pela forma com que você usa o celular.
Ainda estamos testando o aprendizado unificado no
Gboard on Android
, o Teclado do Google. Quando o Gboard mostra uma consulta sugerida, seu celular armazena localmente as informações sobre o contexto atual e se você clicou na sugestão. O aprendizado unificado processa esse histórico no dispositivo para sugerir melhorias à próxima iteração do modelo de sugestão de consulta do Gboard.
Para tornar o aprendizado unificado possível, tivemos que superar muitos obstáculos algorítmicos e técnicos. Em um sistema de aprendizado de máquina comum, um algoritmo de otimização, como o
Stochastic Gradient Descent
(SGD) usa um conjunto de dados grande dividido em partes iguais entre os servidores em nuvem. Esses algoritmos de alta capacidade de iteração precisam de conexões de baixa latência e alta taxa de transferência para os dados de treinamento. Mas, com o aprendizado unificado, os dados são distribuídos em milhões de dispositivos de uma maneira extremamente desigual. Além disso, esses dispositivos têm conexões de latência muito maior e menor taxa de transferência, além de estarem disponíveis para o treinamento de forma inconstante.
Essas limitações de largura de banda e latência dão força ao nosso
algoritmo de média unificada
, que pode treinar grandes redes usando de 10 a 100 vezes menos comunicação se comparado com uma versão simplesmente unificada do SGD. A ideia central é usar os poderosos processadores dos dispositivos móveis modernos para computar atualizações de maior qualidade em vez de etapas graduais simples. Como é preciso de algumas iterações de atualizações de alta qualidade para produzir um bom modelo, o treinamento pode usar muito menos comunicação. Já que a velocidade de upload normalmente é
muito menor
que a de download, desenvolvemos uma nova maneira de reduzir os custos da comunicação de upload mais 100 vezes
comprimindo atualizações
com rotações e quantização aleatórias. Embora essas abordagens se concentrem em grandes redes de treinamento, também
projetamos algoritmos
para modelos convexos esparsos de alta dimensão que são perfeitos para problemas como previsão de taxa de clique.
Implementar essa tecnologia em milhões de celulares diferentes que usam o Gboard exige uma base tecnológica sofisticada. O treinamento em dispositivos usa uma versão miniaturizada do
TensorFlow
. O agendamento cuidadoso garante que o treinamento aconteça somente quando o dispositivo está ocioso, conectado fisicamente e conectado a uma rede sem fio gratuita para que não haja impacto no seu desempenho.
Seu celular só participa do aprendizado unificado
quando ele não produz impacto negativo na sua experiência.
Depois disso, o sistema precisa se comunicar e agregar as atualizações do modelo de uma forma segura, eficiente, escalonável e tolerante a falhas. Somente a combinação de pesquisa e essa infraestrutura que tornam possíveis os benefícios do aprendizado unificado.
Esse aprendizado funciona sem precisar armazenar dados do usuário na nuvem, mas isso não é tudo. Estamos desenvolvendo um
protocolo de agregação segura
que usa técnicas de criptografia para que um servidor de coordenação só possa descriptografar a atualização média se centenas ou milhares de usuários tiverem participado — não é possível inspecionar nenhuma atualização de um celular antes de misturá-la às outras e determinar a média. Esse é o primeiro protocolo desse tipo que é prático para os problemas de redes extensas e as restrições de conectividade do mundo real. Desenvolvemos a Média unificada para que o servidor de coordenação só precise da atualização média, o que permite usar a agregação segura. Porém, o protocolo é geral e também pode ser aplicado a outros problemas. Estamos trabalhando pesado em uma implementação de produção desse protocolo e esperamos lançá-la para aplicativos de aprendizado unificado em breve.
Nosso trabalho é uma gota em um copo cheio (de possibilidades). O aprendizado unificado não consegue resolver todos os problemas do aprendizado de máquina (por exemplo, aprender a
reconhecer raças diferentes de cachorro
com treinamento em exemplos cuidadosamente identificados) e, para muitos outros modelos, os dados de treinamento necessários já estão na nuvem (como treinar filtros de mensagens indesejadas no Gmail). A Google vai continuar impulsionando a inovação no AM baseado em nuvem, mas sempre comprometida com a pesquisa contínua para ampliar os tipos e níveis de problemas que podem ser resolvidos com o aprendizado unificado. Além das sugestões de consulta do Gboard, por exemplo, esperamos melhorar os modelos de idioma que compõem o seu teclado com base no que você realmente digita no celular (que pode ter um estilo próprio) e classificações de foto baseadas em que tipo de foto as pessoas veem, compartilham e excluem.
Para aplicar o aprendizado unificado, os praticantes de aprendizado de máquina precisam adotar novas ferramentas e uma nova forma de pensar: desenvolvimento de modelos, treinamento e avaliação, sem nenhum acesso direto a dados brutos, nem identificação deles, considerando o custo de comunicação um fator limitante. Acreditamos que os benefícios do aprendizado unificado aos usuários ajudam a enfrentar os obstáculos técnicos, e nosso trabalho está sendo publicado com a esperança de uma conversa ampla na comunidade de aprendizado de máquina.
Menções
Esta postagem reflete o trabalho de muitos colaboradores do Google Research, são eles: Blaise Agüera y Arcas, Galen Andrew, Dave Bacon, Keith Bonawitz, Chris Brumme, Arlie Davis, Jac de Haan, Hubert Eichner, Wolfgang Grieskamp, Wei Huang, Vladimir Ivanov, Chloé Kiddon, Jakub Konečný, Nicholas Kong, Ben Kreuter, Alison Lentz, Stefano Mazzocchi, Sarvar Patel, Martin Pelikan, Aaron Segal, Karn Seth, Ananda Theertha Suresh, Iulia Turc, Felix Yu e os nossos parceiros da equipe do Gboard.
De AMP para Progressive Web App
05/05/2017
Se você investiu em AMPs e está se preparando para dar aquele salto de qualidade no seu site para dispositivos móveis — rumo ao
Progressive Web App
— tenho boas notícias para você: As AMPs e os Progressive Web Apps podem ser combinados e usados juntos para criar uma jornada fantástica para o usuário. E temos um
novo conjunto de documentos
no AMPproject.org para ajudar você nisso.
O AMP é um ponto de entrada ideal para o seu site por conta do carregamento pré-renderizado quase instantâneo, e o componente
<amp-install-serviceworker>
deixa você aquecer e pré-carregar um Progressive Web App enquanto os usuários ainda estão na página AMP. Os usuários que clicam nos links para a sua origem agora passarão pela atualização para o Progressive Web App completo instantaneamente. Com isso, você pode começar rápido com a AMP e continuar bem rápido com o Progressive Web App.
Além de tudo, agora é possível aproveitar toda a biblioteca de conteúdo que você já tem na forma de páginas AMP e usá-las como a peça principal do seu Progressive Web App, economizando em recursos de engenharia e complexidade.
Para saber mais sobre como combinar AMP e Progressive Web Apps, acesse um dos links abaixo:
Nosso novíssimo conjunto de
documentos, que tratam de AMP e dos Progressive Web Apps
, entram nos detalhes de
como aplicar os recursos do Progressive Web App a páginas AMP
, como
pré-carregar o Progressive Web App em páginas AMP
e falam da
AMP incorporada e em uso como fonte de dados
A
introdução lançada na Smashing Mag
A
palestra de Alex Russell
na AMP Conf 2017
Fale com a gente pelos
canais de suporte ao desenvolvedor
se tiver dúvidas ou quiser dar a sua opinião. E aí? O que você vai criar? Estamos ansiosos para ver!
Postado por Paul Bakaus, Developer Advocate do projeto AMP
De AMP para Progressive Web App
Labels
+page
1
20th Century Fox
1
A/B
1
Action
1
Action Console
1
Actions
3
Actions Console
1
Actions on Google
1
ActiveQA
1
Adaptive Battery
1
AddThis
1
ADK
1
ADL
1
Admin do Firebase
1
AdMob
6
Ads
2
AdWords
1
AdX
1
AI
4
algoritmo
1
AMP
6
AMP Linker
1
AMP Project
1
Analytics API
1
Android
58
Android 8.0 Oreo
1
Android 8.1
1
Android ADK
2
Android API
2
Android App Bundle
1
Android Dev Summit
1
Android Developers
23
Android Marshmallow
1
Android N
3
Android Nougat
2
Android P
3
Android P Beta 2
1
Android Preview
1
Android SDK
1
android studio
8
Android Studio 3.2
1
android wear
2
AndroidDev
6
AndroidX
1
Announcement
2
AoG
1
AoGDevs
1
api
15
API 25
1
API 28
1
APIs
4
Aplicativos
4
app
1
App Engine
1
Apple
1
apply
1
Apps
9
AR
1
ARCore
3
artificial intelligence
1
AsyncTask
1
AUC
1
AutoAugment
1
Avro
1
Awareness API
1
Biblioteca do Google
1
Big Data
1
BigQuery
1
BiometricPrompt
1
bitcode
1
Borg
1
Bot
1
bytecode Dalvik
1
C++
1
câmera
1
CameraDevice
1
Canal Beta
1
canary
1
câncer de próstata
1
Capital One
1
Cast
1
CFI
1
Chrome
8
Chrome 68
1
Chrome Dev Summit
1
Chrome DevTools
1
Chrome OS
2
Chromecast
1
Chromium
2
CI
1
CLI
1
Cloud
6
Cloud Computing
1
Cloud Console
1
Cloud Dataflow
1
Cloud Developers
2
Cloud DLP
1
Cloud Firestore
1
Cloud Messaging
1
Cloud ML Engine
1
Cloud Scheduler
1
Cloud Shell
1
Cloud Source Repositories
1
Cloud Spanner
2
CodeSchool
1
código aberto
2
Compute Engine
1
ConfigMap
1
Container Builder
1
CPU
2
Crash Reporting
2
Crashlytics
3
credential api
1
criptografia
1
CSS
3
CSS Grid Layout
1
CSV
1
CTA
1
Curitiba
1
Dart API
1
Data Validation
1
DBAs
1
DCGAN
1
Desenvolvedores Google
11
Desenvolvimento
3
DevBusBrasil
1
DevBytes
2
Developer Bus
1
Developer Preview
1
developer quiz
1
DevFest
3
DevFest16
1
DevFest18
1
DevFestW
1
DFP
2
Dialogflow
1
DLP
1
DLS
1
documentação
1
Dragon Ball Legends
1
E2E
1
eclipse
1
end-to-end-encryption
1
Estimator
1
Estimators API
1
estudantes
1
Eventos
15
Famílias multilíngue
1
FCM
2
Featured
1
Firebase
24
Firebase Analytics
6
Firebase App Indexing
2
Firebase Cloud Messaging
5
Firebase Crashlytics
2
Firebase Dynamic Links
3
Firebase In-App Messaging
1
Firebase Invites
2
Firebase Lab
1
Firebase Links Dinamicos
1
Firebase Notifications
3
Firebase Remote Config
1
Flutter
3
FRR
1
G+
1
game
1
game dev
3
Games
2
games services
1
GCloud
3
GCM
1
GCP
7
GDD
7
GDE
1
GDEs
1
GDG
12
GDG Curitiba
1
GDG Floripa
1
GDG OpenSampa
1
GDG Porto Alegre
1
GDG Recife
1
GDG SP
3
GDGs
1
GDL
1
Git
1
GitHub
1
GNMT
1
Google
3
Google Ad Manager
1
Google AI
1
Google Analytics
1
Google Assistant
1
Google Assistente
3
Google Brain
2
Google Cast SDK
1
google clou
1
Google Cloud
17
Google Cloud Certified
1
Google Cloud Healthcare API
1
Google Cloud Platform
3
google code-in
1
Google Developer Advocate
1
Google Developer Expert
1
Google Developers
11
Google Fotos
1
Google I/O
6
Google Play
16
Google Play Games services
1
Google Play Protect
1
Google Play Services
4
Google Slides
1
Google Speech
1
google summer of code
1
Google+
2
Google+ sign-in
1
Googlers
1
GPU
2
GSuites
1
GUI
1
Hackathon
1
Hangouts
1
Hangouts Chat
1
HDR
1
High Quality Apps
2
HTML5
6
HTTP
3
HTTPS
2
HttpURLConnection
2
I/O
1
IA
2
Illusive Images
1
ImageReader
1
In-App Messaging
1
Inglês
1
Instant Apps
1
inteligencia artificial
1
IntelliJ REPL
1
IntentService
1
Interoperabilidade
1
IO Extended
1
IO13
1
iOS
9
IU
2
Java
1
Java 8
1
javascript
2
JPEG
1
JSON
2
Kaggle
1
kernel
1
Keyboard Map API
1
Knowledge Connectors
1
Kotlin
6
Kotlin da Udacity
1
Kubernetes
5
LangID
1
Launchpad
1
launchpad accelerator
2
Learning Augmentation
1
LEGO
1
Listas
1
ListFragment
1
LLVM
1
LTO
1
Machine Learning
2
Meetup
2
mensagens
1
Mentoria
1
Messaging
2
microsserviços
1
ML
2
ML Kit
1
Mobile
3
Mobile Ads SDK
1
Monetização
3
Monetize
3
MySQL
1
Native
1
Navigation Architecture Component
1
NES
1
Neto Marin
2
Next Level Apps
2
Next Level Tips
2
NNLM
1
Node.js
2
Notificações
1
novembro azul
1
Number Genie
1
Nuvem Profissional
1
OAuth
2
OAuth2
1
Open Images Extended
1
open source
3
Options Menu
1
Options Menu virtual
1
Orkut
2
Payment Request
1
pesquisa
1
PHA
1
Phone Gateway
1
PII
1
pixel
1
Play Academy
1
Play Console
1
Play Services
1
Playtime 2018
1
plug-in AMP
1
Porto Alegre
1
Preact
1
PRIV
1
program
1
progressive web apps
2
Push Notification
2
Python
1
QA
1
RA
2
Raspberry Pi
1
RBDMS
1
React
1
recording apis
1
remarketing
1
Remote Config
2
research
4
ResultReceiver
1
reward
1
RNN
2
Robolectric 4.0
1
RV
1
Sceneform
1
SDK
4
SDK Manager
3
Security
2
Server
1
service worker
1
sign-in
1
Sliding Tabs
1
Smartronix
1
social
6
Spark
1
SRE
1
Stack
1
Stack Overflow
1
Startups
2
Storage
2
story
1
Support Library
1
SurfaceView
1
Svelte
1
switch
1
Tag Manager
1
Tag Manager 360
1
tensorflow
5
TensorFlow Hub
2
TensorFlow Lite
1
TensorFlow Transform
1
Test Lab
2
Testes
1
TF Hub
2
tf.keras
1
TFDV
1
TFX
1
TI essencial
1
toolkit
1
tradução
1
TTS
1
Udacity
1
Universal Apps
1
Universal Sentence Encoder
1
user experience
1
ux
1
VectorDrawable
1
Velostrata
1
Volley
1
vr
2
vulnerabilidades
1
vulnerabilidades do Google
1
vulnerability
1
web
2
web dev
2
WebKit
1
webservice
3
when
1
WordPress
1
WorkerDOM
1
YouTube
4
YouTube API
1
YUV
1
Zomato
1
Archive
2022
nov.
out.
jul.
jun.
mai.
abr.
mar.
fev.
jan.
2021
dez.
nov.
out.
set.
ago.
jul.
jun.
mai.
abr.
mar.
fev.
jan.
2020
dez.
nov.
out.
set.
ago.
jul.
jun.
mai.
abr.
mar.
fev.
jan.
2019
dez.
nov.
out.
set.
ago.
jul.
jun.
mai.
abr.
2018
dez.
nov.
out.
set.
ago.
jul.
jun.
mai.
abr.
mar.
fev.
2017
ago.
jul.
jun.
mai.
abr.
mar.
jan.
2016
dez.
nov.
out.
set.
ago.
jul.
mai.
mar.
2014
jul.
jun.
abr.
mar.
fev.
2013
dez.
nov.
out.
set.
ago.
jul.
jun.
mai.
mar.
fev.
jan.
2012
nov.
jul.
jun.
mai.
abr.
mar.
2011
nov.
set.
ago.
jul.
jun.
Feed
Follow @googledevbr