为什么我们要微调语言模型?当我们需要教授LLM新技能或增强其在特定领域的理解时,微调至关重要。
在这个项目中,我们旨在微调小型和大型指导/聊天语言模型,包括用于小语言模型的Smollm(SLM)和大型语言模型(LLM)的Mistral。
所使用的主要示例数据集是medalpaca/medical_meadow_medical_flashcards ,该数据集源自ANKI Medical Carreculum抽认卡。这些抽认卡由医学生创建和定期更新,涵盖了许多医学主题,例如解剖学,生理学,病理学和药理学,旨在通过简洁的摘要和助记符来支持有效的学习和保留。
尽管此项目使用Medical_meadow_medical_flashcards数据集,但它适用于其他数据集,以进行问题/答案和指示/响应任务。通过修改配置文件可以轻松完成不同数据集的集成。
该项目还支持量化,这使得在更适度的硬件设置上微调大型模型(如Mistral和Llama)是可行的。
在HuggingFace上可以使用微调的Smollm型号吗?
尽管基本模型的响应是一般的,并遵循降级格式,但微调模型似乎有效地纳入了培训的专业技能,尤其是在复制预期响应样式时。但是,作为没有医学背景的人,我无法评估这两种模型提供的响应的准确性或质量。下面是一张表,比较了一组医学问题的原始模型,基本模型和微调模型的响应。
| 问题 | 原始响应 | 基本模型响应 | 微调模型响应 |
|---|---|---|---|
| 哪些抗疟疾药物具有针对催眠疟原虫的活性? | Primaquine是具有抗催眠剂疟原虫活性的抗疟疾药物。 | 抗疟药是一类药物,可有效抵抗疟原虫,这些药物负责导致疟疾。用于治疗疟疾的最常见抗疟疾药物包括:1。氨苄青霉素(两性霉素B) :一种有效抗疟原虫物质的广谱抗生素。 2. fosamivir(fosamivir) :一种有效抵抗疟原虫的宽光谱抗病毒。 3。流感(流感) :一种有效抵抗疟原虫物种的广谱抗病毒。 4。**氨苄青霉素 | 红霉素是具有抗催眠剂疟原虫活性的抗疟疾药物。 |
| 用来描述鲍曼每单位空间中过滤的物质量的术语是什么? | 鲍曼每单位时间过滤的物质量称为过滤负载。 | “鲍曼的空间”一词是一种口语化,用于描述在鲍曼空间中过滤的物质的数量,这是一个假设的空间,该空间将航天器发射到轨道上。该概念基于这样的想法:航天器可以发射到轨道,然后返回地球,航天器滤除了空间中可能存在的所有剩余颗粒或碎屑。 “鲍曼的空间”一词通常用于描述鲍曼(Bowman)空间中过滤的物质量,这是一个假设的空间,该空间将航天器发射到轨道上然后返回地球。这 | 用来描述鲍曼每单位空间中过滤的物质量的术语称为过滤效率。 |
| 用来描述静脉中包含的血容量的术语是什么? | 静脉中包含的血容量称为无重理体积。 | “血量”一词是指通过人体循环系统循环的血液量。这是一个复杂的过程,涉及血液和组织之间氧,营养和废物产物的交换。血量通常以升(L)或毫升(ML)为单位,通常通过循环系统分布在整个体内。有几个关键成分有助于血液体积:1。红细胞:这些细胞将氧气从肺部携带到组织。它们的直径约为1.5毫米,由血红蛋白组成 | 用来描述静脉中包含的血容量的术语称为静脉血液。 |
| 确定过渡细胞癌预后的最重要因素是什么? | 确定过渡细胞癌预后的最重要因素是侵袭程度。 | 确定过渡细胞癌(TCC)的预后至关重要,因为它可以显着影响患者的生活质量,治疗选择和整体生存。确定TCC预后的最重要因素是存在明确的诊断,定义明确的肿瘤和有利的预后。以下是一些可能影响TCC预后的关键因素:1。清晰的诊断:TCC被诊断为明显的肿瘤,这意味着它具有良性或良性样生长。 TCC也被诊断出有利的预后,因为它不太可能传播到 | 确定过渡细胞癌预后的最重要因素是高级的存在。 |
响应的准确性:微调模型复制了预期的格式和样式,但表明了一些不准确性。例如,红霉素错误地鉴定为抗催眠疟原虫的抗疟疾药物。正确的答案应为primaquine。
基本模型问题:基本模型的响应过于普遍,有时是偏离主题,尤其是在医疗环境中,如鲍曼(Bowman)的空间和血液量的不正确解释所示。
注意:仅在10个训练时期就获得了此结果。对更多时期的训练可能会导致更好的结果。 (ツ) /。
为了顺利运行该项目,需要Python 3.10。该项目已在Python 3.10.13上进行了测试和验证。请按照以下步骤设置您的环境:
创建虚拟环境:
python -m venv env
激活虚拟环境:
source env/bin/activate
安装所需的依赖项:
pip install -r requirements.txt
设置环境变量:复制.env.example文件并将其重命名为.env:
mv .env.example .env
您可以使用Jupyter笔记本探索培训步骤:
cd notebooks
jupyter-lab
另外,您可以直接启动微调过程。用于微调的参数在configs文件夹中的配置文件中指定。要使用默认的SmallM模型开始微调过程,请运行:
python train.py
如果要训练其他模型,则可以通过将配置文件名作为参数传递:
python train.py --model Mistral
用所需模型的配置文件的名称替换Mistral。要训练新模型,只需使用所需的设置创建一个新的配置文件,然后使用适当的模型名称运行train.py。