Anotação de Imagem como Metadado EXIF

Longo demais; não vou ler: Este artigo questiona práticas correntes na anotação de imagens para visão de computador e propõe armazenar anotações como metadados da imagem, dispensando o arquivo de texto pareado.

Uma das milhares de Imagens do ‘Caprichoso’, nosso dataset de gado zebuino. Breve no GitHub – Imagem: Cownt CC BY-NC-SA 4.0 Deed

Não sei se a prática teve origem na tentativa de contornar limitações tecnológicas dos primórdios. Trabalhando com visão de computador sempre achei um tanto desconcertante que seja preciso criar um arquivo de texto [sidecar file] – contendo as coordenadas das regiões de interesse e das caixas delimitadoras [bounding boxes] – para trabalhar em ‘tandem’ com o arquivo da imagem, quando o próprio arquivo de imagem possui um ambiente ideal, até mesmo Turing-completo [como o JPEG XL], para armazenar esses dados de uma forma estruturada. Isso parece muito ineficiente.

A proposta aqui é tentar simplificar o sistema de arquivos do dataset, eliminando os arquivos de texto secundários, e verificar se há algum ganho importante que justifique mudanças no atual paradigma do processo de treinamento, pelo menos para pequenos conjuntos de dados e tarefas de ajuste fino.

Os arquivos secundários, por definição, armazenam dados (geralmente metadados) que não são suportados pelo formato de um arquivo de origem. Obviamente, isso não é verdade com os arquivos de imagem digital modernos.

Procuro também entender os problemas técnicos e conceituais – e porque não dizer, éticos – relacionados à inserção/escrita/leitura de dados nessas estruturas/ambientes, bem como verificar se há algo a ganhar no processo de treinamento, pelo menos para pequenos datasets, datasets proprietários e/ou tarefas de ajuste fino.

Criar uma tag EXIF personalizada

De acordo com a Wikipedia [Inglês] “O padrão XMP foi projetado para ser extensível, permitindo aos usuários adicionar seus próprios tipos personalizados de metadados”.

Em um mundo perfeito, essa tag personalizada teria seu próprio tipo de dados. Para este exercício usaremos a vocação natural que as tags XMP têm para lidar com strings.

Uma imagem digital, além da informação ótica contida nos pixels, têm um amplo setor dedicado a armazenar informações gerais sobre outros detalhes. Esse setor é dividido em um grande número de campos de metadados, chamados ‘tags’, que armazenam informações específicas sobre o arquivo, como velocidade do obturador, exposição, condições ambientais, localização do dispositivo e inúmeros outros bits. Uma tabela, em outras palavras.

Há um grande número de tags XMP [link em inglês por falta de um em português – lusófonos, precisamos despertar para a tecnologia]. Os diversos dispositivos disponíveis no mercado adotam diversos formatos, sendo EXIF um entre eles.

Tags definidas pelo usuário

Precisamos então criar uma tag para conter nosso rótulo; nossa própria tag EXIF.

No mundo perfeito deste exercício, uma tag ‘Label’ para imagens estaria incluída na especificação XMP e populá-la seria responsabilidade das ferramentas de anotação.

As anotações são parte integrante da aprendizagem de máquina supervisionada. Em uma sessão de trabalho, a ferramenta de anotação normalmente cria, no momento em que um anotador seleciona a região da imagem que contém o item a ser rotulado, um arquivo de texto contendo as coordenadas da anotação da imagem, estruturado em um determinado formato – json, xml, CSV, etc.

São essas coordenadas que permitem ao sistema de AI sobrepor as “caixas delimitadoras” [‘bounding boxes’] – aqueles quadrados já familiares que delimitam os itens-alvo para detecção, como na imagem que ilustra este post. Esse arquivo de texto vive em um casamento indissolúvel com o arquivo de imagem e, para fins de visão de computador computacional, são sempre referenciados juntos.

Um argumento comum é que este esquema de separação imagem/texto permite maior flexibilidade nas anotações, atomização do dataset, etc. Mas contraponho o argumento de que nada é muito diferente quando todos são metadados.

