miguelmejias0512's picture
Update README.md
3805c3e verified
---
license: mit
license_name: deepseek
license_link: LICENSE
datasets:
- miguelmejias0512/blockchain-smartcontracts-1000
language:
- es
- en
metrics:
- accuracy
- code_eval
base_model:
- deepseek-ai/deepseek-llm-7b-base
pipeline_tag: text-generation
library_name: transformers
---
# Model Card for QLoRA Fine-Tuned DeepSeek-LLM-7B-Base
## Model Details
### Model Description
Esta es una versión optimizada mediante QLoRA (Adaptación Cuantizada de Bajo Rango) del modelo DeepSeek-LLM-7B-Base. El modelo base es un modelo de lenguaje de 7 mil millones de parámetros desarrollado por DeepSeek AI. Esta versión optimizada se ha adaptado utilizando técnicas de QLoRA para optimizar el rendimiento en tareas específicas, manteniendo la eficiencia.
- **Desarrollado por:** [Miguel Moisés Mejías Hernández/Universidad Politécnica Territorial del Estado Aragua "Federico Brito Figueroa"]
- **Tipo de modelo:** Modelo de lenguaje basado en transformadores
- **Idioma(s):** Principalmente inglés y español
- **Licencia:** deepseek
- **Optimizado a partir del modelo:** [deepseek-ai/deepseek-llm-7b-base](https://huggingface.co/deepseek-ai/deepseek-llm-7b-base)
### Training Procedure
El modelo se ajustó con QLoRA (Adaptación Cuantizada de Bajo Rango), que permite un ajuste preciso y eficiente de modelos de lenguaje extensos mediante:
- La cuantificación de 4 bits del modelo base
- La adición de pequeños adaptadores de bajo rango entrenables
- La congelación de la mayoría de los parámetros del modelo original
#### Training Hyperparameters
- **Training regime:** QLoRA fine-tuning
- **Learning rate:** [2e-4]
- **Batch size:** [1]
- **Epochs:** [300]
- **LORA parameters:**
- Rank: [8]
- Alpha: [16]
- Dropout: [0.1]
- **Optimizer:** [Your optimizer]
## Uses
### Direct Use
Este modelo puede ser usado para clasificación de texto en dominios específicos como...
### Downstream Use
Este modelo podría ser fine-tuned para:
- Análisis de sentimiento en redes sociales
- Clasificación de tickets de soporte
- Detección de contenido inapropiado
### Out-of-Scope Use
El modelo no debe ser usado para:
- Textos en otros idiomas no incluidos en el entrenamiento
- Dominios muy diferentes a los datos de entrenamiento
- Toma de decisiones críticas sin supervisión humana
## Bias, Risks, and Limitations
**Sesgos identificados:**
- Puede presentar peor rendimiento en textos con jerga regional
- Sesgo hacia variedades dialectales presentes en los datos de entrenamiento
- Sensibilidad a textos con ortografía no convencional
**Limitaciones:**
- Tamaño máximo de entrada: 512 tokens
- Rendimiento disminuido en textos muy cortos (<10 palabras)
- No captura bien el sarcasmo o ironía
**Riesgos:**
- Posibles falsos positivos/negativos en casos críticos
- No debe usarse como único criterio para decisiones automatizadas
## Training Data
**Dataset utilizado:** Nombre del dataset
**Características:**
- Tamaño: X ejemplos de entrenamiento, Y de validación
- Distribución de clases:
- Clase A: 60%
- Clase B: 30%
- Clase C: 10%
- Fuente: Origen de los datos
**Preprocesamiento especial:**
1. Normalización de texto:
- Conversión a minúsculas
- Eliminación de caracteres especiales
- Corrección de acentos
2. Tokenización especial para términos del dominio
3. Balanceo de clases mediante oversampling para clases minoritarias
4. Eliminación de stopwords personalizada
### Training Procedure
- **Framework:** PyTorch + Transformers
- **Hardware:** 1x NVIDIA V100 GPU
- **Training Hyperparameters:**
- learning_rate: 2e-5
- batch_size: 16
- num_epochs: 3
- weight_decay: 0.01
- warmup_steps: 500
#### Training Results
{visualization}
| Metric | Train | Validation |
|--------|-------|------------|
| Loss | 0.123 | 0.156 |
| Accuracy | 0.956 | 0.932 |
| F1 | 0.953 | 0.928 |
## Evaluation
### Testing Data
- Dataset independiente de Z ejemplos
- Distribución balanceada
- Incluye casos edge recolectados específicamente
### Results
| Metric | Value |
|--------|-------|
| Accuracy | 0.925 |
| Precision | 0.928 |
| Recall | 0.923 |
| F1 | 0.925 |
**Ejemplos de errores comunes:**
- Confunde X con Y en casos de negaciones dobles
- Bajo rendimiento en textos con mezcla de idiomas
## Technical Specifications
### Model Architecture and Objective
El modelo sigue la arquitectura del transformador del modelo original DeepSeek-LLM-7B-Base con adaptadores QLoRA agregados durante el ajuste fino.
### Compute Infrastructure
- **Hardware:** [Your hardware]
- **Training time:** [Your training duration]
## How to Get Started with the Model
### Carga básica del modelo
```python
from transformers import AutoModelForSequenceClassification, AutoTokenizer
import torch
model = AutoModelForSequenceClassification.from_pretrained("miguelmejias0512/deepseek-solidity-coder-llm-7b-finetuned")
tokenizer = AutoTokenizer.from_pretrained("miguelmejias0512/deepseek-solidity-coder-llm-7b-finetuned")
# Ejemplo de inferencia
text = "Texto de ejemplo a clasificar"
inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True, max_length=512)
with torch.no_grad():
outputs = model(**inputs)
predictions = torch.softmax(outputs.logits, dim=-1)
print(f"Probabilidades por clase: {predictions.numpy()}")
Preprocesamiento necesario
python
def preprocess_text(text):
# Implementa aquí el mismo preprocesamiento usado en entrenamiento
text = text.lower()
# ... más pasos
return text
# Uso completo con preprocesamiento
raw_text = "TEXTO Crudo con MAYÚSCULAS y signos!"
processed_text = preprocess_text(raw_text)
inputs = tokenizer(processed_text, return_tensors="pt", truncation=True, padding=True)
# ... resto del código de inferencia
Ejemplo completo con post-procesamiento
python
import numpy as np
class_names = ["clase_A", "clase_B", "clase_C"] # Reemplaza con tus clases
def predict(text):
# Preprocesamiento
processed_text = preprocess_text(text)
# Tokenización
inputs = tokenizer(processed_text, return_tensors="pt", truncation=True, padding=True, max_length=512)
# Inferencia
with torch.no_grad():
outputs = model(**inputs)
probs = torch.softmax(outputs.logits, dim=-1).numpy()[0]
# Resultado
return {class_names[i]: float(probs[i]) for i in range(len(class_names))}
# Ejemplo de uso
result = predict("Este es un texto de ejemplo para clasificar")
print(result)
```
## Citation
BibTeX:
bibtex
@misc{deepseek-ai/deepseek-llm-7b-base},
author = miguelmejias0512,
title = deepseek-solidity-coder-llm-7b-finetuned,
year = datetime.now().year,
publisher = Hugging Face,
howpublished = \url{{https://huggingface.co/miguelmejias5012/deepseek-solidity-coder-llm-7b-finetuned,
APA Style:
miguelmejias5012. (datetime.now().year). deepseek-solidity-coder-llm-7b-finetuned} [Software]. Hugging Face. https://huggingface.co/miguelmejias5012/deepseek-solidity-coder-llm-7b-finetuned