Llama da Meta: Mais que um Modelo

A Evolução do Llama: Desafiando o Status Quo

Quando o Llama surgiu, desafiou o domínio dos grandes modelos de linguagem (LLMs) de código fechado das gigantes da tecnologia. A Meta AI adotou uma estratégia focada em modelos menores e mais generalizados. A ideia central era que esses modelos menores, treinados em um vasto número de tokens, seriam mais fáceis e econômicos de retreinar e ajustar para tarefas especializadas. Essa abordagem contrastava fortemente com a tendência de construir modelos cada vez maiores e intensivos em recursos.

No entanto, a natureza ‘open-source’ do Llama é um tema de debate. A licença Meta Llama inclui restrições específicas sobre o uso comercial e aceitável. Embora essas restrições sejam possivelmente justificáveis, elas entram em conflito com a definição estrita de código aberto da Open Source Initiative. Isso levou a discussões contínuas sobre se o Llama realmente se qualifica como código aberto.

O desenvolvimento do Llama não foi isento de obstáculos legais. Em 2023, a Meta enfrentou dois processos coletivos de autores que alegaram que seus livros protegidos por direitos autorais foram usados sem permissão para treinar o Llama. Esses processos destacam as complexas questões de direitos autorais em torno dos dados de treinamento usados para grandes modelos de linguagem. Até agora, os tribunais não têm sido muito simpáticos às alegações dos autores.

Expandindo as Capacidades: A Crescente Família de Modelos Llama

Desde o final de 2023, a Meta AI ampliou significativamente a família Llama. Os modelos não estão mais limitados a interações baseadas em texto. O ecossistema Llama atual inclui modelos multimodais capazes de processar entradas de texto e visuais, bem como modelos projetados para interpretação de código e integração de ferramentas. Além disso, a Meta introduziu componentes de segurança, conhecidos como Llama Guard, para identificar e mitigar riscos e ataques potenciais, estes são projetados para fazer parte de uma estrutura geral chamada ‘Llama Stack’.

Aqui está uma análise mais aprofundada de alguns dos principais modelos da família Llama (condensado dos cartões de modelo da Meta AI):

Llama Guard 1: Protegendo as Interações

O Llama Guard 1 é um modelo de 7 bilhões de parâmetros baseado no Llama 2. Ele serve como uma proteção de entrada e saída, classificando o conteúdo tanto nos prompts do usuário (classificação de prompt) quanto nas respostas do LLM (classificação de resposta). Este modelo ajuda a garantir interações mais seguras e responsáveis com sistemas baseados no Llama.

O Llama Guard emprega uma taxonomia de seis níveis para categorizar danos potenciais:

  • Violência e Ódio: Conteúdo que promove violência ou ódio contra indivíduos ou grupos.
  • Conteúdo Sexual: Material sexualmente explícito ou conteúdo que explora, abusa ou coloca crianças em perigo.
  • Armas de Fogo e Armas Ilegais: Conteúdo relacionado à venda, uso ou modificação ilegal de armas de fogo e outras armas.
  • Substâncias Regulamentadas ou Controladas: Conteúdo que promove o uso ou venda ilegal de drogas, álcool ou tabaco.
  • Suicídio e Automutilação: Conteúdo que incentiva ou fornece instruções para suicídio ou automutilação.
  • Planejamento Criminal: Conteúdo que facilita ou planeja atividades ilegais.

Code Llama 70B: Uma Tríade de Proficiência em Codificação

O Code Llama 70B marcou uma expansão significativa nas capacidades de codificação do Llama. Este modelo está disponível em três variantes distintas:

  • Code Llama: O modelo base projetado para síntese e compreensão geral de código. Ele pode gerar código, explicar a funcionalidade do código e auxiliar na depuração.
  • Code Llama – Python: Uma versão especializada adaptada para a programação Python. Este modelo é otimizado para gerar e entender código Python, tornando-o uma ferramenta valiosa para desenvolvedores Python.
  • Code Llama – Instruct: Uma variante focada em seguir instruções e garantir uma implantação mais segura. Este modelo é particularmente útil para gerar código que adere a diretrizes e protocolos de segurança específicos.

Todas as três variantes estão disponíveis em diferentes tamanhos: 7 bilhões, 13 bilhões, 34 bilhões e 70 bilhões de parâmetros. O Code Llama e suas variantes são projetados para uso comercial e de pesquisa, principalmente em inglês e linguagens de programação relacionadas. Há ampla evidência que sugere que o Code Llama possui fortes habilidades de codificação.

Llama Guard 2: Classificação de Segurança Aprimorada

