【大模型】finetune 百川2

使用官网例子finetune百川2,微调脚本如下

模型为baichuan_chat_13B_v1

bash 复制代码
export CUDA_VISIBLE_DEVICES=1
hostfile=""
deepspeed --hostfile=$hostfile baichuan_fineturn/fine-tune/fine-tune.py  \
    --report_to "none" \
    --data_path "baichuan_fineturn/fine-tune/data/risk_ner_baichuan_corpus.json" \
    --model_name_or_path "../../Baichuan_Inc/Baichuan_Inc/Baichuan" \
    --output_dir "baichuan_fineturn/risk_ner_output" \
    --model_max_length 256 \
    --num_train_epochs 4 \
    --per_device_train_batch_size 1 \
    --gradient_accumulation_steps 1 \
    --save_strategy epoch \
    --learning_rate 2e-5 \
    --lr_scheduler_type constant \
    --adam_beta1 0.9 \
    --adam_beta2 0.98 \
    --adam_epsilon 1e-8 \
    --max_grad_norm 1.0 \
    --weight_decay 1e-4 \
    --warmup_ratio 0.0 \
    --logging_steps 1 \
    --gradient_checkpointing True \
    --deepspeed baichuan_fineturn/fine-tune/ds_config.json \
    --bf16 True \
    --tf32 False \
    --use_lora True

微调需要什么数据?

格式如下,放在微调脚本data_path对应的路径下。单轮可自行修改conversations。

bash 复制代码
[
 {
  "id": "5633",
  "conversations": [
   {
    "from": "human",
    "value": "写一篇介绍科技的文章,从科技的诞生开始写起。\n"
   },
   {
    "from": "gpt",
    "value": "\n科技在人类历史中扮演着重要的角色。自古以来,人们就通过发明各种工具来提高生产力和生活质量。从最初的石器到现在的高科技设备,科技的发展让人类的生活变得更加便利和丰富。科技的诞生和发展是一个漫长的过程,需要经历许多阶段和创新点,本文将从科技的诞生开始介绍。\n在人类史上,最早使用简单工具的人类成员是原始人。他们利用石头、木棍和树枝等自然资源制作工具,帮助他们猎杀动物、分割食物和建造庇护所。数千年后,人类发明了青铜器,这是人类历史上的一次重大进步。青铜器为人们提供了强有力的武器和精细的工具,也为人类历史上的贸易活动打开了新的道路。\n随着时代的变迁,人们的需求越来越多样化。发明家们不断努力创新,推出了许多发明,例如纸、印刷和火药。这一时期,被称为"军事技术革命"的时期,为人类社会的进步奠定了基础。\n19世纪初,抽水马车等蒸汽机技术的发明导致了第一次工业革命的出现。这种新的技术重塑了世界的面貌,建立了现代化的工业经济。20世纪后半期,电子技术和计算机技术的出现改变了人们的生活方式。如今,随着科技不断发展,越来越多的新技术不断涌现,例如人工智能、机器人技术和虚拟现实技术等。这些技术正在逐渐改变我们的世界,也让我们对未来充满了期待。\n"
   },
   {
    "from": "human",
    "value": "从你所写的科技文章中提取出更多有关于"军事技术革命"的细节。\n"
   },
   {
    "from": "gpt",
    "value": ""军事技术革命"是18世纪末19世纪初的一场技术变革。随着科技的发展,建立了现代化的工业经济。这种新的技术重塑了世界的面貌,也为人类社会的进步奠定了基础。这场技术变革的主要成就是:\n1.火炮技术的发展:在"军事技术革命"时期,各种不同类型的火炮被发明出来,例如榴弹炮、加农炮以及火箭弹等。这些新型火炮配合着新型弹药一同使用,使得火力的威力得到了大幅度提升。\n2.水力纺织机和机器棉纱机的发明:这些机器的出现使得纺织业得到了革命性发展,通过机器生产的产品比手工制作的更加优越。这种先进的生产技术帮助大大提高了生产效率,促进了商品生产的发展。\n3.蒸汽机的发明:蒸汽机的出现使得燃料转化为能量的效率大大提高,为以后机器化生产奠定了基础。在19世纪40年代,蒸汽机被大规模地应用于铁路、海运和矿井,从而为人类社会的进步带来了极大的贡献。\n这场技术变革的成果不仅体现在军事领域,也渗透到了各个方面的社会生活之中,成为人类历史重要的一部分。"
   }
  ]
 },
 {
  "id": "27531",
  "conversations": [
   {
    "from": "human",
    "value": " 帮我生成一段关于夏天的五句话。\n"
   },
   {
    "from": "gpt",
    "value": " 可以的。夏天,阳光灿烂,绿叶成荫,花香满径。人们穿着轻便的衣服,在海滩上纵情嬉戏,享受着炎炎夏日的无限快乐。\n"
   },
   {
    "from": "human",
    "value": " 继续帮我生成一段描述音乐的文章。\n"
   },
   {
    "from": "gpt",
    "value": " 好的。音乐是人类创造的最美之声,有着独特的魅力。音乐可以让人们忘却忧愁,放松身心,甚至成为我们精神上的朋友。同时,音乐是一种语言,可以通过音符和节奏,传达出情感和思想。\n"
   },
   {
    "from": "human",
    "value": " 请给我列举一些个人成长的建议。\n"
   },
   {
    "from": "gpt",
    "value": " 当然。要不断学习新知识,拓宽自己的视野。要注意练习自己的能力和技能,尝试不同的事情,增长自己的经验。要勇于承认自己的错误,并从中吸取经验教训。最重要的是,要坚持追求自己的梦想,不要轻易放弃,要有信心和毅力。\n"
   },
   {
    "from": "human",
    "value": " 帮我回答一个封闭式问题,中国的首都是哪里?\n"
   },
   {
    "from": "gpt",
    "value": " 中国的首都是北京。"
   }
  ]
 }
]

