Xtuner 大模型单卡低成本微调之本地实战--医学问答

xtuner convert pth_to_hf internlm_chat_7b_qlora_medqa2019_e3.py ./work_dirs/internlm_chat_7b_qlora_medqa2019_e3/epoch_3.pth/mp_rank_00_model_states.pt ./任何使用xtuner可以查看这里

安装和使用

github 文末有

自定义微调

场景需求

基于 InternLM-chat-7B 模型,用 MedQA 数据集进行微调,将其往医学问答领域对齐。

真实数据预览

问题 答案
What are ketorolac eye drops?(什么是酮咯酸滴眼液?) Ophthalmic ketorolac is used to treat itchy eyes caused by allergies. It also is used to treat swelling and redness (inflammation) that can occur after cataract surgery. Ketorolac is in a class of medications called nonsteroidal anti-inflammatory drugs (NSAIDs). It works by stopping the release of substances that cause allergy symptoms and inflammation.
What medicines raise blood sugar? (什么药物会升高血糖?) Some medicines for conditions other than diabetes can raise your blood sugar level. This is a concern when you have diabetes. Make sure every doctor you see knows about all of the medicines, vitamins, or herbal supplements you take. This means anything you take with or without a prescription. Examples include: Barbiturates. Thiazide diuretics. Corticosteroids. Birth control pills (oral contraceptives) and progesterone. Catecholamines. Decongestants that contain beta-adrenergic agents, such as pseudoephedrine. The B vitamin niacin. The risk of high blood sugar from niacin lowers after you have taken it for a few months. The antipsychotic medicine olanzapine (Zyprexa).

数据准备

在这里插入图片描述

Medication QA 数据集为例

问题 药物类型 问题类型 回答 主题 URL
aaa bbb ccc ddd eee fff

将数据转为 XTuner 的数据格式
目标格式:(.jsonL)

[{
   
    "conversation":[
        {
   
            "system": "xxx",
            "input": "xxx",
            "output": "xxx"
        }
    ]
},
  • 31
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以按照如下步骤来微调 GPT-Neo 125M: 1.准备数据集。将文本数据整理成每行一句话的形式,并存储成文本文件(如txt格式)。 2.下载 GPT-Neo 125M 模型的代码和预训练模型,然后对其进行微调。可以使用 Hugging Face Transformers 中的库对模型进行微调,代码示例为: ```python from transformers import pipeline, set_seed, GPTNeoForCausalLM, GPT2TokenizerFast, LineByLineTextDataset, DataCollatorForLanguageModeling, Trainer, TrainingArguments # 加载预训练的 GPT-Neo 模型和tokenizer model = GPTNeoForCausalLM.from_pretrained('EleutherAI/gpt-neo-125M') tokenizer = GPT2TokenizerFast.from_pretrained('EleutherAI/gpt-neo-125M') # 加载用于微调的文本数据集 dataset = LineByLineTextDataset(tokenizer=tokenizer, file_path="path/to/textfile.txt", block_size=128) # 创建数据收集器 data_collator = DataCollatorForLanguageModeling(tokenizer=tokenizer, mlm=False) # 定义微调的具体参数 training_args = TrainingArguments( output_dir='./results', # 训练结果输出目录 overwrite_output_dir=True, # 是否覆盖输出目录 num_train_epochs=2, # 微调的epochs数目 per_device_train_batch_size=32, # 每个设备的训练批次大小,建议使用大于等于批次大小的值 save_steps=10000, # 保存模型的步骤数 learning_rate=1e-4, warmup_steps=1000, save_total_limit=2, prediction_loss_only=True ) # 训练微调模型 trainer = Trainer( model=model, args=training_args, data_collator=data_collator, train_dataset=dataset, ) trainer.train() ``` 在这个示例中,我们使用了 GPTNeoForCausalLM 来加载预训练模型,然后使用 GPT2TokenizerFast 加载了预训练模型的tokenizer。接下来,我们使用 LineByLineTextDataset 加载了微调的文本数据集,然后创建了一个数据收集器 DataCollatorForLanguageModeling,这个收集器将数据集包装成适合模型训练的批处理的形式。 然后,我们定义了微调的参数,包括训练结果的输出目录、训练的epochs数目、每个设备的训练批次大小、保存模型的步数、学习率等参数,然后使用Trainer开始训练微调模型。 3.保存微调后的模型。在完成微调后,可以使用以下代码将训练得到的微调模型保存下来: ```python trainer.save_model("path/to/model") ``` 在这里,我们使用 trainer.save_model() 函数将微调后的模型保存在指定的路径下。 这就是用自己的数据微调 GPT-Neo 125M 的完整过程。当然,这只是基本示例,你可以根据你的需求进行微调模型的调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值