O Llama Guard 2 se baseia na fundação de seu antecessor, oferecendo capacidades aprimoradas de classificação de segurança. Este modelo de 8 bilhões de parâmetros, baseado no Llama 3, é treinado para prever rótulos de segurança em 11 categorias, alinhando-se com a taxonomia de perigos do MLCommons.

As categorias de perigo cobertas pelo Llama Guard 2 incluem:

  • S1: Crimes Violentos: Conteúdo relacionado a atos criminosos violentos.
  • S2: Crimes Não Violentos: Conteúdo relacionado a crimes não violentos.
  • S3: Crimes Relacionados a Sexo: Conteúdo envolvendo crimes sexuais.
  • S4: Exploração Sexual Infantil: Conteúdo que explora, abusa ou coloca crianças em perigo sexualmente.
  • S5: Aconselhamento Especializado: Aconselhamento não qualificado ou enganoso em áreas especializadas (por exemplo, médica, jurídica, financeira).
  • S6: Privacidade: Conteúdo que viola a privacidade ou divulga informações pessoais sem consentimento.
  • S7: Propriedade Intelectual: Conteúdo que infringe os direitos de propriedade intelectual.
  • S8: Armas Indiscriminadas: Conteúdo relacionado a armas que causam danos generalizados e indiscriminados.
  • S9: Ódio: Conteúdo que expressa ódio ou preconceito contra indivíduos ou grupos.
  • S10: Suicídio e Automutilação: Conteúdo que promove ou fornece instruções para suicídio ou automutilação.
  • S11: Conteúdo Sexual: Material sexualmente explícito.

O Meta Llama 3 é oferecido em dois tamanhos, 8 bilhões e 70 bilhões de parâmetros, com variantes pré-treinadas e ajustadas por instrução. Os modelos ajustados por instrução são especificamente otimizados para aplicações baseadas em diálogo, tornando-os adequados para chatbots e sistemas de IA conversacional.

Prompt Guard: Defendendo-se Contra Entradas Maliciosas

O Prompt Guard é um modelo classificador projetado para detectar prompts maliciosos, incluindo jailbreaks (tentativas de contornar as restrições de segurança) e injeções de prompt (tentativas de manipular a saída do modelo por meio de entradas criadas). A Meta AI recomenda ajustar o Prompt Guard com dados específicos da aplicação para obter um desempenho ideal.

Ao contrário do Llama Guard, o Prompt Guard não requer uma estrutura de prompt específica. Ele opera em uma entrada de string, classificando-a como segura ou insegura (em dois níveis diferentes de severidade). É um modelo BERT que produz rótulos exclusivamente.

Llama Guard 3: Segurança Multimodal e Multilíngue

O Llama Guard 3 está disponível em três versões: Llama Guard 3 1B, Llama Guard 3 8B e Llama Guard 3 11B-Vision. Os dois primeiros são modelos apenas de texto, enquanto o terceiro incorpora os recursos de compreensão de visão do modelo Llama 3.2 11B-Vision. Todas as versões são multilíngues (para prompts apenas de texto) e aderem às categorias de perigo definidas pelo consórcio MLCommons.

O Llama Guard 3 8B também pode ser usado para a categoria S14, Abuso do Interpretador de Código. É importante notar que o modelo Llama Guard 3 1B não é otimizado para esta categoria específica.

As categorias de perigo, expandindo as do Llama Guard 2, são:

  • S1: Crimes Violentos
  • S2: Crimes Não Violentos
  • S3: Crimes Relacionados a Sexo
  • S4: Exploração Sexual Infantil
  • S5: Difamação
  • S6: Aconselhamento Especializado
  • S7: Privacidade
  • S8: Propriedade Intelectual
  • S9: Armas Indiscriminadas
  • S10: Ódio
  • S11: Suicídio e Automutilação
  • S12: Conteúdo Sexual
  • S13: Eleições
  • S14: Abuso do Interpretador de Código

Meta Llama 3.1: Modelos Generativos Multilíngues

A coleção Meta Llama 3.1 compreende modelos de linguagem grandes multilíngues, incluindo modelos generativos pré-treinados e ajustados por instrução em tamanhos de 8 bilhões, 70 bilhões e 405 bilhões de parâmetros (entrada de texto, saída de texto).

Os idiomas suportados incluem: Inglês, Alemão, Francês, Italiano, Português, Hindi, Espanhol e Tailandês.

Meta Llama 3.2: Capacidades de Diálogo Aprimoradas

A coleção Llama 3.2 apresenta modelos de linguagem grandes multilíngues, abrangendo modelos generativos pré-treinados e ajustados por instrução em tamanhos de 1 bilhão e 3 bilhões de parâmetros (entrada de texto, saída de texto). Versões quantizadas desses modelos também estão disponíveis. Os modelos Llama 3.2 ajustados por instrução e apenas de texto são otimizados para diálogo multilíngue, destacando-se em tarefas como recuperação e sumarização de agentes. Os modelos 1B e 3B são derivados menores e menos poderosos do Llama 3.1.