如何使用微调后的模型?

将基础模型的generation_config.json拷贝到checkpoint_path下,然后执行如下代码即可。

python 复制代码
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from transformers.generation.utils import GenerationConfig
import copy

checkpoint_path = "baichuan_fineturn/risk_ner_output"
tokenizer = AutoTokenizer.from_pretrained(checkpoint_path, revision="v2.0", use_fast=False, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(checkpoint_path, revision="v2.0", device_map="auto", torch_dtype=torch.bfloat16, trust_remote_code=True)#.to(device)
model.generation_config = GenerationConfig.from_pretrained(checkpoint_path, revision="v2.0")
query = "风险控制条款通过对资产设置监控指标来监控风险。一条风控条款中可能有多个监控指标,每个监控指标都明确监控着对应的一类或多类资产。\n\n现有风险控制条款如下,请识别抽取出上述风险控制条款中监控指标,阈值,阈值方向,资产四种字段,并分行输出。注意,要求是原文字段。\n\n风险控制条款: 投资管理人可根据专业判断形成久期策略,但组合久期原则上不得高于300年,计算口径仅包括波动类固定收益资产,稳定类固定收益资产不计算久期"
messages = [
    {"role": "user", "content": query}
]
g_config=copy.deepcopy(model.generation_config)
g_config.do_sample=False
response = model.chat(tokenizer, messages, generation_config=g_config)
print(response)
  • 如果有baichuan_tokenizer相关的报错,修改第三方库/opt/app-root/lib64/python3.9/site-packages/transformers/models/auto/tokenization_auto.py,让它的from_pretrained里的trust_remote_code = True
  • messages里一定得设成"role": "user"而不是"human"
相关推荐
LLSU131 分钟前
聚星文社AI软件小说推文软件
人工智能
JackieZhengChina4 分钟前
吴泳铭:AI最大的想象力不在手机屏幕,而是改变物理世界
人工智能·智能手机
ShuQiHere5 分钟前
【ShuQiHere】 探索数据挖掘的世界:从概念到应用
人工智能·数据挖掘
嵌入式杂谈5 分钟前
OpenCV计算机视觉:探索图片处理的多种操作
人工智能·opencv·计算机视觉
时光追逐者7 分钟前
分享6个.NET开源的AI和LLM相关项目框架
人工智能·microsoft·ai·c#·.net·.netcore
东隆科技7 分钟前
PicoQuant公司:探索铜铟镓硒(CIGS)太阳能电池技术,引领绿色能源革新
人工智能·能源
DisonTangor19 分钟前
上海AI气象大模型提前6天预测“贝碧嘉”台风登陆浦东 今年已多次精准预测
人工智能
人工智能培训咨询叶梓36 分钟前
生成式人工智能在无人机群中的应用、挑战和机遇
人工智能·语言模型·自然语言处理·aigc·无人机·多模态·生成式人工智能
B站计算机毕业设计超人43 分钟前
计算机毕业设计Python+Flask微博情感分析 微博舆情预测 微博爬虫 微博大数据 舆情分析系统 大数据毕业设计 NLP文本分类 机器学习 深度学习 AI
爬虫·python·深度学习·算法·机器学习·自然语言处理·数据可视化
羊小猪~~1 小时前
深度学习基础案例5--VGG16人脸识别(体验学习的痛苦与乐趣)
人工智能·python·深度学习·学习·算法·机器学习·cnn