Category Archives: Uncategorized

Como o KAYAK reduziu o tempo de login em 50% e melhorou a segurança com chaves de acesso

KAYAK é um dos principais mecanismos de pesquisa de viagens do mundo que ajuda os usuários a encontrar as melhores ofertas em voos, hotéis e aluguel de carros. Em 2023, o KAYAK integrou senhas – um novo tipo de autenticação sem senha – em seus aplicativos Android e web. Como resultado, o KAYAK reduziu em 50% o tempo médio que os usuários levam para se inscrever e fazer login e também observou uma diminuição nos tickets de suporte.

Este estudo de caso explica a implementação do KAYAK no Android com API Credential Manager e RxJava. Você pode usar este estudo de caso como modelo para implementar o Credential Manager para melhorar a segurança e a experiência do usuário em seus próprios aplicativos.

Problema

Como a maioria das empresas, o KAYAK dependia de senhas no passado para autenticar usuários. As senhas são um risco tanto para os usuários quanto para as empresas: muitas vezes são fracas, reutilizadas, adivinhadas, roubadas, vazadas ou hackeadas.

“Oferecer autenticação por senha exige muito esforço e riscos para os negócios. Os invasores estão constantemente tentando usar contas de força bruta, embora nem todos os usuários entendam a necessidade de senhas fortes. No entanto, mesmo senhas fortes não são totalmente seguras e ainda podem ser roubadas.” – Matthias Keller, cientista-chefe e vice-presidente sênior de tecnologia do

KAYAK

Para tornar a autenticação mais segura, o KAYAK enviou “links mágicos” por e-mail. Embora útil do ponto de vista de segurança, essa etapa extra introduziu mais atrito ao usuário, exigindo que os usuários mudassem para um aplicativo diferente para concluir o processo de login. Medidas adicionais precisavam ser introduzidas para mitigar o risco de ataques de phishing.

Solução

O aplicativo Android do KAYAK agora usa chaves de acesso para uma experiência de autenticação mais segura, fácil de usar e mais rápida. As chaves de acesso são tokens exclusivos e seguros armazenados no dispositivo do usuário e que podem ser sincronizados em vários dispositivos. Os usuários podem fazer login no KAYAK com uma senha, simplesmente usando o bloqueio de tela existente do dispositivo, tornando-o mais simples e seguro do que inserir uma senha.

“Adicionamos suporte para chaves de acesso ao nosso aplicativo Android para que mais usuários possam usar chaves de acesso em vez de senhas. Dentro desse trabalho, também substituímos nossa antiga implementação da API Smartlock pela API Sign in with Google suportada pela API Credential Manager. Agora, os usuários podem se inscrever e fazer login no KAYAK com senhas duas vezes mais rápido do que com um link de e-mail, o que também melhora a taxa de conclusão” – Matthias Keller,  cientista-chefe e vice-presidente sênior de tecnologia do KAYAK

 

Integração da API do Credential Manager

Para integrar chaves de acesso no Android, o KAYAK usou a API Credential Manager . O Credential Manager é uma biblioteca do Jetpack que unifica o suporte a chaves de acesso a partir do Android 9 (API de nível 28) e o suporte a métodos de login tradicionais, como senhas e autenticação federada, em uma única interface de usuário e API.

Figura 1: Telas de criação de senha do Credential Manager.

Projetar um fluxo de autenticação robusto para aplicativos é crucial para garantir a segurança e uma experiência confiável do usuário. O diagrama a seguir demonstra como o KAYAK integrou as chaves de acesso aos seus fluxos de registro e autenticação:

Figura 2: Diagrama do KAYAK mostrando seus fluxos de cadastro e autenticação.

No momento do registro, os usuários têm a oportunidade de criar uma chave de acesso. Uma vez registrados, os usuários podem fazer login usando sua chave de acesso, faça login com o Google ou senha. Como o Credential Manager inicia a UI automaticamente, tome cuidado para não introduzir tempos de espera inesperados, como chamadas de rede. Sempre busque um desafio único e outras configurações de chaves de acesso (como ID de RP) no início de qualquer sessão do aplicativo.

Embora a equipe KAYAK agora esteja fortemente investida em corrotinas, sua integração inicial usou RxJava para integração com a API do Credential Manager. Eles agruparam chamadas do Credential Manager no RxJava da seguinte maneira:

override fun createCredential(request: CreateCredentialRequest, activity: Activity): Single<CreateCredentialResponse> {
return Single.create { emitter ->
// Triggers credential creation flow
credentialManager.createCredentialAsync(
request = request,
activity = activity,
cancellationSignal = null,
executor = Executors.newSingleThreadExecutor(),
callback = object : CredentialManagerCallback<CreateCredentialResponse, CreateCredentialException> {
override fun onResult(result: CreateCredentialResponse) {
emitter.onSuccess(result)
}
override fun onError(e: CreateCredentialException) {
emitter.tryOnError(e)
}
}
)
}
}

Este exemplo define uma função Kotlin chamada createCredential() que retorna uma credencial do usuário como um RxJava Single do tipo CreateCredentialResponse . A função createCredential() encapsula o processo assíncrono de registro de credenciais em um estilo de programação reativo usando a classe RxJava Single .

Para uma implementação Kotlin desse processo usando corrotinas , leia o guia Faça login no seu usuário com o Credential Manager .

Fluxo de inscrição de registro de novo usuário

Este exemplo demonstra a abordagem usada pelo KAYAK para registrar uma nova credencial, aqui o Credential Manager foi encapsulado em primitivas Rx.

