Curso
A ascensão dos Large Language Models (LLMs) tem sido uma tendência marcante em Processamento de Linguagem Natural (NLP), levando à sua adoção ampla em várias aplicações. No entanto, esse avanço muitas vezes foi exclusivo, com a maioria dos LLMs desenvolvidos por organizações com muitos recursos permanecendo inacessíveis ao público.
Essa exclusividade levanta uma questão importante: e se houvesse uma forma de democratizar o acesso a esses poderosos modelos de linguagem? É aqui que o BLOOM entra em cena.
Este artigo traz uma visão completa do que é o BLOOM, começando por sua gênese. Em seguida, apresenta as especificações técnicas do BLOOM e como usá-lo, antes de destacar suas limitações e considerações éticas.
O que é o BLOOM?
BigScience Large Open-science Open-access Multilingual Language Model (BLOOM, na forma abreviada) representa um avanço considerável na democratização da tecnologia de modelos de linguagem.
Desenvolvido de forma colaborativa por mais de 1.200 participantes de 39 países, incluindo um número significativo dos Estados Unidos, o BLOOM é fruto de um esforço global. Coordenado pela BigScience em colaboração com a Hugging Face e a comunidade francesa de NLP, o projeto transcende fronteiras geográficas e institucionais.
É um modelo open source e um transformer apenas decodificador, com 176 bilhões de parâmetros, treinado no corpus ROOTS — um conjunto de dados com centenas de fontes em 59 idiomas: 46 línguas faladas e 13 linguagens de programação.
Abaixo está o gráfico de pizza com a distribuição dos idiomas de treinamento.

Distribuição dos idiomas de treinamento (fonte)
O modelo apresentou desempenho notável em uma ampla variedade de benchmarks e alcançou resultados ainda melhores após o finetuning multitarefa com prompts.
O projeto culminou em uma sessão de 117 dias de treinamento (11 de março a 6 de julho) no supercomputador Jean Zay, em Paris, apoiado por uma grande concessão de computação das agências francesas de pesquisa CNRS e GENCI.
O BLOOM é não apenas uma façanha tecnológica, mas também um símbolo de cooperação internacional e do poder da ciência colaborativa.
Arquitetura do modelo BLOOM
Agora, vamos descrever a arquitetura do BLOOM com mais detalhes, passando por seus principais componentes.

Arquitetura do BLOOM (fonte)
A arquitetura do BLOOM, conforme detalhado no artigo, inclui diversos pontos notáveis:
- Metodologia de design: O time focou em famílias de modelos escaláveis, com suporte em ferramentas e bases de código públicas, e conduziu experimentos de ablação em modelos menores para otimizar componentes e hiperparâmetros. A generalização zero-shot foi uma métrica-chave para avaliar as decisões de arquitetura.
- Arquitetura e objetivo de pré-treinamento: O BLOOM é baseado na arquitetura Transformer, especificamente um modelo causal apenas decodificador. Essa abordagem foi validada como a mais eficaz para capacidades de generalização zero-shot em comparação a arquiteturas encoder-decoder e outras apenas decodificadoras.
- Detalhes de modelagem:
- Embeddings posicionais ALiBi: O ALiBi foi escolhido em vez de embeddings posicionais tradicionais, pois atenua diretamente os escores de atenção com base na distância entre keys e queries. Isso levou a um treinamento mais suave e melhor desempenho.
- Embedding LayerNorm: Foi incluída uma normalização de camada adicional logo após a camada de embedding, melhorando a estabilidade do treinamento. Essa decisão foi parcialmente influenciada pelo uso de bfloat16 no treinamento final, mais estável que float16.
Esses componentes refletem o foco do time em equilibrar inovação com técnicas comprovadas para otimizar desempenho e estabilidade.
Além dos componentes de arquitetura do BLOOM, vale entender dois elementos adicionais relevantes: pré-processamento de dados e datasets com prompts.
- Pré-processamento de dados: Envolveu etapas cruciais como desduplicação e red ação de informações sensíveis, especialmente para fontes com maior risco de privacidade.
- Datasets com prompts: O BLOOM emprega finetuning multitarefa com prompts, que demonstrou forte capacidade de generalização zero-shot.
Como usar o BLOOM
Neste exemplo, vamos usar o BLOOM para gerar uma história criativa. O código a seguir configura o ambiente, prepara o modelo e gera texto com base em um prompt. O código correspondente está disponível no GitHub e é fortemente inspirado no tutorial do amrrs.
Configurar o workspace
O modelo BLOOM exige muitos recursos; por isso, uma configuração adequada do ambiente é crucial. Os passos principais estão abaixo.
Primeiro, a biblioteca transformers é usada para fornecer interfaces para trabalhar com o BLOOM e outros modelos baseados em transformers.
!pip install transformers -q
Usando o nvidia-smi, verificamos as propriedades da GPU disponível para garantir os recursos computacionais necessários para executar o modelo.
!nvidia-smi

