Voltar ao Blog
Inteligência ArtificialCapítulo 1

A IA na Prática: Aplicações, Problemas e Desafios: Aspectos Práticos

Aspectos práticos do GitHub Copilot: como transformers, big data e overfitting operam em sistemas de geração de código e os desafios jurídicos de responsabilidade por violação de licenças.

Alessandro Lavorante 5 de julho de 2024 7 min de leitura

Aspectos Práticos da IA Generativa de Código

A análise dos aspectos práticos do GitHub Copilot oferece uma janela privilegiada para compreender como os sistemas de inteligência artificial generativa funcionam, quais são seus pontos de falha e de que forma essas características técnicas se traduzem em desafios jurídicos concretos. Mais do que um caso isolado de litígio em propriedade intelectual, o Copilot representa um modelo de operação que se repete — com variações — em inúmeros outros sistemas de IA generativa, tornando sua análise técnica relevante para além do setor de desenvolvimento de software.

O Copilot é, em essência, um sistema de sugestão de código em tempo real que opera diretamente no ambiente de desenvolvimento do programador. A partir de uma linha ou de um comentário escrito pelo usuário, o sistema sugere automaticamente trechos de código que completam ou implementam a funcionalidade desejada. Essa capacidade de geração contextualizada é o que torna o Copilot uma ferramenta produtiva — e também o que gera as controvérsias jurídicas que o cercam.

A Arquitetura Técnica: Transformers e Aprendizado em Larga Escala

Do ponto de vista técnico, o Copilot se baseia em redes neurais profundas do tipo transformer, as mesmas que fundamentam sistemas como o GPT. Essas redes são responsáveis por gerar trechos de código a partir das entradas fornecidas pelos usuários, utilizando mecanismos de atenção para identificar relações contextuais complexas entre diferentes partes do código — relações entre funções, variáveis, bibliotecas e comentários, em múltiplas linguagens de programação.

O treinamento do Copilot envolveu tanto o aprendizado supervisionado quanto o autossupervisionado. No aprendizado supervisionado, o modelo aprende a partir de exemplos explicitamente anotados ou avaliados por humanos. No autossupervisionado, o modelo "aprende" a partir de grandes volumes de código bruto, identificando padrões sem que cada exemplo seja explicitamente categorizado. A combinação dessas abordagens permite ao sistema generalizar conhecimento sobre padrões de programação a partir de uma quantidade massiva de repositórios.

O processo faz uso intensivo de dados (Big Data): o corpus de treinamento abarca milhões de repositórios hospedados no GitHub, escritos em dezenas de linguagens de programação diferentes e regidos por uma diversidade de licenças — MIT, GPL, Apache, BSD, entre outras. Essa heterogeneidade de licenças é precisamente o que torna o caso juridicamente complexo: o sistema foi treinado com código sujeito a obrigações distintas e, em muitos casos, incompatíveis entre si.

O Comportamento de Caixa-Preta e o Problema da Rastreabilidade

Um dos aspectos práticos mais relevantes do caso Copilot é o comportamento de caixa-preta do sistema. Nos modelos de grande porte (Large Language Models, LLMs), é extraordinariamente difícil — quando não impossível — rastrear a origem exata de cada trecho de código sugerido. O modelo não armazena os dados de treinamento de forma indexada e recuperável; ele os processa para extrair representações abstratas (embeddings) que capturam padrões gerais, sem manter referências diretas aos exemplos específicos de onde esses padrões foram aprendidos.

Esse comportamento tem consequências práticas diretas para o litígio: os autores da ação precisam demonstrar que o Copilot reproduz trechos específicos de código protegido — tarefa que exige análise técnica sofisticada e acesso a informações que as empresas rés não têm interesse em divulgar voluntariamente. Ao mesmo tempo, os réus argumentam que o modelo gera código novo com base em padrões aprendidos, não copia literal de obras existentes — argumento tecnicamente plausível, mas que esbarra nos casos documentados em que o Copilot gerou trechos praticamente idênticos ao código original de repositórios específicos.

Overfitting e a Reprodução de Código Protegido

O risco de overfitting — fenômeno pelo qual o modelo aprende excessivamente os padrões de seu conjunto de dados de treinamento em vez de identificar tendências generalizáveis — é particularmente relevante nesse contexto. Em sistemas análogos ao Copilot, verificou-se que, em determinadas circunstâncias, o modelo reproduz integralmente trechos de código protegido, incluindo comentários, nomes de variáveis e estruturas específicas que identificam claramente a origem da obra. Quando isso acontece, a alegação de que o sistema "aprendeu padrões gerais" e não "copiou código específico" torna-se difícil de sustentar.

