Yo estoy bastante puesto en este tema, he estado realizando proyectos de investigación de uso de LLMS para análisis de lenguaje. Actualmente, se utiliza un método con SFTTrainer (
https://towardsai.net/p/machine-learning/fine-tuning-a-llama-2-7b-model-for-python-code-generation) yo he estado prácticamente usando este codigo para mi objetivo y he terminado mejorando bastante el estado del arte. El flujo de trabajo es el siguietne:
1. Tienes que tener una buena gráfica, aunque actualmente y si buscas un poco métodos de optimización de entreenamietno he leido y visto que se podía llegar a entrenar en un google collab, pero de eso no estoy seguro, para este metodo me han hecho falta 24 gb de vram aprox.
2. Selección del modelo. Últimamente hay una gran cantidad de modelos open source, el más efectivo en cuanto a tamaño de parámetros es el misrtal-7b-chat, una empresa pequeña francesa.
3. Tienes que crear la base de datos y subirla a huggingface que es lo más comodo. Es decir tiene que haber un ejemplo de las peticiones y como quieras que las responda, es dificil que sepa como hacerlo por arte de magia.
O puedes probar a directamente no entrenarlo y jugar con el prompt.
4. Creación de la base de datos y/o prompting.
Toda LLM tiene una estructura con la que es más funcional, es decir, un formato y tu tienes que adaptarlo a tu use case. En mi caso era algo así como "<s> [INST] Now you are going to classify the next sentence into these emotions (anger, joy...) Sentence:{Oración a clasificar} [/INST] Aqui lo que quieres que responda"
Esto sería un dataset para entrenamiento, si solo quieres hacer inferencia no sería necesario añadir la ultima parte, y si te interesa te explico también como hacerlo.
5. Entrenamiento, ejecutar el código, con distintos parámetros, con estos modelos aconsejo un numero de epocas grande porque tarda bastante en aprender bien la nueva tarea
6. Guardarlo y usaralo :)) Aquí es más ajetreo porque tienes que jugar con guardarlo en huggingface, usar las pipelines de este paquete de python etccc
Espero que te haya servido de ayuda y cualquier cosa pregunta sin problema, es un proceso largo entrenar una LLM sobre todo por el hecho de conseguir un buen dataset, que bueno, no estás entrenando estas relaizando un fine-tunning, que sería algo como adaptar el modelo a tu use case como he dicho antes.