Downloads · 30 days
15
7% of all-time downloads
ejbejaranos/Bitnet-LLama3-8B-Now2B
Bitnet-LLama3-8B-Now2B is a machine learning model from ejbejaranos. Use it for the machine learning task on the model card, and read the license before you ship it in a product. The card lists the license as apache-2.0.
Este modelo es una variante optimizada del Llama3 utilizando la arquitectura BitNet, lo que reduce los pesos a los valores -1, 0, y 1 para mejorar la eficiencia en el cómputo sin perder precisión.
Downloads · 30 days
15
7% of all-time downloads
All-time downloads
203
Public
Parameters
225M
10.3 GB on disk
Likes
3
Public
Click a slice to open those files.
.safetensors10.3 GB · 100%
From the Hugging Face model README
Este modelo es una variante optimizada del Llama3 utilizando la arquitectura BitNet, lo que reduce los pesos a los valores -1, 0, y 1 para mejorar la eficiencia en el cómputo sin perder precisión.
El modelo transforma las capas lineales de Llama3 en capas BitLinear, aprovechando las siguientes técnicas de cuantización:
El modelo fue entrenado usando el dataset Cosmopedia-100k-pretrain, que contiene una variedad de datos de texto.
El modelo fue entrenado con la siguiente configuración:
El proceso de entrenamiento fue monitoreado usando Weights & Biases.
Para usar este modelo, puedes cargarlo desde Hugging Face con el siguiente código:
import torch
import wandb
import logging
import coloredlogs
from torch import nn
from datasets import load_dataset
from huggingface_hub import login
from huggingface_hub import create_repo, HfApi
from transformers import (AutoTokenizer, AutoConfig, LlamaForCausalLM, DataCollatorForLanguageModeling, Trainer, TrainingArguments)
from utils.utils import count_parameters
# Configuración de logging
coloredlogs.install(level='INFO', fmt='%(asctime)s - %(levelname)s - %(message)s', logger=logging.getLogger())
logger = logging.getLogger(__name__)
# Iniciar sesión en Hugging Face y Weights & Biases
wandb.login(key="TU_WANDB_TOKEN")
login(token="TU_HF_TOKEN")
# Cargar el dataset y el tokenizer
data = load_dataset("abideen/Cosmopedia-100k-pretrain")
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Meta-Llama-3-8B")
# Configuración del modelo
config = AutoConfig.from_pretrained(
"meta-llama/Meta-Llama-3-8B",
vocab_size=len(tokenizer),
n_ctx=256,
bos_token_id=tokenizer.bos_token_id,
eos_token_id=tokenizer.eos_token_id,
hidden_size=768,
num_attention_heads=6,
num_hidden_layers=6,
intermediate_size=1024,
)
# Crear el modelo Llama y convertirlo a BitNet
model = LlamaForCausalLM(config)
convert_to_bitnet(model, copy_weights=False)
# Configuración del entrenamiento
args = TrainingArguments(
output_dir="./Bitnet-Nous-Llama3-225M",
per_device_train_batch_size=16,
logging_steps=100,
gradient_accumulation_steps=2,
num_train_epochs=2,
weight_decay=0.01,
warmup_steps=10,
learning_rate=1.5e-4,
fp16=True,
report_to="wandb",
)
# Inicializar el entrenador
trainer = Trainer(
model=model,
tokenizer=tokenizer,
args=args,
train_dataset=data["train"],
data_collator=DataCollatorForLanguageModeling(tokenizer, mlm=False),
)
# Iniciar el entrenamiento
trainer.train()
Este modelo forma parte de un experimento para optimizar arquitecturas mediante BitNet. Si tienes alguna mejora o sugerencia, ¡no dudes en contribuir! 😊
Si tienes preguntas, puedes contactarme en [email protected].