O overfitting pode ocorrer quando determinadas soluções de código são tão amplamente utilizadas — ou quando certas implementações são tão únicas e específicas — que o modelo as memoriza, em vez de abstraí-las em padrões generalizáveis. Esse é um dos aspectos práticos mais delicados do desenvolvimento de sistemas de IA treinados em dados protegidos: a própria eficácia do modelo — sua capacidade de sugerir código que realmente funciona em contextos específicos — pode ser o resultado de memorização, não apenas de generalização.

O RLHF e os Limites da Supervisão Humana

Em alguns sistemas análogos ao Copilot, aplica-se também o Aprendizado por Reforço com Feedback Humano (RLHF), método em que avaliadores humanos atribuem notas às respostas do modelo, orientando-o a refinar suas sugestões com base em critérios de qualidade definidos pelos revisores. O RLHF permite ajustar o comportamento do modelo de formas que o treinamento puro não consegue — incluindo a redução da incidência de sugestões problemáticas do ponto de vista de licenciamento.

Contudo, o RLHF apresenta limitações práticas importantes. A supervisão humana é inevitavelmente seletiva: os revisores humanos não conseguem avaliar todas as sugestões que o sistema gerará em produção, e os critérios de qualidade utilizados no processo de refinamento podem não capturar todas as dimensões relevantes para fins de conformidade com licenças de software. Além disso, o RLHF tende a melhorar o comportamento médio do sistema, mas não elimina os casos extremos em que o overfitting produz reprodução literal de código protegido.

Responsabilidade Prática: Quem Responde pelo Código Gerado?

Os aspectos práticos do caso Copilot colocam uma questão fundamental de responsabilidade: quando um programador utiliza uma sugestão gerada pelo Copilot que, desconhecendo, viola uma licença de software livre, quem responde pela infração — o programador, o GitHub, a Microsoft ou a OpenAI?

A resposta a essa pergunta tem implicações econômicas e jurídicas enormes. No modelo atual, o programador usuário do Copilot provavelmente não tem condições técnicas de verificar se cada trecho de código sugerido viola alguma licença. Ao mesmo tempo, as empresas que desenvolveram e operam o sistema têm interesse comercial em não desincentivizar o uso da ferramenta com alertas excessivos sobre riscos de violação. Forma-se, assim, uma zona de responsabilidade indefinida que deixa os criadores originais do código sem reparação efetiva.

No direito brasileiro, o art. 104 da Lei n. 9.610/1998 prevê a responsabilidade solidária de quem viola direitos autorais de forma intencional ou culposa. A aplicação desse dispositivo ao caso Copilot exigiria demonstrar, ao menos, que as empresas rés agiram com culpa ao disponibilizar um sistema que reproduz código protegido sem as devidas atribuições — culpa que parece configurada pela combinação de conhecimento técnico sobre o risco de overfitting e decisão comercial de não implementar salvaguardas suficientes antes da disponibilização do produto.

Parece-nos que a solução mais adequada, do ponto de vista prático, seria a criação de um sistema de licenciamento coletivo para dados de treinamento de IA — análogo aos sistemas de gestão coletiva de direitos autorais existentes na música e no audiovisual —, que permitisse às empresas de IA utilizar obras protegidas mediante compensação aos titulares, sem a necessidade de negociação individual com cada criador. Essa solução, que alguns países já começam a explorar, permitiria equilibrar o avanço da inovação tecnológica com a proteção dos direitos de criadores — um equilíbrio que, no estado atual das coisas, simplesmente não existe.

AplicaçõesDesafiosProblemasPrática

Alessandro Casoretti Lavorante

Prof. Me. pela USP

Advogado especializado em Direito Digital, IA e Startups. Mestre em Direito Civil pela USP. Autor do livro "Responsabilidade Civil por Inteligência Artificial".

Precisa de assessoria jurídica?

Entre em contato para uma consulta especializada em Direito e Tecnologia.

Fale Conosco
Assistente Virtual
Online agora

Olá! 👋 Sou o assistente virtual do escritório Alessandro Lavorante. Como posso ajudá-lo hoje? Posso responder dúvidas sobre Direito Digital, Inteligência Artificial, LGPD, ECA Digital, Startups e outras áreas.