2 pontos por GN⁺ 2023-07-22 | 1 comentários | Compartilhar no WhatsApp
  • Embora o LLaMA2 não se enquadre na definição tradicional de open source por impor restrições ao uso comercial e ao uso das saídas do modelo, no campo dos modelos de IA o próprio conceito de open source precisa evoluir novamente
  • restrições que entram em conflito com o espírito do OSS, como a proibição de uso comercial por serviços com mais de 700 milhões de MAU na data de lançamento e a proibição de usar as saídas do modelo para treinar outros LLMs
  • Assim como, na história do software, o significado passou de “free software” → “open source” → “source available”, em IA “open source” é usado no sentido de pesos disponíveis para download
  • O nível de abertura dos modelos pode ser classificado em Open models, Open weights, Restricted weights e Contaminated weights; o LLaMA2 se enquadra em Restricted weights
  • Um open source completo, retreinável do zero, é inviável por questões de custo, e o fato de a Meta ter disponibilizado cerca de US$ 2 milhões em computação tem efeito líquido positivo para o avanço da área

LLaMA2 e a controvérsia sobre o termo “open source”

  • Quando o LLaMA2 foi lançado, muitas pessoas da comunidade OSS reclamaram do uso incorreto do termo “open source” para o modelo
  • Embora o modelo seja em grande parte aberto, há restrições claras
    • Operadores de negócios com mais de 700 milhões de MAU na data de lançamento não podem usar o modelo comercialmente
    • As saídas do modelo não podem ser usadas para treinar outros grandes modelos de linguagem
  • Essas restrições não combinam bem com o espírito do open source (OSS ethos) e, no sentido tradicional, ele não pode ser chamado de open source
  • Ainda assim, a posição é que isso não é o mais importante, e que na era dos modelos de IA o termo “open source” precisa evoluir novamente

From Free to Open — de “liberdade” para “abertura”

  • Desde a “Open Letter to Hobbyists”, de 1976, sempre existiu uma tensão entre os interesses comerciais e as restrições das empresas de software e a curiosidade dos hackers em contorná-las
  • O movimento “free software” começou no MIT AI Lab dos anos 1970 com Richard Stallman e levou ao projeto GNU em 1983
    • Surgiu a licença GPL “copyleft”, adotada por Red Hat, MySQL, Git e Ubuntu
  • O termo “open source” surgiu em 1998 graças a Christine Peterson, do MIT
    • No “Freeware Summit”, “free software” foi oficialmente abandonado e substituído por “open source software”
  • Depois disso, as comunidades de “free” e “open source” se separaram por diferenças na interpretação do significado
    • O free software definido pela Free Software Foundation é um subconjunto do open source e usa licenças muito permissivas, como GPL e Apache
  • Na última década, ocorreu outra separação por causa da tensão entre empresas comerciais de open source e hyperscalers de nuvem
    • Elastic e MongoDB migraram para a SSPL (Server-Side Public License), permitindo uso comercial desde que não seja para oferecer uma versão hospedada
    • O objetivo é impedir que a AWS rehospede o produto como serviço de nuvem e o monetize
    • A SSPL viola ideais do OSS, e a OSI não a reconhece como licença open source
    • Mesmo assim, muitos desenvolvedores ainda chamam o MongoDB de open source
  • “Open source” vem perdendo gradualmente a implicação de liberdade (freedom) e, na percepção dos desenvolvedores, está se tornando quase sinônimo de “source available”

From Source to Weights — de “código-fonte” para “pesos”

  • Com a ascensão de open models como Dolly, MPT e LLaMA, ocorreu uma divisão semelhante na comunidade
  • Para a maioria dos engenheiros de IA, hoje “open source” não significa nada além de pesos disponíveis para download (downloadable weights)
  • Heather Meeker propôs uma definição de “open weights”, mas ainda não há consenso na comunidade
  • A questão central é se um modelo pode ser chamado de open source apenas por ter open weights
    • Em uma analogia com software, seria como publicar apenas o binário, sem o código-fonte para recompilar do zero
  • Para ser verdadeiramente open source e retreinável do zero, seria necessário disponibilizar tudo: código de treinamento, dataset de pré-treinamento, dados de preferência para fine-tuning, exemplos de RLHF etc.
    • O problema é o custo de treinamento; mesmo que tudo fosse publicado, para a maioria dos desenvolvedores e empresas seria inviável treinar do zero por razões de custo
    • No fim, o acesso aos pesos finais por si só já é preferível

