Primera Fase - SrNaggets/TFG GitHub Wiki
Perfecto, Mario. Lo que te ha dicho tu tutor, sumado a la información que has recibido de Gemma, encaja perfectamente con una estrategia clara para desarrollar tu TFG. Te explico cómo unir todo en un plan de trabajo paso a paso, adaptado a tus recursos y objetivos:
Preparar una versión funcional de un LLM especializado en documentación histórica de bodegas, empezando con la tokenización de dicha documentación.
Ya tienes documentos como:
-
Instrucciones_Consejo_Regulador.pdf
-
Consejo_Regulador_Sanlucar.pdf
-
Otros textos históricos o técnicos que puedas reunir sobre el Marco de Jerez, bodegas, pagos, procesos de vinificación...
Consejo: Crea una carpeta organizada con todos estos documentos, en .pdf
, .docx
, .txt
, etc., que puedan convertirse a texto fácilmente.
Aquí es donde comienza la parte técnica real:
-
Extrae el texto
-
Usa bibliotecas como
PyMuPDF
opdfminer.six
para los.pdf
-
Usa
docx
para Word -
Convierte todo a texto plano (
.txt
) si es posible
-
-
Limpia y normaliza
-
Elimina encabezados, pies de página, espacios extra, saltos de línea, etc.
-
-
Tokeniza
-
Puedes empezar con
spaCy
por su sencillez y potencia:import spacy nlp = spacy.load("es_core_news_md") doc = nlp(texto) tokens = [token.text for token in doc]
-
O usar
nltk
si lo prefieres:from nltk.tokenize import word_tokenize tokens = word_tokenize(texto, language="spanish")
-
-
Opcional: Anota entidades
-
Puedes etiquetar manualmente nombres de bodegas, tipos de uva, fechas... o usar
spaCy
para NER (reconocimiento de entidades).
-
Una vez tengas los textos tokenizados y limpios, puedes usar un modelo preentrenado y adaptarlo. Lo más viable en tu caso es:
-
Modelo base: DeepSeek, LLaMA, Gemma o un modelo de Hugging Face como BERTimbau.
-
Framework: Hugging Face (
transformers
) ydatasets
. -
Estrategia: Crear un dataset de tipo pregunta-respuesta o documentos que sirvan como base para fine-tuning.
Una vez afinado el modelo (aunque sea de forma básica):
-
Evalúa cómo responde ante preguntas tipo: “¿Qué es el sistema de criaderas y soleras?”, “¿Qué pagos hay en Sanlúcar?”, etc.
-
Crea una API local (por ejemplo, con FastAPI o Flask) que sirva respuestas del modelo.
-
Interfaz simple para usuarios (si puedes), o simplemente documentación clara sobre cómo interactuar con él desde código.
Objetivo | Herramienta |
---|---|
Tokenizar | spaCy, nltk |
Preprocesar PDFs | PyMuPDF, pdfminer.six, docx2txt |
Fine-tuning modelo | transformers de Hugging Face |
Ejecutar modelo local | Ollama, LangChain, DeepSeek |
Desplegar modelo | Flask / FastAPI |
Evaluación | BLEU, F1-score, ROUGE (si trabajas con QA) |
¿Quieres que prepare contigo paso a paso el entorno para tokenizar los documentos? ¿O prefieres que avancemos directamente con la preparación del corpus para entrenar o afinar el modelo?
Tú decides el ritmo 🍷