Pular para o conteúdo principal

Tutorial do Databricks DBRX: Um guia passo a passo

Saiba como o Databricks DBRX, um LLM de código aberto, pode lidar com tarefas complexas e gerar resultados inteligentes.
Actualizado 30 de jul. de 2024  · 10 min de leitura

A Databricks apresentou recentemente o DBRX, seu modelo de linguagem grande (LLM) aberto e de uso geral, desenvolvido em uma arquitetura de mistura de especialistas (MoE) com uma abordagem de granulação fina. Em vez de usar uma única rede neural para todas as tarefas, o sistema compreende várias redes "especializadas" especializadas, cada uma otimizada para diferentes tipos de tarefas ou dados.

Esse modelo teve um desempenho melhor do que os LLMs tradicionais, como o GPT-3.5 e o Llama 2, porque é mais rápido e econômico. De acordo com os testes, o DBRX obteve uma pontuação de 73,7%, que é maior do que o LLaMa2 (69,8%) em tarefas de compreensão de idiomas.

Neste artigo, discutiremos mais detalhadamente seus recursos e como você pode começar a usar o Databricsk DBRX.

O que é o Databricks DBRX?

O DBRX usa uma arquitetura de decodificador baseada em transformador treinada usando a previsão do próximo token. Ele emprega uma arquitetura de mistura de especialistas (MoE) de granulação fina. Esses "especialistas" referem-se a agentes especializados baseados em LLMs, aprimorados com conhecimento específico do domínio e habilidades de raciocínio.

O DBRX tem um grande número de especialistas menores (16 especialistas no total) e escolhe um subconjunto deles (4 especialistas) para qualquer entrada.

Simplificando, essa abordagem refinada com 65 vezes mais combinações possíveis de especialistas melhora a qualidade do modelo em comparação com outros modelos abertos de MoE, como Mixtral e Grok-1, que têm menos especialistas e escolhem menos especialistas por entrada.

Aqui estão alguns detalhes importantes sobre a DBRX:

  1. Tamanho do parâmetro: O DBRX tem um total de 132 bilhões de parâmetros, dos quais 36 bilhões estão ativos em qualquer entrada.
  2. Dados de pré-treinamento: Ele foi pré-treinado com 12 trilhões de tokens de dados cuidadosamente selecionados e um comprimento de contexto de 32.000 tokens, o que é pelo menos duas vezes melhor token por token do que os dados usados para pré-treinar a família de modelos MPT.

Como o DBRX foi treinado?

O modelo foi pré-treinado em um conjunto de dados impressionantemente grande, estimado como duas vezes mais eficaz do que os conjuntos de dados anteriores usados pela Databricks. Um conjunto de ferramentas da Databricks, como o Apache Spark e os notebooks da Databricks para processamento de dados e o Unity Catalog para governança de dados, foi usado para treinar o modelo.

Durante o treinamento, o aprendizado curricular foi empregado e a combinação de dados foi alterada para melhorar substancialmente a qualidade do modelo. Essas alterações estratégicas na combinação de dados de treinamento otimizaram a capacidade do modelo de lidar com diversas entradas de forma eficaz.

Algumas das principais tecnologias usadas no pré-treinamento da DBRX incluem:

  • Codificações de posição rotativa (RoPE): Um método em transformadores que codifica posições de tokens por transformações rotacionais em um espaço de alta dimensão, aprimorando a compreensão da sequência.
  • Unidades lineares fechadas (Gated Linear Units, GLU): Uma camada de rede neural que usa um mecanismo de porta para controlar o fluxo de informações, auxiliando na captura de padrões complexos.
  • Atenção à consulta agrupada (GQA): Um mecanismo de atenção que calcula pesos dentro de grupos de consultas para reduzir o custo computacional e melhorar o foco.
  • tokenizador GPT-4 do repositório tiktoken: Uma implementação específica de tokenizador para o GPT-4, convertendo texto em tokens prontos para o modelo, otimizados para as necessidades de processamento do GPT-4.

Como o DBRX se compara a modelos similares?

A Databricks afirma que seu modelo DBRX é superior a vários dos principais modelos de código aberto em termos de eficiência e desempenho de tarefas.

Aqui você encontra uma comparação detalhada de como o DBRX se compara aos seus concorrentes:

1) DBRX vs. LLaMA2-70B

  • Conhecimento geral (MMLU): A DBRX Instruct tem uma pontuação 9,8% maior do que a LLaMA2-70B.
  • Raciocínio de senso comum (conjunto de dados HellaSwag): A DBRX Instruct continua a liderar com uma pontuação 3,1% maior.
  • Databricks gauntlet (um modelo que avalia os recursos de LLMs pré-treinados com base em diferentes tarefas): O DBRX Instruct tem uma forte liderança - uma pontuação 14% maior do que o LLaMA2-70B.
  • Programação e raciocínio matemático: A DBRX Instruct se destaca com 37,9% em programação e 40,2% em raciocínio matemático.