webAuthnRetrofitService
.getClientParams(username = /** email address **/)
.flatMap { response ->
// Produce a passkeys request from client params that include a one-time challenge
CreatePublicKeyCredentialOption(/** produce JSON from response **/)
}
.subscribeOn(schedulers.io())
.flatMap { request ->
// Call the earlier defined wrapper which calls the Credential Manager UI
// to register a new passkey credential
credentialManagerRepository
.createCredential(
request = request,
activity = activity
)
}
.flatMap {
// send credential to the authentication server
}
.observeOn(schedulers.main())
.subscribe(
{ /** process successful login, update UI etc. **/ },
{ /** process error, send to logger **/ }
)

O Rx permitiu que o KAYAK produzisse pipelines mais complexos que podem envolver múltiplas interações com o Credential Manager.

Login de usuário existente

O KAYAK seguiu as etapas a seguir para iniciar o fluxo de login. O processo inicia um elemento de UI na página inferior, permitindo que o usuário faça login usando um ID do Google e uma chave de acesso existente ou senha salva.

Figura 3: Folha inferior para autenticação de senha.

Os desenvolvedores devem seguir estas etapas ao configurar um fluxo de login:
  • Como a planilha inferior é iniciada automaticamente, tome cuidado para não introduzir tempos de espera inesperados na UI, como chamadas de rede. Sempre busque um desafio único e outras configurações de chaves de acesso (como RP ID ) no início de qualquer sessão do aplicativo.
  • Ao oferecer o login do Google por meio da API Credential Manager , seu código deve procurar inicialmente por contas do Google que já foram usadas com o aplicativo. Para lidar com isso, chame a API com o parâmetro setFilterByAuthorizedAccounts definido como true .
  • Se o resultado retornar uma lista de credenciais disponíveis, o aplicativo mostrará ao usuário a UI de autenticação da página inferior.
  • Se uma NoCredentialException aparecer, nenhuma credencial foi encontrada: nenhuma conta do Google, nenhuma senha e nenhuma senha salva. Neste ponto, seu aplicativo deve chamar a API novamente e definir setFilterByAuthorizedAccounts como false para iniciar o fluxo Cadastre-se no Google .
  • Processe a credencial retornada do Credential Manager.
Single.fromSupplier<GetPublicKeyCredentialOption> {
GetPublicKeyCredentialOption(/** Insert challenge and RP ID that was fetched earlier **/)
}
.flatMap { response ->
// Produce a passkeys request
GetPublicKeyCredentialOption(response.toGetPublicKeyCredentialOptionRequest())
}
.subscribeOn(schedulers.io())
.map { publicKeyCredentialOption ->
// Merge passkeys request together with other desired options,
// such as Google sign-in and saved passwords.
}
.flatMap { request ->
// Trigger Credential Manager system UI
credentialManagerRepository.getCredential(
request = request,
activity = activity
)
}
.onErrorResumeNext { throwable ->
// When offering Google sign-in, it is recommended to first only look for Google accounts
// that have already been used with our app. If there are no such Google accounts, no passkeys,
// and no saved passwords, we try looking for any Google sign-in one more time.
if (throwable is NoCredentialException) {
return@onErrorResumeNext credentialManagerRepository.getCredential(
request = GetCredentialRequest(/* Google ID with filterByAuthorizedOnly = false */),
activity = activity
)
}
Single.error(throwable)
}
.flatMapCompletable {
// Step 1: Use Retrofit service to send the credential to the server for validation. Waiting
// for the server is handled on a IO thread using subscribeOn(schedulers.io()).
// Step 2: Show the result in the UI. This includes changes such as loading the profile
// picture, updating to the personalized greeting, making member-only areas active,
// hiding the sign-in dialog, etc. The activities of step 2 are executed on the main thread.
}
.observeOn(schedulers.main())
.subscribe(
// Handle errors, e.g. send to log ingestion service.
// A subset of exceptions shown to the user can also be helpful,
// such as user setup problems.
// Check out more info in Troubleshoot common errors at
// https://developer.android.com/training/sign-in/passkeys#troubleshoot
)
“Depois que a API do Credential Manager é geralmente implementada, é muito fácil adicionar outros métodos de autenticação. Adicionar o login com um toque do Google quase não deu trabalho depois de adicionar chaves de acesso. –Mathias Keller

Para saber mais, siga o guia sobre como integrar a API do Credentials Manager e como integrar o Credential Manager com o Sign in with Google .

Considerações de experiência do usuário

Algumas das principais considerações sobre a experiência do usuário que o KAYAK enfrentou ao mudar para chaves de acesso incluíam se os usuários deveriam ser capazes de excluir chaves de acesso ou criar mais de uma chave de acesso.

Nosso guia UX para chaves de acesso recomenda que você tenha a opção de revogar uma chave de acesso e garantir que o usuário não crie chaves de acesso duplicadas para o mesmo nome de usuário no mesmo gerenciador de senhas.

Figura 4: UI do KAYAK para gerenciamento de senhas.

