IA de código aberto: entenda o que está em jogo nessa definição

14 jan de 2025, por OKBR

Compartilhar

Veja a definição inédita de IA de código aberto lançada pela Open Source Initiative e saiba por que algumas organizações, como a Open Knowledge Foundation, não a endossaram

 

No fim de 2024, a Open Source Initiative (OSI) divulgou a versão 1.0 da sua definição de Inteligência Artificial (IA) de código aberto (OSAID, em inglês). 

Segundo a organização, que busca promover software de código aberto e é considerada uma autoridade no assunto, uma IA aberta seria aquela cujo sistema é disponibilizado segundo termos que permitem às pessoas usuárias a liberdade de usar, estudar, modificar e compartilhar essa IA sem restrições ou ter que pedir permissões.

Para isso, ela traz uma série de parâmetros e formatos ideais necessários, como os que se referem às informações sobre dados utilizados para o aprendizado de máquina e sobre o código-fonte.

Para a OSI, a definição de IA de código aberto deve ser um padrão importante para o mercado, com o objetivo de garantir transparência e responsabilidade para pesquisas com IA, trazer mais competitividade e inovação à área – já que disponibilizaria tecnologia fundamental para que demais pessoas pudessem trabalhar com ela –, e combater o chamado “openwashing”, ou seja companhias que intitulam seus sistemas de IA como abertos, mas que na verdade não o são por falta de padronização estabelecida.

O processo para chegar à versão 1.0 demorou dois anos, e contou com a participação de mais de 50 co-designers, mais de 120 organizações e indivíduos apoiadores.

A definição está aberta para contribuições e para endosso de qualquer pessoa, organização ou entidade que queira avalizar o texto. Mozilla, Moodle, Eclipse Foundation e Eleuther são algumas das empresas que já endossaram a definição da OSI.

 

Definição de IA aberta pela OSI - versão 1.0

*O texto a seguir foi traduzido na íntegra do site da OSI, acessado no dia 8 de janeiro de 2025.

 

Preâmbulo

Por que precisamos de Inteligência Artificial (IA) de código aberto

O código-fonte aberto demonstrou que grandes benefícios são obtidos por todos após a remoção das barreiras ao aprendizado, ao uso, ao compartilhamento e ao aprimoramento dos sistemas de software. Esses benefícios são o resultado do uso de licenças que aderem à definição de código aberto. Para a IA, a sociedade precisa pelo menos das mesmas liberdades essenciais do código aberto para permitir que os desenvolvedores, implantadores e usuários finais de IA desfrutem desses mesmos benefícios: autonomia, transparência, reutilização sem atrito e aprimoramento colaborativo.

O que é IA de código aberto?

Quando nos referimos a um “sistema”, estamos falando de forma ampla sobre uma estrutura totalmente funcional e seus elementos estruturais discretos. Para ser considerado de código aberto, os requisitos são os mesmos, sejam eles aplicados a um sistema, um modelo, pesos e parâmetros ou outros elementos estruturais.

Uma IA de código aberto é um sistema de IA disponibilizado tanto sob termos e de uma forma que concede as liberdades1 de:

  • Usar o sistema para qualquer finalidade e sem precisar pedir permissão;
  • Estudar como o sistema funciona e inspecionar seus componentes;
  • Modificar o sistema para qualquer finalidade, inclusive para alterar sua saída;
  • Compartilhar o sistema para que outras pessoas o utilizem com ou sem modificações, para qualquer finalidade.

Essas liberdades se aplicam tanto a um sistema totalmente funcional quanto a elementos discretos de um sistema. Uma condição prévia para exercer essas liberdades é ter acesso à forma preferida para fazer modificações no sistema.

Forma preferida para fazer modificações em sistemas de aprendizado de máquina

A forma preferida para fazer modificações em um sistema de aprendizado de máquina deve incluir todos os elementos a seguir:

  • Informações sobre os dados: Informações suficientemente detalhadas sobre os dados usados para treinar o sistema, de modo que uma pessoa capacitada possa criar um sistema substancialmente equivalente. As informações sobre os dados devem ser disponibilizadas nos termos aprovados pela OSI.
    • Em particular, isso deve incluir: (1) a descrição completa de todos os dados usados para treinamento, inclusive (se usados) de dados não compartilháveis, divulgando a procedência dos dados, seu escopo e características, como os dados foram obtidos e selecionados, os procedimentos de rotulagem e as metodologias de processamento e filtragem de dados; (2) uma lista de todos os dados de treinamento disponíveis publicamente e onde obtê-los; e (3) uma lista de todos os dados de treinamento que podem ser obtidos de terceiros e onde obtê-los, inclusive mediante pagamento.
  • Código: O código-fonte completo usado para treinar e executar o sistema. O código deve representar a especificação completa de como os dados foram processados e filtrados e como o treinamento foi realizado. O código deve ser disponibilizado sob licenças aprovadas pela OSI.
    • Por exemplo, se usado, deve incluir o código usado para processar e filtrar dados, o código usado para treinamento, incluindo argumentos e configurações usados, validação e teste, bibliotecas de suporte como tokenizadores e código de pesquisa de hiperparâmetros, código de inferência e arquitetura do modelo.
  • Parâmetros: Os parâmetros do modelo, como pesos ou outras definições de configuração. Os parâmetros devem ser disponibilizados nos termos aprovados pela OSI.
    • Por exemplo, isso pode incluir pontos de verificação dos principais estágios intermediários do treinamento, bem como o estado final do otimizador.

O licenciamento ou outros termos aplicados a esses elementos e a qualquer combinação deles podem conter condições que exijam que qualquer versão modificada seja liberada sob os mesmos termos que a original.

Modelos e pesos de código aberto