2) DBRX Instruct vs. DBRX Instruct. Instrução Mixtral

  • Conhecimento geral: A DBRX Instruct está à frente da Mixtral Instruct com uma pontuação 2,3% maior.
  • Raciocínio de senso comum (conjunto de dados HellaSwag): O DBRX Instruct tem um desempenho melhor, com uma pontuação 1,4% maior.
  • Desafio do Databricks: A DBRX Instruct supera a Mixtral Instruct por uma margem notável de 6,1%.
  • Programação e raciocínio matemático: O DBRX Instruct superou o Mixtral Instruct em 15,3% em programação e 5,8% em raciocínio matemático.

3) DBRX vs Grok-1

  • Conhecimento geral: O desempenho é, de certa forma, semelhante, com o DBRX Instruct mantendo uma leve vantagem de 0,7% sobre o Grok-1.
  • Programação e raciocínio matemático: O DBRX Instruct superou o Grok-1 com uma vantagem de 6,9% em programação e 4% em raciocínio matemático.

4) DBRX vs Base Mixtral

  • Conhecimento geral: O DBRX Instruct lidera ligeiramente com uma pontuação 1,8% maior do que o Mixtral Base.
  • Raciocínio de senso comum (conjunto de dados HellaSwag): O DBRX tem uma pontuação mais alta, com uma diferença de 2,5%.
  • Desafio do Databricks: A DBRX lidera com 10% sobre a Base Mixtral.
  • Programação e raciocínio matemático: O DBRX Instruct mostra uma notável liderança de desempenho com uma pontuação 29,9% maior do que o Mixtral Base.

Tabela de comparação

Abaixo, reunimos as comparações em uma tabela e mostramos um gráfico com base em alguns dos resultados:

Comparação de modelos

Conhecimento geral

Raciocínio de senso comum

Databricks Gauntlet

Raciocínio de programação

Raciocínio matemático

DBRX vs LLaMA2-70B

+9.8%

+3.1%

+14%

+37.9%

+40.2%

DBRX vs. Mixtral Instruct

+2.3%

+1.4%

+6.1%

+15.3%

+5.8%

DBRX vs Grok-1

+0.7%

Não disponível

Não disponível

+6.9%

+4%

DBRX vs Base Mixtral

+1.8%

+2.5%

+10%

+29.9%

Não disponível

Comparando a qualidade do DBRX com outros LLMs de código aberto

Comparando a qualidade do DBRX com outros LLMs de código aberto - fonte

Como usar o DBRX: Um guia passo a passo

Antes de acessar o DBRX, certifique-se de que seu sistema tenha pelo menos 320 GB de memória. Em seguida, siga estas etapas para acessar o DBRX:

Acesso ao DBRX

  • Instalar a biblioteca transformers
pip install "transformers>=4.40.0"
  • Em seguida, solicite um token de acesso com permissões de leitura do Hugging Face (isso é necessário para que você possa fazer o download do modelo).
  • Quando você tiver acesso, importe e carregue o modelo usando o código a seguir.
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

tokenizer = AutoTokenizer.from_pretrained("databricks/dbrx-base", token="hf_YOUR_TOKEN")
model = AutoModelForCausalLM.from_pretrained("databricks/dbrx-base", device_map="auto", torch_dtype=torch.bfloat16, token="hf_YOUR_TOKEN")

# Directing tensors to "cuda" (GPU) for faster computation as GPUs are better at handling parallel tasks.
input_text = "Databricks was founded in "
input_ids = tokenizer(input_text, return_tensors="pt").to("cuda")

# DBRX accepts a context length of up to 32768 tokens. Here`max_new_tokens` specifies the maximum number of tokens to generate.
outputs = model.generate(**input_ids, max_new_tokens=100)
print(tokenizer.decode(outputs[0]))

Você quer aprender a usar o Transformers e o Hugging Face? Leia nosso tutorial sobre como usar Transformers e Hugging Face.

Tarefas básicas com o DBRX

A DRBX pode ajudar você com a criação de conteúdo básico e tarefas de resposta imediata, como qualquer LLM. Veja o que você pode fazer com o DBRX:

  • Preenchimento de texto: O DBRX pode gerar respostas baseadas em texto com base em suas solicitações.
  • Compreensão do idioma: Ele pode executar tarefas como analisar entradas de linguagem natural, resumir documentos longos ou traduzir textos entre linguagens de codificação ou estilos de script.
  • Otimização de consultas: O DBRX também pode otimizar as consultas ao banco de dados para minimizar o tempo de execução e ajudar os engenheiros de dados a se concentrarem em outras tarefas essenciais sem comprometer o desempenho.

Tarefas de codificação com DBRX

O DBRX também pode executar tarefas avançadas relacionadas à codificação para ajudar os profissionais de dados ou codificadores:

  • Código e explicação: Ele pode gerar código para várias tarefas de programação e explicar as funções existentes ou sugerir algoritmos para problemas específicos para que você entenda e otimize o código.

DBRX respondendo a comandos simples

DBRX respondendo a comandos simples - fonte

  • Depuração com DBRX: Ele fornece sugestões de correções de código para melhorar a produtividade do desenvolvedor e acelerar o processo de depuração.
  • Identificação de vulnerabilidade: Ele também pode identificar problemas no código e propor soluções para atenuá-los.

