Este projeto de código aberto ChatGLM-6B, que tem sido ajustado para fino/ajuste de instrução (ajuste de instrução). Construímos um conjunto de dados de instruções médicas chinesas por meio do gráfico de conhecimento médico e da API GPT3.5, e instruções de ajuste fino para ChatglM-6b nessa base, melhorando o efeito de perguntas e respostas do ChatGLM no campo médico.
Com base nos mesmos dados, também treinamos a versão médica do modelo de llama: Huatuo
ATUALIZAÇÃO: Como o ChatGLM é atualizado muito rapidamente, é recomendável usar a solução oficial de tunção fina do ChatGLM: https://github.com/thudm/chatglm-6b/blob/main/ptuning/readme.md
Primeiro instale o pacote de dependência, o Python Environment recomenda 3.9+
pip install -r requirements.txt
Os parâmetros do modelo treinado podem ser baixados da seguinte forma:
| Nome do modelo | tamanho | Endereço de download do modelo |
|---|---|---|
| Chatglm-6b-Med | Aproximadamente 13,4 GB | [Baidu Netdisk] [Googledrive] |
Após a instalação do ambiente, o teste interativo pode ser realizado:
python infer.py
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:
"问题:一位年轻男性长期使用可卡因,突然出现胸痛、呕吐、出汗等症状,经检查发现心电图反映心肌急性损伤,请问可能患的是什么疾病?治疗方式是什么?"
回答: 可能患的是心肌梗塞,需要进行维拉帕米、依普利酮、硝酸甘油、ß阻滞剂、吗啡等药物治疗,并进行溶栓治疗、低分子量肝素、钙通道阻滞剂等辅助治疗。此外需要及时停用可卡因等药物,以防止病情加重。"
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.
Consulte https://github.com/thudm/chatglm-6b e coloque o modelo baixado no diretório model .
sh scripts/sft_medchat.sh
Ajuste o tamanho do lote e outros hiperparâmetros de acordo com a situação real, e o padrão são os parâmetros que usamos.
Se você deseja continuar com o Tuneing/Instruções de Instruções de Instruções com seu próprio conjunto de dados, poderá criar um formato de arquivo semelhante ao conjunto de treinamento no diretório data . Ou consulte o repositório de ajuste do ChatGLM-Instruct.
Treinamos uma placa gráfica A100-SXM-80GB. De acordo com a experiência, é recomendável escolher 32g ou superior para treinamento em memória de vídeo.
| Entrada de teste | Saída ChatGlm-6b | Saída de Med-Med ChatGlm-6b |
|---|---|---|
| Os níveis de glutamiltranspeptidase aumentarão devido ao uso de drogas ou ao consumo de álcool? | O uso de drogas e o consumo de álcool podem ter efeitos negativos na saúde do seu corpo, incluindo os efeitos no fígado e no coração. O consumo de álcool pode causar danos no fígado e doenças cardíacas porque o álcool pode destruir a função do fígado e do coração. Beber a longo prazo também pode levar a problemas de saúde, como fígado gordo, cirrose, doenças cardíacas, etc. O uso de drogas pode causar danos graves ao fígado e ao coração, resultando em fibrose hepática, cirrose, doenças cardiovasculares, etc. O uso de drogas também pode levar a transtornos mentais, retirada social, violência e crime. Portanto, seja o uso de álcool ou drogas, terá um impacto negativo na saúde e no uso excessivo deve ser evitado. | Existem muitas razões para a glutamiltranspeptidase elevada, incluindo infecção, úlcera péptica, infecção, efeitos colaterais do medicamento, etc. Comportamentos prejudiciais como o uso de drogas ou o consumo de álcool podem levar ao glutamiltranspeptidase elevada. |
| A Xiao Li desenvolveu recentemente sintomas de taquicardia, acompanhados por dor no peito leve. O exame físico constatou que o intervalo de relações públicas foi prolongado, acompanhado pela onda T baixa e anormalidades do segmento ST | Sinto muito, não entendo sua pergunta. Forneça mais contexto ou contexto para que eu possa responder melhor à sua pergunta. Obrigado! | Xiao Li tem sintomas de taquicardia e é acompanhado por dor no peito. É necessário considerar se existem doenças cardiovasculares, como cardiomiopatia e aterosclerose coronariana. Recomenda -se passar por eletrocardiograma, exame de sangue, exame de ultrassom cardíaco, etc. |
| ...... | ...... | ...... |
P: Erro ValorError: 130001 não está na lista / valueError: 150001 não está na lista
R: Devido à atualização rápida das dependências relacionadas, diferentes versões levarão a alguns bugs
(1) Se o erro for 150001 não estiver na lista, atualize o repositório para a versão mais recente
(2) If the error is 130001 is not in list, please fall back the repository to the version with commit cb9d827, the link is https://github.com/SCIR-HI/Med-ChatGLM/tree/cb9d82738021ec6f82b307d6031e8595a49dcb00
P: O modelo tem efeito limitado
R: Como a própria estratégia de treinamento da ChatGLM não é de código aberto, o método de treinamento de ajuste fino de instrução fornecido neste repositório pode ter um impacto negativo nos recursos básicos do ChatGLM. Devido a direitos autorais e outras considerações, nossas iterações de modelo no futuro se concentrarão nos modelos de código aberto.
Este projeto foi concluído por Wang Haochun e Liu Chi, o Grupo de Inteligência em 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ê usar os dados ou código deste projeto, declare a referência
@misc{ChatGLM-Med,
author={Haochun Wang, Chi Liu, Sendong Zhao, Bing Qin, Ting Liu},
title = {ChatGLM-Med: 基于中文医学知识的ChatGLM模型微调},
year = {2023},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {url{https://github.com/SCIR-HI/Med-ChatGLM}},
}