Para evitar o registro de múltiplas credenciais para a mesma conta, o KAYAK usou a propriedade excludeCredentials que lista as credenciais já registradas para o usuário. O exemplo a seguir demonstra como criar novas credenciais no Android sem criar duplicatas:
fun WebAuthnClientParamsResponse.toCreateCredentialRequest(): String {
val credentialRequest = WebAuthnCreateCredentialRequest(
challenge = this.challenge!!.asSafeBase64,
relayingParty = this.relayingParty!!,
pubKeyCredParams = this.pubKeyCredParams!!,
userEntity = WebAuthnUserEntity(
id = this.userEntity!!.id.asSafeBase64,
name = this.userEntity.name,
displayName = this.userEntity.displayName
),
authenticatorSelection = WebAuthnAuthenticatorSelection(
authenticatorAttachment = "platform",
residentKey = "preferred"
),
// Setting already existing credentials here prevents
// creating multiple passkeys on the same keychain/password manager
excludeCredentials = this.allowedCredentials!!.map { it.copy(id = it.id.asSafeBase64) },
)
return GsonBuilder().disableHtmlEscaping().create().toJson(credentialRequest)
}

E foi assim que o KAYAK implementou a funcionalidade excludeCredentials para sua implementação na Web.

var registrationOptions = {
'publicKey': {
'challenge': self.base64ToArrayBuffer(data.challenge),
'rp': data.rp,
'user': {
'id': new TextEncoder().encode(data.user.id),
'name': data.user.name,
'displayName': data.user.displayName
},
'pubKeyCredParams': data.pubKeyCredParams,
'authenticatorSelection': {
'residentKey': 'required'
}
}
};
if (data.allowCredentials && data.allowCredentials.length > 0) {
var excludeCredentials = [];
for (var i = 0; i < data.allowCredentials.length; i++) {
excludeCredentials.push({
‘id’: self.base64ToArrayBuffer(data.allowCredentials[i].id),
‘type’: data.allowCredentials[i].type
});
}
registrationOptions.publicKey.excludeCredentials = excludeCredentials;
}navigator.credentials.create(registrationOptions);

Implementação do lado do servidor

A parte do servidor é um componente essencial de uma solução de autenticação. O KAYAK adicionou recursos de senha ao back-end de autenticação existente, utilizando WebAuthn4J , uma biblioteca Java de código aberto. O KAYAK dividiu o processo do lado do servidor nas seguintes etapas:

  • O cliente solicita parâmetros necessários para criar ou usar uma chave de acesso do servidor. Isso inclui o desafio, o algoritmo de criptografia compatível, o ID da parte confiável e itens relacionados. Se o cliente já tiver um endereço de e-mail de usuário, os parâmetros incluirão o objeto de usuário para registro e uma lista de chaves de acesso, se houver.
  • O cliente executa fluxos de navegador ou aplicativo para iniciar o registro ou a entrada da chave de acesso.
  • O cliente envia informações de credenciais recuperadas para o servidor. Isso inclui ID do cliente, dados do autenticador, dados do cliente e outros itens relacionados. Essas informações são necessárias para criar uma conta ou verificar um login.

Quando o KAYAK trabalhou neste projeto, nenhum produto de terceiros suportava chaves de acesso. No entanto, muitos recursos estão agora disponíveis para a criação de um servidor de chave de acesso, incluindo documentação e exemplos de biblioteca .

Resultados

Desde a integração das chaves de acesso, o KAYAK observou um aumento significativo na satisfação dos usuários. Os usuários relataram que consideram as chaves de acesso muito mais fáceis de usar do que as senhas, pois não exigem que os usuários se lembrem ou digitem uma sequência longa e complexa de caracteres. O KAYAK reduziu em 50% o tempo médio que seus usuários levam para se inscrever e fazer login, observou uma diminuição nos tíquetes de suporte relacionados a senhas esquecidas e tornou seu sistema mais seguro, reduzindo sua exposição a ataques baseados em senha. Graças a essas melhorias, o KAYAK planeja eliminar a autenticação baseada em senha em seu aplicativo até o final de 2023.

“As chaves de acesso tornam a criação de uma conta extremamente rápida, eliminando a necessidade de criação de senha ou de navegação para um aplicativo separado para obter um link ou código. Como bônus, a implementação da nova biblioteca Credential Manager também reduziu o débito técnico em nossa base de código, colocando chaves de acesso, senhas e login do Google, tudo em uma nova interface de usuário moderna. Na verdade, os usuários podem se inscrever e fazer login no KAYAK com senhas duas vezes mais rápido do que com um link de e-mail, o que também melhora a taxa de conclusão.” – Matthias Keller

As chaves de acesso são uma solução de autenticação nova e inovadora que oferece benefícios significativos em relação às senhas tradicionais. O KAYAK é um ótimo exemplo de como uma organização pode melhorar a segurança e a usabilidade do seu processo de autenticação integrando chaves de acesso. Se você procura uma experiência de autenticação mais segura e fácil de usar, recomendamos que você considere o uso de chaves de acesso com a API Credential Manager do Android .

Login sem senha com senhas de acesso 

As chaves de acesso são uma alternativa mais fácil e segura do que as senhas. Com as chaves de acesso, os usuários podem fazer login em apps e sites com um sensor biométrico (como impressão digital ou reconhecimento facial), PIN ou padrão, sem precisar lembrar e gerenciar senhas.

Desenvolvedores e usuários odeiam senhas: eles proporcionam uma experiência ruim para o usuário, incluem barreiras na conversão e criam riscos para a segurança tanto para usuários quanto desenvolvedores. O Gerenciador de senhas do Google no Android e no Chrome reduz as complicações pelo preenchimento automático. Para desenvolvedores que buscam ainda mais melhorias na conversão e na segurança, as chaves de acesso e a federação de identidade são as abordagens modernas do setor.

