推出终极SEC LLM:使用Llama-3-70B彻底改变金融洞察力
作者:Shamane Siriwardhana, Luke Meyers, Thomas Gauthier, Lucas Atkins, Jacob Solawetz, Tyler Odenthal, Anneketh Vij, Charles Goddard, Mary MacCarthy, 和 Mark McQuade。
Arcee AI
领域自适应和SEC数据聊天代理的关键作用
在快速发展的语言模型领域中,在特定领域训练模型变得越来越重要。特定领域的大型语言模型(LLM)经过微调,能够理解和生成特定领域内的文本,显著提升其性能和相关性[3,4]。这种专业训练过程使这些模型能够利用大量的特定领域数据来提高其准确性和实用性。
我们工作的基础模型,Meta-Llama-3-70B-Instruct,凭借其强大的功能和适应性,对LLM社区产生了重大影响。它为我们的领域特定增强奠定了坚实的基础,尤其是在整合SEC数据以创建专业聊天代理方面。
SEC(美国证券交易委员会)数据涵盖了上市公司提交的广泛金融和监管信息。这些数据包括季度和年度报告、与内幕交易相关的备案文件、委托书以及其他关键文件。SEC数据对于投资者、分析师和监管机构至关重要,因为它提供了公司财务健康状况、运营业绩和公司治理的透明详细洞察。
以下是SEC聊天代理的一些用例
- 投资分析:投资者利用SEC数据分析公司的财务报表、收益报告和市场披露信息,以做出明智的决策。
- 风险管理:金融机构和分析师通过检查其SEC备案文件来评估公司的风险状况,从而制定更好的风险缓解策略。
- 监管合规:监管机构和合规人员使用SEC数据确保公司遵守金融和运营法规,识别潜在违规行为和关注领域。
- 公司治理:研究人员和政策制定者研究SEC备案文件,以了解公司治理实践,并促进公司部门的透明度和问责制。
- 市场研究:市场分析师和战略家使用SEC数据来跟踪行业趋势、竞争定位和市场机遇。
通过利用SEC数据,我们增强了Meta-Llama-3-70B-Instruct模型,创建了一个强大的特定领域聊天模型,可用于金融分析、合规监控和金融领域的战略决策。这种转变强调了在特定领域训练模型的重要性,展示了专业数据集成如何显著提升模型的能力。
结果是:终极SEC数据聊天代理,为用户提供无与伦比的洞察力和分析能力。
这标志着Arcee AI一系列模型发布的开始,重点是开发最佳的领域特定聊天模型,并展示训练与模型合并相结合的力量。
在此次发布中,我们分享了两个模型。第一个模型经历了持续预训练(CPT)和合并阶段,上述所有讨论的洞察和评估都针对CPT和合并模型提供。CPT模型使用20B令牌进行训练(最终模型仍在训练中),我们计划很快发布更多检查点。
为了社区的下游使用,我们还共享了一个监督微调(SFT)版本。这个SFT模型在自定义领域特定数据集和通用开源数据集的混合上进行了训练,利用Spectrum在8xH100节点上进行高效训练。该模型可以在此处找到。
数据获取和预处理
我们从SEC文件中读取、解析、提取、清理和存储纯文本数据的过程涉及几个关键步骤。我们使用boto3等库进行AWS S3交互,trafilatura进行文本提取,以及Hugging Face的DataTrove [6]库的各种组件。
首先,我们从AWS S3读取数据,特别是针对.txt文件。HTML文档使用trafilatura处理以提取文本并将其转换为Markdown格式。这确保了更简单的处理和分析。然后,我们根据可接受的格式(如Markdown和纯文本)过滤文档,同时避免用于模型训练的非文本内容,如PDF、Excel文件和ZIP存档。
Datatrove处理管道用于简化数据处理,通过并发执行读取、清理、过滤和写入等阶段,实现对大量SEC文件的高效处理。最后,清理后的文件被保存回S3存储桶,按指定前缀组织,以便于访问和进一步分析。这种全面的预处理管道确保了模型训练的高质量输入。
使用Megatron-Core进行持续预训练 (CPT)
训练一个700亿参数的模型在效率和可扩展性方面带来了巨大的挑战。尽管存在许多训练框架,但它们在处理如此庞大的模型和令牌数量时往往力不从心。为了解决这个问题,我们选择了Megatron [1],利用其先进的并行化能力,包括模型并行、张量并行和序列并行。
我们的训练是在最先进的AWS SageMaker HyperPod集群上进行的,该集群由4个节点组成,每个节点配备32个H100 GPU。这种强大的配置对于高效、可扩展地训练我们庞大的数据集至关重要。通常,SLURM集群的设置特别具有挑战性,但对于我们的需求至关重要。然而,SageMaker HyperPod易于配置且已通过Megatron测试,使其成为我们训练环境的理想选择。SageMaker HyperPod确保了大型集群的流线型分布式训练,优化了计算、内存和网络资源的利用。它通过修复故障实例提供了一个弹性训练环境。其FSx驱动器确保了更快的保存,InfiniBand网络促进了更快的通信。此外,它还可以与Grafana等仪表板集成,以实现更好的监控。我们将所有这些都集成到Arcee训练平台中,以创建无缝的训练体验。
在CPT层中,我们按照先前的研究[5],将700亿个SEC数据令牌与10亿个Together AI的RedPijama数据样本混合。这种方法使我们能够保持高水平的泛化能力,同时受益于领域特定数据。使用Megatron在此分布式训练设置中进行训练的总估计时间为31天,这突显了所涉及的巨大计算工作量。
在我们的训练过程中,我们最初处理了700亿个令牌。然而,在此次发布中,我们分享了使用200亿个令牌训练的CPT模型,因为700亿个模型仍在训练中。我们计划将来发布更多检查点。
使用MergeKit进行CPT后模型合并
为了缓解持续预训练期间可能发生的灾难性遗忘问题,我们采用了Arcee Mergekit工具包中的TIES合并方法。借鉴先前的研究,我们将CPT模型合并回指令版本。合并的主要目标是保留基础模型的指令能力,同时整合CPT期间获得的专业知识。
TIES合并在此处自然契合,使我们能够在指令模型的基础理解和CPT模型增强的领域特定专业知识之间保持平衡,从而产生一个更强大、更通用的语言模型。我们已经在Hugging Face 模型卡上分享了合并配置的详细信息。
评估
为了确保我们模型的鲁棒性,我们对领域特定和通用基准进行了全面评估。领域特定评估对于评估模型在其目标领域内的性能至关重要。然而,通用评估同样重要,以确保模型原始能力没有灾难性遗忘。
在每次评估中,我们比较了以下模型:
- Llama-70B-Instruct (meta-llama/Meta-Llama-3-70B-Instruct):Meta发布的原始指令模型。
- Llama-70B-CPT:持续预训练后的Llama-70B-Instruct模型,在看到20B令牌后保存的检查点。
- Llama-70B-CPT-Merge:使用TIES方法将Llama-70B-CPT模型与原始Llama-70B-Instruct模型合并后的模型。
领域特定评估指标
领域特定困惑度对于评估模型在其目标领域内的性能至关重要,确保对领域数据的有效适应。跟踪困惑度变化有助于评估持续预训练和领域特定改进的影响。
图1展示了不同模型变体的领域特定困惑度测量值,突出了持续预训练和模型合并对SEC数据性能的影响。
图1:模型变体的领域特定困惑度(越低越好)
图1洞察
- CPT降低了与SEC数据相关的困惑度,表明模型对该特定领域的理解和适应能力有所提高。
- 将CPT模型与Llama3-Instruct版本合并略微增加了困惑度,这可能是由于重新引入了一些丢失的聊天功能。
- 尽管合并后困惑度略有增加,但最终模型仍保持低于原始模型的困惑度,这表明在保留聊天功能的同时,有效地进行了领域适应。这表明模型合并不会损害持续预训练过程中获得的注入领域知识。如图2、3和4所示,模型合并可以增强指令遵循能力。这种灵活性对于我们的目标而言非常宝贵,因为它允许我们结合领域特定专业知识和改进的指令遵循能力,而不会牺牲性能。
如图2所示,对于领域特定评估,我们测试模型在提取式数值推理任务上的表现,即TAT-QA和ConvFinQA的子集,这些任务与SEC数据并非完全相关,但仍与评估领域特定表现相关。
图2洞察
- 对于ConvFinQA,CPT后性能明显改善,与指令模型合并后进一步改善。
- 对于**TAT-QA**,仅在合并后才观察到显著改进,这可能是由于其在混合表格和文本内容方面的专业性,而这在SEC数据中体现较少。
- 在金融分类任务中,模型将文本分类为前提或主张,我们在CPT后看到了非常显著的准确性提高,接近满分,这表明模型从SEC数据的无监督训练中有效地学习了新任务。合并后准确性有所下降,但仍远高于Instruct基线。
- 对于金融文本摘要任务,所有检查点的一致ROUGE-1分数表明在SEC数据上训练并未提高性能,这可能是由于基线模型已具备的强大能力以及ROUGE固有的局限性,后者依赖于可能不完美的参考摘要。
- 这些结果强调了模型合并对恢复通用能力的重要性,展示了合并如何通过重新引入更广泛的知识和能力来增强专业任务的性能。
通用评估指标
以下图3展示了基于通用评估指标的全精度Eval Harness的性能比较。
我们专注于Nous研究基准的更新版本,其中包括以下指标:
BIG-bench[8]
AGIEval[9]
GPT4all(hellaswag、openbookqa、winogrande、arc_easy、arc_challenge、boolq、piqa的组合)
TruthfulQA[10]
图3:模型变体的通用评估
图3洞察
- Llama-70B-Instruct的CPT,产生了Llama-70B-CPT,在所有指标(AGIEval、BigBench、GPT4all、TruthfulQA)上都显示出通用评估分数下降,表明可能存在灾难性遗忘。
- 性能下降在GPT4all和AGIEval指标中最为突出,突显了在适应新领域的同时保持通用能力的挑战。
- 使用TIES方法将Llama-70B-CPT与原始Llama-70B-Instruct模型合并(产生Llama-70B-CPT-Merge)显著恢复了丢失的通用能力。
- 这种恢复在所有指标上都很明显,这表明模型合并可以有效地缓解持续预训练期间观察到的灾难性遗忘。
- 这些发现强调了模型合并在保持领域适应性和通用能力之间平衡的重要性,使其成为持续预训练过程中的一种宝贵技术。
在CPT背景下,衡量通用困惑度以评估模型性能至关重要。了解模型如何利用先前的知识进行工作非常重要。以下通用数据集的困惑度指标被用于衡量:
bigcode/starcoderdata[11]
open-web-math/open-web-math[12]
allenai/peS2o[13]
mattymchen/refinedweb-3m[14]
Wikitext[15]
图4:模型变体的通用困惑度
图4洞察
- CPT使用大量SEC领域特定令牌(20B)降低了所有通用数据集的困惑度,表明预测能力有所提高。
- 这可能是由于SEC数据的性质。
- 即使在进行大量领域特定训练后,模型仍保持对通用领域的熟悉程度,如图中所示的通用文本困惑度指标稳定。这表明**CPT不会降低模型的通用知识**,尽管它可能会降低某些能力。如图3所示,我们建议未来的工作可以通过更好的SFT适应来帮助恢复模型的指令遵循能力,从而利用保留的知识。
讨论与未来工作
对Llama-3-Instruct-70B等大型模型进行持续预训练(CPT)带来了重大挑战,但事实证明,在增强领域特定能力方面极其有效。维护和优化如此大规模模型的复杂性需要先进的基础设施和高效的管理系统。托管SLURM集群,例如AWS HyperPod,提供了必要的计算资源和编排能力,以简化这些过程,提高大型模型训练的效率和可扩展性。
CPT与模型合并技术相结合,在创建性能更优的模型方面显示出非常有希望的结果。合并有助于恢复在领域特定训练中可能丢失的通用能力,从而在专业性能和整体鲁棒性之间取得平衡。这种双重方法不仅能减轻灾难性遗忘,还能增强模型在不同任务中的适用性。
未来工作
这标志着Arcee AI一系列模型发布的开始,重点是开发最佳的领域特定聊天模型,并展示训练与模型合并相结合的力量。在此次发布中,我们分享了使用20B令牌训练的CPT模型,因为最终模型仍在训练中。我们计划将来发布更多检查点。
- 将CPT模型与SFT、DPO和其他对齐方法对齐
- 通过将CPT模型与通用监督微调(SFT)、直接偏好优化(DPO)和人类反馈强化学习(RLHF)对齐来解决灾难性遗忘问题。虽然模型合并可以恢复一些丢失的知识,但整合这些对齐技术将进一步最大限度地减少灾难性遗忘,并有助于实现我们模型的下一版本。
- 改进CPT数据处理层
- 增强数据过滤方法,以更好地管理灾难性遗忘并优化与通用数据的混合,这对于处理70B等大型模型至关重要。
- 进一步探索模型合并
- 研究模型合并的先进技术和方法,以最大限度地保留通用能力,同时增强领域特定性能。
- 最后,我们邀请社区探索这些技术,并为对齐和合并的持续努力做出贡献,促进领域特定聊天模型开发方面的协作进步。
参考文献
- Shoeybi, M., et al. (2019). Megatron-lm: Training multi-billion parameter language models using model parallelism. arXiv:1909.08053.
- Labrak, Y., et al. (2024). BioMistral: Open-Source Pretrained Large Language Models for Medical Domains. arXiv:2402.10373.
- Lin, S. C., et al. (2024). Flame: Factuality-aware alignment for large language models. arXiv:2405.01525.
- Gekhman, Z., et al. (2024). Does Fine-Tuning LLMs on New Knowledge Encourage Hallucinations? arXiv:2405.05904.
- Ibrahim, A., et al. (2024). Simple and scalable strategies to continually pre-train large language models. arXiv:2403.08763.
- Penedo, G., et al. DataTrove: Large scale data processing (Version 0.0.1) [软件]. https://github.com/huggingface/datatrove
- Gao, L., et al. (2023). A framework for few-shot language model evaluation. https://github.com/EleutherAI/lm-evaluation-harness
- Srivastava, A., et al. (2022). Beyond the Imitation Game: Quantifying and extrapolating the capabilities of language models. arXiv:2206.04615.
- Zhong, W., et al. (2023). AGIEval: A Human-Centric Benchmark for Evaluating Foundation Models. arXiv:2304.06364.
- Lin, S., et al. (2021). TruthfulQA: Measuring How Models Mimic Human Falsehoods. arXiv:2109.07958.
- Big-Code. StarCodeDataset. https://huggingface.co/datasets/bigcode/starcoderdata
- Paster, K., et al. (2023). OpenWebMath: An Open Dataset of High-Quality Mathematical Web Text. arXiv:2310.06786. https://huggingface.co/datasets/open-web-math/open-web-math
- Soldaini, L., & McCandlish, S. (2023). PeS2o (Pretraining Efficiently on S2ORC) Dataset. https://huggingface.co/datasets/allenai/peS2o
- Mattymchen. RefinedWeb-3M. https://huggingface.co/datasets/mattymchen/refinedweb-3m
- Merity, S., et al. (2016). Pointer Sentinel Mixture Models. arXiv:1609.07843. https://huggingface.co/datasets/Salesforce/wikitext
- Yadav, P., & McCandlish, S. (2024). Ties-merging: Resolving interference when merging models. In Advances in Neural Information Processing Systems (pp. 11463-11476).
- Goddard, C., & McCandlish, S. (2024). Arcee's MergeKit: A Toolkit for Merging Large Language Models. arXiv:2403.13257.
- TAT-QA. https://github.com/NExTplusplus/TAT-QA
- Czyssrs. ConvFinQA. https://github.com/czyssrs/ConvFinQA