Em uma etiqueta adequadadamente formatada, os dados de texto permanecem compartimentados e manipulá-los não será mais difícil do que manipular um arquivo de texto. Ainda é perfeitamente possível manter o conteúdo das tags sincronizado com arquivos de texto mantidos fora do dataset. O dataset não precisa mais de um sistema de arquivos [FileSystem]. Além disso, “grandes datasets de arquivos pareados têm custos consideráveis, bem como preocupações com a baixa qualidade” (Jia et al., 2021)[0].

Simplificar o dataset

Vamos então nos livrar do arquivo de texto e armazenar nossas anotações como uma tag EXIF do arquivo de imagem. Existem muitos módulos disponíveis em Python para esta tarefa, mas pouca diversidade. Muitos estão desatualizados. Uma pesquisa nos canais Anaconda (conda, conda-forge) e PyPi (pip) retorna módulos como pyexiv2; piexif e PyExifTool. Este último é um ‘wrapper’ Python para o ExifTool, que é uma aplicação escrita em Pearl. É meu preferido no momento. Não detalharei aqui as peculiaridades de cada um.

Com exiftool é possível executar manipulações avançadas em tags. Vamos usá-lo para criar uma nova tag chamada ‘Label’:

O processo envolve editar o arquivo exif.config contendo as tags que queremos definir, conforme estipulado na documentação do módulo:

