|
--- |
|
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 |