Pular para o conteúdo principal
InicioTutoriaisInteligência Artificial (IA)

DCLM-7B da Apple: Configuração, exemplo de uso, ajuste fino

Comece a usar o modelo de linguagem grande DCLM-7B da Apple e saiba como configurá-lo, usá-lo e ajustá-lo para tarefas específicas.
Actualizado 13 de ago. de 2024  · 9 min leer

Há muito tempo, a Apple é pioneira em tecnologia, definindo consistentemente o padrão de inovação. Recentemente, a Apple lançou um novo modelo de linguagem grande (LLM) DCLM-7B de código aberto para ser usado pela comunidade.

É animador ver uma empresa importante como a Apple lançar seu novo modelo como código aberto, pois essa medida se alinha à tendência crescente de democratizar a IA e tornar ferramentas poderosas acessíveis a um público mais amplo.

DCLM-7B: Principais recursos e capacidades

A mais recente contribuição da Apple, o modelo básico DCLM-7B (DataComp for Language Models), destaca-se como uma adição notável ao campo do LLM. Vamos explorar seus principais recursos.

Transformador somente para decodificador

O modelo DCLM-7B utiliza uma arquitetura de transformador somente de decodificador arquitetura de transformadorque é um projeto em que o modelo prevê um token por vez, e cada token gerado é alimentado novamente no modelo para gerar o próximo.

Essa arquitetura é otimizada para gerar textos coerentes e contextualmente relevantes, o que a torna ideal para vários tipos de processamento de linguagem natural natural. É a mesma arquitetura usada em modelos de última geração, como o ChatGPT e GPT-4odemonstrando sua eficácia na compreensão e geração de texto semelhante ao humano.

Código aberto

O modelo DCLM-7B está disponível para pesquisa e desenvolvimento sob a Licença de código de amostra da Apple. Essa abordagem de código aberto incentiva o uso generalizado e a colaboração na comunidade de IA.

Ao tornar esse modelo acessível, a Apple apoia a democratização da IA, permitindo que pesquisadores e desenvolvedores de todo o mundo façam experiências e desenvolvam o modelo básico.

7 bilhões de parâmetros

Com 7 bilhões de parâmetros, o modelo DCLM-7B atinge um equilíbrio entre desempenho e eficiência computacional.

Esse tamanho permite que você execute o modelo na maioria das plataformas de nuvem e plataformas de alta RAM/VRAM, tornando-o versátil e acessível para vários aplicativos. O número considerável de parâmetros permite que o modelo capture padrões complexos de linguagem, aumentando sua capacidade de executar uma ampla gama de tarefas.

Treinado em um grande conjunto de dados

O modelo foi treinado em um extenso conjunto de dados de 2,5 trilhões de tokens, fornecendo uma base sólida para lidar com uma ampla variedade de tarefas linguísticas. Isso permite que o modelo DCLM-7B compreenda e gere texto com um alto grau de precisão e relevância. Além disso, isso torna o modelo uma boa opção para ajuste fino específico da tarefaespecífico da tarefa, pois ele tem um entendimento básico robusto do idioma inglês.

Janela de contexto

O modelo básico DCLM-7B tem uma janela de contexto de 2048 tokens, o que permite processar sequências de texto relativamente longas. Embora isso seja relativamente pequeno para os padrões atuais, a Apple também lançou o lançou uma variante com uma janela de contexto de token de 8K.

Essa janela de contexto estendida oferece ainda mais flexibilidade para lidar com entradas mais longas, tornando o modelo adequado para aplicativos que exigem o processamento de textos ou documentos extensos, como Retrieval Augmented Generation (RAG).

Principais recursos e capacidades

Primeiros passos com o DCLM-7B

A Apple tornou o modelo DCLM-7B compatível com Hugging Facetransformers, tornando-o fácil de acessar e usar.

Você pode encontrar a página da web da modelo em Hugging Facee você pode conferir o repositório do GitHub para obter mais detalhes. Para usar e acessar o modelo, você precisará instalar a biblioteca transformers:

pip install transformers

Além disso, precisaremos instalar a estrutura open_lm:

pip install git+https://github.com/mlfoundations/open_lm.git

O modelo DCLM-7B com precisão total é bastante grande, com aproximadamente 27,5 GB, exigindo uma quantidade significativa de RAM ou VRAM para ser executado. Você precisará de um computador de última geração ou de algum tipo de ambiente de nuvem. Usarei o notebook de assinatura premium do Google Colab com 50 GB de RAM e uma GPU L4.

Com todas as bibliotecas necessárias instaladas, estamos prontos para começar a usar o modelo!

DCLM-7B: Exemplo de uso

Para o exemplo, executarei um exemplo básico fornecido na página da Web do modelo Huggingface. Primeiro, importamos todas as bibliotecas necessárias:

from open_lm.hf import *
from transformers import AutoTokenizer, AutoModelForCausalLM

Em seguida, precisamos baixar e inicializar o tokenizador e o modelo (observe que, neste exemplo, estamos executando o modelo com valores flutuantes de precisão total em uma CPU):

tokenizer = AutoTokenizer.from_pretrained("apple/DCLM-Baseline-7B")
model = AutoModelForCausalLM.from_pretrained("apple/DCLM-Baseline-7B")