%Image::ExifTool::UserDefined = (
    # Todas as tags EXIF tags são adicionadas à tabela principal ‘Main table’
    'Image::ExifTool::Exif::Main' => {
        # Example 1.  EXIF:NewEXIFTag
        0xd000 => {
            Name => 'Label',
            Writable => 'int16u',
            WriteGroup => 'IFD0',
        },
        # definir mais tags abaixo...
    }

O espaço de tags EXIF é domínio dos fabricantes de hardware. Programas comuns de edição de imagens como Gimp, Photoshop e outros oferecem maneiras de acessar e editar tags EXIF em seus ambientes.

Intervenções programáticas via Python, C++ requerem abordagens mais técnicas e usuários experientes.

Alternativamente, para uma versão mais simples do experimento, podemos pular a construção de tags personalizadas e usar – após renomeá-las adequadamente – uma ou duas das tags predefinidas na especificação EXIF e disponíveis na maioria dos dispositivos. Exemplos dessas são as tags UserComments, MakerNotes, etc.

Neste experimento, a anotação do rótulo da imagem será serializada para uma tag personalizada chamada ‘Label’ [1] na tabela XMP/EXIF da imagem – assumindo que a tag tenha sido criada ou renomeada no exif.config

def writeToEXIFtag (dadosAnotados)
     #pseudocódigo por enquanto
     Imagem.Exif.Label = dadosAnotados

em vez do arquivo de texto emparelhado [json, xml, csv, etc.]

 def writeToJSONFile(path, fileName, data):
     fileName = fileName.split(".")[0]
     filePathNameWExt = path + '/' + fileName + '.json'
     with open(filePathNameWExt, 'w') as fp:
         json.dump(data,fp)

como no processo usual.

Neste projeto, para maior praticidade [integração com outros módulos, etc.], o melhor caminho parece ser utilizar ambientes virtuais, como virtualenv e conda. Dificilmente é possível reunir exatamente os mesmos pacotes em ambas as plataformas. No momento estou utilizando ambientes que configurei com módulos que montei através da prática não muito limpa de misturar conda+pip. Ainda tenho coisas para descobrir – não tenho muita experiência com Pearl e estou tendo dificuldade em fazer com que tudo [exiftool + pyexiftool] funcione junto.

A favor

  • Processamento mais eficiente [a verificar].
  • Os arquivos de imagem do conjunto de dados podem ser renomeados e usados em qualquer outro dataset sem trabalho adicional.
  • Sem problemas com formatos diferentes. Esses Xlabels [rótulos EXIF] podem coexistir com os arquivos de anotação pareados.
  • A simplicidade traz ganhos pedagógicos; uma curva de aprendizagem [humana] menos acentuada.
  • Câmeras podem pré-anotar imagens automaticamente – pelo menos categorias universais, como COCO [isso é um ‘Pró’?].

Contra

  • Esse esquema reduz em muito a flexibilidade dos dados [a verificar]
  • Aumento do tamanho do conjunto de dados [a verificar]
  • Menos controle sobre conjuntos de dados e anotações [a verificar]
  • Os problemas habituais da economia de vigilância [câmeras detectando, identificando, classificando…]
  • <Insira seu Contra aqui>

Epílogo

Não tenho conhecimento de ideias semelhantes e gostaria de saber se existem. Eu também gostaria de saber se na verdade estou chegando atrasado a uma solução já rejeitada. Ainda estou nos estágios iniciais e receber feedback é parte fundamental do processo.

Estarei relatando os progressos [ou falta de]. Tenho o esqueleto do repositório no GitHub[2], e vou estar lapidando e finalizando a versão inicial nos próximos dias. É um projeto modesto – praticamente todo o README está neste post, porque a ideia é muito simples, como eu creio que todos podem ver.

[0] Scaling Up Visual and Vision-Language Representation Learning With Noisy Text Supervision https://arxiv.org/pdf/2102.05918.pdf

[1] A questão de se criar novas tags, ou renomear alguma existente, [ex. UserComments → Label], ou ambos, ou ainda outra opção com outro tipo de dados, está aberta, assim como a questão de se usar tags simples ou combinadas – por exemplo, para atomizar as coordenadas das caixas delimitadoras e outras informações

[2] https://github.com/VoxLeone/XLabel


APÊNDICE

Para criar uma tag personalizada usando o pyexiftool, você precisa ter a biblioteca pyexiftool instalada em seu ambiente Python. Como mencionado no artigo, pyexiftool é um ‘wrapper’ Python para exiftool, que é uma aplicação escrita nativamente em Pearl. Aqui está um exemplo de função que cria uma tag personalizada em uma imagem usando o pyexiftool:

import exiftool

def create_custom_tag(image_path, tag_name, tag_value):
    with exiftool.ExifTool() as et:
        et.execute(f'-{tag_name}={tag_value}', image_path)

# Exemplo de uso:
image_path = "caminho/para/imagem.jpg"
tag_name = "XMP:CustomTag"
tag_value = "Valor da tag personalizada"

create_custom_tag(image_path, tag_name, tag_value)

Substitua ‘caminho/para/imagem.jpg‘ pelo caminho real para a imagem em que você deseja criar a tag. Defina tag_name como o nome desejado para sua tag e tag_value como o valor que você deseja atribuir a ela.

Esta função vai então usar pyexiftool para executar a ferramenta exiftool em seu sistema e definir a tag personalizada na imagem especificada.

É preciso ter o exiftool instalado em seu sistema para que esta biblioteca funcione corretamente.

Inteligência Artificial com os Pés no Chão

Acabo de ler a coluna que Bruce Schneier e Nathan Sanders escrevem no NYTimes de hoje e é revigorante ver dois grandes luminares abordando as questões multifacetadas que cercam a IA.

Imagem de robôs atendentes
Imagem: pexels.com

No artigo eles destacam com a fluência de sempre os potenciais benefícios – lembrando-nos que a IA não envolve apenas robôs e assistentes de voz; é uma ferramenta de base que pode, de fato, impulsionar o progresso da humanidade. Contudo, a sua ênfase nos riscos sublinha uma preocupação premente. O desconforto em torno da presença da IA, do deslocamento dos empregos e das ameaças superinteligentes é palpável.

É claro que a evolução descontrolada da IA pode resultar em problemas não antecipados; nós não sabemos o quanto não sabemos. Como acontece com qualquer avanço tecnológico, existem riscos. Nossa missão enquanto tecnologistas profissionais deve ser permanecer atentos a eles com a cabeça fria, para garantir que todo o potencial positivo possível da IA seja aproveitado.

O clamor dos autores por regulamentação me parece oportuno. Como salientam, com razão, a tecnologia muitas vezes ultrapassa a regulamentação – eu diria que ela sempre ultrapassa. Mas legislar sobre IA é uma caminhada na corda bamba. Seja muito rigoroso e você vai sufocar o crescimento e a inovação; seja demasiado brando e você corre o risco de colher consequências desagradáveis.

Schneier e Sanders não chegam a se aprofundar em uma análise comparativa entre os modelos existentes em todo o mundo, estudando sucessos e fracassos. Ao todo, é uma leitura convincente que exige introspecção. Embora tenham iluminado o caminho a seguir, garantir a integração segura e eficaz da IA nos negócios humanos requer um esforço coletivo – os decisores políticos, os tecnólogos e o público em geral devem dar as mãos. Esse artigo é um passo crucial na promoção desse diálogo.

Pés no chão

Investi muitas horas ouvindo especialistas em IA e especialistas de outras áreas discutirem as implicações, benefícios e riscos. Ao longo dos últimos seis anos tenho lido, estudado sistematicamente, me graduado e me aprofundado. Tenho hoje experiência própria em IA, onde desenvolvo e lidero uma equipe na construção de soluções específicas de IA para várias categorias de processos – principalmente industriais, de otimização de energia e recentemente o agronegócio – em breve cownt.com.br :). Comentar AI é praticamente a razão da existência deste e outros blogs hoje – incluindo o blog de Schneier, que acompanho muito de perto.

