Back

Can large fine-tuned language models imitate doctors?

10 minute read
Maxime Lewandowski

Maxime Lewandowski

Machine Learning Engineer

TL;DR

Cedille is a new open source French language model created by Coteries. It is trained to understand and write French and is also the largest model of its kind for French. Cedille is trained using large databases of publicly available content on the internet filtered for toxic content.

Given a medical question, it's able to generate credible answers, but those answers are often wrong or unsafe. Using it to generate doctor answers is clearly out of question. However its ability to "understand" the question and give a short summary could be useful.

Cedille

Cedille is based on GPT-J, the 6 billion parameter model trained by the EleutherAI community. It is trained on 78 billion tokens (equivalent to 300 gigabytes of text) of French text from the C4 dataset. It took 12 days of computing on a v3-128 TPU to release the “Boris” version of the model, named after the famous French writer and singer Boris Vian.

What use case ?

At Nabla, we believe in asynchronous care which relies on messaging between patients and doctors. We have been working on providing our doctors super powers so that they can focus on the care with tools like autocompletion, fact extraction, categorisation... Most of these tools are text-based and use Natural Language Processing (NLP) models at some point of the process. Cedille claims to be the best model for French NLP and is in fact based on GPT-J which itself is inspired by the well-known GPT-3. These kinds of models are mostly used to generate text, but by tweaking them a bit, we can use them to extract data from text as well. Anyway, we had to test it and see what it's capable of.

Disclaimer

Nabla is a healthcare platform allowing users to chat with a medical team. All doctors are human doctors, the tools developed by the engineering team aim at helping doctors, not replacing them. All the data used in this experiment was carefully deidentified as required by law before it was handled by our data engineers.

The experiment

We are trying to generate a doctor's answer to a new patient question. The only context the model has is the text from the patient message. All examples below are anonymized versions of messages we received from patients.

We gave this model a question in the following form:

PATIENT: Je suis sous optimizette depuis plus d'un mois et j'ai des règles très
irrégulières et quasi permanentes, est ce que c'est normal?
DOCTOR:

The DOCTOR: at the end of the input suggests to the model that this text needs to be completed by a doctor message. (The text generation is limited to 240 tokens for technical reasons, some messages will be cut short).

Using the model as is

Using Cedille out of the box gives OK results but messages don't look at all like messages from Nabla doctors and leak personal informations (Dr Charvet). Here are a few examples, messages on the right side have been generated by Cedille from the preceding patient message:

PATIENT: On m'a posé un stérilet au cuivre il y a exactement un mois, depuis j'ai des saignements\ quelques peu anarchiques, et irréguliers et des douleurs au bas du ventre\
Est-ce normal?\
\
DOCTOR: A priori oui!\
L'IRRÉGULARITÉ DES SAIGNEMENTS AVEC UN STÉRILET AU CUIVRE EST NORMALE\
Par Dr. Christelle Charvet le 6 Octobre 2013

PATIENT: Bonjour!\
J'ai eu ma première injection du vaccin Pfizer aujourd'hui et j'ai réservé ma deuxième dose le 12 août, soit 22 jours après\
Mais il est inscrit sur mon certificat de première dose que je dois réaliser la deuxième à partir du 15 août\
Or, je pars en vacances le 20 août et j'aimerais pouvoir avoir mon pass sanitaire avant de partir, si je fais ma deuxième dose le 12 août je l'aurais, si non non..\
Pensez-vous que je peux me faire vacciner le 12 ou faut-il attendre le 15?\
Merci pour votre réponse!\
 \
DOCTOR: Oui, pas de problèmes, vous pouvez avoir votre vaccin à partir du 12 août.\
Vous pouvez également le faire à partir du 15 août.\
Je vous donne cette information car j'ai récemment reçu un cas similaire à celui qui vous préoccupe.

Fine tuning

Fine-tuning in NLP (Natural Language Processing) refers to the procedure of re-training a little bit of a pre-trained language model using your own custom data. As a result of the fine-tuning procedure, the weights of the original model are updated to account for the characteristics of the domain data and the task you are interested in.

