Chinês | Inglês

Este projeto abre a fonte de um grande conjunto de modelos de idiomas que foi ajustado/ajuste de instrução em instruções médicas chinesas, incluindo lhama, alpaca-chinesa, flor, modelos de tipo móvel, etc.
Com base no gráfico de conhecimento médico e na literatura médica, combinamos com a API ChatGPT para construir um conjunto de dados de ajuste fino de instrução médica chinesa e usamos isso para ajustar as instruções de vários modelos básicos, melhorando o efeito de pergunta e resposta do modelo básico no campo médico.
[2023/09.
[2023/09/12] Release "Explorando a aquisição de conhecimento interativo da literatura médica por grandes modelos" no Arxiv
[2023/09.
[2023/08/07] Uma liberação do modelo baseada no tipo móvel é adicionada e o efeito do modelo é significativamente melhorado.
[2023/08/05] O modelo de ervas é apresentado na faixa de demonstração do CCL 2023.
[2023/08.
[2023/07/19] Adicionou um modelo para instruções de ajuste fino com base no Bloom.
[2023/05/12] O modelo foi renomeado "Bencao" de "Hua Tuo".
[2023/04/28] Adicionou uma liberação de modelo baseada no modelo Big Chinês Alpaca para instruções de ajuste fino.
[2023/04/24] Adicionou um modelo para instruções de ajuste fino com base na lhama e na literatura médica.
[2023/03/31] Adicionou uma liberação do modelo para instruções de ajuste fino com base na Base de Conhecimento Médico e Llama.
Primeiro instale o pacote de dependência, o Python Environment recomenda 3.9+
pip install -r requirements.txt
Para todos os modelos básicos, adotamos o Modelo de Base de Meia Precisão Lora Método de Ajuste Fine para Instruções Treinamento para Pesar os Recursos de Computação e o Desempenho do Modelo.
Os pesos da Lora podem ser baixados através do Baidu Netdisk ou Hugging Face:
Faça o download do peso da Lora e descompacte. O formato descompactado é o seguinte:
**lora-folder-name**/
- adapter_config.json # LoRA权重配置文件
- adapter_model.bin # LoRA权重文件
Com base nos mesmos dados, também treinamos a versão médica do modelo ChatGLM: ChatGlm-6b-Med
Fornecemos alguns casos de teste em ./data/infer.json , que podem ser substituídos por outros conjuntos de dados. Observe que o formato é consistente.
Execute o script inferno
#基于医学知识库
bash ./scripts/infer.sh
#基于医学文献
#单轮
bash ./scripts/infer-literature-single.sh
#多轮
bash ./scripts/infer-literature-multi.sh
O código de script infer.sh é o seguinte. Substitua o modelo básico base_model, lora peso lora_weights e teste o caminho do conjunto de dados Instruct_dir no código a seguir e executá -lo após substituir o modelo base base_model, lora peso lora_weights e teste o caminho do conjunto de dados instruct_dir.
python infer.py
--base_model 'BASE_MODEL_PATH'
--lora_weights 'LORA_WEIGHTS_PATH'
--use_lora True
--instruct_dir 'INFER_DATA_PATH'
--prompt_template 'TEMPLATE_PATH'
A seleção de modelos rápidos está relacionada ao modelo, os detalhes são os seguintes:
| Tipo e flores móveis | LLAMA & ALPACA |
|---|---|
templates/bloom_deploy.json | Com base em templates/med_template.jsonCom base em templates/literature_template.json |
Você também pode se referir a ./scripts/test.sh
O modelo básico tem efeitos limitados nos cenários de perguntas e respostas médicas, e o ajuste fino das instruções é uma maneira eficiente de fazer com que o modelo básico tenha a capacidade de responder a perguntas humanas.
Adotamos uma base de conhecimento médio chinês aberto e auto-construído, referindo-se principalmente à CMEKG.
A base de conhecimento médica é construída em torno de doenças, medicamentos, indicadores de exame, etc., e os campos incluem complicações, fatores de alto risco, exames histológicos, sintomas clínicos, tratamento medicamentoso, tratamento auxiliar etc. O exemplo da base de conhecimento é o seguinte:
{"中心词": "偏头痛", "相关疾病": ["妊娠合并偏头痛", "恶寒发热"], "相关症状": ["皮肤变硬", "头部及眼后部疼痛并能听到连续不断的隆隆声", "晨起头痛加重"], "所属科室": ["中西医结合科", "内科"], "发病部位": ["头部"]}
Utilizamos a interface GPT3.5 para criar dados de perguntas e respostas em torno da base de conhecimento médico e estabelecemos uma variedade de formulários rápidos para fazer pleno uso do conhecimento.
Os exemplos de dados do conjunto de treinamento para instruções de ajuste fino são os seguintes:
"问题:一位年轻男性长期使用可卡因,突然出现胸痛、呕吐、出汗等症状,经检查发现心电图反映心肌急性损伤,请问可能患的是什么疾病?治疗方式是什么?"
回答: 可能患的是心肌梗塞,需要进行维拉帕米、依普利酮、硝酸甘油、ß阻滞剂、吗啡等药物治疗,并进行溶栓治疗、低分子量肝素、钙通道阻滞剂等辅助治疗。此外需要及时停用可卡因等药物,以防止病情加重。"
Fornecemos um conjunto de dados de treinamento do modelo, com um total de mais de 8.000 peças. Deve -se notar que, embora a construção do conjunto de treinamento incorpore conhecimento, ainda existem erros e imperfeições. No futuro, usaremos melhores estratégias para iterar e atualizar o conjunto de dados.
A qualidade do conjunto de dados de ajuste fina de instruções ainda é limitada e a iteração será realizada no futuro. Ao mesmo tempo, a base de conhecimento médica e o código de construção do conjunto de dados ainda estão sendo resolvidos e serão liberados após a conclusão da classificação.
Além disso, coletamos literatura médica chinesa sobre doenças de câncer de fígado em 2023 e usamos a interface GPT3.5 para construir várias rodadas de dados de perguntas e respostas em torno da [conclusão] da literatura médica. Em · ./data_literature/liver_cancer.json fornecemos exemplos de treinamento 1K. Atualmente, a qualidade das amostras de treinamento ainda é limitada. No futuro, iteraremos ainda mais os dados e os publicaremos ao público na forma de公开数据集. Exemplos de amostras de treinamento são os seguintes:

Atualmente, abrimos apenas parâmetros do modelo para treinamento único de doenças de "câncer de hepatite". No futuro, planejamos publicar conjuntos de dados de diálogo médico que incorporam conclusões da literatura e treinaremos modelos para 16 doenças relacionadas a "hepatobiliar e pancreático".
Para detalhes, consulte o nosso artigo: "Explorando a aquisição de conhecimento interativo da literatura médica para grandes modelos"
Se você deseja ajustar o modelo de linguagem grande com seu próprio conjunto de dados, crie seu próprio conjunto de dados no formato em ./data/llama_data.json
Execute o script Finetune
bash ./scripts/finetune.sh
Durante o processo de ajuste fino de instrução com base no modelo LLAMA, treinamos em uma placa gráfica A100-SXM-80GB. As rodadas totais de treinamento foram 10 rodadas, o que levou cerca de 2h17m. Com Batch_size = 128, a memória de vídeo ocupa cerca de 40g. Espera -se que as placas gráficas 3090/4090 (memória gráfica de 24 GB) ou acima possam ser melhor suportadas, e o Batch_Size é ajustado de acordo com o tamanho da memória gráfica.
Para configurações de hiperparâmetro e procedimentos experimentais, consulte o link do WandB:
https://wandb.ai/thinkso/llama_med/runs/a5wgcnzt/overview?workspace=user-thinkso
Nota: testado em março de 2023
| Entrada de teste | Saída de lhama | Saída de alpaca | Bentsao Materia Medica |
|---|---|---|---|
| Xiao Zhang está se sentindo mal recentemente e tem sintomas como palpitações e falta de ar. O exame físico descobriu que o coração estava aumentado e a pulsação foi enfraquecida. | Pergunta: Xiao Zhang tem se sentido doente recentemente e tem sintomas como palpitações e falta de ar. O exame físico descobriu que o coração estava aumentado e a pulsação foi enfraquecida. | Recentemente, Xiao Zhang está se sentindo desconfortável e tem sintomas como chateado e falta de ar. O exame físico mostra que o coração está aumentado e os músculos são fracos. | Xiao Zhang pode sofrer de miocardite, por isso é recomendável ir ao hospital para exame e tratamento o mais rápido possível. As opções de tratamento incluem medicamentos e tratamento cirúrgico. |
| As causas da hanseníase e asma da infância são consistentes? | As causas da asma e da hanseníase nas crianças são consistentes, mas as causas da asma e da hanseníase em crianças não são consistentes | Sim, asma e crianças têm causas semelhantes. | Inconsistente, a causa da hanseníase é a infecção por hanseníase, enquanto a causa da asma em crianças são fatores como alimentação e tabagismo ruim. |
| Um paciente desenvolveu inchaço persistente e icterícia. Após o exame de imagem, doença da pedra do ducto hepatobiliar. Quais planos de tratamento devem ser tomados? | Que planos de tratamento os pacientes com doenças de pedra do ducto hepatobiliar devem tomar? | Os pacientes devem passar por uma combinação de cirurgia e quimioterapia. | Para doenças de pedra do ducto hepatobiliar, os planos de tratamento incluem tratamento cirúrgico, tratamento medicamentoso e tratamento auxiliar. O plano de tratamento específico precisa ser determinado de acordo com as circunstâncias específicas do paciente. |
P: Por que foi renomeado "Bencao"?
R: A consistência do nome do Modelo de Linguagem de Laboratório de Scir e o nome do modelo médico chinês é ajustado para "Medicina Material de Herbais".
P: Por que é "hua tuo" em vez de "hua tuo"?
R: É chamado "Camel" porque nossa lhama básica de modelo é llama e a alpaca é a alpaca. Inspirado por seus nomes e pelo Phon homofônico de Hua Tuo, nomeamos nossa modelo Hua Tuo.
P: Existe alguma teoria tradicional da medicina chinesa ou dados tradicionais da medicina chinesa usados?
A: Não
P: Os resultados da execução do modelo são diferentes e os efeitos são limitados
R: Devido à consideração da diversidade generativa em modelos generativos, os resultados de várias execuções podem variar. O atual modelo de código aberto é limitado no corpus chinês de llama e alpaca e a maneira de combinar o conhecimento é relativamente difícil, tente os modelos baseados em tipos móveis e baseados em Bloom.
P: O modelo não pode ser executado/o conteúdo de inferência é completamente inaceitável
R: Por favor, determine as dependências nos requisitos instalados, configure o ambiente CUDA e adicione variáveis de ambiente, insira corretamente o modelo baixado e o local de armazenamento LORA; Se o conteúdo de inferência for duplicado ou algum conteúdo errado pertence ao fenômeno ocasional do modelo baseado em lhama, ele tem uma certa relação com a capacidade chinesa do modelo LLAMA, a escala de dados de treinamento e as configurações de hiperparâmetro. Tente um novo modelo baseado no tipo móvel. Se houver problemas sérios, descreva o nome do arquivo em execução, o nome do modelo, o LORA e outras informações de configuração em questão. Obrigado.
P: Qual dos vários modelos lançados é o melhor?
R: De acordo com a nossa experiência, o efeito baseado no modelo de tipo móvel é relativamente melhor.
Este projeto foi concluído por Wang Haochun, Du Yanrui, Liu Chi, Bai Rui, Cinuwa, Chen Yuhan, Qiang Zewen, Chen Jianyu e Li Zijian, o grupo de inteligência da saúde do Centro de Computação Social e Recuperação de Informações do Instituto de Tecnologia Harbin. Os instrutores são o professor associado Zhao Sendong, o professor Qin Bing e o professor Liu Ting.
Este projeto refere -se aos seguintes projetos de código aberto e gostaríamos de expressar nossa gratidão aos projetos relevantes e à equipe de pesquisa e desenvolvimento.
Os recursos relacionados a este projeto são apenas para pesquisa acadêmica e são estritamente proibidos para fins comerciais. Ao usar peças envolvendo código de terceiros, siga estritamente o protocolo de código aberto correspondente. O conteúdo gerado pelo modelo é afetado por fatores como cálculo do modelo, aleatoriedade e perdas de precisão quantitativa, e este projeto não pode garantir sua precisão. A maioria dos conjuntos de dados deste projeto é gerada por modelos e não pode ser usada como base para o diagnóstico médico real, mesmo que eles cumpram certos fatos médicos. Este projeto não assume nenhuma responsabilidade legal por qualquer saída de conteúdo pelo modelo, nem é responsável por quaisquer perdas que possam surgir do uso de recursos relevantes e resultados de saída.
Se você usou os dados ou código deste projeto, ou nosso trabalho é útil para você, declare uma citação
Primeira edição Relatório Técnico: Huatuo: Tuning Llama Model com conhecimento médico chinês
@misc{wang2023huatuo,
title={HuaTuo: Tuning LLaMA Model with Chinese Medical Knowledge},
author={Haochun Wang and Chi Liu and Nuwa Xi and Zewen Qiang and Sendong Zhao and Bing Qin and Ting Liu},
year={2023},
eprint={2304.06975},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
Modelos de idiomas grandes de ajuste de conhecimento com bases de conhecimento médico estruturado para geração de resposta confiável em chinês
@misc{wang2023knowledgetuning,
title={Knowledge-tuning Large Language Models with Structured Medical Knowledge Bases for Reliable Response Generation in Chinese},
author={Haochun Wang and Sendong Zhao and Zewen Qiang and Zijian Li and Nuwa Xi and Yanrui Du and MuZhen Cai and Haoqiang Guo and Yuhan Chen and Haoming Xu and Bing Qin and Ting Liu},
year={2023},
eprint={2309.04175},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
O conjunto de dados de Calla: Aquisição de conhecimento interativo da Probing LLMS da literatura médica chinesa
@misc{du2023calla,
title={The CALLA Dataset: Probing LLMs' Interactive Knowledge Acquisition from Chinese Medical Literature},
author={Yanrui Du and Sendong Zhao and Muzhen Cai and Jianyu Chen and Haochun Wang and Yuhan Chen and Haoqiang Guo and Bing Qin},
year={2023},
eprint={2309.04198},
archivePrefix={arXiv},
primaryClass={cs.CL}
}