Se tudo a respeito da IA se resumisse a isso, a Inteligência Artificial seria 95% bondade. Eu e outros empreendedores poderiamos continuar com nossos projetos sem maiores preocupações éticas.

Mas a tecnologia agora está abrindo uma série de caixas de Pandora e está em aceleração crescente. A minha opinião é que a) os riscos podem ser geridos, em teoria, mas b) é muito pouco provável que nós, humanos, consigamos fazê-lo. Mitigar os riscos óbvios requer colaboração, transparência, sabedoria, um eleitorado informado, funcionários e representantes governamentais competentes e contenção empresarial em todos os países.

Não só esses elementos basicos não estão disponíveis nos dias de hoje, mas, historicamente, nunca fomos capazes de cooperar a esta escala com algo que se aproximasse desta complexidade. Especialmente quando há dinheiro a ser ganho ou vantagens a serem obtidas para entidades individuais. Em vez disso, naturalmente espero que no caminho caiamos em algumas das armadilhas óbvias.

Eu adoraria estar errado, mas simplesmente não consigo imaginar a classe política contribuindo para medidas sensatas ou proporcionando uma supervisão sensata (exemplo A: as audiências do Facebook e do TikTok no EUA. Exemplo B: a total ausência de discussão desses assuntos no Brasil). A segurança da sociedade diante da disseminação da AI no momento está a depender apenas da responsabilidade individual dos empreendedores.

Pés na lama

A avaliação mais preocupante não vem dos futuristas, mas sim dos analistas da Goldman-Sachs, que projetam 300 milhões de empregos perdidos até 2030 nos EUA e na UE. Algo em torno de 42 milhões por ano. O relatório menciona novos empregos decorrentes do trabalho com IA, mas não diz quantos. Um número semelhante (um terço de todas as horas de trabalho automatizadas até 2030) provém dos analistas mais futuristas – e menos financeiros – do Instituto McKinsey.

Serão trabalhadores em empregos de colarinho branco, especialmente o que chamo de empregos de “camisa pólo”. A IA generativa pode, por exemplo, tornar os veículos autonomos definitivamente seguros para implantação em massa. Pode substituir muitos de nós que trabalhamos em help desks e no atendimento ao cliente.

Sim. Apertem os cintos para as maiores mudanças culturais e laborais desde a invenção da máquina a vapor. As tecnologias de mudança de paradigma surgidas no śeculo 18 e 19 representaram melhorias incrementais da capacidade humana. A IA, por sua vez, substitui completamente ou em parte, tudo o que fazemos no trabalho moderno.