Uma chave de acesso pode atender aos requisitos de autenticação multifator em uma única etapa, substituindo uma senha e uma OTP (por exemplo, um código SMS de seis dígitos) para oferecer proteção robusta contra ataques de phishing e evita problemas de UX com senhas únicas por SMS ou baseadas em apps. Como as chaves de acesso são padronizadas, uma única implementação permite uma experiência sem senha em todos os dispositivos do usuário, em diferentes navegadores e sistemas operacionais.

Chaves de acesso são mais fáceis:

  • Os usuários podem selecionar uma conta para fazer login. Não é necessário digitar o nome de usuário.
  • Os usuários podem fazer a autenticação usando o bloqueio de tela do dispositivo, como um sensor de impressão digital, reconhecimento facial ou PIN.
  • Depois que uma chave de acesso é criada e registrada, o usuário pode alternar facilmente para um novo dispositivo e usá-lo imediatamente, sem precisar se registrar novamente (ao contrário da autenticação biométrica tradicional, que exige a configuração em cada dispositivo).

Chaves de acesso são mais seguras:

  • Os desenvolvedores só salvam uma chave pública no servidor em vez de uma senha, o que significa que há muito menos valor para um usuário de má-fé invadir servidores e muito menos para limpar em caso de violação.
  • As chaves de acesso protegem os usuários contra ataques de phishing. As chaves de acesso funcionam apenas nos sites e apps registrados. Um usuário não é induzido a fazer a autenticação em um site enganoso porque o navegador ou o SO processa a verificação.
  • As chaves de acesso reduzem os custos de envio de SMS, tornando-as um meio mais seguro e econômico de autenticação de dois fatores.

Uma chave de acesso é uma credencial digital vinculada a uma conta de usuário e a um site ou aplicativo. Com as chaves de acesso, os usuários podem fazer a autenticação sem precisar inserir um nome de usuário ou senha, além de fornecer qualquer fator de autenticação adicional. O objetivo dessa tecnologia é substituir mecanismos de autenticação legados, como senhas.

Quando um usuário quiser fazer login em um serviço que usa chaves de acesso, o navegador ou sistema operacional vai ajudar a selecionar e usar a chave de acesso correta. A experiência é parecida com o funcionamento atual das senhas salvas. Para garantir que apenas o proprietário legítimo possa usar uma chave de acesso, o sistema vai pedir que ele desbloqueie o dispositivo. Isso pode ser realizado com um sensor biométrico (como impressão digital ou reconhecimento facial), PIN ou padrão.

Para criar uma chave de acesso para um site ou app, primeiro o usuário precisa se registrar nele.

  1. Acesse o aplicativo e faça login usando o método atual.
  2. Clique no botão Criar uma chave de acesso.
  3. Verifique as informações armazenadas com a nova chave de acesso.
  4. Use o desbloqueio de tela do dispositivo para criar a chave de acesso.

Quando ele voltar a esse site ou app para fazer login, poderá seguir estas etapas:

  1. Acesse o aplicativo.
  2. Toque no campo do nome da conta para mostrar uma lista de chaves de acesso em uma caixa de diálogo de preenchimento automático.
  3. Selecionar a senha de acesso
  4. Use o desbloqueio de tela do dispositivo para concluir o login.

O dispositivo do usuário gera uma assinatura com base na chave de acesso. Essa assinatura é usada para verificar a credencial de login entre a origem e a chave de acesso.

Um usuário pode fazer login em serviços em qualquer dispositivo usando uma chave de acesso, não importa onde ela está armazenada. Por exemplo, uma chave de acesso criada em um smartphone pode ser usada para fazer login em um site em outro laptop.

As chaves de acesso são destinadas ao uso na infraestrutura do sistema operacional que permite que os gerenciadores de chaves de acesso criem, façam backup e as disponibilizem para os aplicativos em execução nesse sistema operacional. No Android, as chaves de acesso podem ser armazenadas no Gerenciador de senhas do Google, que sincroniza as chaves de acesso entre os dispositivos Android do usuário conectados à mesma Conta do Google. As chaves de acesso são criptografadas com segurança no dispositivo antes de serem sincronizadas e exigem a descriptografia em novos dispositivos. Os usuários com o SO Android 14 ou mais recente podem optar por armazenar as chaves de acesso em um gerenciador de senhas de terceiros compatível.

Os usuários não têm restrição de usar as chaves de acesso apenas no dispositivo em que estão disponíveis. As chaves de acesso disponíveis em smartphones podem ser usadas ao fazer login em um laptop, mesmo que não esteja sincronizada, desde que o smartphone esteja perto do laptop e o usuário aprove o login. Como as chaves de acesso são criadas com base nos padrões FIDO, todos os navegadores podem adotá-las.

Por exemplo, um usuário visita example.com no navegador Chrome na máquina Windows. Esse usuário já fez login em example.com no dispositivo Android e gerou uma chave de acesso. Na máquina Windows, o usuário escolhe fazer login com uma chave de acesso de outro dispositivo.

Os dois dispositivos serão conectados, e o usuário vai precisar aprovar o uso da chave de acesso no dispositivo Android, por exemplo, com um sensor de impressão digital. Depois disso, o usuário está conectado na máquina Windows. A chave de acesso não é transferida para a máquina Windows. Portanto, normalmente, example.com oferece a opção de criar uma nova chave de acesso. Dessa forma, não será necessário usar o telefone na próxima vez que o usuário quiser fazer login. Leia Login com um smartphone para saber mais.

Vários serviços já usam chaves de acesso nos sistemas deles.

