ChatGPT给各行各业都带来了极具想象力的变革空间,在金融量化领域也产生了许多新颖的思路。本文介绍在国产基座大模型的基础上进行下游的微调实践,利用ChatGPT自动分析新闻事件中涉及到的事件类型、行业分类、情感极性以及关联的个股,为分析市场涨跌归因以及新闻舆情因子奠定基础。
一、国产基座大模型概况
随着年初Meta的学术研究LLama模型在不经意间被泄露后,国内大模型技术便呈现出爆发增长的势头,并且中文适配上相对于原版更强大,下面简要介绍评测榜单以及微调环境准备。
1.1 中文能力评测榜单
根据opencompass的评测,截止目前(20230727),中文ChatGPT模型中能力相对比较强的有商汤的书生系列模型(InternLM)、百川的Baichuan模型以及清华的ChatGLM系列。
大模型主要的瓶颈在于显存大小,对于市面上常见的7B以及13B模型,使用支持FP16、FP8、Int8、Int4精度的显卡,基本可以在24GB的显卡中完成Lora微调以及部署,如果使用RTX 6000 Ada 或 L40 等新一代的大显存GPU,则可以使用更大的Batch Size更快的完成微调任务。
1.2 微调步骤
目前Github上有相当多的微调大模型方案,这里我们使用库提供的解决方案快速的完成微调任务。
具体使用方法可参考仓库提供的说明文档:
二、微调金融模型全流程
新闻数据的一个特点就是非结构化,而在量化中我们处理的都是表格型数据,借助ChatGPT强大的语义理解能力,我们可以抽取或分析文本中蕴含的信息,完成原始数据的标准化。
2.1 财经新闻数据的标注
标注主要分为5个部分:
标注数据消耗相当大的精力,花费了半天时间才标记出360条记录。
2.2 数据集配置
LLaMA-Efficient-Tuning 并不能直接处理上述表格记录,我们首先将其整理出一个json文件:
[
{
"instruction": "请分析上述新闻中涉及到的金融事件,对应市场,关联行业,情感极性以及关联个股,按逗号分隔输出",
"input": "沪深股通|绿通科技4月27日获外资买入200.0股。绿通科技获外资买入200.0股。绿通科技最近5个交易日下跌6.46%,陆股通累计净买入600.0股,占流通盘0.00%,区间平均买入价117.59元。",
"output": "事件:个股行情,市场:中国市场,行业:汽车,情感:轻微正面,关联:绿通科技"
},
{
"instruction": "请分析上述新闻中涉及到的金融事件,对应市场,关联行业,情感极性以及关联个股,按逗号分隔输出",
"input": "上海证券:给予中来股份买入评级。05上海证券有限责任公司开文明,丁亚,刘清馨对中来股份进行研究并发布了研究报告《走出困境,破茧再起航》,本报告对中来股份给出买入评级,当前股价为15.14元。",
"output": "事件:个股研报,市场:中国市场,行业:电子,情感:轻微正面,关联:中来股份"
}
]
将该json文件放到data目录下,同时运行shell命令计算sha1值:sha1sum fin_data_test.json。
然后修改dataset_info.json,增加1条该文件的记录值:
"fin_data": {
"file_name": "fin_data.json",
"file_sha1": "a8a7fe65e0c97424a707df0ba64bcb5198450e88"
},
至此,训练用的数据便准备完成。
2.3 微调模型
训练时需要指定部分参数:
CUDA_VISIBLE_DEVICES=0 python3 src/train_bash.py
--stage sft
--model_name_or_path internlm-chat-7b
--do_train
--dataset fin_data
--finetuning_type lora
--output_dir sft_checkpoint
--overwrite_cache
--per_device_train_batch_size 2
--gradient_accumulation_steps 2
--lr_scheduler_type cosine
--logging_steps 10
--save_steps 500
--learning_rate 5e-5
--num_train_epochs 5.0
--plot_loss
--fp16
--prompt_template intern
训练过程中,能够看到损失函数显著的下降:
训练完成后,便得到了Lora增量模型,后续预测时借助Peft机制将其与原始基座模型合并。
2.4 预测模型
同理,准备一份预测数据fin_data_test,运行如下脚本后便能评估模型的预测结果:
CUDA_VISIBLE_DEVICES=0 python3 src/train_bash.py
--stage sft
--model_name_or_path internlm-chat-7b
--do_predict
--dataset fin_data_test
--finetuning_type lora
--checkpoint_dir sft_checkpoint
--output_dir sft_output
--per_device_eval_batch_size 4
--max_samples 100
--predict_with_generate
--prompt_template intern
2.5 结果评估
预测数据为:
[
{
"instruction": "请分析上述新闻中涉及到的金融事件,对应市场,关联行业,情感极性以及关联个股,按逗号分隔输出",
"input": "潘托:美联储较为鹰派的“转向” 股市将何去何从。一旦宣布暂停或下调利率或恢复量化宽松,股票价格会出现最初的反射性飙升,资产价格无论如何都会很快崩溃,美联储将面临更加艰难的通胀局面。",
"output": "事件:经济数据解读,市场:美国市场,行业:利率,情感:轻微负面,关联:无"
},
{
"instruction": "请分析上述新闻中涉及到的金融事件,对应市场,关联行业,情感极性以及关联个股,按逗号分隔输出",
"input": "新一轮新能源汽车下乡将启,重点解决充电桩“卡脖子”问题。国务院常务会议审议通过关于加快发展先进制造业集群的意见,提出要部署加快推进建设充电基础设施,更好支持新能源汽车下乡和乡村振兴。",
"output": "事件:政策法规发布,市场:中国市场,行业:汽车,情感:一般正面,关联:无"
},
{
"instruction": "请分析上述新闻中涉及到的金融事件,对应市场,关联行业,情感极性以及关联个股,按逗号分隔输出",
"input": "万达电影(002739):行业复苏可期 龙头地位稳固。22 年11 月11 日以来,国务院联防联控机制综合组先后公布“二十条”和“新十条”,防疫政策持续优化,电影行业迎来复苏曙光,据灯塔专业版,12 月11 日全国影院营业率已回至74.2%,观影需求有望持续释放。",
"output": "事件:个股研报,市场:中国市场,行业:传媒,情感:轻微正面,关联:万达电影"
},
{
"instruction": "请分析上述新闻中涉及到的金融事件,对应市场,关联行业,情感极性以及关联个股,按逗号分隔输出",
"input": "国务院联防联控机制:进一步加强新冠病毒感染中西医协同救治工作。各综合医院、专科医院要加强新冠病毒感染相关中成药和中药饮片的采购和储备,特别是针对重症、危重症患者医疗救治的中药品种,要重点储备、保证供应。",
"output": "事件:政策法规发布,市场:中国市场,行业:医药生物,情感:一般正面,关联:无"
},
{
"instruction": "请分析上述新闻中涉及到的金融事件,对应市场,关联行业,情感极性以及关联个股,按逗号分隔输出",
"input": "为何说荣盛发展最坏的时候已经过去了?。2021年32家代表房企的销售目标完成率总体明显低于去年,均值为90.1%。荣盛一直被贴着环京的标签,这意味着荣盛发展与环京是一荣俱荣的状态。央行同步下调了中期借贷便利操作和公开市场操作逆回购利率各10个BP。",
"output": "事件:个股研报,市场:中国市场,行业:房地产,情感:轻微正面,关联:荣盛发展"
}
]
对于上面5条记录,微调模型给出的抽取结果为:
{"label": "事件:经济数据解读,市场:美国市场,行业:利率,情感:轻微负面,关联:无", "predict": "事件:经济数据解读,市场:美国市场,行业:利率,情感:轻微负面,关联:无"}
{"label": "事件:政策法规发布,市场:中国市场,行业:汽车,情感:一般正面,关联:无", "predict": "事件:政策法规发布,市场:中国市场,行业:汽车,情感:轻微正面,关联:无"}
{"label": "事件:个股研报,市场:中国市场,行业:传媒,情感:轻微正面,关联:万达电影", "predict": "事件:个股研报,市场:中国市场,行业:传媒,情感:轻微正面,关联:万达电影"}
{"label": "事件:政策法规发布,市场:中国市场,行业:医药生物,情感:一般正面,关联:无", "predict": "事件:政策法规发布,市场:中国市场,行业:医药生物,情感:一般负面,关联:无"}
{"label": "事件:个股研报,市场:中国市场,行业:房地产,情感:轻微正面,关联:荣盛发展", "predict": "事件:个股研报,市场:中国市场,行业:房地产,情感:轻微正面,关联:荣盛发展"}
可以看出除了第四条新闻情感预测错误外,其他标签基本没有问题,格式也非常规整,ChatGPT真的很强大!
结论
尽管只使用了360条数据进行微调,但在测试集中模型的准确性已经相当可观,相比于Bert模型有质的提升,用好ChatGPT,量化投资大有可为!
欢迎关注我的公众号“量化实战”,原创技术文章第一时间推送。
暂无评论内容