Minha esperança? Dado esse nível de automatização, precisamos começar a pensar em tributar de maneira eficiente os proprietários das grandes plataformas de IA e proporcionar um rendimento garantido aos demais cidadãos. No momento não consigo ver alternativas realistas a isso se queremos evitar o colapso da ordem social.

AI não é Páreo para as Sutilezas Humanas

Faço uma resenha crítica de um artigo muito pertinente publicado no MIT Press Reader , de autoria dos psicólogos Amos Tversky e Daniel Kahneman. O trabalho trata de dois grandes grupos de problemas e suas e implicações e correlações com o pensamento humano e com a inteligência de máquina.

As nuances humanas
Imagem: Pexels.com

A ênfase das abordagens computacionais da inteligência que nos acostumamos a ver no noticiário tem sido colocada em problemas formais e bem estruturados; problemas que têm um objetivo claro e um número definido de soluções possíveis. Esses problemas são os que podem ser, portanto, resolvidos por um algoritmo.

Mas nós, humanos, somos criativos, irracionais e inconsistentes. Concentrar-se nesses problemas bem estruturados às vezes pode ser enganoso e improdutivo – como o proverbial bêbado a procurar as chaves perdidas ao redor do poste, só porque ali é onde a luz brilha mais forte.

Os autores argumentam que existem dois grupos de problemas que são muito típicos da inteligência humana e merecem um olhar atento.

Um grupo contém os chamados problemas de insight. Os problemas de insight geralmente não podem ser resolvidos por um procedimento passo a passo, como um algoritmo, ou, quando podem, o processo se torna extremamente tedioso. Em vez disso, os problemas de insight exigem a reestruturação da própria abordagem do solucionador do problema.

Outro grupo são os problemas de procedimento [no artigo original é usada a expressão “problems of path” – problemas de caminho]. Em problemas de procedimento o solucionador tem disponível uma representação, que inclui um estado inicial, um estado objetivo e um conjunto de ferramentas ou operadores que podem ser aplicados para percorrer a representação. Em problemas de insight o solucionador não tem essas balizas.

Com problemas de procedimanto o solucionador geralmente pode avaliar quão próximo o estado atual do sistema está do estado objetivo. A maioria dos algoritmos de aprendizado de máquina depende desse tipo de avaliação.

Com problemas de insight, por outro lado, muitas vezes é difícil determinar se houve algum progresso até que o problema seja essencialmente resolvido. O que chamaríamos “efeito eureka” ou “momento aha!”, uma compreensão repentina de uma solução anteriormente incompreensível.

Insights são para humanos

De acordo com os autores, os problemas de insight podem ser representados de diversas maneiras. A maneira como você pensa sobre um problema, ou seja, como você representa o problema, pode ser fundamental para resolvê-lo.

Muito pouco se sabe sobre como resolvemos problemas de insight. Esses problemas são normalmente difíceis de estudar em laboratório com muita profundidade, porque as pessoas tễm uma dificuldade natural em descrever as etapas que percorrem para resolvê-los. A maior parte desses problemas pode ser resolvida com a obtenção de um ou dois insights secundários capazes de mudar a natureza do enfoque sobre eles.

Todos nós sabemos que as pessoas nem sempre se comportam da maneira estritamente sistemática necessária para o pensamento rigorosamente lógico. Esses desvios não são falhas ou erros no pensamento humano, mas características essenciais sem as quais provavelmente a inteligência não evoluiria.

Normalmente não parecemos prestar muita atenção às partes formais de um problema – especialmente quando fazemos escolhas arriscadas. Tversky e Kahneman descobriram que as pessoas fazem escolhas diferentes quando apresentadas às mesmas alternativas, dependendo de como essas alternativas sejam descritas.

Em alguns dos testes realizados, as pessoas preferiam o resultado certo ao incerto, quando o certo era enquadrado num tom positivo, e preferiam a alternativa incerta à certa, quando a certa era enquadrada num tom negativo. Com efeito, a estrutura ou tom das alternativas modulou a disposição dos participantes em aceitar o risco.