Para sistemas de aprendizado de máquina,

  • Um modelo de IA consiste na arquitetura do modelo, nos parâmetros do modelo (incluindo pesos) e no código de inferência para executar o modelo.
  • Os pesos de IA são o conjunto de parâmetros aprendidos que se sobrepõem à arquitetura do modelo para produzir uma saída a partir de uma determinada entrada.

A forma preferida para fazer modificações nos sistemas de aprendizado de máquina também se aplica aos componentes individuais. Os “modelos de código aberto” e os “pesos de código aberto” devem incluir as informações de dados e o código usado para derivar esses parâmetros.

A definição de IA de código aberto não exige um mecanismo legal específico para garantir que os parâmetros do modelo estejam disponíveis gratuitamente para todos. Eles podem ser livres por sua natureza ou pode ser necessária uma licença ou outro instrumento legal para garantir sua liberdade. Esperamos que isso se torne mais claro com o tempo, quando o sistema jurídico tiver mais oportunidades de lidar com sistemas de IA de código aberto.

Definições

Sistema de IA2: Um sistema de IA é um sistema computacional que, para objetivos explícitos ou implícitos, infere, a partir da entrada que recebe, como gerar resultados, como previsões, conteúdo, recomendações ou decisões que podem influenciar ambientes físicos ou virtuais. Diferentes sistemas de IA variam em seus níveis de autonomia e adaptabilidade após sua implantação.

Aprendizado de máquina3: é um conjunto de técnicas que permite que os sistemas computacionais melhorem seu desempenho e, geralmente, que gerem modelos de forma automatizada por meio da alimentação por dados de treinamento, o que pode ajudar a identificar padrões e regularidades em vez de instruções explícitas de um ser humano. O processo de aprimorar o desempenho de um sistema usando técnicas de aprendizado de máquina é conhecido como “treinamento”.

1. Essas liberdades são derivadas da Definição de Software Livre.
2.
Recomendações do Recomendação do Conselho sobre Inteligência Artificial OCDE/LEGAL/0449, Organização para Cooperação e Desenvolvimento Econômico (OCDE), 2024

3. Memorando explicativo sobre a definição atualizada da OCDE de um sistema de IA, OECD Artificial Intelligence Papers, No. 8, OECD Publishing, Paris.

 

Por que não endossamos essa proposta

Partindo do conceito de código aberto, que é de onde nasce a definição de IA de código aberto, foram identificados ao menos dois pontos de atenção na atual definição: abertura insuficiente e autorreferência.

Há dúvidas se o conceito de abertura apresentado pela definição da OSI (versão 1.0) é o que queremos, acreditamos e pelo qual viemos lutando. Ao citar que é preciso que sejam disponibilizadas “informações suficientemente detalhadas sobre os dados usados para treinar o sistema” abre-se uma margem bastante grande de debate sobre o grau de abertura, o que é suficiente ou não para o desenvolvimento de um sistema similar. Mais uma camada de imprecisão desta definição vem ao indicar que bastaria uma descrição detalhada de dados não compartilháveis. 

Um ponto relevante que vale resgatar do conceito de código aberto e cujo espírito é preciso observar quando da sua adaptação/expansão a outros contexto é sua auditabilidade. Ou seja, a abertura do código serve também para que o código seja passível de inspeção. Sem assegurar acesso a dados de treinamento, é impossível replicar, testar ou verificar totalmente as decisões e os resultados de um modelo, pois os dados influenciam a forma como o modelo aprende, quais vieses ele pode desenvolver e como ele generaliza para novas entradas.

Sendo assim, a definição tal como está, permitindo o não compartilhamento de dados de treinamento, aliado a informações mais ou menos detalhadas sobre eles, pode levar a um grau de opacidade do sistema. 

“É possível termos código aberto sendo usado em sistemas de IA, como Llama e outros, bem como entender que isso fomenta o ecossistema de inovação em alguma medida. Contudo, por si só, isso não assegura que o sistema de IA como um todo seja aberto – os dados de treinamento são cruciais para que sejam verificáveis. Além disso, a capacidade computacional demandada por um sistema de IA pode implicar barreiras econômicas que, na prática, acabariam por inviabilizar a reprodutibilidade do modelo”, acrescenta Haydée Svab, diretora-executiva da Open Knowledge Brasil.

Haydée ressalta ainda que outro aspecto com que é preciso ter cuidado são as autorreferências à própria OSI. Por óbvio que se trata de uma organização reconhecida e respeitada, mas em diversos pontos a definição traz um grau de chancela da OSI em alguns aspectos, citando “licenças aprovadas pela OSI” ou parâmetros “disponibilizados sob os termos aprovados pela OSI”. 

Por se tratar de uma definição conduzida pela OSI, esse tipo de autorreferência já existe, em alguma medida. Porém, essa endogenia não é desejável pois implica a convicção de que a OSI tem as melhores licenças ou parâmetros –o que não é um consenso na comunidade FLOSS. Esse tipo de “referência cruzada” traz dissidências herdadas de outras definições, fóruns e debates para este debate específico da OSIAD, como o que acabamos de apontar. Assim, o ideal é buscar uma definição que seja a mais autônoma possível, minimizando as autorreferências da OSI ou a dependência de decisões futuras.

Portanto, ainda que se reconheça o esforço na direção certa para reduzir a opacidade em torno dos sistemas de IA, sem os dados, entende-se que essa definição segue insuficiente para assegurar que um sistema de IA seja realmente considerado aberto.

 

Para saber mais

Finalmente temos uma definição para a IA de código aberto (MIT Technology Review)

Open Source AI: um conceito à procura da sua definição (Jota) 

Why open-source AI models are good for the world (The Economist)

Por que a IA ‘open source’ não passa de branding para as big techs (Bloomberg Línea)