Saltar al contenido principal

DCLM-7B de Apple: Configuración, Ejemplo de uso, Ajuste fino

Empieza a utilizar el gran modelo de lenguaje DCLM-7B de Apple y aprende a configurarlo, utilizarlo y ajustarlo para tareas específicas.
Actualizado 13 ago 2024  · 9 min de lectura

Apple lleva mucho tiempo siendo pionera en tecnología, marcando constantemente el listón de la innovación. Recientemente, Apple ha publicado un nuevo modelo de gran lenguaje (LLM) de código abierto DCLM-7B para que lo utilice la comunidad.

Resulta alentador ver que un actor tan importante como Apple publica su nuevo modelo como código abierto, ya que este movimiento se alinea con la tendencia creciente de democratizar la IA y hacer accesibles herramientas potentes a un público más amplio.

DCLM-7B: Características y capacidades clave

La última aportación de Apple, el modelo base DCLM-7B (DataComp for Language Models), destaca como una notable incorporación al campo de los LLM. Exploremos sus principales características.

Transformador sólo decodificador

El modelo DCLM-7B utiliza una arquitectura de sólo decodificador arquitectura de transformadorque es un diseño en el que el modelo predice un token cada vez, y cada token generado se devuelve al modelo para generar el siguiente.

Esta arquitectura está optimizada para generar texto coherente y contextualmente relevante, lo que la hace ideal para diversos procesamiento del lenguaje natural del lenguaje natural. Es la misma arquitectura utilizada en modelos de última generación como ChatGPT y GPT-4odemostrando su eficacia en la comprensión y generación de texto similar al humano.

Código abierto

El modelo DCLM-7B está disponible para investigación y desarrollo bajo la licencia Licencia de Código de Muestra de Apple. Este enfoque de código abierto fomenta el uso generalizado y la colaboración dentro de la comunidad de la IA.

Al hacer accesible este modelo, Apple apoya la democratización de la IA, permitiendo a investigadores y desarrolladores de todo el mundo experimentar con el modelo base y construir sobre él.

7.000 millones de parámetros

Con 7.000 millones de parámetros, el modelo DCLM-7B logra un equilibrio entre rendimiento y eficiencia computacional.

Este tamaño permite ejecutar el modelo en la mayoría de los equipos de alta RAM/VRAM y plataformas en la nube, lo que lo hace versátil y accesible para diversas aplicaciones. El considerable número de parámetros permite al modelo captar patrones lingüísticos complejos, lo que aumenta su capacidad para realizar una amplia gama de tareas.

Entrenado en un conjunto de datos masivo

El modelo se ha entrenado en un extenso conjunto de datos de 2,5 billones de tokens, lo que proporciona una base sólida para abordar una amplia gama de tareas lingüísticas. Esto permite que el modelo DCLM-7B comprenda y genere texto con un alto grado de precisión y relevancia. Además, esto hace que el modelo sea una buena opción para ajuste de tareas específicasya que tiene una sólida base de comprensión de la lengua inglesa.

Ventana contextual

El modelo base DCLM-7B tiene una ventana de contexto de 2048 tokens, lo que le permite procesar secuencias de texto relativamente largas. Aunque esto es relativamente pequeño para los estándares actuales, Apple también ha lanzado una variante con una ventana contextual simbólica de 8K.

Esta ventana de contexto ampliada proporciona aún más flexibilidad para manejar entradas más largas, lo que hace que el modelo sea adecuado para aplicaciones que requieren el procesamiento de textos o documentos extensos, como Generación Aumentada de Recuperación (RAG).

Características y capacidades clave

Primeros pasos con el DCLM-7B

Apple ha hecho que el modelo DCLM-7B sea compatible con Cara Abrazadade transformers, facilitando su acceso y uso.

Puedes encontrar la página web de la modelo en Cara de abrazoy consultar el repositorio GitHub para más detalles. Para utilizar y acceder al modelo, necesitaremos instalar la biblioteca transformers:

pip install transformers

Además, tendremos que instalar el framework open_lm:

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

El modelo DCLM-7B con precisión total es bastante grande, aproximadamente 27,5 GB, lo que requiere una cantidad significativa de RAM o VRAM para ejecutarse. Necesitarás un ordenador de gama alta o algún tipo de entorno en la nube. Utilizaré el portátil de suscripción premium de Google Colab con 50 GB de RAM y una GPU L4.

