Curso
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).

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.



