;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Programa de grupo de pesquisa de Elon Musk cria boatos mais facilmente

OpenAI, de Elon Musk (foto), decidiu não disponibilizar versões mais sofisticadas do software - REUTERS/Joe Skipper
OpenAI, de Elon Musk (foto), decidiu não disponibilizar versões mais sofisticadas do software Imagem: REUTERS/Joe Skipper

Jeremy Kahn

Da Bloomberg

16/02/2019 11h28

A OpenAI, um grupo de pesquisa em inteligência artificial cofundado pelo bilionário Elon Musk, fez uma demonstração de um software capaz de produzir notícias falsas que parecem autênticas após receber apenas algumas informações.

Em um exemplo publicado na quinta-feira (14) pela OpenAI, o sistema recebeu um texto de exemplo: "Um vagão de trem contendo materiais nucleares controlados foi roubado hoje em Cincinnati. O paradeiro dele é desconhecido." A partir disso, o software foi capaz de gerar um convincente artigo de sete parágrafos, incluindo citações de representantes do governo, tendo como único senão o fato de ser totalmente falso.

"Os textos que são possíveis gerar com poucos detalhes são muito impressionantes", disse Sam Bowman, cientista da computação da Universidade de Nova York especializado em processamento de linguagem natural, que não participou do projeto OpenAI, mas foi informado a respeito. "O software é capaz de fazer coisas qualitativamente muito mais sofisticadas do que qualquer coisa antes vista."

A OpenAI está ciente das preocupações em relação às fake news, disse Jack Clark, diretor de política da organização. "Um dos propósitos não tão bons seria a desinformação, porque o software é capaz de produzir textos que soam coerentes, mas que não são precisos", disse.

Como precaução, a OpenAI decidiu não publicar, nem disponibilizar as versões mais sofisticadas de seu software. A empresa, no entanto, criou uma ferramenta que permite que autoridades, jornalistas, escritores e artistas façam experiências com o algoritmo para ver que tipo de texto ele é capaz de gerar e que outros tipos de tarefa pode executar.

O potencial de o software conseguir criar notícias falsas quase instantaneamente surge em meio a preocupações globais a respeito do papel da tecnologia na disseminação da desinformação. Os órgãos reguladores europeus ameaçaram tomar medidas se as empresas de tecnologia não se esforçarem mais para evitar que seus produtos ajudem a influenciar eleitores e o Facebook trabalha desde a eleição presidencial americana de 2016 para tentar conter a disseminação de informações falsas em sua plataforma.

Clark e Bowman disseram que, por enquanto, as habilidades do sistema não são suficientemente consistentes para representar uma ameaça imediata. "A tecnologia atualmente não está pronta para uso, o que é positivo", disse Clark.

Revelada em um trabalho acadêmico e em uma postagem de blog na quinta-feira, a criação da OpenAI é treinada para uma tarefa conhecida como linguagem de modelagem, que consiste na previsão da próxima palavra de um texto com base no conhecimento de todas as palavras anteriores, funcionamento semelhante ao do recurso autocompletar ao escrever um e-mail ou digitar no celular. Ela também pode ser usada para tradução e para responder a perguntas abertas.

Um possível uso é ajudar redatores criativos a gerar ideias ou diálogos, disse Jeff Wu, pesquisador da OpenAI que trabalhou no projeto. Entre as demais utilidades está a verificação de erros gramaticais em textos ou a busca por erros em códigos de softwares. O sistema poderia ser ajustado no futuro para resumir textos para tomadores de decisão corporativos ou do governo, disse.