Teste as chaves de acesso nesta demo: https://passkeys-demo.appspot.com/

  • O login com biometria pode passar a impressão falsa de que os usuários estão enviando informações sensíveis ao servidor. Na realidade, o material biométrico nunca sai do dispositivo pessoal do usuário.
  • As chaves de acesso sozinhas não permitem rastrear usuários ou dispositivos entre sites. A mesma chave de acesso nunca é usada em mais de um site. Os protocolos de chave de acesso são projetados com cuidado para que nenhuma informação compartilhada com sites possa ser usada como um vetor de rastreamento.
  • Os gerenciadores de chaves de acesso protegem as chaves de acesso contra acesso e uso não autorizados. Por exemplo, o Gerenciador de senhas do Google criptografa chaves de acesso de ponta a ponta. Apenas o usuário pode acessá-los e usá-los e, mesmo que eles sejam salvos em backup nos servidores do Google, o Google não pode usá-los para falsificar a identidade de usuários.

 

A AI generativa existe por causa do Tranformers

A AI Generativa é uma consequência direta dos avanços trazidos pelos modelos de Transformers.

Corporações globalmente têm embarcado em testes com esta inovação tecnológica, antecipando sua capacidade de revolucionar setores tão diversos quanto comunicação, finanças, direito, serviços profissionais e até mesmo serviços públicos, incluindo o setor educacional. Esses Modelos de Linguagem de Grande Escala (LLMs) são sustentados por um marco científico denominado “modelo Transformers“, uma contribuição significativa feita por pesquisadores do Google em 2017.

“Reconhecemos a natureza pioneira do nosso trabalho com modelos transformers desde o início, mas anos após sua concepção, ainda estamos animados com seu potencial expandido em diversos domínios, que vai de cuidados de saúde a robótica e segurança, amplificando a criatividade humana e muito além”, afirma Slav Petrov, pesquisador sênior do Google envolvido no desenvolvimento de LLMs.

Os LLMs são celebrados por seu potencial em elevar a produtividade através da escrita e análise textual. No entanto, essa mesma eficiência é o que os torna uma ameaça potencial ao emprego humano. Segundo análises da Goldman Sachs, a automação poderia afetar o equivalente a 300 milhões de postos de trabalho em tempo integral nas principais economias, um vetor de desemprego em massa.

Com a rápida adoção desta tecnologia em nossas rotinas diárias, entender como os LLMs geram texto é crucial para reconhecer por que esses modelos são tão versáteis no processamento cognitivo — e o que mais eles poderiam facilitar na criação. Segue exemplo interativo;

Mas não é só isso que torna os LLMs tão inteligentes. O que desbloqueou suas habilidades de analisar e escrever com a mesma fluência que fazem hoje foi uma ferramenta chamada transformador, que acelerou e aumentou radicalmente a maneira como os computadores entendiam a linguagem.

Os transformadores processam uma sequência inteira de uma vez – seja uma frase, um parágrafo ou um artigo inteiro – analisando todas as suas partes e não apenas palavras individuais.

Isso permite que o software capture melhor o contexto e os padrões e traduza – ou gere – texto com mais precisão. Esse processamento simultâneo também torna o treinamento dos LLMs muito mais rápido, melhorando sua eficiência e capacidade de escala.

A pesquisa que descreve o modelo do transformador foi publicada pela primeira vez por um grupo de oito pesquisadores de IA do Google em junho de 2017 . Seu artigo de pesquisa de 11 páginas marcou o início da era da AI ​​generativa.

Um dos maiores e mais avançados LLMs do mundo é o GPT-4, o mais recente modelo de inteligência artificial da OpenAI que, segundo a empresa, exibe “desempenho de nível humano” em vários benchmarks acadêmicos e profissionais, como o exame da ordem dos EUA, testes de nivelamento avançados como testes de SAT.

O GPT-4 pode gerar e ingerir grandes volumes de texto: os usuários podem inserir até 25.000 palavras em inglês, o que significa que ele pode lidar com documentação financeira detalhada, obras literárias ou manuais técnicos.

O produto remodelou a indústria tecnológica, com as maiores empresas de tecnologia do mundo – incluindo Google, Meta e Microsoft, que apoiaram a OpenAI – a competir para dominar o espaço, ao lado de pequenas start-ups.

Os LLMs lançados incluem o modelo PaLM do Google, que alimenta seu chatbot Bard, o modelo Claude da Anthropic, o LLaMA da Meta e o Command da Cohere, entre outros.

Embora esses modelos já estejam sendo adotados por uma série de empresas, algumas das empresas por trás deles estão enfrentando batalhas legais em torno do uso de textos, imagens e áudio protegidos por direitos autorais extraídos da web.

A razão para isso é que os atuais LLMs são treinados na maior parte da Internet em língua inglesa – um volume de informações que os torna muito mais poderosos do que as gerações anteriores.

A partir deste enorme corpus de palavras e imagens, os modelos aprendem como reconhecer padrões e, eventualmente, prever a próxima melhor palavra.

Mas as coisas nem sempre saem conforme o planejado. Embora o texto possa parecer plausível e coerente, nem sempre é factualmente correto. LLMs não são mecanismos de busca que buscam fatos; eles são mecanismos de detecção de padrões que adivinham a próxima melhor opção em uma sequência.

Devido a esta natureza preditiva inerente, os LLMs também podem fabricar informações num processo que os investigadores chamam de “alucinação”. Eles podem gerar números, nomes, datas, citações inventados – até mesmo links da web ou artigos inteiros.

