¿Por qué ajustamos un modelo de idioma? El ajuste fino es esencial cuando necesitamos enseñarle a un LLM una nueva habilidad o mejorar su comprensión en un dominio específico .
En este proyecto, nuestro objetivo es ajustar los modelos de lenguaje de instrucciones/chat pequeños y grandes, incluidos SMOLLM para modelos de idiomas pequeños (SLM) y Mistral para modelos de idiomas grandes (LLM).
El conjunto de datos de ejemplo principal utilizado es medalpaca/medical_meadow_medical_flashcards , derivado de las tarjetas de currículo médico ANKI. Estas tarjetas de flash, creadas y actualizadas regularmente por los estudiantes de medicina, cubren un amplio espectro de temas médicos, como anatomía, fisiología, patología y farmacología, y están diseñados para apoyar el aprendizaje y la retención efectivos a través de resúmenes concisos y mnemónicos.
Aunque este proyecto utiliza el conjunto de datos Medical_Meadow_Medical_FlashCards, es adaptable a otros conjuntos de datos para tareas de preguntas/respuesta e instrucción/respuesta. La integración de diferentes conjuntos de datos se puede lograr fácilmente modificando los archivos de configuración.
El proyecto también admite la cuantización, lo que hace que sea factible ajustar modelos grandes como Mistral y LLAMA en configuraciones de hardware más modestas.
¿El modelo SMOLLM ajustado está disponible en Huggingface?
Si bien las respuestas del modelo base son generales y siguen un formato de Markdown, el modelo ajustado parece haber incorporado efectivamente las habilidades especializadas en las que fue entrenado, particularmente en la replicación del estilo de respuesta esperado. Sin embargo, como alguien sin antecedentes médicos, no puedo evaluar la precisión o calidad de las respuestas proporcionadas por cualquiera de los modelos. A continuación se muestra una tabla que compara las respuestas del modelo original, el modelo base y el modelo ajustado para un conjunto de preguntas médicas.
| Pregunta | Respuesta original | Respuesta del modelo base | Respuesta del modelo sintonizado |
|---|---|---|---|
| ¿Qué medicamento antipalúdico tiene actividad contra los hipnozoitos de Plasmodium? | La primaquina es la medicación antipalúdica que tiene actividad contra los hipnozoitos de Plasmodium. | Los medicamentos antipalúdicos son una clase de medicamentos que son efectivos contra los parásitos de Plasmodium, que son responsables de causar malaria. Los medicamentos antipalúdicos más comunes utilizados para tratar la malaria incluyen: 1. ampicilina (anfotericina B) : un antibiótico de amplio espectro que es efectivo contra las especies de Plasmodium. 2. Fosamivir (fosamivir) : un antiviral de amplio espectro que es efectivo contra las especies de Plasmodium. 3. Influir (Influir) : un antiviral de amplio espectro que es efectivo contra las especies de Plasmodium. 4. ** Ampicilina | La eritromicina es la medicación antipalúdica que tiene actividad contra los hipnozoitos de Plasmodium. |
| ¿Cuál es el término utilizado para describir la cantidad de sustancia filtrada en el espacio de Bowman por unidad de tiempo? | La cantidad de sustancia filtrada en el espacio de Bowman por unidad de tiempo se llama carga filtrada. | El término "espacio de Bowman" es un coloquialismo utilizado para describir la cantidad de sustancia filtrada en el espacio de un Bowman, que es un espacio hipotético donde una nave espacial se lanza a la órbita. El concepto se basa en la idea de que una nave espacial puede lanzarse a la órbita y luego regresar a la Tierra, con la nave espacial filtrando cualquier partícula o escombros restantes que puedan haber estado presentes en el espacio. El término "espacio de Bowman" a menudo se usa para describir la cantidad de sustancia filtrada en el espacio de un arco, que es un espacio hipotético donde una nave espacial se lanza a la órbita y luego regresa a la Tierra. El | El término utilizado para describir la cantidad de sustancia filtrada en el espacio de Bowman por unidad de tiempo se llama eficiencia de filtración. |
| ¿Cuál es el término utilizado para describir el volumen de sangre contenido en las venas? | El volumen de sangre contenido en las venas se llama volumen no estresado. | El término "volumen de sangre" se refiere a la cantidad de sangre que circula a través del sistema circulatorio del cuerpo. Es un proceso complejo que implica el intercambio de oxígeno, nutrientes y productos de desecho entre la sangre y los tejidos. El volumen de sangre generalmente se mide en litros (L) o mililitros (ml) y se distribuye típicamente en todo el cuerpo a través del sistema circulatorio. Hay varios componentes clave que contribuyen al volumen de sangre: 1. Aólogos en sangre roja : estas son las células que transportan oxígeno desde los pulmones a los tejidos. Tienen un diámetro de aproximadamente 1,5 mm y están compuestos de hemoglobina | El término utilizado para describir el volumen de sangre contenido en las venas se llama sangre venosa. |
| ¿Cuál es el factor más importante para determinar el pronóstico de un carcinoma de células de transición? | El factor más importante para determinar el pronóstico de un carcinoma de células de transición es el grado de invasión. | Determinar el pronóstico de un carcinoma de células de transición (TCC) es crucial, ya que puede afectar significativamente la calidad de vida, las opciones de tratamiento y la supervivencia general del paciente. El factor más importante para determinar el pronóstico de un TCC es la presencia de un diagnóstico claro, un tumor bien definido y un pronóstico favorable. Aquí hay algunos factores clave que pueden influir en el pronóstico de un TCC: 1. Diagnóstico claro : un TCC se diagnostica con un tumor claro, lo que significa que tiene un crecimiento benigno o benigno. Un TCC también se diagnostica con un pronóstico favorable, ya que es poco probable que se propague a | El factor más importante para determinar el pronóstico de un carcinoma de células de transición es la presencia de un alto grado. |
Precisión de las respuestas: el modelo ajustado replica el formato y el estilo esperados, pero demuestra algunas inexactitudes. Por ejemplo, la eritromicina se identifica incorrectamente como una medicación antipalúdica efectiva contra los hipnozoitos de Plasmodium. La respuesta correcta debe ser la primaquina.
Problemas del modelo base: las respuestas del modelo base son demasiado generalizadas y, a veces, fuera del tema, especialmente en contextos médicos, como se ve en las explicaciones incorrectas sobre el espacio y el volumen de sangre de Bowman.
Nota: Este resultado se obtuvo después de solo 10 épocas de entrenamiento. La capacitación para más épocas puede conducir a mejores resultados ¯ (ツ) /¯.
Para ejecutar este proyecto sin problemas, se requiere Python 3.10. El proyecto ha sido probado y verificado en Python 3.10.13. Siga los pasos a continuación para configurar su entorno:
Crear un entorno virtual:
python -m venv env
Active el entorno virtual:
source env/bin/activate
Instale las dependencias requeridas:
pip install -r requirements.txt
Configurar variables de entorno: copie el archivo .env.example y cambie el nombre a .env:
mv .env.example .env
Puede explorar los pasos de capacitación usando cuadernos Jupyter:
cd notebooks
jupyter-lab
Alternativamente, puede comenzar el proceso de ajuste fino directamente. Los parámetros utilizados para el ajuste se especifican en los archivos de configuración dentro de la carpeta configs . Para comenzar el proceso de ajuste fino con el modelo SmallM predeterminado, ejecute:
python train.py
Si desea entrenar un modelo diferente, puede especificar la configuración del modelo pasando el nombre del archivo de configuración como argumento:
python train.py --model Mistral
Reemplace Mistral con el nombre del archivo de configuración del modelo deseado. Para entrenar un nuevo modelo, simplemente cree un nuevo archivo de configuración con la configuración deseada y ejecute Train.py con el nombre del modelo apropiado.