FinGPT:12.3k 星星!金融领域的开源大模型来了!

技术

Aitrainee | 公众号:AI进修生

🌟如果你从事金融报表的阅读、数据分析等工作,这款模型将是一个绝佳的工具。

Hello,大家好,我是Aitrainee, 最近我看到了一条推文,介绍了 FinGPT ,这款开源金融领域的LLM(大型语言模型)。FinGPT采用数据中心方法,为研究人员和从业者提供开发金融LLM的资源。这对金融界来说显然非常激动人心,因为LLM在各种领域的应用正如火如荼地展开。 如果你从事金融报表的阅读、数据分析等工作,这款模型将是一个绝佳的工具。

picture.image

FinGPT的研究论文和框架提出了一种将LLM(如ChatGPT)应用于金融应用的方式。虽然目前还未完全实现,但这是一个良好的起点,并为进一步的开发提供了很多讨论空间。今天我就来详细谈谈FinGPT。

回到FinGPT,虽然最初看到推文时我以为会有一个完整的模型发布,但实际上这只是一个框架。开发一个完整的模型需要大量资源,正如Bloomberg GPT那样,他们利用多年积累的数据来训练自己的金融LLM,这使得Bloomberg GPT在金融研究方面比普通的ChatGPT或其他开源LLM表现更好。然而,训练这样的模型需要数百万美元的投入,这对普通人来说是难以企及的。

FinGPT的目标是提供一个开放的环境,让人们可以共同开发类似甚至更好的模型。研究论文中提出的框架非常有趣: 首先是数据层,汇集了新闻数据、社交数据、财务数据等。 然后是自然语言处理模型和数据工程,最后将这些数据输入现有的开源LLM,如Llama模型和ChatGLM,以进行微调和特定金融应用的开发。

虽然目前他们的GitHub仓库中还没有提供完整的数据抓取代码,但他们确实在不断完善和发布模型。例如,他们在一些示例中使用了中国金融市场数据和美国市场数据来训练不同的LLM模型。未来,他们还计划发布一个训练好的模型,供大家使用和进一步微调。

FinGPT的应用前景非常广阔,包括机器人顾问、金融欺诈检测、量化交易、信用评分和风险管理等。如果你对这些应用感兴趣,我强烈推荐你阅读他们的研究论文,并关注他们的进展。

下面提供官方的 文档介绍、相关资源、部署教程 等,进一步支撑你的行动,以提升本文的帮助力。

最新动态:

  • • [模型发布] 2023年11月:我们发布了FinGPT-Forecaster!🔥演示, Medium博客 & 模型 在 Huggingface🤗 上可用!
  • • [论文接受] 2023年10月:"FinGPT: Instruction Tuning Benchmark for Open-Source Large Language Models in Financial Datasets" 被NeurIPS 2023的 Instruction Workshop 接受🎉
  • • [论文接受] 2023年10月:"FinGPT: Democratizing Internet-scale Data for Financial Large Language Models" 被NeurIPS 2023的 Instruction Workshop 接受🎉
  • • [模型发布] 2023年10月:我们发布了金融多任务LLMs 🔥,这些模型在FinGPT-Benchmark上评估基础LLMs时产生。
  • • [论文接受] 2023年9月:"Enhancing Financial Sentiment Analysis via Retrieval Augmented Large Language Models" 被ACM国际金融AI会议 (ICAIF-23)接受🎉
  • • [模型发布] 2023年8月:我们发布了金融情感分析模型 🔥
  • • [论文接受] 2023年7月:"Instruct-FinGPT: Financial Sentiment Analysis by Instruction Tuning of General-Purpose Large Language Models" 被IJCAI 2023的 FinLLM 2023接受🎉
  • • [论文接受] 2023年7月:"FinGPT: Open-Source Financial Large Language Models" 被IJCAI 2023的 FinLLM 2023接受🎉
  • • [Medium博客] 2023年6月:FinGPT: Powering the Future of Finance with 20 Cutting-Edge Applications

为什么选择FinGPT?

1). 金融领域变化迅速。BloombergGPT 使用混合金融数据和通用数据训练了一个LLM,耗时约53天,费用约为300万美元 。每月或每周重新训练类似BloombergGPT的LLM模型代价高昂,因此轻量级的适应性非常有利。FinGPT可以快速微调以整合新数据(成本显著降低,每次微调费用低于300美元 )。

2). 民主化互联网规模的金融数据至关重要,比如通过自动数据整理管道允许模型及时更新(每月或每周更新)。BloombergGPT有特权数据访问和API,而FinGPT提供了更便捷的替代方案。它优先考虑轻量级的适应性,利用最佳的开源LLM。

3). 关键技术是“RLHF(人类反馈的强化学习)”,这是BloombergGPT所缺乏的。RLHF使LLM模型能够学习个人偏好(风险规避水平、投资习惯、个性化机器人顾问等),这是ChatGPT和GPT4的“秘密”成分。

AI机器人顾问的里程碑:FinGPT-Forecaster

在我们的 HuggingFace Space 试用最新发布的FinGPT-Forecaster演示

picture.image

输入以下内容:

    1. 股票代码(例如AAPL, MSFT, NVDA)
    1. 预测开始的日期(yyyy-mm-dd)
    1. 检索市场新闻的过去几周
    1. 是否添加最新的基本财务信息作为附加信息

点击提交!您将收到公司全面的分析和下一周股价走势的预测!

有关详细和更多定制化的实现,请参考 FinGPT-Forecaster

FinGPT演示:

金融情感分析的当前最先进水平

  • • FinGPT V3 (更新于 2023年10月12日)
  • • 新增内容:在单个RTX 3090上进行情感分析的最佳可训练和推理的FinGPT,比GPT-4和ChatGPT微调效果更好。
  • • FinGPT v3系列是使用LoRA方法在新闻和推文情感分析数据集上微调的LLMs,在大多数金融情感分析数据集上取得了最佳成绩,成本低廉。
  • • FinGPT v3.3使用llama2-13b作为基础模型;FinGPT v3.2使用llama2-7b作为基础模型;FinGPT v3.1使用chatglm2-6B作为基础模型。
  • • 基准测试结果:

| 加权F1 | FPB | FiQA-SA | TFNS | NWGI | 设备 | 时间 | 成本 | | FinGPT v3.3 | 0.882 | 0.874 | 0.903 | 0.643 | 1 × RTX 3090 | 17.25小时 | 17.25FinGPTv3.20.8500.8600.8940.6361×A1005.5小时17.25 | | FinGPT v3.2 | 0.850 | 0.860 | 0.894 | 0.636 | 1 × A100 | 5.5小时 | 22.55 | | FinGPT v3.1 | 0.855 | 0.850 | 0.875 | 0.642 | 1 × A100 | 5.5小时 | $ 22.55 | | FinGPT ( | | | | | | | |

快速开始指南

安装

您可以通过以下方式安装FinGPT:

使用pip安装:


      
      
          

        pip install 
        FinGPT
      
    

从源码安装:


      
      
          

        git 
        clone
         https
        ://
        github
        .
        com
        /
        AI4Finance
        -
        Foundation
        /
        FinGPT
        .
        git
          

        cd
         
        FinGPT
          

        pip install 
        -
        e 
        .
      
    

示例代码

以下是使用FinGPT进行金融情感分析的示例代码:


      
      
          

        from
         fingpt 
        import
         
        FinGPT
          

          

        # 加载预训练的FinGPT模型
          

        model 
        =
         
        FinGPT
        .
        from\_pretrained
        (
        'FinGPT/fingpt-sentiment\_llama2-13b\_lora'
        )
          

          

        # 定义输入文本
          

        text 
        =
         
        "Apple Inc.的股票表现非常出色,投资者情绪高涨。"
          

          

        # 进行情感分析
          

        sentiment 
        =
         model
        .
        predict
        (
        text
        )
          

        print
        (
        
 f
 "情感分析结果: 
 
 {sentiment}
 
 "
 
        )
      
    

自定义微调

FinGPT允许您对模型进行微调以适应特定的金融任务。以下是一个简单的微调示例:


      
      
          

        from
         fingpt 
        import
         
        FinGPT
        ,
         
        Trainer
          

          

        # 加载预训练的FinGPT模型
          

        model 
        =
         
        FinGPT
        .
        from\_pretrained
        (
        'FinGPT/fingpt-sentiment\_llama2-13b\_lora'
        )
          

          

        # 定义训练数据
          

        train\_data 
        =
         
        [
          

            
        {
        "text"
        :
         
        "这是一个积极的新闻"
        ,
         
        "label"
        :
         
        "positive"
        },
          

            
        {
        "text"
        :
         
        "这是一个消极的新闻"
        ,
         
        "label"
        :
         
        "negative"
        }
          

        ]
          

          

        # 定义训练参数
          

        training\_args 
        =
         
        {
          

            
        "num\_train\_epochs"
        :
         
        3
        ,
          

            
        "learning\_rate"
        :
         
        2e-5
        ,
          

            
        "per\_device\_train\_batch\_size"
        :
         
        16
          

        }
          

          

        # 进行微调
          

        trainer 
        =
         
        Trainer
        (
        model
        =
        model
        ,
         args
        =
        training\_args
        ,
         train\_data
        =
        train\_data
        )
          

        trainer
        .
        train
        ()
      
    

RLHF微调

RLHF(人类反馈的强化学习)是FinGPT的一项重要特性,可以让模型学习个体偏好。以下是一个简单的RLHF微调示例:


      
      
          

        from
         fingpt 
        import
         
        FinGPT
        ,
         
        RLHFTrainer
          

          

        # 加载预训练的FinGPT模型
          

        model 
        =
         
        FinGPT
        .
        from\_pretrained
        (
        'FinGPT/fingpt-sentiment\_llama2-13b\_lora'
        )
          

          

        # 定义训练数据
          

        train\_data 
        =
         
        [
          

            
        {
        "text"
        :
         
        "这是一个积极的新闻"
        ,
         
        "label"
        :
         
        "positive"
        },
          

            
        {
        "text"
        :
         
        "这是一个消极的新闻"
        ,
         
        "label"
        :
         
        "negative"
        }
          

        ]
          

          

        # 定义RLHF参数
          

        rlhf\_args 
        =
         
        {
          

            
        "num\_train\_epochs"
        :
         
        3
        ,
          

            
        "learning\_rate"
        :
         
        2e-5
        ,
          

            
        "per\_device\_train\_batch\_size"
        :
         
        16
          

        }
          

          

        # 进行RLHF微调
          

        trainer 
        =
         
        RLHFTrainer
        (
        model
        =
        model
        ,
         args
        =
        rlhf\_args
        ,
         train\_data
        =
        train\_data
        )
          

        trainer
        .
        train
        ()
      
    

知音难求,自我修炼亦艰

抓住前沿技术的机遇,与我们一起成为创新的超级个体

(把握AIGC时代的个人力量)

picture.image

点这里👇关注我,记得标星哦~

一键三连「分享」、「点赞」和「在看」

科技前沿进展日日相见 ~

picture.image

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
云原生数仓如何构建高性能向量检索技术
火山引擎ByteHouse团队基于社区 ClickHouse 进行技术演进,提出了全新的向量检索功能设计思路,满足业务对向量检索稳定性与性能方面的需求。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论