Os utilizadores de LLMs partilharam exemplos de links para artigos de notícias inexistentes no FT e na Bloomberg, referências inventadas a artigos de investigação, autores errados para livros publicados e biografias repletas de erros factuais.

Em um incidente de grande repercussão em Nova York , um advogado usou o ChatGPT para criar um resumo para um caso. Quando a defesa interrogou o relatório, descobriu que estava repleto de opiniões judiciais e citações legais inventadas. “Eu não compreendia que o ChatGPT pudesse fabricar casos”, disse mais tarde o advogado a um juiz durante sua audiência no tribunal.

Embora os pesquisadores afirmem que as alucinações nunca serão completamente apagadas, o Google, a OpenAI e outros estão trabalhando para limitá-las por meio de um processo conhecido como “aterramento”. Isso envolve a verificação cruzada dos resultados de um LLM com os resultados de pesquisa na web e o fornecimento de citações aos usuários para que eles possam verificar.

Os humanos também são usados ​​para fornecer feedback e preencher lacunas de informação — um processo conhecido como aprendizagem por reforço por feedback humano (RLHF) — o que melhora ainda mais a qualidade do resultado. Mas ainda é um grande desafio de investigação compreender quais as questões que podem desencadear estas alucinações, bem como como podem ser previstas e reduzidas.

Apesar destas limitações, o transformador resultou numa série de aplicações de IA de ponta. Além de alimentar chatbots como Bard e ChatGPT, ele aciona o preenchimento automático em nossos teclados móveis e o reconhecimento de fala em nossos alto-falantes inteligentes.

Seu verdadeiro poder, entretanto, está além da linguagem. Seus inventores descobriram que os modelos de transformadores podiam reconhecer e prever quaisquer motivos ou padrões repetidos. Desde pixels em uma imagem, usando ferramentas como Dall-E, Midjourney e Stable Diffusion, até código de computador usando geradores como GitHub CoPilot. Poderia até prever notas na música e DNA em proteínas para ajudar a projetar moléculas de drogas.

Durante décadas, os investigadores construíram modelos especializados para resumir, traduzir, pesquisar e recuperar. O transformador unificou todas essas ações em uma única estrutura capaz de realizar uma enorme variedade de tarefas.

“Pegue este modelo simples que prevê a próxima palavra e ela. . . pode fazer qualquer coisa”, diz Aidan Gomez, executivo-chefe da start-up de IA Cohere e coautor do artigo do transformador.

Agora eles têm um tipo de modelo que é “treinado em toda a internet e o que sai do outro lado faz tudo isso e melhor do que tudo que veio antes”, afirma.

“Essa é a parte mágica da história.”

 

Las Vegas: Adele vira madrinha de casal de brasileiros

Imagina você casar com o amor da sua vida em Las Vegas e ter simplesmente a cantora Adele como madrinha? Pois é, foi exatamente isso que aconteceu com o casal de brasileiros Gabi Alvarenga e Gui Marangon.

O casal resolveu curtir umas férias pra lá de especiais em Las Vegas. A ideia era unir o útil ao agradável. Ou seja, unir casamento e diversão.

A ideia inicial seria casar na presença do Elvis Presley, uma tradição por lá, e depois ir comemorar no show da artista britânica.

E, claro, eles foram para o show com a roupa do casamento. As vestimentas chamaram a atenção de todos, inclusive de Adele, que resolveu parar o show e perguntar de onde era o casal.

Eles responderam que eram do Brasil. Logo em seguida, a cantora perguntou sobre a data do casamento e ficou surpreendida quando soube que havia sido há poucas horas.

Diante desse momento, Gui não deixou a oportunidade escapar e foi na cara de pau perguntar se a cantora aceitava ser a madrinha do casal.

Adele, então, pegou o buquê e cantou a marcha nupcial no palco.

A tradição do casamento em Las Vegas

Subir no altar diante de um sósia de Elvis Presley é uma tradição em Las Vegas. Essa história começou nos anos 1980, quando um grupo de empresários locais decidiu oferecer uma opção de cerimônia mais extravagante para os turistas.

Esse tipo de cerimônia é realizada em capelas especializadas, e os preços podem variar entre US$ 350 e US$ 1 mil.

Após a cerimônia, o casal recebe um certificado assinado pelo sósia do Rei do Rock.

O Hurb ainda funciona e vem operando com uma escala avassaladora

“O Hurb ainda funciona?” Em resumo: sim, o Hurb está funcionando. O setor de viagens tem enfrentado seus desafios, e uma pergunta tem surgido frequentemente entre os consumidores. Contudo, para responder a isso, mergulhemos nos eventos recentes e na trajetória da empresa.

Enquanto outras OTA’s (Online Travel Agencies) lutam para se manter relevantes no mercado da América Latina, a Hurb simplesmente domina, operando com uma escala avassaladora!

No último mês, a Hurb não só liderou, mas operou impressionantemente TRÊS VEZES mais do que a segunda maior OTA da região. Isso não é apenas liderança – é domínio absoluto. Enquanto algumas empresas tropeçam, a Hurb define o padrão e deixa claro quem manda no mercado de viagens online da América Latina.

1. Liderança em outubro: Em outubro de 2023, o Hurb não apenas continuou funcionando e mantendo suas operações, mas também se destacou como a empresa que mais operou passageiros no Brasil

2. Reconhecimento dos desafios: Em vez de ignorar os problemas, a empresa reconheceu as dificuldades enfrentadas que afetaram seus clientes e hospedagens. Esta transparência é um sinal positivo de que o Hurb está comprometido em recuperar a confiança de seus clientes.

