Pourquoi affinons-nous un modèle de langue? Le réglage fin est essentiel lorsque nous devons enseigner à un LLM une nouvelle compétence ou améliorer sa compréhension dans un domaine spécifique .
Dans ce projet, nous visons à affiner les modèles de langage instruct / de chat aux petits et grands, y compris Smollm pour les modèles de petits langues (SLM) et Mistral pour les modèles de grande langue (LLM).
Le principal exemple de données utilisés est medalpaca/medical_meadow_medical_flashcards , dérivé des cartes flashs du curriculum médical d'Anki. Ces flashcards, créés et régulièrement mis à jour par des étudiants en médecine, couvrent un large éventail de sujets médicaux - tels que l'anatomie, la physiologie, la pathologie et la pharmacologie - et sont conçus pour soutenir l'apprentissage et la rétention efficaces grâce à des résumés concis et à des mnémoniques.
Bien que ce projet utilise l'ensemble de données Medical_Meadow_Medical_Flashcards, il est adaptable à d'autres ensembles de données pour les tâches de question / réponse et d'instruction / réponse. L'intégration de différents ensembles de données peut être facilement réalisée en modifiant les fichiers de configuration.
Le projet prend également en charge la quantification, ce qui rend possible à affiner les grands modèles comme Mistral et Llama sur des configurations matérielles plus modestes.
Le modèle SMOLLM affiné est disponible sur HuggingFace?
Bien que les réponses du modèle de base soient générales et suivent un format Markdown, le modèle ajusté semble avoir efficacement incorporé les compétences spécialisées sur lesquelles elle a été formée, en particulier pour reproduire le style de réponse attendu. Cependant, en tant que personne sans expérience médicale, je ne suis pas en mesure d'évaluer la précision ou la qualité des réponses fournies par l'un ou l'autre modèle. Vous trouverez ci-dessous un tableau comparant les réponses du modèle d'origine, du modèle de base et du modèle affiné pour un ensemble de questions médicales.
| Question | Réponse originale | Réponse du modèle de base | Réponse du modèle réglé |
|---|---|---|---|
| Quel médicament antipaludique a une activité contre les hypnozoïtes de Plasmodium? | La primaquine est le médicament antipaludique qui a une activité contre les hypnozoïtes de Plasmodium. | Les médicaments antipaludiques sont une classe de médicaments qui sont efficaces contre les parasites de plasmodium, qui sont responsables de la cause du paludisme. Les médicaments antipaludiques les plus courants utilisés pour traiter le paludisme comprennent: 1. L'ampicilline (amphotéricine B) : un antibiotique à large spectre qui est efficace contre les espèces de plasmodium. 2. Fosamivir (Fosamivir) : un antiviral à large spectre qui est efficace contre les espèces de Plasmodium. 3. Influvir (influence) : un antiviral à large spectre qui est efficace contre les espèces de Plasmodium. 4. ** ampicilline | L'érythromycine est le médicament antipaludique qui a une activité contre les hypnozoïtes de Plasmodium. |
| Quel est le terme utilisé pour décrire la quantité de substance filtrée dans l'espace de Bowman par unité de temps? | La quantité de substance filtrée dans l'espace de Bowman par unité de temps est appelée charge filtrée. | Le terme "espace de Bowman" est un nomlotisme utilisé pour décrire la quantité de substance filtrée dans l'espace d'un Bowman, qui est un espace hypothétique où un vaisseau spatial est lancé en orbite. Le concept est basé sur l'idée qu'un vaisseau spatial peut être lancé en orbite puis retourner sur Terre, le vaisseau spatial filtrant les particules ou les débris restants qui auraient pu être présents dans l'espace. Le terme "espace de Bowman" est souvent utilisé pour décrire la quantité de substance filtrée dans l'espace d'un Bowman, qui est un espace hypothétique où un vaisseau spatial est lancé en orbite puis revient sur Terre. Le | Le terme utilisé pour décrire la quantité de substance filtrée dans l'espace de Bowman par unité de temps est appelé l'efficacité de filtration. |
| Quel est le terme utilisé pour décrire le volume sanguin contenu dans les veines? | Le volume sanguin contenu dans les veines est appelé le volume non stressé. | Le terme «volume sanguin» fait référence à la quantité de sang qui circule à travers le système circulatoire du corps. Il s'agit d'un processus complexe qui implique l'échange d'oxygène, de nutriments et de déchets entre le sang et les tissus. Le volume sanguin est généralement mesuré en litres (L) ou en millilitres (ML) et est généralement distribué dans tout le corps par le système circulatoire. Il existe plusieurs composants clés qui contribuent au volume sanguin: 1. Les globules rouges : ce sont les cellules qui transportent l'oxygène des poumons aux tissus. Ils ont un diamètre d'environ 1,5 mm et sont composés d'hémoglobine | Le terme utilisé pour décrire le volume sanguin contenu dans les veines est appelé sang veineux. |
| Quel est le facteur le plus important pour déterminer le pronostic d'un carcinome de cellules de transition? | Le facteur le plus important pour déterminer le pronostic d'un carcinome de cellules de transition est le degré d'invasion. | La détermination du pronostic d'un carcinome de cellules transitoires (TCC) est cruciale, car elle peut avoir un impact significatif sur la qualité de vie du patient, les options de traitement et la survie globale. Le facteur le plus important pour déterminer le pronostic d'un TCC est la présence d'un diagnostic clair, d'une tumeur bien définie et d'un pronostic favorable. Voici quelques facteurs clés qui peuvent influencer le pronostic d'un TCC: 1. Diagnostic clair : un TCC est diagnostiqué avec une tumeur claire, ce qui signifie qu'elle a une croissance bénigne ou bénigne. Un TCC est également diagnostiqué avec un pronostic favorable, car il est peu probable qu'il se propage à | Le facteur le plus important pour déterminer le pronostic d'un carcinome de cellules de transition est la présence d'un grade élevé. |
Précision des réponses: le modèle affiné reproduit le format et le style attendus mais démontre certaines inexactitudes. Par exemple, l'érythromycine est incorrectement identifiée comme un médicament antipaludique efficace contre les hypnozoïtes de Plasmodium. La bonne réponse doit être primaquine.
Problèmes du modèle de base: Les réponses du modèle de base sont trop généralisées et parfois hors sujet, en particulier dans les contextes médicaux, comme le montrent les explications incorrectes sur l'espace et le volume sanguin de Bowman.
Remarque: Ce résultat a été obtenu après seulement 10 époques de formation. La formation pour plus d'époches peut conduire à de meilleurs résultats ¯ (ツ) / ¯.
Pour exécuter ce projet en douceur, Python 3.10 est requis. Le projet a été testé et vérifié sur Python 3.10.13. Suivez les étapes ci-dessous pour configurer votre environnement:
Créer un environnement virtuel:
python -m venv env
Activez l'environnement virtuel:
source env/bin/activate
Installez les dépendances requises:
pip install -r requirements.txt
Configurer des variables d'environnement: copiez le fichier .env.example et renommez-le à .env:
mv .env.example .env
Vous pouvez explorer les étapes de formation à l'aide de cahiers Jupyter:
cd notebooks
jupyter-lab
Alternativement, vous pouvez démarrer directement le processus de réglage fin. Les paramètres utilisés pour le réglage fin sont spécifiés dans les fichiers de configuration dans le dossier configs . Pour commencer le processus de réglage fin avec le modèle Smallm par défaut, exécutez:
python train.py
Si vous souhaitez former un modèle différent, vous pouvez spécifier la configuration du modèle en passant le nom du fichier de configuration comme argument:
python train.py --model Mistral
Remplacez Mistral par le nom du fichier de configuration du modèle souhaité. Pour former un nouveau modèle, créez simplement un nouveau fichier de configuration avec les paramètres souhaités et exécutez Train.py avec le nom du modèle approprié.