Nossas decisões, sejam elas corretas ou incorretas, sempre são produzidas pelos mesmos processos cognitivos. Ao contrário dos computadores, somos relativamente limitados no que podemos manter na memória ativa ao mesmo tempo.

Processos rápidos, processos lentos

Temos uma complexidade no nosso pensamento e processos intelectuais que nem sempre trabalha a nosso favor. Tiramos conclusões precipitadas. Somos mais facilmente persuadidos pelos argumentos que se adequam às nossas visões preconcebidas, ou que são apresentados num contexto ou noutro. Às vezes nos comportamos como computadores, mas na maioria das vezes somos desleixados e inconsistentes.

Daniel Kahneman descreve a mente humana como consistindo de dois sistemas, um que é rápido, relativamente impreciso e automático, e um outro que é lento, deliberado, e demora para chegar a uma conclusão mas, quando finalmente chega, é consistentemente mais preciso.

O primeiro sistema, diz ele, é ativado quando você vê a imagem de uma pessoa e percebe que ela está com raiva e provavelmente gritará. O segundo sistema é acionado quando você tenta resolver um problema de multiplicação como 17 × 32. O reconhecimento da raiva, em essência, surge em nossa mente sem nenhum esforço óbvio, mas o problema de matemática requer esforço deliberado e talvez a ajuda de lápis e papel (ou uma calculadora).

O que ele chama de segundo sistema está muito próximo do estado atual da inteligência artificial. Envolve esforços deliberados e sistemáticos que exigem o uso de invenções cognitivas.

O desenvolvimento dos sitemas computacionais inteligentes concentrou-se no tipo de trabalho realizado pelo sistema deliberado, embora o sistema automático ativado pelo reflexo possa ser tão ou mais importante. E pode ser mais desafiador de emular em um computador.

Mais fatos interessantes [em inglês] seguindo o link:

https://thereader.mitpress.mit.edu/ai-insight-problems-quirks-human-intelligence/

Drones

Ah, os drones…


Vejo muitos drones na Faria Lima,

vindos de Mauá ou Santo André,

vidrados nos smartphones,

passes de segurança do escritório

em volta do pescoço,

a falar monotonamente

sobre seguro de TI

– ou será outra coisa?

* * *

Aqui no meu contrato formal com os leitores eu os adverti que poderiam ocasionalmente estar à mercê dos meus poemas. Hoje a ameça se cumpre pela primeira vez (ou será a segunda?). Love. EBM.

Dez Ideias (não tão) Práticas para Romper Bolhas Culturais

… ao invés de apenas apontar dedos e procurar culpados. Este é um assunto muito extenso para ser abordado de forma eficaz aqui, mas alguns pontos principais podem ser discutidos:

Criança estourando bolhas de sabão.
Imagem: Pexels.com

1. É muito fácil ser derrotista ou fatalista. Não sou complacente com a seriedade do desafio de tirar a sociedade do marasmo, do beco sem saída filosófico em que nos metemos neste século – e, em particular, com a maneira como certas “ideias progressistas” foram incorporadas ao treinamento de professores e ao sistema educacional geral – mas existem paralelos históricos encorajadores quanto à possibilidade de rompimento de impasses culturais.

Na década de 1930, a década que assistiu ao fim da primeira fase do capitalismo, e com a qual alguns acadêmicos comparam nosso tempo, muitos estudantes e grupos jovens apoiaram o pacifismo ou o marxismo. Na década de 1960, seus sucessores abraçaram uma variedade de ideias políticas e sociais radicais. Em ambos os casos, seus pais ficaram horrorizados, mas o primeiro grupo veio a se tornar a “maior geração” e o segundo os liberais, embora auto-indulgentes, “boomers”. A sociedade ocidental historicamente progrediu ao enfrentar desafios e reagir de forma construtiva. É prematuro presumir que falharemos desta vez.

