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