3. Iniciativas de correção: Para resolver pendências, o Hurb tomou várias medidas. Estas incluem o afastamento do antigo CEO, a contratação de uma consultoria especializada e a parceria com novos negócios

4. Progresso até agora: Até maio de 2023, o Hurb já demonstrou melhorias significativas em suas operações. A empresa transportou mais viajantes para diversos destinos em 2022 do que em 2021, mostrando um crescimento contínuo.

5. Resolução de reclamações: Embora tenham surgido reclamações sobre reembolsos, o Hurb afirmou que está trabalhando para normalizar as operações e resolver essas pendências

Em resumo, o Hurb não apenas ainda está em funcionamento, mas também tem mostrado sinais claros de recuperação e comprometimento em melhorar sua relação com os clientes.

Enquanto outras OTA’s (Online Travel Agencies) lutam para se manter relevantes no mercado da América Latina, a Hurb simplesmente domina, operando com uma escala avassaladora! No último mês, a Hurb não só liderou, mas operou impressionantemente TRÊS VEZES mais do que a segunda maior OTA da região. Isso não é apenas liderança – é domínio absoluto. Enquanto algumas empresas tropeçam, a Hurb define o padrão e deixa claro quem manda no mercado de viagens online da América Latina!

✈️ Perguntas & Respostas ✈️

Sim, o Hurb continua operando normalmente e, em outubro de 2023, destacou-se como a empresa que mais transportou passageiros no Brasil.
O Hurb reconheceu os desafios enfrentados e implementou ações como a substituição do antigo CEO, contratação de consultoria especializada e estabelecimento de novas parcerias comerciais para melhorar suas operações.
Sim, a empresa afirmou que está trabalhando para normalizar as operações e resolver pendências relacionadas a reembolsos.
O Hurb lidera o mercado de viagens online na América Latina, operando três vezes mais do que a segunda maior agência de viagens online da região.
Até maio de 2023, o Hurb demonstrou melhorias significativas, transportando mais viajantes para diversos destinos em 2022 do que em 2021, indicando um crescimento contínuo.

O voo atrasou ou foi cancelado? Conheça os seus direitos

23 de outubro é celebrado o Dia do Aviador. Não existe nenhum tipo de transporte mais rápido que o aéreo. E que ao mesmo tempo seja seguro e confortável. No entanto, sabemos que nem tudo são flores. Problemas acontecem.

Portanto, montamos esse conteúdo para você saber todos os seus direitos antes, durante e depois de cada voo. Se liga:

No momento da compra da passagem

. A passagem aérea é pessoal e intrasferível.
. Em voos nacionais, criança com menos de 2 anos que não estejam ocupando assento não podem pagar mais de 10% do valor da passagem. A companhias aéreas têm como praxe não cobrar.
. Além do preço da passagem, é cobrada também a taxa de embarque no ato da venda, que é repassada à administração do aeroporto para manutenção da infraestrutura e dos serviços

Não vacile no embarque

. É obrigação da companhia aérea garantir que você faça a sua viagem com tranquilidade e segurança.

. Chegue com antecedência. Faça o check in com, pelo menos, uma hora antes do voo marcado em trajetos nacionais. Em viagens internacionais, duas horas.

Meu voo atrasou. E agora?

. Cancelamentos e atrasos (por questões de segurança, dificuldades climáticas etc.) são uma ocorrência muito comum e as companhias aéreas estão preparadas para lidar com eles. Nesses casos, a companhia aérea tem obrigação de garantir assistência material (comunicação, alimentação e acomodação) ao passageiro e, com isso, tentar amenizar os danos causados pelo imprevisto.

. É dever da companhia manter o passageiro informado sobre o motivo do atraso/cancelamento, dar uma previsão para resolução do problema e fornecer horário do próximo voo.

Saiba o que fazer em caso de cancelamento ou atraso de voo

A PARTIR DE 1 HORA DE ATRASO: a empresa deve providenciar alguma forma de comunicação para o passageiro, seja por telefone ou Internet;
A PARTIR DE 2 HORAS DE ATRASO: além de comunicação, o passageiro passa a ter direito à alimentação (um lanche ou uma bebida, por exemplo), também por conta da empresa;
A PARTIR DE 4 HORAS DE ATRASO: o passageiro terá direito à comunicação, alimentação e acomodação/hospedagem, além de transporte do aeroporto até o local da hospedagem (hotel). Se estiver em sua cidade, o passageiro pode ser levado até sua residência e, posteriormente, transportado novamente ao aeroporto;
• ACIMA DE 4 HORAS DE ATRASO ou CANCELAMENTO DE VOO: se o passageiro estiver no aeroporto de origem (ainda no início da viagem), ele poderá embarcar no próximo voo da empresa para o mesmo destino, remarcar seu voo para uma nova data, ou até mesmo receber o reembolso integral da passagem, incluindo tarifa de embarque.

… caso esteja em aeroporto de escala ou conexão. As opções serão:

• Embarcar no próximo voo para o destino final, seja ele da mesma ou de outra companhia aérea (a critério de disponibilidade). A assistência material é mantida;
• Receber o reembolso integral, incluindo tarifa de embarque, e retornar ao aeroporto de origem. A assistência material é mantida;
• Concluir a viagem por meio de outro meio de transporte (carro, van, táxi etc.). A assistência material é mantida;
• Remarcar o voo para nova data e horário, escolhidos pelo próprio passageiro. A assistência material é suspensa;
• Permanecer na localidade e receber o reembolso do trecho não utilizado. A assistência material é suspensa.