E, por fim, executamos o prompt de exemplo:

inputs = tokenizer(["Machine learning is"], return_tensors="pt")
gen_kwargs = {"max_new_tokens": 50, "top_p": 0.8, "temperature": 0.8, "do_sample": True, "repetition_penalty": 1.1}
output = model.generate(inputs['input_ids'], **gen_kwargs)
output = tokenizer.decode(output[0].tolist(), skip_special_tokens=True)

Obtive o seguinte resultado:

[Machine learning is not the solution to everything, it just enables you to solve a problem that otherwise would have been impossible. The biggest challenge for me as a manager of an AI team was to identify those problems where machine learning can really add value and be successful.]

Uso avançado e ajuste fino

O ajuste fino do modelo DCLM-7B pode ajudar a adaptá-lo a tarefas específicas, melhorando seu desempenho em suas aplicações. Infelizmente, o modelo DCLM-7B não é compatível com a biblioteca peft da Huggingface e, portanto, precisamos usar a biblioteca transformers para fazer o ajuste fino.

Sem ferramentas como o LoRAo ajuste fino de um modelo tão grande requer imensos recursos, pois é basicamente o mesmo que treiná-lo do zero. Portanto, vou apenas descrever o processo de ajuste fino aqui, sem executá-lo de fato para ver os resultados.

Preparando o conjunto de dados

Para fazer download e usar um conjunto de dados disponível abertamente, usaremos a biblioteca datasets da Hugging Face. Nós o instalamos com o seguinte comando:

pip install datasets

Depois de instalado, você pode importar e usar a função load_dataset. Neste exemplo, usarei o conjunto de dados wikitext:

from datasets import load_dataset
dataset = load_dataset('wikitext', 'wikitext-2-raw-v1')

Agora, precisamos tokenizar o conjunto de dados:

def tokenize_function(examples):
	return tokenizer(examples['text'], padding='max_length', truncation=True, max_length=512)
tokenized_datasets = dataset.map(tokenize_function, batched=True)

Agora, estamos prontos para começar a fazer o ajuste fino!

Ajuste fino

Para fazer o ajuste fino, precisamos importar e inicializar os objetos TrainingArguments e Trainer e, em seguida, executar a função train().

from transformers import TrainingArguments, Trainer
training_args = TrainingArguments(
	    report_to = "none",
	    output_dir="./results",
	    evaluation_strategy="epoch",
	    learning_rate=2e-5,  # Controls how much to change the model weights during training
	    per_device_train_batch_size=2,  # Number of samples per batch per device during training
	    per_device_eval_batch_size=2,  # Number of samples per batch per device during evaluation
	    num_train_epochs=3,  # Number of times the entire training dataset will be passed through the model
	    weight_decay=0.01,  # Regularization technique to prevent overfitting
	)
trainer = Trainer(
	    model=model,
	    args=training_args,
	    train_dataset=tokenized_datasets['train'],
	    eval_dataset=tokenized_datasets['test'],
	    data_collator=data_collator,
	    tokenizer=tokenizer,
	)
trainer.train()

Conclusão

Em geral, o DCLM-7B da Apple é um acréscimo significativo ao cenário de modelos de linguagem de código aberto, oferecendo aos pesquisadores e desenvolvedores uma ferramenta avançada para várias tarefas de PNL.

Como um modelo de transformador somente de decodificador, ele é otimizado para geração de textofornecendo resultados coerentes e contextualmente relevantes. A disponibilidade do modelo sob o Contrato de Licença de Software Acadêmico da Apple incentiva ainda mais a colaboração e a inovação na comunidade de IA.

Temas

Aprenda IA com estes cursos!

Course

Developing LLM Applications with LangChain

3 hr
7K
Discover how to build AI-powered applications using LLMs, prompts, chains, and agents in LangChain.
See DetailsRight Arrow
Start Course
Ver maisRight Arrow
Relacionado

blog

O que é o Mistral Large 2? Como funciona, casos de uso e muito mais

O Mistral Large 2 é o modelo de idioma mais recente da Mistral AI, competindo com modelos como GPT-4o, Llama 3.1 e Claude 3 Opus.
Ryan Ong's photo

Ryan Ong

8 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

Como fazer o ajuste fino do GPT 3.5: Liberando todo o potencial da IA

Explore o GPT-3.5 Turbo e descubra o potencial transformador do ajuste fino. Saiba como personalizar esse modelo de linguagem avançado para aplicativos de nicho, aprimorar seu desempenho e entender os custos associados, a segurança e as considerações de privacidade.
Moez Ali's photo

Moez Ali

11 min

tutorial

Como treinar um LLM com o PyTorch

Domine o processo de treinamento de grandes modelos de linguagem usando o PyTorch, desde a configuração inicial até a implementação final.
Zoumana Keita 's photo

Zoumana Keita

8 min

tutorial

Como criar aplicativos LLM com o tutorial LangChain

Explore o potencial inexplorado dos modelos de linguagem grandes com o LangChain, uma estrutura Python de código aberto para criar aplicativos avançados de IA.
Moez Ali's photo

Moez Ali

12 min

See MoreSee More