In our experiment, we wanted the model to give answers that look like a certain type of Nabla doctor’s messages, with greetings and a reminder of the medical context. So we used all anonymised Nabla conversations of this type and show them to the model, expecting it to learn the style and tone of our amazing health team.

Fine-tuning Cedille to specialize it on a task is not straightforward. The model has about 24GB of weights and even in half precision will not fit in any modern GPUs for training (considering you have to load the optimizer and the gradients on the gpu too).

Using Deepspeed by Microsoft, we managed to offload the optimizer to the CPU as well as some parameters (at the cost of cpu / gpu bandwidth), and split the model to achieve model parallelism on two Nvidia Tesla A100.

We trained it for 2 epochs on about 6000 conversations.

Results

Here are a few examples of what our fine-tuned model can do in various situations. Messages on the right have been generated by our model from the preceding patient message.

Short and straightforward questions:

Example A.1 PATIENT: Bonjour,\
s'il vous plait, un rendez-vous chez le psychiatre est-il remboursé par la secu?\
 \
DOCTOR: Bonjour @patient_username,\
Vous vous interrogez sur le remboursement des consultations psychiatriques par la Sécurité sociale.\
Le psychiatre n'est pas un médecin "interniste" (c'est-à-dire spécialisé uniquement dans le diagnostic et la prise en charge des maladies neurologiques et de l'appareil génital).\
Cependant, la consultation psychiatrique peut être intégrée dans un suivi médical général et donc rembourser par l'assurance maladie.\
Pour bénéficier d'un meilleur parcours de soins, il est conseillé de choisir un psychiatre exerçant en centre de santé mentale (CSAPA, CMP ou hôpital de jour) ou en cabinet libéral.\
Bonne journée,

Example A.2 PATIENT: En cas de vaginisme, puis-je faire un bilan urodynamique?\
 \
DOCTOR: Bonjour @patient_username,\
Vous vous interrogez sur la possibilité de réaliser des bilans uro-dynamiques lorsque l'on est vaginiste.\
Je comprends que cela puisse être une source d'inquiétude pour vous. Je vais tenter de vous apporter quelques éléments de réponse.\
Les vaginistes sont des personnes qui s'interrogent beaucoup sur leur périnée. C'est un ensemble de muscles constituant le plancher pelvien. Il s'agit du muscle le plus puissant de notre corps. Il se situe entre notre utérus et nos organes sexuels. Il nous permet de nous retenir quand nous sommes enceintes, de porter des charges lourdes, de saigner après un accouchement, d'uriner, de déféquer...\
C'est le muscle qui

Example A.3 PATIENT: On m'a posé un stérilet au cuivre il y a exactement un mois, depuis j'ai des saignements quelques peu anarchiques, et irréguliers et des douleurs au bas du ventre\
Est-ce normal?\
 \
DOCTOR: Bonjour @patient_username,\
Vous vous interrogez sur la normalité de saigner après la pose d'un DIU (dispositif intra-utérin).\
Le DIU est un petit dispositif en forme de T, inséré à l'intérieur de l'utérus par un gynécologue, une sage-femme ou un généraliste pour une durée maximale de 4 ans (mais il est tout à fait possible de le retirer avant). Il libère de la progestérone en continu pour épaissir l'endomètre et donc faciliter l'accouchement.\
Les effets indésirables les plus fréquents de ce DIU hormonal sont :\
- spottings (saignements anarchiques de faible abondance)\
- acné\
- prise de poids\
- baisse de libido\
- nausées/vomissements\
Ces

Example A.4 PATIENT: Je suis sous optimizette depuis plus d'un mois et j'ai des règles très irrégulière et quasi permanente est ce que c'est normal?\
 \
DOCTOR: Bonjour @patient_username,\
Vous vous interrogez sur l'irrégularité de votre cycle.\
Optimizette est une pilule micro-progestative. Cela signifie que cette pilule ne contient pas d'œstrogènes, mais uniquement un progestatif (une hormone stéroïdienne qui bloque la mobilité des spermatozoïdes et modifie la paroi de l'utérus pour empêcher la grossesse).\
Ce type de contraception a des effets variables selon les femmes :\
> Chez certaines, cela occasionne des spottings (saignements légers anarchiques répétés). Cela est dû à son faible dosage et à l'absence d'oestrogène. Il faut laisser le temps au corps de s'y habituer. Ces saignements sont parfaitement normaux et ne diminuent pas l'efficacité de la pilule

