Chinesisch | Englisch

Dieses Projekt eröffnet die Quelle eines großen Sprachmodellsatzes, das in chinesischen medizinischen Anweisungen, einschließlich Lama, Alpaca-Chinese, Bloom, beweglichen Typmodellen usw., Feinabstimmung/Anweisungsabstimmung durchgeführt wurde.
Basierend auf dem medizinischen Wissensgraphen und der medizinischen Literatur haben wir mit der ChatGPT-API einen chinesischen Datensatz für medizinische Unterrichtsfeineinstellungen zusammengestellt und dies verwendet, um die Anweisungen verschiedener Basismodelle zu optimieren, wodurch der Frage-und-Antwort-Effekt des Basismodells im medizinischen Bereich verbessert wurde.
[2023/09/24] Veröffentlichung "Big Language Model Fine-Tuning-Technologie für intelligente Gesundheitsversorgung"
[2023/09/12] Veröffentlichen
[2023/09/08] Veröffentlichung "Reliable Chinese Medical Reply Generation Methode für Großsprachmodelle basierend auf Wissensfeinung" auf Arxiv
[2023/08/07] Es wird eine Modellfreisetzung, die auf beweglichen Typ basiert, hinzugefügt, und der Modelleffekt wird erheblich verbessert.
[2023/08/05] Das Kräutermodell wird auf der CCL 2023 Demo Track präsentiert.
[2023/08/03] Open Source Movable -Typen- und Antwortmodell des SCIR Laboratory, Willkommen zu folgen?
[2023/07/19] fügte ein Modell für Feinabstimmungsanweisungen hinzu, die auf Blüte basieren.
[2023/05/12] Das Modell wurde von "Hua Tuo" in "Bencao" umbenannt.
[2023/04/28] fügte eine Modellveröffentlichung hinzu, die auf dem chinesischen Alpaka-großen Modell für Feinabstimmungsanweisungen basiert.
[2023/04/24] fügte ein Modell für Feinabstimmungsunterricht hinzu, die auf Lama- und medizinischer Literatur basieren.
[2023/03/31] fügte eine Modellveröffentlichung für Feinabstimmungsanweisungen hinzu, die auf Lama- und medizinischen Wissensbasis basieren.
Installieren Sie zuerst das Abhängigkeitspaket, Python Environment empfiehlt 3.9+
pip install -r requirements.txt
Für alle Basismodelle übernehmen wir das Basismodell der Lora-Feinabstimmung mit halb-Präzisionsmodellen für das Feinabstimmungstraining für Anweisungen, um die Rechenressourcen und die Modellleistung abzuwägen.
Lora -Gewichte können über Baidu NetDisk oder umarmt werden: Face:
Laden Sie das Lora -Gewicht und das Dekomprimieren herunter. Das dekomprimierte Format lautet wie folgt:
**lora-folder-name**/
- adapter_config.json # LoRA权重配置文件
- adapter_model.bin # LoRA权重文件
Basierend auf denselben Daten haben wir auch die medizinische Version des Chatglm-Modells trainiert: CHATGLM-6B-Med
Wir bieten einige Testfälle in ./data/infer.json , die durch andere Datensätze ersetzt werden können. Bitte beachten Sie, dass das Format konsistent ist.
Führen Sie das Abschlussskript aus
#基于医学知识库
bash ./scripts/infer.sh
#基于医学文献
#单轮
bash ./scripts/infer-literature-single.sh
#多轮
bash ./scripts/infer-literature-multi.sh
Infer.SH -Skriptcode lautet wie folgt. Bitte ersetzen Sie das Basismodell Base_Model, LORA -Gewicht Lora_Weights und Test Dataset Path Instruct_dir im folgenden Code, nachdem Sie das Basismodell -Basis_Model, LORA -Gewicht LORA_WEIGHTS, ersetzt haben, und testen Sie den Dataset -Pfad für den Datensatz.
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'
Die Auswahl von Eingabeaufentwicklungsvorlagen bezieht sich auf das Modell, die Details sind wie folgt:
| Bewegliche Typ & Blüte | Lama & Alpaka |
|---|---|
templates/bloom_deploy.json | Basierend auf medizinischen Wissensbasisvorlagen templates/med_template.jsonBasierend auf medizinischen Literaturvorlagen templates/literature_template.json |
Sie können sich auch auf ./scripts/test.sh beziehen
Das Basismodell hat nur begrenzte Auswirkungen auf die medizinischen Q & A-Szenarien, und die Feinabstimmung der Anweisungen ist eine effiziente Möglichkeit, das Basismodell in die Fähigkeit zu beantworten, menschliche Fragen zu beantworten.
Wir haben eine offene und selbstgebaute chinesische medizinische Wissensbasis übernommen, die sich hauptsächlich auf CMEKG bezieht.
Die medizinische Wissensbasis basiert auf Krankheiten, Arzneimitteln, Untersuchungsindikatoren usw., und die Felder umfassen Komplikationen, Hochrisikofaktoren, histologische Untersuchungen, klinische Symptome, Arzneimittelbehandlung, Hilfsbehandlung usw. Das Beispiel für Wissensbasis lautet wie folgt:
{"中心词": "偏头痛", "相关疾病": ["妊娠合并偏头痛", "恶寒发热"], "相关症状": ["皮肤变硬", "头部及眼后部疼痛并能听到连续不断的隆隆声", "晨起头痛加重"], "所属科室": ["中西医结合科", "内科"], "发病部位": ["头部"]}
Wir haben die GPT3.5 -Schnittstelle verwendet, um Q & A -Daten rund um die medizinische Wissensbasis zu erstellen und eine Vielzahl von schnellen Formularen einzurichten, um die volle Nutzung von Wissen zu nutzen.
Die Schulungsdatenbeispiele für Feinabstimmungsanweisungen sind wie folgt:
"问题:一位年轻男性长期使用可卡因,突然出现胸痛、呕吐、出汗等症状,经检查发现心电图反映心肌急性损伤,请问可能患的是什么疾病?治疗方式是什么?"
回答: 可能患的是心肌梗塞,需要进行维拉帕米、依普利酮、硝酸甘油、ß阻滞剂、吗啡等药物治疗,并进行溶栓治疗、低分子量肝素、钙通道阻滞剂等辅助治疗。此外需要及时停用可卡因等药物,以防止病情加重。"
Wir bieten einen Trainingsdatensatz des Modells mit insgesamt mehr als 8.000 Teilen. Es ist zu beachten, dass die Konstruktion des Trainingssatzes zwar Wissen enthält, es jedoch immer noch Fehler und Unvollkommenheiten gibt. In Zukunft werden wir bessere Strategien anwenden, um den Datensatz zu iterieren und zu aktualisieren.
Die Qualität des Datensatzes für die Feinabstimmung ist weiterhin begrenzt und die Iteration wird in Zukunft durchgeführt. Gleichzeitig werden die medizinischen Wissensbasis und der Datensatzkonstruktionscode weiterhin aussortiert und nach Abschluss der Sortierung veröffentlicht.
Darüber hinaus haben wir 2023 die chinesische medizinische Literatur zu Leberkrebskrankheiten gesammelt und die GPT3.5-Schnittstelle verwendet, um mehrere Runden von Fragen- und Antwortendaten zur [Schlussfolgerung] der medizinischen Literatur zu konstruieren. In · ./data_literature/liver_cancer.json liefern wir 1K -Schulungsbeispiele. Gegenwärtig ist die Qualität der Trainingsproben immer noch begrenzt. In Zukunft werden wir die Daten weiter iterieren und in Form公开数据集an die Öffentlichkeit veröffentlichen. Beispiele für Trainingsproben sind wie folgt:

Derzeit eröffnen wir nur Modellparameter für das Einzelkrankheits -Training von "Hepatitis -Krebs". In Zukunft planen wir, Datensätze für medizinische Dialoge zu veröffentlichen, die Literaturschlussfolgerungen umfassen und Modelle für 16 Krankheiten im Zusammenhang mit "Hepatobiliary und Pankreas" schulen.
Weitere Informationen finden Sie in unserem Artikel: "Untersuchen Sie die Erfassung interaktiver Kenntnisse aus der medizinischen Literatur für große Modelle".
Wenn Sie das große Sprachmodell mit Ihrem eigenen Datensatz feinstimmen möchten, erstellen Sie bitte Ihren eigenen Datensatz im Format in ./data/llama_data.json
Führen Sie das Finetune -Skript aus
bash ./scripts/finetune.sh
Während des Fine-Tuning-Prozesss des Anweisungen basierend auf dem Lama-Modell haben wir auf einer A100-SXM-80 GB-Grafikkarte trainiert. Die gesamten Trainingsrunden waren 10 Runden, was ungefähr 2H17m dauerte. Mit batch_size = 128 nimmt der Videospeicher etwa 40 g ein. Es wird erwartet, dass 3090/4090 Grafikkarten (24 -GB -Grafikspeicher) oder höher besser unterstützt werden und batch_size gemäß der Größe des Grafikspeichers angepasst wird.
Für Hyperparametereinstellungen und experimentelle Verfahren finden Sie den Link von Wandb:
https://wandb.ai/thinksoso/llama_med/runs/a5wgcnzt/overview?Workspace=user-Hinksoso
Hinweis: Im März 2023 getestet
| Testeingabe | Lama -Ausgabe | Alpaka -Ausgabe | Bentsao Materia Medica |
|---|---|---|---|
| Xiao Zhang hat sich in letzter Zeit unwohl gefühlt und hat Symptome wie Herzklopfen und Atemnot. Die körperliche Untersuchung ergab, dass das Herz vergrößert und die Pulsation geschwächt wurde. | Frage: Xiao Zhang hat sich in letzter Zeit unwohl gefühlt und hat Symptome wie Herzklopfen und Atemnot. Die körperliche Untersuchung ergab, dass das Herz vergrößert und die Pulsation geschwächt wurde. | In jüngster Zeit fühlte sich Xiao Zhang unwohl und hat Symptome wie Störungen und Atemnot. Die körperliche Untersuchung zeigt, dass das Herz vergrößert ist und die Muskeln schwach sind. | Xiao Zhang kann an Myokarditis leiden, daher wird empfohlen, so bald wie möglich ins Krankenhaus zu gehen. Zu den Behandlungsoptionen gehören Medikamente und chirurgische Behandlung. |
| Sind die Ursachen von Lepra und Asthma im Kindesalter konsistent? | Die Ursachen von Asthma und Lepra bei Kindern sind konsequent, aber die Ursachen von Asthma und Lepra bei Kindern sind nicht konsistent | Ja, Asthma und Kinder haben ähnliche Ursachen. | Inkonsistent ist die Ursache der Lepra eine Leprainfektion, während die Ursache für Asthma bei Kindern Faktoren wie schlechtes Fütterung und Rauchen ist. |
| Ein Patient entwickelte anhaltende Schwellung und Gelbsucht. Nach der Bildgebungsuntersuchung, Hepatobiliariary Stone -Stone -Erkrankung. Welche Behandlungspläne sollten genommen werden? | Welche Behandlungspläne sollten Patienten mit Hepatobiliärkanalkrankheiten aufnehmen? | Patienten sollten sich einer Kombination aus Operation und Chemotherapie unterziehen. | Bei der Erkrankung von Lebergangkanälen zählen die Behandlungspläne chirurgische Behandlung, medikamentöse Behandlung und Hilfsbehandlung. Der spezifische Behandlungsplan muss gemäß den spezifischen Umständen des Patienten bestimmt werden. |
F: Warum wurde es in "Bencao" umbenannt?
A: Die Namenskonsistenz des SCIR -Labors großsprachigen Modell und der Name des chinesischen medizinischen Modells sind an "materielle Kräutermedizin" angepasst.
F: Warum ist es "hua tuo" anstelle von "hua tuo"?
A: Es heißt "Camel", weil unser Basismodell Lama Lama ist und Alpaka Alpaka ist. Inspiriert von ihren Namen und dem homophonischen Phon von Hua Tuo nannten wir unser Modell Hua Tuo.
F: Gibt es eine traditionelle chinesische Medizin -Theorie oder traditionelle Daten für die chinesische Medizin?
A: Nein
F: Die Ergebnisse des Modelllaufs sind unterschiedlich und die Effekte sind begrenzt
A: Aufgrund der Berücksichtigung der generativen Vielfalt in generativen Modellen können die Ergebnisse mehrerer Läufe variieren. Das aktuelle Open-Source-Modell ist im chinesischen Korpus von Lama und Alpaka begrenzt, und die Art und Weise, wie das Wissen zu kombinieren, ist relativ rau. Versuchen Sie bitte die blühen und beweglichen typenbasierten Modelle.
F: Das Modell kann nicht ausgeführt werden/der Inferenzinhalt ist völlig inakzeptabel
A: Bitte bestimmen Sie die Abhängigkeiten in installierten Anforderungen, konfigurieren Sie die CUDA -Umgebung und fügen Sie Umgebungsvariablen hinzu, geben Sie das heruntergeladene Modell und den LORA -Speicherort korrekt ein. Wenn der Inferenzinhalt dupliziert ist oder ein falscher Inhalt zum gelegentlichen Phänomen des LLAMA-basierten Modells gehört, hat es eine bestimmte Beziehung zur chinesischen Fähigkeit des Lama-Modells, der Trainingsdatenskala und der Hyperparametereinstellungen. Bitte probieren Sie ein neues Modell aus, das auf beweglichen Typ basiert. Wenn es ernsthafte Probleme gibt, beschreiben Sie bitte den Namen des Laufdateins, der Modellname, LORA und andere Konfigurationsinformationen im Problem im Detail. Danke schön.
F: Welche der verschiedenen veröffentlichten Modelle ist die beste?
A: Nach unserer Erfahrung ist der Effekt, der auf dem beweglichen Typmodell basiert, relativ besser.
Dieses Projekt wurde von Wang Haochun, Du Yanrui, Liu Chi, Bai Rui, Cinuwa, Chen Yuhan, Qiang Zewen, Chen Jianyu und Li Zijian, der Gesundheits -Intelligenzgruppe des Zentrums für soziale Computer und Informationsabruf von Harbin Institute of Technology, abgeschlossen. Die Ausbilder sind Associate Professor Zhao Sendong, Professor Qin Bing und Professor Liu Ting.
Dieses Projekt bezieht sich auf die folgenden Open -Source -Projekte, und wir möchten uns bei den relevanten Projekten und Forschungs- und Entwicklungspersonal bedanken.
Die Ressourcen im Zusammenhang mit diesem Projekt dienen nur für die akademische Forschung und sind für kommerzielle Zwecke strengstens untersagt. Wenn Sie Teile mit Code von Drittanbietern verwenden, folgen Sie bitte dem entsprechenden Open-Source-Protokoll ausschließlich. Der vom Modell erzeugte Inhalt wird von Faktoren wie Modellberechnung, Zufälligkeit und quantitativen Genauigkeitsverlusten beeinflusst, und dieses Projekt kann seine Genauigkeit nicht garantieren. Die meisten Datensätze dieses Projekts werden von Modellen generiert und können nicht als Grundlage für die tatsächliche medizinische Diagnose verwendet werden, selbst wenn sie bestimmten medizinischen Fakten entsprechen. Dieses Projekt setzt keine gesetzliche Haftung für eine Inhaltsausgabe durch das Modell über und haftet auch nicht für Verluste, die sich aus der Verwendung relevanter Ressourcen und Ausgabeergebnisse ergeben können.
Wenn Sie die Daten oder den Code dieses Projekts verwendet haben oder unsere Arbeit für Sie hilfreich ist, deklarieren Sie bitte ein Angebot
Technischer Bericht erster Ausgabe: Huatuo: Tuning Lama -Modell mit chinesischem medizinischen Wissen
@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}
}
Wissensabstimmungsmodelle mit strukturierten medizinischen Wissensbasen für zuverlässige Reaktionsgenerierung in Chinesisch
@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}
}
Der CALLA -Datensatz: Die interaktive Wissenserfassung von LLMs von LLMs aus der chinesischen medizinischen Literatur
@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}
}