;(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

Robô ChatGPT não é um oráculo que sabe de tudo; veja como sistema funciona

ChatGPT surgiu em novembro do ano ado - Lionel Bonaventure/AFP
ChatGPT surgiu em novembro do ano ado Imagem: Lionel Bonaventure/AFP

Simone Machado

Colaboração para Tilt*, em São José do Rio Preto (SP)

17/02/2023 04h00Atualizada em 17/02/2023 16h39

A tecnologia com inteligência artificial ChatGPT simula conversas humanas em texto e já conquistou milhões de usuários desde o lançamento, em dezembro de 2022. Respostas complexas com frases coerentes para uma variedade de assuntos (como futebol, política, filosofia, programação, poesias) em diferentes idiomas têm atraído olhares curiosos.

Contudo, por mais que pareça que a tecnologia consiga responder a qualquer tipo de pergunta, o CharGPT está longe de funcionar como oráculo, pois:

  1. O sistema só trabalha com dados até 2021. Logo, suas respostas podem não vir atualizadas.
  2. A tecnologia não prevê o futuro.
  3. O robô não tem compromisso com a realidade, e diz isso em seu site, de forma oficial.

Afinal, como o ChatGPT funciona?

Ao entrar na plataforma, você escreve o que deseja, pode ser uma pergunta, e a tecnologia processa o pedido. Na sequência, o algoritmo compreende o que foi solicitado e dá uma resposta em texto.

O sistema é capaz de criar planos, escrever poesia, compor música, criar histórias, encontrar problemas em códigos de programação, explicar (quase) qualquer conceito — e até de ser sarcástico.

Ao mesmo tempo, ele tem inteligência suficiente para desviar de questões polêmicas, evitando emitir opiniões e até alertando para assuntos perigosos, como suicídio e crimes — confira o nosso teste aqui.

As frases são geradas e agrupadas com base no que a inteligência aprendeu anteriormente — através de uma base enorme de dados.

A sua desenvolvedora, a empresa OpenAi, diz que treinou a inteligência artificial com 300 bilhões de palavras obtidas da internet - o que inclui livros, artigos, sites e postagens — e mais de 8 milhões de documentos.

Calcula-se que ela tenha um vocabulário estimado em 10 bilhões de palavras, de diferentes idiomas.

A tecnologia também foi criada para conseguir aprender sozinha e reconhecer padrões — é o chamado sistema de aprendizado de máquina.

Com isso, conforme mais usuários vão utilizando o ChatGPT, mais ele vai aprendendo. Ou seja, suas respostas tendem a melhorar com o tempo.

Como ele sabe dar respostas precisas?

De modo geral, existe uma técnica por trás chamada LLM (Large Language Model, ou Modelo Linguagem Grande, em tradução literal).

É um sistema que "aprende" uma língua - geralmente, por meio de exemplos de textos a que foi submetido — e que consegue prever que determinadas palavras combinam baseado num contexto, dado pela pergunta.

No fundo, não é necessariamente um "sistema inteligente". Ou seja, ele não pensa como os humanos. O que acontece é que ele é competente em juntar palavras e construir um texto com termos que se relacionam.

Normalmente o tempo de resposta é proporcional à complexidade daquilo que se espera saber nos modelos de linguagem.

Qual é exatamente a fonte dos dados?

Ainda há pouca clareza sobre as fontes usadas para treinar inteligência artificial.

Atualmente, ao usar o ChatGPT, fazendo uma solicitação do tipo — "me explique inteligência artificial como se eu fosse uma criança de 10 anos" -, o chatbot (robô de conversas) responde usando linguagem simplificada (já que é um pedido para facilitar a compreensão de uma criança) e sem citar nenhuma fonte.

Vale ressaltar que a versão do ChatGPT disponível desde dezembro do ano ado foi alimentada com dados até 2021 e usa uma base estática de informações.

Em um dos testes já realizados, professores perguntaram como coletar ovos de vaca (um questionamento baseado numa informação incorreta). O chatbot começou a listar recomendações como "usar uma luva e depois encontrar um ninho de vaca".

O ChatGPT é bom ou ruim?

Depende.

Por exemplo, os alunos podem usar a tecnologia para colar nas provas ou para que ela faça seus deveres de casa. O site norte-americano Atlantic já publicou um artigo prevendo o fim da redação escolar devido à habilidade do ChatGPT de escrever textos - muitos alunos vão deixar de investir tempo de estudo ao usar o robô.

Olhando por esse lado, essa tecnologia tende a deixar pessoas mais preguiçosas e "menos inteligentes".

A indústria criativa também pode sofrer danos com a popularização do ChatGPT.

É fácil imaginar como tecnologias do tipo serão reaproveitadas para automatizar e, eventualmente, substituir a força de trabalho humana em algumas profissões.

Por outro lado, alguns usos dentro da educação podem ser positivos, como para treinar escrever e interpretar textos em aulas de idiomas.

    *Com informações de Guilherme Tagiaroli, de Tilt