With these 4 example, we can notice:

  • It writes coherent sentences with a coherent structure. Punctuation is good and makes for overall readable pieces of text.
  • It can enumerate stuff in a list form and uses parenthesis for asides.
  • It is able to output French letters like in Œstrogène or spermatozoïdes but only some of the times. Most of the time grammar and spelling is good.
  • We can also see that it learned very well the structure of messages from Nabla doctors with greetings containing the username of the patient followed by a summary of the issue or question.

Now for the bad stuff:

  • In example A.1 and A.2, it created the words "interniste" and "vaginiste" and their definitions it proudly gives, which is pretty bad.
  • Past the first paragraph the model seems to improvise on subjects it has picked up in the question but doesn't really answer it.

Questions with a richer and more difficult context:

Example B.1.a PATIENT: Bonjour!\
J'ai eu ma première injection du vaccin Pfizer aujourd'hui et j'ai réservé ma deuxième dose le 12 août, soit 22 jours après\
Mais il est inscrit sur mon certificat de première dose que je dois réaliser la deuxième à partir du 15 août\
Or, je pars en vacances le 20 août et j'aimerais pouvoir avoir mon pass sanitaire avant de partir, si je fais ma deuxième dose le 12 août je l'aurais, si non non..\
Pensez-vous que je peux me faire vacciner le 12 ou faut-il attendre le 15?\
Merci pour votre réponse!\
 \
DOCTOR: Bonjour @patient_username,\
Je comprends que vous avez reçu votre premières injection du Pfizer le 19 juillet et que vos prochaines injections sont prévues le 12 et le 15 aout.\
Vous vous interrogez sur la nécessité d'attendre 15 jours avant votre prochaine injection ou si vous pouvez la faire plus tôt.\
Il est vrai qu'il est recommandé de laisser un intervalle de temps d'au moins deux semaines entre les deux injections. Cependant, dans certains cas, il est possible d'avoir recours à un délai plus court. C'est le cas lorsque la personne a déjà eu la Covid-19 ou lorsqu'elle est immunisée contre le SARS-CoV-2.\
Dans votre cas, vous semblez être dans le cas où il

Example B.1.b PATIENT: Bonjour!\
J'ai eu ma première injection du vaccin Pfizer aujourd'hui et j'ai réservé ma deuxième dose le 12 août, soit 22 jours après\
Mais il est inscrit sur mon certificat de première dose que je dois réaliser la deuxième à partir du 15 août\
Or, je pars en vacances le 20 août et j'aimerais pouvoir avoir mon pass sanitaire avant de partir, si je fais ma deuxième dose le 12 août je l'aurais, si non non..\
Pensez-vous que je peux me faire vacciner le 12 ou faut-il attendre le 15?\
Merci pour votre réponse!\
 \
DOCTOR: Bonjour @patient_username,\
Je comprends que vous vous inquiétez d'un décalage entre la date prévue pour la 2ᵉ injection de Pfizer et la date de vos prochaines règles.\
Rassurez-vous, il n'y a pas d'inquiétude à avoir, le délai entre les 2 injections est strictement réglementé par les autorités de santé et doit être d'au moins 15 jours. Votre médecin a dû vous le préciser lors de votre téléconsultation.\
En ce qui concerne la fertilité, le COVID-19 n'a pas provoqué de stérilité chez les femmes qui ont présenté le virus, les études sont en cours et interrogent des milliers de femmes vaccinées sur leurs cycles. Rien n'est encore validé, cela dev

B.1.a seems to be a reasonable answer. The "summary of the question" part is great. It repeated explicit dates and almost got the implicit one (missed by a few days). But the rest of the messages missed the point again and just talks about global rules about the vaccine, not strictly related to the current question.

One good thing is that it got the "covid-19" context without any explicit mentions of it (only "Pfizer" and "pass sanitaire").