Como fazer o ajuste fino do DBRX

Você pode ajustar o DBRX com o LLM foundry de código aberto do Github. No entanto, o ajuste fino exige que os exemplos de treinamento sejam formatados como dicionários:

formatted_example = {'prompt': <prompt_text>, 'response': <response_text>}

Sugestão: Essa é a pergunta ou instrução inicial que você dá ao modelo.

Resposta: Essa é a resposta que o modelo foi treinado para gerar.

Você pode usar três conjuntos de dados diferentes para fazer o ajuste fino de qualquer LLM:

  1. Um conjunto de dados disponível no HuggingFace Hub.
  2. Um conjunto de dados que é armazenado localmente em seu dispositivo ou máquina.
  3. Um conjunto de dados no formato StreamingDataset .mds.

1) Usando o Hugging Face Hub

Se você quiser fazer o ajuste fino usando um conjunto de dados do HuggingFace Hub, e o

O conjunto de dados tem uma função de pré-processamento pré-definida ou já segue o padrão

"prompt"/"response", você pode simplesmente apontar o dataloader para esse conjunto de dados.

train_loader:
    name: finetuning
    dataset:
        hf_name: tatsu-lab/alpaca
        split: train
        ...

Se nenhuma função de pré-processamento for definida, use preprocessing_fn para especificar uma função de pré-processamento personalizada para o carregador de dados.

train_loader:
    name: finetuning
    dataset:
        hf_name: mosaicml/doge-facts
        preprocessing_fn: my_data.formatting:dogefacts_prep_fn
        split: train
        ...

2) Usando um conjunto de dados local

Se você já tiver um conjunto de dados de ajuste fino em seu dispositivo, defina os arquivos JSONL locais em

A configuração YAML yamls/finetune/1b_local_data_sft.yaml.

train_loader:
    name: finetuning
    dataset:
        hf_name: json # assuming data files are json formatted
        hf_kwargs:
            data_dir: /path/to/data/dir/
        preprocessing_fn: my.import.path:my_preprocessing_fn
        split: train
        ...

Ignore preprocessing_fn se seus dados locais já estiverem no formato "prompt"/"response".

3) Usando StreamingDataset

Converta seu conjunto de dados do HuggingFace para o formato MDS usando o

convert_finetuning_dataset.py roteiro.

Depois de converter o conjunto de dados HuggingFace em um formato de streaming, basta ajustar a configuração YAML da seguinte forma.

train_loader:
    name: finetuning
    dataset:
        remote: s3://my-bucket/my-copy-doge-facts
        local: /tmp/mds-cache/
        split: train
        ...

Se você quiser ver o ajuste fino completo dos parâmetros, consulte a configuração YAML em

dbrx-full-ft.yaml

Conclusão

O Databricks DBRX usa várias redes especializadas para aumentar a velocidade do modelo e a relação custo-benefício. Essa abordagem refinada permite que ele supere outros LLMs no tratamento de tarefas complexas.

Você quer saber mais sobre modelos de linguagem grandes e como ajustá-los? Dê uma olhada nestes recursos:

Temas

Continue sua jornada de IA hoje mesmo!

curso

Generative AI Concepts

2 hr
34.6K
Discover how to begin responsibly leveraging generative AI. Learn how generative AI models are developed and how they will impact society moving forward.
Ver DetalhesRight Arrow
Iniciar Curso
Ver maisRight Arrow
Relacionado

blog

Anunciando a série de codificação conjunta "Torne-se um desenvolvedor de IA

Comece a trabalhar com a IA generativa nesta nova série de código-along. Gratuito por tempo limitado.
DataCamp Team's photo

DataCamp Team

4 min

blog

8 principais LLMs de código aberto para 2024 e seus usos

Descubra alguns dos LLMs de código aberto mais avançados e por que eles serão cruciais para o futuro da IA generativa

blog

Certificações da Databricks em 2024: O guia completo

Descubra como obter as certificações da Databricks, explore os benefícios da carreira e saiba como escolher a certificação certa para suas metas em 2024.
Gus Frazer's photo

Gus Frazer

24 min

tutorial

Tutorial do Chroma DB: Um guia passo a passo

Com o Chroma DB, você pode gerenciar facilmente documentos de texto, converter texto em embeddings e fazer pesquisas de similaridade.
Abid Ali Awan's photo

Abid Ali Awan

10 min

tutorial

Uma introdução ao uso do DALL-E 3: Dicas, exemplos e recursos

Descubra como usar o DALL-E 3 para criar imagens. Descubra o que é o DALL-E 3, seus principais recursos e como usar os prompts para obter os melhores resultados.
Kurtis Pykes 's photo

Kurtis Pykes

16 min

tutorial

Um guia completo para armazenamento de dados no AWS com o Redshift

Este guia do AWS Redshift abrange a configuração e o gerenciamento de um data warehouse na nuvem, o carregamento de dados, a execução de consultas complexas, a otimização do desempenho, a integração com ferramentas de BI e fornece práticas recomendadas e dicas de solução de problemas para que você tenha sucesso.
Zoumana Keita 's photo

Zoumana Keita

20 min

See MoreSee More