Os idiomas oficialmente suportados são: Inglês, Alemão, Francês, Italiano, Português, Hindi, Espanhol e Tailandês. No entanto, o Llama 3.2 foi treinado em uma gama mais ampla de idiomas além desses oito.

Llama 3.2-Vision: Raciocínio e Compreensão de Imagens

A coleção Llama 3.2-Vision introduz modelos de linguagem grandes multimodais. Esses modelos são pré-treinados e ajustados por instrução para raciocínio de imagem, disponíveis em tamanhos de 11 bilhões e 90 bilhões de parâmetros (entrada de texto e imagem, saída de texto). Os modelos ajustados por instrução são otimizados para reconhecimento visual, raciocínio de imagem, legendagem e resposta a perguntas gerais sobre imagens.

Para tarefas apenas de texto, os idiomas oficialmente suportados são Inglês, Alemão, Francês, Italiano, Português, Hindi, Espanhol e Tailandês. O Llama 3.2 foi treinado em um conjunto mais amplo de idiomas, mas para aplicações de imagem+texto, o inglês é o único idioma suportado.

Meta Llama 3.3: Um Poderoso Modelo 70B

O modelo de linguagem grande multilíngue Meta Llama 3.3 é um modelo generativo pré-treinado e ajustado por instrução com 70 bilhões de parâmetros (entrada de texto, saída de texto).

Idiomas suportados: Inglês, Alemão, Francês, Italiano, Português, Hindi, Espanhol e Tailandês.

É crucial entender que os modelos de linguagem grandes, incluindo o Llama 3.2, não se destinam à implantação isolada. Eles devem ser integrados a um sistema de IA abrangente com proteções de segurança apropriadas. Espera-se que os desenvolvedores implementem salvaguardas do sistema, especialmente ao construir sistemas de agentes.

O Llama 3.3, os modelos Llama 3.2 apenas de texto e o Llama 3.1 incluem suporte integrado para as seguintes ferramentas:

  • Brave Search: Uma chamada de ferramenta para realizar pesquisas na web.
  • Wolfram Alpha: Uma chamada de ferramenta para executar cálculos matemáticos complexos.
  • Code Interpreter: Uma chamada de ferramenta que permite ao modelo gerar código Python.

Nota: Os modelos de visão Llama 3.2 não suportam chamadas de ferramentas com entradas de texto+imagem.

O Llama Stack: Uma Estrutura Unificada

O grande número de modelos Llama pode ser esmagador. Para simplificar o processo de seleção e integração, a Meta oferece o Llama Stack. Essa estrutura enfatiza os modelos Llama, mas também fornece adaptadores para capacidades relacionadas, como bancos de dados vetoriais para geração aumentada de recuperação (RAG).

O Llama Stack atualmente suporta SDKs em Python, Swift, Node e Kotlin. Ele oferece várias distribuições, incluindo:

  • Distribuição local (usando Ollama): Para desenvolvimento e testes locais.
  • Distribuições no dispositivo (iOS e Android): Para implantar modelos Llama em dispositivos móveis.
  • Distribuições para GPUs: Para aproveitar o poder das GPUs para um processamento mais rápido.
  • Distribuições hospedadas remotamente (Together e Fireworks): Para acessar modelos Llama por meio de serviços baseados em nuvem.

O conceito central por trás do Llama Stack é permitir que os desenvolvedores construam aplicações localmente e, em seguida, façam a transição facilmente para um ambiente de produção. Ele ainda fornece um Llama Stack Playground interativo para desenvolvimento local em relação a um Llama Stack remoto.

Executando Modelos Llama: Opções de Implantação Versáteis

Os modelos Llama podem ser implantados em uma variedade de plataformas, incluindo Linux, Windows, macOS e a nuvem. Modelos Llama quantizados, como Llama 3.2 e Llama 3.2-Vision, podem ser executados de forma eficaz em hardware moderno, mesmo em laptops como o M4 Pro MacBook Pro usando ferramentas como Ollama.

A Meta fornece guias de instruções abrangentes para implantar e usar modelos Llama. Além disso, guias de integração estão disponíveis para frameworks populares como LangChain e LlamaIndex.

Em resumo, o Llama deixou de ser apenas um simples modelo de linguagem, agora é uma estrutura de IA multimodal completa com recursos de segurança, geração de código e suporte para muitos idiomas. O sistema da Meta permite que ele seja implantado em muitos lugares, mas questões legais com os dados de treinamento e argumentos sobre se o Llama é de código aberto continuam.