Importamos os módulos necessários de transformers e torch. O torch é usado para definir o tipo padrão de tensor e aproveitar a aceleração da GPU.
Como estamos usando GPU, a biblioteca torch é configurada com a função set_default_tensor_type para garantir o uso da GPU.
from transformers import AutoModelForCausalLM, AutoTokenizer, set_seed
import torch
torch.set_default_tensor_type(torch.cuda.FloatTensor)
Usando o modelo BLOOM
O modelo alvo usado é o BLOOM com 7 bilhões de parâmetros, acessível no repositório da BigScience no Hugging Face sob bigscience/bloom-1b7, que corresponde ao identificador único do modelo.
model_ID = "bigscience/bloom-1b7"
Em seguida, carregamos o modelo BLOOM e o tokenizer pré-treinados do Hugging Face e definimos a semente para reprodutibilidade com a função set_seed com qualquer número inteiro. O valor em si não importa, mas é importante não usar um valor de ponto flutuante.
Para saber mais sobre os potenciais pouco explorados dos Large Language Models com LangChain, um framework open source em Python para construir aplicações avançadas de IA, nosso tutorial How to Build LLM Applications with LangChain Tutorial é o guia certo.
Além disso, se você é data engineer e se interessa pelo uso do LangChain em aplicações de dados, nosso artigo Introduction to LangChain for Data Engineering & Data Applications apresenta uma visão geral do que é possível fazer com o LangChain, incluindo os problemas que ele resolve e exemplos de casos de uso em dados.
model = AutoModelForCausalLM.from_pretrained(model_ID, use_cache=True)
tokenizer = AutoTokenizer.from_pretrained(model_ID)
set_seed(2024)
Agora podemos definir o título da história a ser gerada, junto com o prompt.
story_title = 'An Unexpected Journey Through Time'
prompt = f'This is a creative story about {story_title}.\n'
Por fim, tokenizamos o prompt e mapeamos para o dispositivo apropriado do modelo antes de gerar o resultado e decodificá-lo.
input_ids = tokenizer(prompt, return_tensors="pt").to(0)
sample = model.generate(**input_ids,
max_length=200, top_k=1,
temperature=0, repetition_penalty=2.0)
generated_story = tokenizer.decode(sample[0], skip_special_tokens=True)
O resultado final é formatado usando o módulo textwrap, garantindo no máximo 80 caracteres por linha para melhor leitura.
import textwrap
wrapper = textwrap.TextWrapper(width=80)
formated_story = wrapper.fill(text=generated_story)
print(formated_story)
O resultado final é mostrado abaixo:

História gerada com o modelo BLOOM
Com poucas linhas de código, conseguimos gerar um conteúdo significativo usando o BLOOM.
Se você quer dominar o processo de treinar LLMs usando PyTorch, do setup inicial à implementação final, nosso tutorial How to Train an LLM with PyTorch traz um guia completo para chegar lá.
Usos recomendados e fora de escopo
Como todo avanço tecnológico, o BLOOM traz seus próprios usos apropriados e inadequados. Nesta seção, exploramos quando e como aproveitar melhor suas capacidades e onde é preciso cautela. Entender esses limites é essencial para usar o BLOOM de forma responsável e eficaz.
Usos recomendados do BLOOM
O BLOOM é uma ferramenta versátil, projetada para expandir os limites do processamento e da geração de linguagem. Seus usos pretendidos abrangem diversos domínios, cada um aproveitando seu amplo repertório linguístico.
- Geração de conteúdo multilíngue: Com proficiência em 59 idiomas, o BLOOM se destaca na criação de conteúdo diverso e inclusivo. Isso é especialmente valioso em comunicação global, educação e mídia, onde a inclusão linguística é crucial.
- Codificação e desenvolvimento de software: O treinamento do BLOOM em linguagens de programação o torna um ativo no desenvolvimento de software. Ele pode ajudar em tarefas como geração de código, depuração e como ferramenta educacional para novos programadores.
- Pesquisa e academia: No meio acadêmico, o BLOOM é um recurso poderoso para análise linguística e pesquisa em IA, oferecendo insights sobre padrões de linguagem, comportamento de IA e muito mais.
Usos fora de escopo do BLOOM
Entender as limitações do BLOOM é essencial para garantir seu uso ético e prático. Alguns casos de uso ficam fora do escopo do LLM BLOOM, principalmente por considerações éticas ou restrições técnicas.
- Tratamento de dados sensíveis: O BLOOM não foi projetado para processar dados pessoais sensíveis ou informações confidenciais. O risco de violação de privacidade ou mau uso torna esse cenário inadequado.
- Tomada de decisão crítica: Usar o BLOOM em situações que exigem alta precisão, como diagnósticos médicos ou decisões legais, não é aconselhável. Suas limitações, como as de outros LLMs, podem levar a resultados imprecisos ou enganosos nessas áreas sensíveis.
- Substituição de interação humana: O BLOOM não deve ser visto como substituto de interação humana, especialmente em áreas que exigem inteligência emocional, como aconselhamento, diplomacia ou ensino personalizado. Falta ao modelo a compreensão sutil e a empatia da interação humana.
Usuários diretos e indiretos
Como um LLM avançado, o BLOOM oferece uma ampla gama de benefícios para diferentes grupos. Suas capacidades influenciam diretamente certos profissionais e setores, e também impactam indiretamente um conjunto mais amplo de stakeholders.
Esta análise dos usuários do BLOOM mostra como diferentes grupos aproveitam e são afetados por essa ferramenta inovadora.
Ao entender os usuários diretos e indiretos do BLOOM, podemos apreciar sua influência e as diversas formas como contribui para o avanço da tecnologia e da sociedade.
Usuários diretos do BLOOM
- Desenvolvedores e cientistas de dados: Profissionais de software e data science são os principais usuários. Eles utilizam o BLOOM para auxílio em codificação, depuração e análise de dados.
- Pesquisadores e acadêmicos: Inclui linguistas, pesquisadores de IA e acadêmicos que usam o BLOOM para estudos de linguagem, análise de comportamento de IA e avanço da pesquisa em NLP.
- Criadores de conteúdo e tradutores: Escritores, jornalistas e tradutores usam o BLOOM para gerar e traduzir conteúdo em diferentes idiomas, ampliando produtividade e alcance.
Usuários indiretos do BLOOM
- Empresas e organizações: Companhias de diversos setores se beneficiam indiretamente do BLOOM por meio de serviços de IA aprimorados, melhor atendimento ao cliente e manejo eficiente de dados.
- Instituições de ensino: Alunos e educadores se beneficiam indiretamente via ferramentas e recursos educacionais que incorporam suas capacidades de processamento de linguagem para aprender e ensinar.
- Público em geral: A sociedade em geral é beneficiada indiretamente por experiências tecnológicas melhores, acesso a conteúdo multilíngue e aplicações de software aprimoradas.
Considerações éticas e limitações
A adoção do BLOOM, como qualquer LLM, traz uma série de considerações éticas e limitações. Esses pontos são essenciais para um uso responsável e para antecipar impactos mais amplos da tecnologia. Esta seção aborda implicações éticas, riscos e limitações inerentes ao uso do BLOOM.
Considerações éticas
- Viés nos dados e equidade: Uma das principais preocupações é o potencial do BLOOM perpetuar ou amplificar vieses presentes nos dados de treino. Isso pode afetar a imparcialidade e a neutralidade das saídas, gerando desafios éticos em cenários que exigem processamento sem vieses.
- Privacidade: Embora o BLOOM não seja projetado explicitamente para lidar com informações pessoais sensíveis, a vastidão de seus dados de treinamento pode, inadvertidamente, incluir tais dados. Há risco de violações de privacidade se o BLOOM gerar saídas baseadas em ou que revelem informações sensíveis.
Riscos associados ao uso
- Desinformação e manipulação: As capacidades avançadas do BLOOM podem ser mal utilizadas para gerar informações enganosas ou conteúdo manipulador, trazendo riscos significativos em mídia, política e opinião pública.
- Dependência e degradação de habilidades: A dependência excessiva do BLOOM para tarefas como criação de conteúdo ou tradução pode levar à perda dessas habilidades em humanos, afetando criatividade e competência linguística.
Limitações do BLOOM
- Compreensão contextual: Apesar da sofisticação, o BLOOM pode carecer de entendimento contextual e cultural profundo necessário para certas tarefas, levando a imprecisões ou saídas inadequadas em cenários mais sutis.
- Naturaleza dinâmica da linguagem: Por ter sido treinado em um conjunto de dados estático, o BLOOM pode não acompanhar a evolução da linguagem, incluindo novas gírias, termos ou referências culturais.
Impacto no mundo real e controvérsias
O desenvolvimento e o lançamento do BLOOM têm implicações relevantes no mundo real, tanto em seu impacto quanto nas controvérsias que suscita. Esta seção discute esses aspectos, com base nos insights do artigo de pesquisa do BLOOM.
Impacto do BLOOM no mundo real
- Democratização da tecnologia de IA: O BLOOM representa um passo rumo à democratização da IA. Desenvolvido pela BigScience, um esforço colaborativo com mais de 1.200 pessoas de 38 países, o BLOOM é um modelo de acesso aberto, treinado em um corpus diverso cobrindo 59 idiomas. Essa participação ampla e a acessibilidade marcam uma mudança em relação à exclusividade típica no desenvolvimento de LLMs.
- Diversidade e inclusão: O compromisso do projeto com diversidade linguística, geográfica e científica é notável. O corpus ROOTS usado no treinamento do BLOOM abrange uma vasta gama de línguas e linguagens de programação, refletindo a ênfase em inclusão e representatividade no desenvolvimento de IA.
Controvérsias e desafios
- Questões sociais e éticas: O desenvolvimento do BLOOM reconhece limitações sociais e desafios éticos no desenvolvimento de LLMs. O workshop BigScience empregou uma Carta Ética para guiar o projeto, enfatizando inclusão, diversidade, abertura, reprodutibilidade e responsabilidade. Esses princípios foram integrados em várias etapas, da curadoria dos dados à avaliação do modelo.
- Impacto ambiental e uso de recursos: O desenvolvimento de LLMs como o BLOOM levanta preocupações ambientais devido ao grande volume de recursos computacionais exigidos. O treinamento desses modelos, geralmente viável apenas para organizações com muitos recursos, tem implicações em consumo de energia e pegada de carbono.
O BLOOM ainda é relevante hoje?
No mundo acelerado da inteligência artificial (IA), a relevância de LLMs como o BLOOM é um tema em constante debate.
Desenvolvido por um grande time internacional de pesquisadores, o BLOOM foi um salto importante no processamento de linguagem. Porém, o cenário da IA evolui continuamente, com novos modelos surgindo e mudando o foco.
Vamos analisar se o BLOOM ainda se sustenta nesse domínio competitivo.
- Mudança de foco: Inicialmente um grande marco, o BLOOM hoje está à sombra de modelos mais novos. Diferente de AIs conversacionais como o ChatGPT, o BLOOM é voltado a completar conteúdo, e não a interagir de forma dialogada.
- Restrições de hardware: As altas exigências de hardware do BLOOM limitam sua acessibilidade em comparação a LLMs mais amigáveis, como GPT-3.5 e GPT-4, que são mais fáceis de integrar em diversas aplicações.
- Concorrência em alta: O surgimento de modelos como LLaMA e ferramentas como Alpaca democratizou o acesso a LLMs, oferecendo capacidades com menos recursos, o que ampliou sua adoção e uso.
- Capacidade multilíngue: O diferencial do BLOOM é seu amplo treinamento em múltiplos idiomas, tornando-o um recurso valioso para tradução e criação de conteúdo multilíngue.
Conclusão
Este artigo trouxe uma visão geral do projeto BLOOM, uma contribuição significativa para o campo em evolução dos Large Language Models.
Exploramos o desenvolvimento do BLOOM, destacando suas especificações técnicas e a colaboração por trás de sua criação. O artigo também serviu como um guia para acessar e utilizar o BLOOM de forma eficaz, enfatizando seus usos apropriados e limitações.
Além disso, cobrimos as implicações éticas e o impacto do projeto BLOOM no mundo real, refletindo sobre sua recepção e relevância no cenário atual de IA. Seja você um profissional da área ou um entusiasta, esta exploração do BLOOM oferece perspectivas essenciais para navegar o universo dos LLMs.
Para aprofundar seu contato com modelos de linguagem avançados, nosso curso adicional, Large Language Models (LLMs) Concepts, mostra como descobrir todo o potencial dos LLMs com um curso conceitual que cobre aplicações, metodologias de treinamento, considerações éticas e as pesquisas mais recentes.
A Zoumana desenvolve ferramentas de IA LLM para ajudar as empresas a realizar due diligence de sustentabilidade e avaliações de risco. Anteriormente, ele trabalhou como cientista de dados e engenheiro de aprendizado de máquina na Axionable e na IBM. Zoumana é o fundador da plataforma de tecnologia educacional de aprendizagem entre pares ETP4Africa. Ele escreveu mais de 20 tutoriais para o DataCamp.