The real problem is exposed in example B.1.b which is another run of the same model that came with the same score which means that the model is as confident in the quality of both answers.

This time the model completely misses the point, hallucinating some questions about the vaccine safety.

Example B.2.a

PATIENT: Bonjour,\
J'ai pratiqué le frotti frotta avec mon copain. Sans vêtement ni protection, ni pénétration.\
Il a éjaculé sur mon bas ventre.\
J'ai un retard de règles.\
Qu'en pensez vous? Que dois je faire?\
Sachant que je stresse énormément de l'absence de mes règles.\
La date de mes anciennes règles : 15 février 2021\
Dernier frotti frotta : 21 mars 2021\
Bien à vous\
 \
DOCTOR: Bonjour @patient_username,\
Vous avez eu des rapports sexuels non protégés (sans préservatif) avec votre copain et il a éjaculé sur vous. Vous êtes donc enceinte et vous vous demandez ce que vous devez faire.\
Tout d'abord, félicitations pour cette grossesse!\
Je comprends que cela vous inquiète et je vais tenter de répondre au mieux à votre question.\
Lorsqu'un homme éjacule en dehors d'une relation sexuelle avec une femme, cela s'appelle un "éjaculation prématurée". Il s'agit d'un phénomène fréquent et bénin, mais qui peut être très gênant pour la femme. En effet, le liquide pré-séminal qui s'accumule dans

Example B.2.b

PATIENT: Bonjour,\
J'ai pratiqué le frotti frotta avec mon copain. Sans vêtement ni protection, ni pénétration.\
Il a éjaculé sur mon bas ventre.\
J'ai un retard de règles.\
Qu'en pensez vous? Que dois je faire?\
Sachant que je stresse énormément de l'absence de mes règles.\
La date de mes anciennes règles : 15 janvier 2021\
Dernier frotti frotta : 21 février 2021\
Bien à vous\
 \
DOCTOR: Bonjour @patient_username,\
Vous avez eu des rapports sexuels non protégés (sans préservatif) avec votre copain et vous vous inquiétez d'un retard de vos prochains cycles.\
Je comprends votre inquiétude et vais tenter de vous répondre au mieux.\
Tout d'abord, je dois vous rappeler que dans le cadre du téléconseil, il n'est pas possible d'établir de diagnostic ni de faire de prescription médicale.\
Cependant, je peux vous donner quelques hypothèses qui peuvent être à l'origine de ce retard.\
Il est fréquent d'avoir des cycles irréguliers de temps à autre, surtout après un changement important dans la vie (déménagement, changement de travail, décès

Once again the beginning of the message is good in both versions but gives a completely unacceptable answer in B.2.a. B.2.b seems to go the right way but the model gave a higher confidence score to B.2.a.

Performance

Those generated answers take between 25 and 120 seconds (per message) to be generated on the best available GPU on Google Cloud Platform (Nvidia Tesla A100). It can be loaded on smaller GPUs in half precision, but requires a lot of work to make sure it will not run out of memory. Inference on CPU takes about 10 minutes or more for a single message (the decoding strategy has a huge impact on performance on CPU).

Conclusion

Large-scale language models are a hot topic because of how "smart" they seem at first glance, but people tend to vastly overestimate their reasoning abilities. In the healthcare context, suggesting complete doctor replies would not only be a waste of time, but also terribly unsafe: doctors would have to carefully filter out the nonsense in the generated answers.

Nevertheless, fine-tuning them for specific domains can already make them helpful for simpler tasks such as information extraction, summarization and conversational help. It's exciting to see how much performance improved compared to smaller, task-specific recurrent neural networks from just a few years ago.

Ecological note

Using and (mostly) training this kind of model requires a lot of computing power. During this experiment, we used resources from Google Cloud Platform and emitted an estimated 28.5kg of CO2eq, according to ML CO2 impact (same as driving for about 113km in an average car). This is low compared to what it could have been without using transfer-learning from the pre-trained model weights gracefully shared by Coteries AI.

Interested in this topic? Nabla is building a digital healthcare platform that is made affordable and scalable by machine learning. Come join us!