Classificação em 4 níveis de abertura de modelos

  • Open models: como RedPajama e MPT-7B, oferecem open weights que podem ser usados comercialmente sob licença Apache 2.0
    • O dataset também é open source, permitindo retreinamento do zero
  • Open weights: caso do StableLM, treinado pela StabilityAI; os pesos são publicados sob Apache 2.0, mas o dataset de treinamento não é divulgado
    • Segundo o README, ele foi pré-treinado em um novo dataset experimental construído sobre o The Pile, com cerca de 1,5T tokens, aproximadamente 3 vezes maior
  • Restricted weights: caso do LLaMA2; o dataset de pré-treinamento não é divulgado e os pesos supostamente podem ser usados comercialmente, mas existem as restrições específicas mencionadas acima
  • Contaminated weights: casos do Dolly 1.0 e do LLaMA1; os pesos são publicados, mas o dataset de treinamento não permite uso comercial, portanto tecnicamente são abertos, mas na prática não podem ser usados

Conclusão — a direção da abertura

  • Por enquanto, open source e open weights continuarão sendo usados de forma intercambiável, e a posição é que tudo bem
  • O importante é que esse trabalho está sendo feito de forma cada vez mais aberta possível (as openly as possible)
  • É natural se decepcionar com a licença do LLaMA2, mas o fato de a Meta ter colocado cerca de US$ 2 milhões em FLOPS em um repositório do GitHub e disponibilizado isso publicamente é um efeito líquido positivo (net positive) para o avanço da área