2. A reação à atual estagnação do pensamento ocidental parece estar ganhando força. A “janela de Overton” tem se expandido visivelmente. Pelos sinais ao redor, minha impressão é que nos últimos dezoito meses os maiores de 30 anos começaram acordar para o que está a acontecer. É menos claro para mim se houve tanto movimento entre os mais jovens.

3. Vejo como o desafio central a tarefa de persuadir a Geração Z – e especialmente os estudantes da Geração Z nas universidades de maior prestígio – a reconhecer as virtudes do debate aberto como verdade objetiva e ter a não conformidade à qualquer ideia majoritaria como trunfo.

4. Dito de outra forma, a questão central diz respeito aos meios, não aos fins. Muitas pessoas concordam com – ou pelo menos aceitam como legítimas – muitas das reclamações da Geração Z. O problema não é que os Wokes querem tolerância para trans, menos desigualdade econômica, justiça racial, mais ação sobre mudanças climáticas, etc, mas sim sua relutância em debater essas questões e suas tentativas de intimidar e deslegitimar qualquer dissidência, mesmo em questões de detalhe. Eles estão atacando os valores do Iluminismo, que conduziram a vida ocidental por duzentos anos. Em particular, eles estão tentando destruir a primazia do livre debate como caminho para boas decisões.

5. Esta não é apenas uma batalha de ideias em si. Alimenta-se de uma série de fatores estruturais também. O impacto da política de identidade, mídia social, negacionismo, polarização, bolhas culturais/ideológicas, etc, tem sido amplamente discutido. Eles fornecem o solo fértil sem o qual as sementes dos radicalismos progressista e conservador teriam murchado e não florescido. A sociedade ocidental precisa ajustar suas estruturas legais, políticas e tecnológicas.

6. O que mais beneficiaria o debate informado é a regulamentação das mídias sociais. Para além do impacto psicológico nos adolescentes, o próprio “status quo” dessas estruturas é inaceitável. Algoritmos que deliberadamente empurram indivíduos para cantos ideologicamente extremos da internet podem beneficiar os donos da redes sociais por meio do aumento do “engajamento” enfurecido e, portanto, da lucratividade, mas o impacto que isso tem na sociedade é muito pernicioso. Precisamos aceitar que a praça pública precisa de regras pactuadas e transparentes.

7. A maioria das pessoas responde com mais força a histórias do que a conceitos abstratos. Além de focar em exemplos individuais, como sucesso das mulheres trans em esportes femininos, etc., certas grandes contranarrativas históricas precisam ser desenvolvidas e impulsionadas, por exemplo as que descrevem como o “sistema ocidental”, o conjunto de instituições e valores que resgatou bilhões da pobreza e da tirania, pode ser implantado de forma benéfica em qualquer lugar – e poderia facilmente ter surgido no Oriente Médio ou na China como na Europa.

8. Pessoalmente, acredito que a situação econômica da Geração Z é um fator muito mais importante para explicar sua radicalização do que geralmente é aceito. Se suas perspectivas individuais fossem menos desanimadoras, suspeito que eles ficariam mais calmos em uma ampla gama de tópicos. Como conseguir isso é outra área de debate.

9. O ponto geral é que precisamos reafirmar os valores centrais do Iluminismo, mas também desenvolver novas ideias sobre como aplicá-los, dada a sociedade e a tecnologia atuais. É insuficiente defender a “liberdade de expressão”; também precisamos estabelecer novas regras sobre como certos discursos são privilegiados e outros discursos são desenfatizados na praça pública. A maioria concordaria que a censura a certos temas durante a Covid foi exagerada, mas exagerados também são os algoritmos que exacerbam a polarização e o extremismo.

10. Impulsionar uma agenda positiva é importante, mas importante também, a meu ver, é uma crítica implacável da teoria e prática do movimento progressista radical. Precisamos criticar a mentalidade que vê tudo como uma luta de poder entre categorias privilegiadas e as marginalizadas — infinitamente redefinidas.

Outros enfatizariam pontos diferentes. Um debate contínuo – em um espírito construtivo e amigável – sem dúvida levaria a conclusões mais ricas do que aquelas produzidas por qualquer indivíduo.