Por que ajustamos um modelo de idioma? O ajuste fino é essencial quando precisamos ensinar a um LLM uma nova habilidade ou aprimorar seu entendimento em um domínio específico .
Neste projeto, pretendemos ajustar os modelos de idiomas pequenos e grandes de instrução/bate-papo, incluindo Smollm for Small Language Models (SLM) e Mistral for Grand Language Models (LLM).
O conjunto de dados de exemplo principal usado é medalpaca/medical_meadow_medical_flashcards , derivado dos cartões de flash do Currículo Médico ANKI. Esses cartões de memória flash, criados e atualizados regularmente por estudantes de medicina, abrangem um amplo espectro de tópicos médicos - como anatomia, fisiologia, patologia e farmacologia - e são projetados para apoiar o aprendizado e a retenção eficazes por meio de resumos concisos e mnemônicos.
Embora este projeto use o conjunto de dados Medical_meadow_medical_flashCards, ele é adaptável a outros conjuntos de dados para tarefas de perguntas/respostas e instrução/resposta. A integração de diferentes conjuntos de dados pode ser facilmente realizada modificando os arquivos de configuração.
O projeto também suporta quantização, tornando viável ajustar modelos grandes, como Mistral e Llama, em configurações de hardware mais modestas.
O modelo Smollm ajustado está disponível no Huggingface?
Embora as respostas do modelo básico sejam gerais e sigam um formato de marcação, o modelo de ajuste fino parece ter efetivamente incorporado as habilidades especializadas em que foi treinado, principalmente na replicação do estilo de resposta esperado. No entanto, como alguém sem formação médica, não consigo avaliar a precisão ou a qualidade das respostas fornecidas por qualquer modelo. Abaixo está uma tabela comparando as respostas do modelo original, modelo básico e modelo de ajuste fino para um conjunto de perguntas médicas.
| Pergunta | Resposta original | Resposta do modelo básico | Resposta do modelo ajustada |
|---|---|---|---|
| Que medicamento antimalárico tem atividade contra hipnozoítos de Plasmodium? | Primaquina é a medicação antimalárica que tem atividade contra os hipnozoítos de Plasmodium. | Os medicamentos antimaláricos são uma classe de medicamentos eficazes contra os parasitas de Plasmodium, responsáveis por causar malária. Os medicamentos antimaláricos mais comuns usados para tratar a malária incluem: 1. Ampicilina (anfotericina B) : um antibiótico de amplo espectro que é eficaz contra as espécies de Plasmodium. 2. Fosamivir (Fosamivir) : Um antiviral de amplo espectro que é eficaz contra as espécies de Plasmodium. 3. Influvir (Influvir) : Um antiviral de amplo espectro que é eficaz contra as espécies de Plasmodium. 4. ** Ampicilina | A eritromicina é a medicação antimalárica que possui atividade contra hipnozoítos de Plasmodium. |
| Qual é o termo usado para descrever a quantidade de substância filtrada no espaço de Bowman por unidade de tempo? | A quantidade de substância filtrada no espaço de Bowman por unidade de tempo é chamada de carga filtrada. | O termo "espaço de Bowman" é um coloquialismo usado para descrever a quantidade de substância filtrada no espaço de um Bowman, que é um espaço hipotético em que uma espaçonave é lançada em órbita. O conceito é baseado na idéia de que uma espaçonave pode ser lançada em órbita e depois retornar à Terra, com a espaçonave filtrando quaisquer partículas ou detritos restantes que possam estar presentes no espaço. O termo "espaço de Bowman" é frequentemente usado para descrever a quantidade de substância filtrada no espaço de um Bowman, que é um espaço hipotético em que uma espaçonave é lançada em órbita e depois retorna à Terra. O | O termo usado para descrever a quantidade de substância filtrado no espaço de Bowman por unidade de tempo é chamado de eficiência da filtração. |
| Qual é o termo usado para descrever o volume sanguíneo contido nas veias? | O volume de sangue contido nas veias é chamado de volume não estressado. | O termo "volume de sangue" refere -se à quantidade de sangue que circula pelo sistema circulatório do corpo. É um processo complexo que envolve a troca de oxigênio, nutrientes e resíduos entre o sangue e os tecidos. O volume sanguíneo é normalmente medido em litros (L) ou mililitros (ML) e é normalmente distribuído por todo o corpo através do sistema circulatório. Existem vários componentes -chave que contribuem para o volume sanguíneo: 1. Blóbios vermelhos : essas são as células que transportam oxigênio dos pulmões para os tecidos. Eles têm um diâmetro de cerca de 1,5 mm e são compostos de hemoglobina | O termo usado para descrever o volume sanguíneo contido nas veias é chamado de sangue venoso. |
| Qual é o fator mais importante para determinar o prognóstico de um carcinoma celular de transição? | O fator mais importante para determinar o prognóstico de um carcinoma celular de transição é o grau de invasão. | A determinação do prognóstico de um carcinoma celular de transição (TCC) é crucial, pois pode afetar significativamente a qualidade de vida do paciente, as opções de tratamento e a sobrevida global. O fator mais importante para determinar o prognóstico de um TCC é a presença de um diagnóstico claro, um tumor bem definido e um prognóstico favorável. Aqui estão alguns fatores-chave que podem influenciar o prognóstico de um TCC: 1. Diagnóstico claro : um TCC é diagnosticado com um tumor claro, o que significa que ele tem um crescimento benigno ou benigno. Um TCC também é diagnosticado com um prognóstico favorável, pois é improvável que | O fator mais importante para determinar o prognóstico de um carcinoma celular de transição é a presença de um alto grau. |
Precisão das respostas: o modelo ajustado replica o formato e o estilo esperados, mas demonstra algumas imprecisões. Por exemplo, a eritromicina é identificada incorretamente como um medicamento antimalárico eficaz contra os hipnozoítos de Plasmodium. A resposta correta deve ser primordial.
Questões do modelo básico: as respostas do modelo básico são excessivamente generalizadas e às vezes fora do tópico, especialmente em contextos médicos, como visto nas explicações incorretas sobre o espaço e o volume de sangue de Bowman.
Nota: Este resultado foi obtido após apenas 10 épocas de treinamento. O treinamento para mais épocas pode levar a melhores resultados ¯ (ツ) /¯.
Para executar este projeto sem problemas, é necessário o Python 3.10. O projeto foi testado e verificado no Python 3.10.13. Siga as etapas abaixo para configurar seu ambiente:
Crie um ambiente virtual:
python -m venv env
Ative o ambiente virtual:
source env/bin/activate
Instale as dependências necessárias:
pip install -r requirements.txt
Configurar variáveis de ambiente: copie o arquivo .env.example e renomeie -o para .env:
mv .env.example .env
Você pode explorar as etapas de treinamento usando notebooks Jupyter:
cd notebooks
jupyter-lab
Como alternativa, você pode iniciar o processo de ajuste fino diretamente. Os parâmetros usados para ajuste fino são especificados na pasta de arquivos de configuração na pasta configs . Para iniciar o processo de ajuste fino com o modelo PETLMM padrão, execute:
python train.py
Se você deseja treinar um modelo diferente, pode especificar a configuração do modelo, passando o nome do arquivo de configuração como um argumento:
python train.py --model Mistral
Substitua o Mistral pelo nome do arquivo de configuração do modelo desejado. Para treinar um novo modelo, basta criar um novo arquivo de configuração com as configurações desejadas e executar o trem.py com o nome do modelo apropriado.