1 comentários

 
GN⁺ 2023-07-22
Comentários do Hacker News
  • É estranho colocar o LLaMA na categoria de pesos restritos logo acima e depois dizer que, daqui para frente, open source e pesos abertos serão usados como sinônimos
    Mesmo pela definição proposta pelo autor, LLaMA 2.0 não é open source e não deveria ser chamado assim
    Se, no campo de LLM, open source significa “você pode obter os pesos” e não importa haver restrições de uso, então isso está mais para baratear o significado de Open Source do que para uma mudança de termo adaptada a um novo contexto
    O LLaMA nem sequer é de pesos abertos; no máximo, é um pacote fechado de pesos proprietários comparável a software de código-fonte disponível
    Chamar o LLaMA de open source por parte do Facebook é enganoso, e não deveríamos embarcar nessa narrativa
    Se pode existir copyright sobre pesos é uma discussão separada, e pessoalmente acho que não

    • Sou o autor do post original, e concordo que o LLaMA2 não é open source. O título original também dizia isso, e foi o título no HN que mudou
      Só que a maioria das pessoas não sabe disso, então vai continuar chamando de “open source”, e a ideia central era que é difícil corrigir isso
      Em vez de só dizer “isto não é open source”, precisamos criar uma terminologia melhor
      Além disso, mesmo que o uso dos pesos seja restrito, o volume de computação divulgado é enorme. A proporção entre tokens de treino e parâmetros é de 285:1, e o gráfico de perda mostra que o modelo ainda não saturou
      Isso é informação valiosa para outras equipes que queiram treinar seus próprios modelos
      O LLaMA1 era muito restritivo, mas a composição dos dados descrita no artigo deu origem ao RedPajama, que foi usado no treinamento do MPT
      Mesmo que isso não se encaixe nos rótulos tradicionais, ainda há muito valor nessas iniciativas que caminham na direção do open source
  • Eu não sabia que a licença do llama proíbe usar as saídas para treinar outros modelos
    Isso é, na prática, uma restrição fatal. Daqui para frente, dados sintéticos serão o dado de treinamento mais importante, então um modelo que bloqueia o uso de dados sintéticos para treinar novos modelos é um modelo seriamente comprometido

    • É engraçado ver os grandes players desse setor tratarem simultaneamente as duas ideias a seguir como se fossem uma posição coerente
      Treinar modelos com dados arbitrários da internet sem permissão nem licença é ok só porque estão acessíveis, mas treinar outros modelos com o nosso modelo não pode
    • Não sei se seria possível fazer cumprir legalmente uma cláusula dessas sem matar quase todas as empresas de IA do mercado atual
      A premissa jurídica desses modelos é que treinar com material protegido por copyright é fair use
      Se não for, o Facebook estaria querendo argumentar que não é fair use incluir material com copyright em um dataset independentemente da vontade do autor? Se for isso, é uma péssima notícia para o LLaMA
      A posição de que “você precisa de permissão para treinar com isso” é uma posição jurídica interessante para qualquer empresa de IA adotar
    • É uma hipocrisia tão grande que chega a ser absurda
      É basicamente: “Nós treinamos com uma parte considerável da internet sem pedir permissão, mas nem pense em treinar com as saídas do nosso modelo sem a nossa autorização!”
      A OpenAI também impõe restrições parecidas
    • Isso está fundamentalmente errado, e é desanimador ver isso como o comentário mais votado
      Você não pode treinar outro modelo com a saída de um modelo, porque isso leva a puro nonsense. Isso é chamado de colapso do modelo: https://arxiv.org/abs/2305.17493v2
      E a licença do Llama 2 permite que o usuário treine modelos derivados. É essa parte que as pessoas realmente consideram importante: https://github.com/facebookresearch/llama/blob/main/LICENSE
    • Mesmo assim, parece difícil fazer cumprir isso. Como exatamente alguém descobriria?
  • Isso não é exatamente um problema novo. O conceito estrito de Open Source definido para software nunca se encaixou com precisão em coisas que não são software
    É para isso que existem licenças Creative Commons. Distribuir uma imagem fotográfica sob GPL2 já não faria sentido desde o início
    Em uma mídia nova, sempre é preciso redefinir

    • LLMs estão mais próximos de software do que de uma mídia
      A GPL define código-fonte como a forma preferida para fazer modificações, e também inclui os scripts para gerar executáveis a partir do fonte
      Nesse caso, os pesos se parecem mais com código executável otimizado que saiu do pipeline de processamento, e o “fonte” seria os dados de treinamento, o código e o processo para convertê-los em um modelo
      Em LLMs muito grandes, quase ninguém conseguiria aproveitar isso, mas em modelos acadêmicos pequenos isso faz sentido, porque pesquisadores podem construir em cima do trabalho uns dos outros
    • A Creative Commons nunca alegou ser uma licença open source; normalmente usa o termo cultura livre
    • Mídias como fotos, músicas e vídeos também têm fonte. Os materiais originais e os projetos usados para renderizar a imagem ou gerar a saída de vídeo e áudio são o fonte
      O fonte de um modelo de linguagem, na prática, está mais próximo do código usado para treinar aquele modelo específico, e o modelo em si, embora não seja código de máquina, está mais próximo de um binário compilado
      Por isso, para um modelo ser realmente open source, eu diria que o software usado para gerá-lo precisa ser publicado para que eu possa modificá-lo e treinar com meus próprios dados para uso próprio
    • Não precisa redefinir. Uma nova mídia precisa de novos termos
    • Quando entrei na universidade, esse “Open Source” estrito ainda nem era uma definição
  • Ainda não foi decidido nos tribunais se pesos são objeto de copyright, e, dependendo do resultado, várias licenças e restrições podem acabar se tornando irrelevantes

    • Essa cláusula parece perigosa
      “Artistas, o modelo apenas aprende como um humano, então não pode violar seus direitos autorais. Se por acaso ele reproduziu parte de um livro, foi só um plágio acidental. Todos nós fazemos isso haha! Os advogados nos lembram que, nos EUA, plágio não é ilegal.”
      “Engenheiros, as saídas do nosso modelo têm copyright, então se vocês treinarem seu próprio modelo com isso, passa a ser nosso.”
      Não entendo como essas duas coisas podem ser verdade ao mesmo tempo
    • De forma parecida, a cláusula comum de “você não pode usar a saída deste modelo para melhorar outro modelo” é, até onde eu sei, inexequível sob a lei de copyright
      No máximo, é só uma cláusula contratual vinculando um usuário específico, e quem usar depois o modelo melhorado aparentemente não teria problema
    • A ideia de que pesos talvez não sejam objeto de copyright é muito interessante e até atraente
      Só que é difícil imaginar se um mundo assim seria realmente possível
      Seria bom ver um resumo de por que pesos talvez não sejam protegidos por copyright, ou referências que sustentem esse ponto de vista
    • Também não sabemos se vários legislativos vão aprovar leis definindo explicitamente o status de copyright dos pesos de modelos
      É preciso lembrar que o que é ou não objeto de copyright pode mudar
    • Sim. A SSPL é parecida
      A GPL foi validada no caso FSF v. Cisco (2008), mas licenças mais restritivas ainda não foram testadas
  • O problema é que já existem modelos grandes como MPT-30b e Falcon-40b que adotam licenças realmente open source
    Sou grato por poder acessar os pesos do Llama2, mas parece injusto que ele leve o crédito de ser “open source” quando existem modelos concorrentes que são de fato open source no sentido tradicional da OSI
    A diferença prática entre as licenças é pequena o bastante para que a maioria de nós, inclusive eu, provavelmente escolha o Llama2 por ter melhor qualidade de modelo
    Mas esse incentivo pode acabar nos prendendo em licenças quase abertas meio esquisitas

  • Já existe o termo source available, então não entendo por que o termo “open source” precisaria evoluir
    Neste caso, bastaria dizer “pesos disponibilizados sob uma licença com poucas restrições”

    • A nova geração de programadores não se lembra de uma época em que não existia nenhum tipo de open source ou software livre, então a diferença parece mais uma distinção acadêmica do que algo sentido na prática
  • O diagrama deste artigo está muito errado ao mostrar só a GPL como software livre e dar a entender que MIT/Apache são open source, mas não software livre
    O pessoal da FSF não gosta do termo “open source”, mas até eles dizem que “quase todo software open source é software livre”
    Em particular, as licenças MIT, Apache e LGPL são claramente licenças de software livre. Se não fossem, Debian e distribuições aprovadas pela FSF teriam muito menos software para escolher
    O que o diagrama provavelmente queria distinguir era copyleft versus software livre ou open source
    Se a ordenação fosse por permissividade, a relação de subconjunto também teria de ser o oposto. A GPL é muito mais permissiva que a SSPL etc., mas menos permissiva que MIT/Apache

    • Sim. Do ponto de vista de licenciamento, Open Source e Free Software são quase intercambiáveis
      A diferença não é técnica, e sim política
      Esta parte do texto também é bastante enganosa: “software livre, conforme definido pela Free Software Foundation, é apenas um subconjunto do software open source e usa licenças muito permissivas como GPL e Apache”
  • O diagrama deveria ter, em teoria, outra categoria fora de “Restricted Weights”, mas mais estreita que todo o conjunto de “Completely Closed”
    Por exemplo, pesos e modelos black box que podem ser usados de graça, mas que na prática não podem ser inspecionados nem movidos
    Isso corresponderia à categoria irmã de software de código fechado “gratuito para usar”
    IA disponível gratuitamente, mas fornecida como um bloco binário, se encaixaria aqui
    Ou então um módulo Python que chama o motor de inferência e os pesos em um binário pré-compilado, mas sem código-fonte
    O equivalente tradicional no mundo do software hoje são drivers Linux de terceiros que não são open source. São gratuitos, mas não abertos
    Ainda não vimos muito disso no mundo da IA. Quem divulga pesos em geral faz isso para pesquisa, então muitas vezes a inferência também precisa ser open source; já quem tem modelos fechados quer ganhar dinheiro, então não tem motivo para abrir a inferência e pode simplesmente cobrar pela API, como a “OpenAI”

    • Eu não incluí isso, mas provavelmente cairia no círculo “grátis como cerveja, mas não livre”
  • O título foi editado. O título real é “LLaMA2 isn't "Open Source" - and why it doesn't matter”
    Ele foi mudado para algo com um tom bem diferente, e fiquei com a impressão de que autor e publicador talvez vejam o significado de open source de forma diferente

    • O moderador mudou o título, e eu tinha usado o original quando publiquei. Não sei por que mudou
    • São a mesma pessoa :)
  • Como Open Source já está bem estabelecido na cultura técnica há bastante tempo, afastar-se disso sempre foi motivo de zombaria
    Ultimamente, porém, a comunidade parece estar mais tolerante com essas licenças “abertas”
    A maior parte das críticas a projetos que não atendem aos critérios de FOSS tende a ser exagerada, mas espero que não estejamos escorregando rápido demais na direção do “open”
    Há outro texto sobre o LLaMa2: https://opensourceconnections.com/blog/2023/07/19/is-llama-2...