Con todas las bibliotecas necesarias instaladas, ¡estamos listos para empezar a utilizar el modelo!

DCLM-7B: Ejemplo de uso

Para el ejemplo, ejecutaré un ejemplo básico proporcionado en la página web del modelo Huggingface. En primer lugar, importamos todas las bibliotecas necesarias:

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

A continuación, tenemos que descargar e inicializar tanto el tokenizador como el modelo (fíjate en que en este ejemplo estamos ejecutando el modelo con flotantes de precisión completa en una CPU):

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

Y por último, ejecutamos el ejemplo prompt:

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)

Obtuve el siguiente 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 avanzado y ajuste fino

El ajuste fino del modelo DCLM-7B puede ayudar a adaptarlo a tareas específicas, mejorando su rendimiento en tus aplicaciones. Por desgracia, el modelo DCLM-7B no es compatible con la biblioteca peft de Huggingface, por lo que tenemos que utilizar la biblioteca transformers para ponerlo a punto.

Sin herramientas como LoRAel ajuste fino de un modelo tan grande requiere inmensos recursos, ya que es básicamente lo mismo que entrenarlo desde cero. Por lo tanto, me limitaré a esbozar aquí el proceso de ajuste sin ejecutarlo realmente para ver los resultados.

Preparar el conjunto de datos

Para descargar y utilizar un conjunto de datos de libre acceso, utilizaremos la biblioteca datasets de Hugging Face. Lo instalamos con el siguiente comando:

pip install datasets

Una vez instalado, importamos y utilizamos la función load_dataset, para este ejemplo utilizaré el conjunto de datos wikitext:

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

Ahora tenemos que tokenizar el conjunto de datos:

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

Ahora, ¡estamos listos para empezar a afinar!

Ajuste fino

Para el ajuste fino, necesitamos importar e inicializar los objetos TrainingArguments y Trainer y, a continuación, ejecutar la función 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()

Conclusión

En general, el DCLM-7B de Apple es una importante incorporación al panorama de los modelos lingüísticos de código abierto, que ofrece a investigadores y desarrolladores una potente herramienta para diversas tareas de PNL.

Como modelo de Transformador sólo descodificador, está optimizado para generación de textoproporcionando resultados coherentes y contextualmente relevantes. La disponibilidad del modelo bajo el Acuerdo de Licencia de Software Académico de Apple fomenta aún más la colaboración y la innovación en la comunidad de la IA.

Temas

Aprende IA con estos cursos

curso

Developing LLM Applications with LangChain

3 hr
7K
Discover how to build AI-powered applications using LLMs, prompts, chains, and agents in LangChain.
Ver detallesRight Arrow
Comienza El Curso
Ver másRight Arrow
Relacionado

blog

Evaluación de un LLM: Métricas, metodologías y buenas prácticas

Aprende a evaluar grandes modelos lingüísticos (LLM) utilizando métricas clave, metodologías y mejores prácticas para tomar decisiones informadas.
Stanislav Karzhev's photo

Stanislav Karzhev

9 min

tutorial

Ajuste fino de LLaMA 2: Guía paso a paso para personalizar el modelo de lenguaje grande

Aprende a ajustar Llama-2 en Colab utilizando nuevas técnicas para superar las limitaciones de memoria y computación y hacer más accesibles los grandes modelos lingüísticos de código abierto.
Abid Ali Awan's photo

Abid Ali Awan

12 min

tutorial

Tutorial Mistral 7B: Guía paso a paso para utilizar y ajustar Mistral 7B

El tutorial cubre el acceso, la cuantización, el ajuste fino, la fusión y el almacenamiento de este potente modelo lingüístico de código abierto con 7300 millones de parámetros.
Abid Ali Awan's photo

Abid Ali Awan

12 min

tutorial

Cómo ajustar GPT 3.5: Liberar todo el potencial de la IA

Explore GPT-3.5 Turbo y descubra el potencial transformador del ajuste fino. Aprenda a personalizar este modelo de lenguaje avanzado para aplicaciones especializadas, mejore su rendimiento y comprenda los costes asociados, la seguridad y las consideraciones de privacidad.
Moez Ali's photo

Moez Ali

11 min

tutorial

Tutorial sobre cómo crear aplicaciones LLM con LangChain

Explore el potencial sin explotar de los grandes modelos lingüísticos con LangChain, un marco Python de código abierto para crear aplicaciones avanzadas de IA.
Moez Ali's photo

Moez Ali

12 min

See MoreSee More