O que é overbooking?

O overbooking acontece quando o voo possui um excesso no número de reservas confirmadas, ou seja, quando a companhia aérea vende mais bilhetes do que a quantidade de vagas disponíveis no avião.

A companhia aérea tem obrigação de devolver sua mala nas mesmas condições
em que você a despachou

• Se sua mala for danificada, você pode reclamar imediatamente, no próprio aeroporto. Mas se estiver com muita pressa, saiba que ainda tem sete dias para oficializar sua reclamação;
• No caso de furto, você também deve comunicar o fato imediatamente à companhia aérea. Mas é importante também registrar uma ocorrência policial;
• Se sua mala for extraviada, o processo é um pouco mais demorado. Afinal, ela pode reaparecer algum tempo depois. No caso de voos nacionais, a bagagem poderá permanecer extraviada por até 30 dias; em voos internacionais, o prazo cai para 21 dias. Esgotados os prazos, a companhia aérea tem obrigação de indenizar o passageiro.

Não conseguiu resolver com a companhia aérea? O caminho é esse:

• Anac – Agência Nacional de Aviação Civil | Contato: www.anac.gov.br/faleanac | 0800 725 4445
• Procon – Defesa do Consumidor | Link com telefones em todo o Brasil: http://www.portaldoconsumidor.gov.br
• Infraero – Empresa Brasileira de Infraestrutura Aeroportuária | Contato: www.infraero.gov.br | 0800 727 1234
• SAC – Secretaria de Aviação Civil da Presidência da República | Contato: faleconosco@aviacaocivil.gov.br | (61) 3313-7076 / 7067
• Departamento de Polícia Federal | Contato: www.dpf.gov.br | 0800 978 2336
• Anvisa – Agência Nacional de Vigilância Sanitária | Contato: www.anvisa.gov.br/viajante | 0800 642 9782
• Receita Federal | Contato: www.receita.fazenda.gov.br | 146 (Receitafone) | 0800 702 1111 (Ouvidoria)
• Juizados Especiais Cíveis:
– Aeroporto Internacional de Guarulhos/ SP: (11) 2445-4728
– Aeroporto de Congonhas/ SP: (11) 5090-9801/9802/9803
– Aeroporto Internacional do Galeão/ RJ: (21) 3353-2992
– Aeroporto Santos Dumont/ RJ: (21) 2240-0904
– Aeroporto Internacional de Brasília/DF: (61) 3365-2343/1720

Ano Novo de 2024: razões para passar no Rio de Janeiro

Se você está em busca de uma experiência única e memorável para celebrar o (Ano Novo) Reveillon 2024, o Rio de Janeiro é o destino perfeito. Com sua mistura de cultura vibrante, praias deslumbrantes e uma atmosfera festiva como nenhuma outra cidade do mundo, o “Réveillon Carioca” é uma celebração que você nunca esquecerá.

Virada de ano na praia

Uma das características mais icônicas do Réveillon no Rio de Janeiro é a celebração nas praias da cidade. A Praia de Copacabana é o epicentro da festa, atraindo milhares de pessoas de todo o mundo. Imagine-se com os pés na areia, olhando para o mar, com uma vista deslumbrante dos fogos de artifício que iluminam o céu à meia-noite. É uma experiência que combina natureza, tradição e alegria em um só lugar.

Um espetáculo em fogos de artifício

Os fogos de artifício do Reveillon no Rio de Janeiro são famosos por sua grandiosidade. Com duração de aproximadamente 15 a 20 minutos, o espetáculo pirotécnico é um verdadeiro banquete visual, com fogos que refletem nas águas do mar e criam um cenário mágico. Você ficará sem palavras diante da beleza desse show de luzes.

Shows e muita música

A música é parte intrínseca da cultura carioca, e o Réveillon não é exceção. Durante a noite, você encontrará apresentações ao vivo de diversos estilos musicais nas ruas e nas praias. Do samba ao funk, passando pela bossa nova e outros gêneros locais, a cidade ganha vida com a música e a dança. Não há como resistir ao ritmo contagiante do Rio de Janeiro.

Tradição: vista roupas brancas

No Reveillon carioca, as superstições são levadas a sério. Vestir branco é uma tradição, pois acredita-se que a cor traz paz e purificação para o novo ano. Além disso, pular sete ondas no mar à meia-noite é um costume que traz boa sorte. As oferendas para Iemanjá, a deusa do mar na religião afro-brasileira, são feitas por muitos para garantir bênçãos e proteção.

Clima tropical

O Rio de Janeiro oferece um clima tropical, o que significa que o Reveillon é uma experiência agradável e quente. Você pode se sentir à vontade para usar roupas leves, desfrutar das praias e da vida noturna agitada da cidade.

Dicas para aproveitar ao máximo

  • Chegue cedo à Praia de Copacabana para garantir um bom lugar.
  • Use roupas brancas em respeito à tradição.
  • Esteja preparado para uma noite longa de celebração – a festa continua até o amanhecer.
  • Respeite as praias e o meio ambiente, recolhendo seu lixo e evitando a poluição.

O Réveillon 2024 no Rio de Janeiro é uma celebração que combina tradição, alegria e beleza natural de uma maneira única. Se você está em busca de uma experiência de Ano Novo inesquecível, não há lugar como a Cidade Maravilhosa para vivenciar esse momento mágico. Junte-se à festa e celebre a chegada de 2024 no estilo carioca!