Papel Pixiu |
Isenção de responsabilidade
Este repositório e seu conteúdo são fornecidos apenas para fins acadêmicos e educacionais . Nenhum material constitui aconselhamento financeiro, jurídico ou de investimento. Nenhuma garantia, expressa ou implícita, é oferecida em relação à precisão, integridade ou utilidade do conteúdo. e os contribuidores não são responsáveis por quaisquer erros, omissões ou quaisquer consequências decorrentes do uso das informações aqui contidas. Os usuários devem exercer seu próprio julgamento e consultar profissionais antes de tomar quaisquer decisões financeiras, legais ou de investimento. contido neste repositório é inteiramente por conta e risco do usuário.
Ao usar ou acessar as informações neste repositório, você concorda em indenizar, defender e isentar os autores, contribuidores e quaisquer organizações ou pessoas afiliadas de toda e qualquer reclamação ou dano.
?Atualização (Data: 22/09/2023)
Temos o prazer de anunciar que nosso artigo, "PIXIU: Um benchmark abrangente, conjunto de dados de instrução e modelo de linguagem grande para finanças", foi aceito pelo NeurIPS 2023 Track Datasets and Benchmarks!
?Atualização (Data: 08/10/2023)
?Estamos orgulhosos de compartilhar as versões aprimoradas do FinBen, que agora suportam chinês e espanhol!
?Atualização (Data: 20/02/2024)
?Temos o prazer de compartilhar que nosso artigo, "The FinBen: An Holistic Financial Benchmark for Large Language Models", já está disponível no FinBen.
?Atualização (Data: 02/05/2024)
?Temos o prazer de convidá-lo para participar do desafio IJCAI2024, "Desafios Financeiros em Modelos de Grandes Linguagens - FinLLM", o kit inicial está disponível em Starter-kit.
Pontos de verificação:
Idiomas
Artigos
Avaliações :
Análise de sentimento
Classificação
Extração de Conhecimento
Compreensão dos números
Resumo de texto
Pontuação de crédito
Previsão
Bem-vindo ao projeto PIXIU Este projeto foi concebido para apoiar o desenvolvimento, o ajuste fino e a avaliação de Grandes Modelos de Linguagem (LLMs) no domínio financeiro. .
O repositório é organizado em vários componentes principais, cada um servindo a um propósito único no pipeline de PNL financeira:
FinBen : Nosso benchmark de avaliação de previsão e compreensão de linguagem financeira FinBen serve como conjunto de avaliação para LLMs financeiros, com foco em tarefas de compreensão e previsão em vários contextos financeiros.
FIT : Nosso conjunto de dados de instrução financeira FIT é um conjunto de dados de instrução multitarefa e multimodal adaptado especificamente para tarefas financeiras. Ele serve como campo de treinamento para o ajuste fino de LLMs para essas tarefas.
FinMA : Nosso Financial Large Language Model (LLM) é o núcleo do nosso projeto, fornecendo o poder de aprendizado e previsão para nossas tarefas financeiras.
Recursos abertos : PIXIU fornece abertamente o LLM financeiro, dados de ajuste de instruções e conjuntos de dados incluídos no benchmark de avaliação para incentivar a pesquisa aberta e a transparência.
Multitarefa : Os dados de ajuste de instruções e benchmark no PIXIU cobrem um conjunto diversificado de tarefas financeiras, incluindo quatro tarefas financeiras de PNL e uma tarefa de previsão financeira.
Multimodalidade : Os dados de ajuste de instrução e benchmark da PIXIU consistem em dados financeiros multimodalidade, incluindo dados de séries temporais da tarefa de previsão de movimento de ações. Abrange vários tipos de textos financeiros, incluindo relatórios, artigos de notícias, tweets e registros regulatórios.
Diversidade : Ao contrário dos benchmarks anteriores focados principalmente em tarefas financeiras de PNL, o benchmark de avaliação do PIXIU inclui tarefas críticas de previsão financeira alinhadas com cenários do mundo real, tornando-o mais desafiador.
Nesta seção, fornecemos uma análise detalhada do desempenho do FinMA em comparação com outros modelos líderes, incluindo ChatGPT, GPT-4 e BloombergGPT et al. Para esta análise, escolhemos uma série de tarefas e métricas que abrangem vários aspectos financeiros. Processamento de linguagem natural e previsão financeira Todos os resultados do modelo FinBen podem ser encontrados em nossa tabela de classificação!
Dados | Tarefa | Cru | Tipos de dados | Modalidades | Licença | Papel |
---|---|---|---|---|---|---|
FPB | análise de sentimento | 4.845 | notícias | texto | CC BY-SA 3.0 | [1] |
FiQA-SA | análise de sentimento | 1.173 | manchetes de notícias, tweets | texto | Público | [2] |
TSA | análise de sentimento | 561 | manchetes de notícias | texto | CC BY-NC-SA 4.0 | [3] |
FOMC | classificação hawkish-dovish | 496 | Transcrições do FOMC | texto | CC BY-NC 4.0 | [4] |
Manchetes | classificação de manchetes de notícias | 11.412 | manchetes de notícias | texto | CC BY-SA 3.0 | [5] |
FinArg-ECC-Tarefa1 | classificação da unidade de argumento | 969 | teleconferência de resultados | texto | CC BY-NC-SA 4.0 | [6] |
FinArg-ECC-Task2 | classificação de relação de argumento | 690 | teleconferência de resultados | texto | CC BY-NC-SA 4.0 | [6] |
Multifin PT | classificação multiclasse | 546 | manchetes de artigos | texto | Público | [7] |
Fusões e aquisições | classificação de conclusão do negócio | 500 | artigos de notícias, tweets | texto | Público | [8] |
MLESGEN | Identificação de Problemas ESG | 300 | artigos de notícias | texto | CC POR-NC-ND | [9] |
NER | reconhecimento de entidade nomeada | 1.366 | acordos financeiros | texto | CC BY-SA 3.0 | [10] |
Ordem mais fina | reconhecimento de entidade nomeada | 1.080 | artigos de notícias | texto | CC BY-NC 4.0 | [11] |
FinRED | extração de relação | 1.070 | ganhando transações de chamadas | texto | Público | [12] |
FinCausual 2020 Tarefa1 | classificação causal | 8.630 | artigos de notícias, SEC | texto | CC POR 4,0 | [13] |
FinCausual 2020 Tarefa2 | detecção causal | 226 | artigos de notícias, SEC | texto | CC POR 4,0 | [13] |
FinQA | resposta a perguntas | 8.281 | relatórios de ganhos | texto, tabela | Licença MIT | [14] |
controle de qualidade | resposta a perguntas | 1.670 | relatórios financeiros | texto, tabela | Licença MIT | [15] |
FXL | rotulagem numérica | 318 | SEC | texto | Público | [16] |
FSRL | classificação de tokens | 97 | artigos de notícias | texto | Licença MIT | [17] |
ECTSUM | resumo de texto | 495 | ganhando transações de chamadas | texto | Público | [18] |
EDTSUM | resumo de texto | 2000 | artigos de notícias | texto | Público | [19] |
Alemão | pontuação de crédito | 1000 | registros de crédito | mesa | CC POR 4,0 | [20] |
australiano | pontuação de crédito | 690 | registros de crédito | mesa | CC POR 4,0 | [vinte e um] |
Clube de Empréstimos | pontuação de crédito | 1.3453 | informações financeiras | mesa | CC0 1,0 | [vinte e dois] |
BigData22 | previsão de movimento de ações | 7.164 | tweets, preços históricos | texto, série temporal | Público | [vinte e três] |
ACL18 | previsão de movimento de ações | 27.053 | tweets, preços históricos | texto, série temporal | Licença MIT | [vinte e quatro] |
CIKM18 | previsão de movimento de ações | 4.967 | tweets, preços históricos | texto, série temporal | Público | [25] |
ConvFinQA | resposta a perguntas em vários turnos | 1.490 | relatórios de ganhos | texto, tabela | Licença MIT | [26] |
Fraude de cartão de crédito | Detecção de fraude | 11.392 | informações financeiras | mesa | (DbCL) v1.0 | [vinte e dois] |
ccFraude | Detecção de fraude | 10.485 | informações financeiras | mesa | Público | [vinte e dois] |
polonês | Identificação de dificuldades financeiras | 8.681 | recursos de status financeiro | mesa | CC POR 4,0 | [vinte e dois] |
Jornal Econômico de Taiwan | Identificação de dificuldades financeiras | 6.819 | recursos de status financeiro | mesa | CC POR 4,0 | [vinte e dois] |
PortoSeguro | Análise de Reclamações | 11.904 | reclamação e informações financeiras | mesa | Público | [vinte e dois] |
Seguro de viagem | Análise de Reclamações | 12.665 | reclamação e informações financeiras | mesa | (ODbL) v1.0 | [vinte e dois] |
1. Pekka Malo, Ankur Sinha, Pekka Korhonen, Jyrki Wallenius e Pyry Takala 2014. Dívida boa ou dívida ruim: Detectando orientações semânticas em textos econômicos. –796.
2. Macedo Maia, Siegfried Handschuh, André Freitas, Brian Davis, Ross McDermott, Manel Zarrouk e Alexandra Balahur 2018. Desafio aberto da WW'18: mineração de opinião financeira e resposta a perguntas. –1942.
3. Keith Cortis, André Freitas, Tobias Daudert, Manuela Huerlimann, Manel Zarrouk, Siegfried Handschuh e Brian Davis 2017. SemEval-2017 Tarefa 5: Análise refinada de sentimentos sobre microblogs financeiros e notícias. sobre Avaliação Semântica (SemEval-2017) , páginas 519–535, Vancouver, Associação Canadense de Lingüística Computacional.
4. Agam Shah, Suvan Paturi e Sudheer Chava 2023. Palavras de um trilhão de dólares: um novo conjunto de dados financeiros, tarefas e análise de mercado nos procedimentos da 61ª reunião anual da Association for Computational Linguistics (Volume 1: Long Papers) , páginas. 6664–6679, Toronto, Associação Canadense de Lingüística Computacional.
5. Ankur Sinha e Tanmay Khandait 2021. Impacto das notícias no mercado de commodities: conjunto de dados e resultados em Avanços em Informação e Comunicação: Procedimentos da Conferência sobre o Futuro da Informação e Comunicação de 2021 (FICC), Volume 2. Springer, 589–. 601.
6. Chen CC, Lin CY, Chiu CJ, et al. Visão geral da tarefa NTCIR-17 FinArg-1: Compreensão refinada de argumentos em análise financeira[C]//Anais da 17ª Conferência NTCIR sobre Avaliação de Tecnologias de Acesso à Informação , Tóquio, Japão 2023.
7. Rasmus Jørgensen, Oliver Brandt, Mareike Hartmann, Xiang Dai, Christian Igel e Desmond Elliott 2023. MultiFin: Um conjunto de dados para PNL financeira multilíngue nas descobertas da Association for Computational Linguistics: EACL 2023 , páginas 894–909, Dubrovnik. , Associação Croácia de Lingüística Computacional.
8. Yang, L., Kenny, EM, Ng, TL, Yang , Y., Smyth, B., & Dong, R. (2020). Gerando explicações contrafactuais plausíveis para transformadores profundos na classificação de textos financeiros. Lingüística .
9. Chung-Chi Chen, Yu-Min Tseng, Juyeon Kang, Anaïs Lhuissier, Min-Yuh Day, Teng-Tsai Tu e Hsin-Hsi Chen 2023. Identificação multilíngue de questões de esg . Tecnologia Financeira e Processamento de Linguagem Natural (FinNLP) e a Segunda IA Multimodal para Previsão Financeira (Muffin) .
10. Julio Cesar Salinas Alvarado, Karin Verspoor e Timothy Baldwin 2015. Adaptação de domínio do reconhecimento de entidade nomeada para apoiar a avaliação de risco de crédito.
11. Shah A, Vithani R, Gullapalli A, et al. Finer: Conjunto de dados de reconhecimento de entidade nomeada financeira e modelo de supervisão fraca [J].
12. Sharma, Soumya et al. “FinRED: Um conjunto de dados para extração de relações no domínio financeiro.”
13. Dominique Mariko, Hanna Abi-Akl, Estelle Labidurie, Stephane Durfort, Hugues De Mazancourt e Mahmoud El-Haj 2020. A tarefa compartilhada de detecção de causalidade de documentos financeiros (FinCausal 2020). Processamento e Resumo Financeiro MultiLing , páginas 23–32, Barcelona, Espanha (Online).
14. Zhiyu Chen, Wenhu Chen, Charese Smiley, Sameena Shah, Iana Borova, Dylan Langdon, Reema Moussa, Matt Beane, Ting-Hao Huang, Bryan R Routledge, et al. . Nos Anais da Conferência de 2021 sobre Métodos Empíricos em Processamento de Linguagem Natural. 3697–3711.
15. Zhu, Fengbin, Wenqiang Lei, Youcheng Huang, Chao Wang, Shuo Zhang, Jiancheng Lv, Fuli Feng e Tat-Seng Chua “TAT-QA: uma referência de resposta a perguntas sobre um híbrido de conteúdo tabular e textual em finanças”. ArXiv abs/2105.07624 (2021): pág.
16. Soumya Sharma, Subhendu Khatuya, Manjunath Hegde, Afreen Shaikh, Koustuv Dasgupta, Pawan Goyal e Niloy Ganguly 2023. Financial Numeric Extreme Labelling: Um conjunto de dados e benchmarking. –3561, Toronto, Canadá Associação para Computacional. Linguística.
17. Matthew Lamm, Arun Chaganty, Christopher D. Manning, Dan Jurafsky e Percy Liang 2018. Análise de analogia textual: o que é compartilhado e o que é comparado entre fatos análogos nos procedimentos da Conferência de 2018 sobre métodos empíricos em processamento de linguagem natural , páginas. 82–92, Bruxelas, Bélgica, Associação de Lingüística Computacional.
18. Rajdeep Mukherjee, Abhinav Bohra, Akash Banerjee, Soumya Sharma, Manjunath Hegde, Afreen Shaikh, Shivani Shrivastava, Koustuv Dasgupta, Niloy Ganguly, Saptarshi Ghosh e Pawan Goyal 2022. ECTSum: um novo conjunto de dados de referência para resumo de marcadores longos. Transcrições de chamadas de ganhos em. Anais da Conferência de 2022 sobre Métodos Empíricos em Processamento de Linguagem Natural , páginas 10893–10906, Abu Dhabi, Associação de Lingüística Computacional dos Emirados Árabes Unidos.
19. Zhihan Zhou, Liqian Ma e Han Liu 2021. Trade the Event: Corporate Events Detection for News-Based Event-Driven Trading In Findings of the Association for Computational Linguistics: ACL-IJCNLP 2021 , páginas 2114–2124, Online. Associação de Lingüística Computacional.
20. Hofmann, Hans (1994). Statlog (Repositório Alemão de Aprendizado de Máquina).
21. Quinlan, Ross Statlog (Aprovação de Crédito Australiano).
22. Duanyu Feng, Yongfu Dai, Jimin Huang, Yifang Zhang, Qianqian Xie, Weiguang Han, Alejandro Lopez-Lira, Hao Wang 2023. Capacitando muitos, influenciando alguns: pontuação de crédito generalista por meio de grandes modelos de linguagem ArXiv abs/2310.00566 (. 2023): pág.
23. Yejun Soun, Jaemin Yoo, Minyong Cho, Jihyeong Jeon e U Kang 2022. Previsão precisa de movimento de estoque com aprendizagem autosupervisionada a partir de tweets esparsos e barulhentos na Conferência Internacional IEEE sobre Big Data (IEEE, 1691). –1700.
24. Yumo Xu e Shay B Cohen 2018. Previsão do movimento de ações a partir de tweets e preços históricos.
25. Huizhe Wu, Wei Zhang, Weiwei Shen e Jun Wang 2018. Modelagem sequencial profunda híbrida para previsão de ações baseadas em texto social.
26. Zhiyu Chen, Shiyang Li, Charese Smiley, Zhiqiang Ma, Sameena Shah e William Yang Wang 2022. ConvFinQA: Explorando a cadeia de raciocínio numérico na resposta a perguntas financeiras conversacionais. Processamento, páginas 6279–6292, Abu Dhabi, Associação dos Emirados Árabes Unidos. para Linguística Computacional.
git clone https://github.com/The-FinAI/PIXIU.git --recursive
cd PIXIU
pip install -r requirements.txt
cd src/financial-evaluation
pip install -e .[multilingual]
sudo bash scripts/docker_run.sh
O comando acima inicia um contêiner docker, você pode modificar docker_run.sh
para se adequar ao seu ambiente. Fornecemos uma imagem pré-construída executando sudo docker pull tothemoon/pixiu:latest
docker run --gpus all --ipc=host --ulimit memlock=-1 --ulimit stack=67108864
--network host
--env https_proxy= $https_proxy
--env http_proxy= $http_proxy
--env all_proxy= $all_proxy
--env HF_HOME= $hf_home
-it [--rm]
--name pixiu
-v $pixiu_path : $pixiu_path
-v $hf_home : $hf_home
-v $ssh_pub_key :/root/.ssh/authorized_keys
-w $workdir
$docker_user /pixiu: $tag
[--sshd_port 2201 --cmd " echo 'Hello, world!' && /bin/bash " ]
Os argumentos explicam:
[]
significa argumentos ignoráveisHF_HOME
: diretório de cache huggingfacesshd_port
: porta sshd do contêiner, você pode executar ssh -i private_key -p $sshd_port root@$ip
para conectar-se ao contêiner, o padrão é 22001--rm
: remove o contêiner ao sair do contêiner (ou seja, CTRL + D
) Antes da avaliação, baixe o ponto de verificação BART para src/metrics/BARTScore/bart_score.pth
.
Para avaliação automatizada, siga estas instruções:
Abraçando o Transformador
Para avaliar um modelo hospedado no HuggingFace Hub (por exemplo, finma-7b-full), use este comando:
python eval.py
--model " hf-causal-llama "
--model_args " use_accelerate=True,pretrained=TheFinAI/finma-7b-full,tokenizer=TheFinAI/finma-7b-full,use_fast=False "
--tasks " flare_ner,flare_sm_acl,flare_fpb "
Mais detalhes podem ser encontrados na documentação do lm_eval.
Observe que, para tarefas como NER, a avaliação automatizada é baseada em um padrão específico. Isso pode falhar na extração de informações relevantes em configurações de disparo zero, resultando em desempenho relativamente inferior em comparação com resultados anteriores anotados por humanos.
export OPENAI_API_SECRET_KEY=YOUR_KEY_HERE
python eval.py
--model gpt-4
--tasks flare_ner,flare_sm_acl,flare_fpb
Para executar o back-end de inferência:
bash scripts/run_interface.sh
Ajuste run_interface.sh de acordo com os requisitos do seu ambiente.
Para avaliar:
python data/ * /evaluate.py
A criação de uma nova tarefa para FinBen envolve a criação de um conjunto de dados Huggingface e a implementação da tarefa em um arquivo Python. Este guia orienta você em cada etapa de configuração de uma nova tarefa usando a estrutura FinBen.
Seu conjunto de dados deve ser criado no seguinte formato:
{
"query" : "..." ,
"answer" : "..." ,
"text" : "..."
}
Neste formato:
query
: combinação de seu prompt e textoanswer
: Sua etiquetaPara tarefas multivoltas (como)
Para tarefas de classificação (como FPB (FinBen_fpb)), chaves adicionais devem ser definidas:
choices
: conjunto de rótulosgold
: Índice do rótulo correto nas escolhas (começa em 0)Para tarefas de rotulagem sequencial (como Finer Ord (FinBen_finer_ord)), chaves adicionais devem ser definidas:
label
: Lista de rótulos de token
token
: Lista de tokens
Para tarefas de Resumo Extrativo (como ECTSUM (FinBen_ectsum)), chaves adicionais devem ser definidas:
label
: Lista de rótulos de frasesPara tarefas abstrativas de resumo e resposta a perguntas (como EDTSUM (FinBen_edtsum)), nenhuma chave adicional deve ser definida
Assim que seu conjunto de dados estiver pronto, você poderá começar a implementar sua tarefa. Sua tarefa deve ser definida em uma nova classe em flare.py ou em qualquer outro arquivo Python localizado no diretório de tarefas.
Para atender a uma variedade de tarefas, oferecemos diversas classes base especializadas, incluindo Classification
, SequentialLabeling
, RelationExtraction
, ExtractiveSummarization
, AbstractiveSummarization
e QA
.
Por exemplo, se você estiver embarcando em uma tarefa de classificação, você pode aproveitar diretamente nossa classe base Classification
. Esta classe permite a criação de tarefas eficiente e intuitiva. Para demonstrar isso melhor, vamos nos aprofundar em um exemplo de criação de uma tarefa chamada FinBen-FPB. a classe base Classification
:
class flareFPB ( Classification ):
DATASET_PATH = "flare-fpb"
E pronto! Depois de criar sua classe de tarefa, o próximo passo é registrá-la no arquivo src/tasks/__init__.py
. Para fazer isso, adicione uma nova linha seguindo o formato "task_name": module.ClassName
. Aqui está como isso é feito:
TASK_REGISTRY = {
"flare_fpb" : flare . FPB ,
"your_new_task" : your_module . YourTask , # This is where you add your task
}
Tarefa | Métrica | Ilustração |
---|---|---|
Classificação | Precisão | Esta métrica representa a proporção de observações previstas corretamente em relação ao total de observações. É calculada como (Verdadeiros Positivos + Verdadeiros Negativos) / Total de Observações. |
Classificação | Pontuação F1 | A pontuação F1 representa a média harmônica de precisão e recall, criando assim um equilíbrio entre esses dois fatores. É particularmente útil em cenários onde um fator tem mais importância que o outro. A pontuação varia de 0 a 1, com 1 significando precisão perfeita. e recall, e 0 indicando o pior caso. Além disso, fornecemos versões 'ponderadas' e 'macro' da pontuação F1. |
Classificação | Razão ausente | Esta métrica calcula a proporção de respostas em que nenhuma opção das escolhas fornecidas na tarefa é retornada. |
Classificação | Coeficiente de Correlação de Matthews (MCC) | O MCC é uma métrica que avalia a qualidade das classificações binárias, produzindo uma pontuação que varia de -1 a +1. Uma pontuação de +1 significa uma previsão perfeita, 0 denota uma previsão não melhor que o acaso e -1 indica uma previsão completamente inversa. previsão. |
Rotulagem Sequencial | Pontuação F1 | No contexto de tarefas de rotulagem sequencial, utilizamos a pontuação F1 conforme calculada pela biblioteca seqeval , uma métrica robusta de avaliação em nível de entidade. Essa métrica exige uma correspondência exata da extensão e do tipo da entidade entre as entidades previstas e verdadeiras para um. avaliação correta. Verdadeiros Positivos (TP) representam entidades corretamente previstas, Falsos Positivos (FP) denotam entidades previstas incorretamente ou entidades com intervalos/tipos incompatíveis e Falsos Negativos (FN) significam entidades perdidas do a verdade básica, a precisão, a recuperação e a pontuação F1 são então calculadas usando essas quantidades, com a pontuação F1 representando a média harmônica de precisão e recuperação. |
Rotulagem Sequencial | Pontuação da etiqueta F1 | Esta métrica avalia o desempenho do modelo com base apenas na exatidão dos rótulos previstos, sem considerar os intervalos de entidade. |
Extração de Relação | Precisão | A precisão mede a proporção de relações previstas corretamente entre todas as relações previstas. É calculada como o número de Verdadeiros Positivos (TP) dividido pela soma de Verdadeiros Positivos e Falsos Positivos (FP). |
Extração de Relação | Lembrar | Recall mede a proporção de relações previstas corretamente de todas as relações reais. É calculado como o número de Verdadeiros Positivos (TP) dividido pela soma de Verdadeiros Positivos e Falsos Negativos (FN). |
Extração de Relação | Pontuação F1 | A pontuação F1 é a média harmônica de precisão e recall e fornece um equilíbrio entre essas duas métricas. A pontuação F1 é melhor em 1 (precisão e recall perfeitas) e pior em 0. |
Resumo Extrativo e Abstrativo | Rouge-N | Mede a sobreposição de N-gramas (uma sequência contígua de N itens de uma determinada amostra de texto) entre o resumo gerado pelo sistema e o resumo de referência. 'N' pode ser 1, 2 ou mais, com ROUGE-1 e. ROUGE-2 é comumente usado para avaliar sobreposições de unigramas e bigramas, respectivamente. |
Resumo Extrativo e Abstrativo | Rouge-L | Esta métrica avalia a subsequência comum mais longa (LCS) entre o sistema e os resumos de referência leva em consideração a similaridade da estrutura no nível da frase naturalmente e identifica automaticamente os n-gramas mais longos na sequência. |
Resposta a perguntas | EMACC | A EMACC avalia a correspondência exata entre a resposta gerada pelo modelo e a resposta de referência. Em outras palavras, a resposta gerada pelo modelo é considerada correta apenas se corresponder exatamente à resposta de referência, palavra por palavra. |
Além disso, você pode determinar se os rótulos devem ser minúsculos durante o processo de correspondência especificando
LOWER_CASE
na definição de sua classe. Isso é pertinente, pois os rótulos são correspondidos com base em sua aparência na saída gerada para tarefas como exames em que os rótulos são um conjunto específico. de letras maiúsculas, como 'A', 'B', 'C', normalmente deve ser definido como False.
Nosso conjunto de dados de instruções é adaptado exclusivamente para o LLM específico do domínio, FinMA. Este conjunto de dados foi meticulosamente montado para ajustar nosso modelo em uma ampla gama de tarefas financeiras. Ele apresenta dados multitarefa e multimodais disponíveis ao público. vários conjuntos de dados financeiros abertos e divulgados.
O conjunto de dados é multifacetado, apresentando tarefas que incluem análise de sentimento, classificação de manchetes de notícias, reconhecimento de entidade nomeada, resposta a perguntas e previsão de movimento de ações. Ele cobre modalidades de dados textuais e de série temporal, oferecendo uma rica variedade de dados financeiros. instruções específicas para cada tarefa foram cuidadosamente elaboradas por especialistas no domínio.
A tabela abaixo resume as diferentes tarefas, suas correspondentes modalidades, tipos de texto e exemplos de instruções utilizadas para cada tarefa:
Tarefa | Modalidades | Tipos de texto | Exemplos de instruções |
---|---|---|---|
Análise de sentimento | Texto | manchetes de notícias, tweets | "Analise o sentimento desta declaração extraída de um artigo de notícias financeiras. Dê sua resposta como negativa, positiva ou neutra. Por exemplo, 'As ações da empresa despencaram após o escândalo.' |
Classificação de manchetes de notícias | Texto | Manchetes de notícias | "Considere se a manchete menciona o preço do ouro. Existe ou não um preço no mercado de commodities de ouro indicado na manchete? Por favor, responda Sim ou Não." |
Reconhecimento de Entidade Nomeada | Texto | acordos financeiros | "Nas frases extraídas de acordos financeiros nos arquivos da SEC dos EUA, identifique as entidades nomeadas que representam uma pessoa ('PER'), uma organização ('ORG') ou um local ('LOC'). O formato de resposta exigido é: 'nome da entidade, tipo de entidade'. Por exemplo, em 'Elon Musk, CEO da SpaceX, anunciou o lançamento do Cabo Canaveral.', as entidades seriam: 'Elon Musk, PER SpaceX, ORG'; |
Resposta a perguntas | Texto | relatórios de ganhos | "No contexto desta série de consultas interconectadas relacionadas a finanças e das informações adicionais fornecidas pelo pretexto, dados da tabela e texto postal dos registros financeiros de uma empresa, forneça uma resposta à pergunta final. Isso pode exigir a extração de informações do contexto e realizando cálculos matemáticos Por favor, leve em consideração as informações fornecidas nas perguntas anteriores e suas respostas ao formular sua resposta:" |
Previsão de movimento de estoque | Texto, série temporal | tweets, preços de ações | "Analise as informações e as postagens nas redes sociais para determinar se o preço de fechamento de {tid} subirá ou descerá em {ponto} . Por favor, responda com Subida ou Queda." |
O conjunto de dados contém uma grande quantidade de amostras de dados de instruções (136K), permitindo à FinMA capturar as nuances das diversas tarefas financeiras. A tabela abaixo fornece os detalhes estatísticos do conjunto de dados de instruções:
Dados | Tarefa | Cru | Instrução | Tipos de dados | Modalidades | Licença | Artigo original |
---|---|---|---|---|---|---|---|
FPB | análise de sentimento | 4.845 | 48.450 | notícias | texto | CC BY-SA 3.0 | [1] |
FiQA-SA | análise de sentimento | 1.173 | 11.730 | manchetes de notícias, tweets | texto | Público | [2] |
Título | classificação de manchetes de notícias | 11.412 | 11.412 | manchetes de notícias | texto | CC BY-SA 3.0 | [3] |
NER | reconhecimento de entidade nomeada | 1.366 | 13.660 | acordos financeiros | texto | CC BY-SA 3.0 | [4] |
FinQA | resposta a perguntas | 8.281 | 8.281 | relatórios de ganhos | texto, tabela | Licença MIT | [5] |
ConvFinQA | resposta a perguntas | 3.892 | 3.892 | relatórios de ganhos | texto, tabela | Licença MIT | [6] |
BigData22 | previsão de movimento de ações | 7.164 | 7.164 | tweets, preços históricos | texto, série temporal | Público | [7] |
ACL18 | previsão de movimento de ações | 27.053 | 27.053 | tweets, preços históricos | texto, série temporal | Licença MIT | [8] |
CIKM18 | previsão de movimento de ações | 4.967 | 4.967 | tweets, preços históricos | texto, série temporal | Público | [9] |
Ao trabalhar com o conjunto de dados de instruções financeiras (FIT), é crucial seguir o formato prescrito para modelos de treinamento e teste.
O formato deve ficar assim:
{
"id" : " unique id " ,
"conversations" : [
{
"from" : " human " ,
"value" : " Your prompt and text "
},
{
"from" : " agent " ,
"value" : " Your answer "
}
],
"text" : " Text to be classified " ,
"label" : " Your label "
}
Aqui está o que cada campo significa:
O primeiro turno na lista de “conversas” deve ser sempre de “humano” e conter seu prompt e o texto. O segundo turno deve ser de “agente” e conter sua resposta.
Temos o prazer de apresentar a primeira versão do FinMA, incluindo três modelos FinMA-7B, FinMA-7B-full, FinMA-30B, ajustados em LLaMA 7B e LLaMA-30B e FinMA-30B são treinados com o. Dados de instrução de PNL, enquanto o FinMA-7B-full é treinado com os dados de instrução completos do FIT, cobrindo tarefas de PNL e de previsão.
FinMA v0.1 está agora disponível no Huggingface para uso público. Estamos ansiosos pelas valiosas contribuições que esta versão inicial fará ao campo da PNL financeira e incentivamos os usuários a aplicá-la a várias tarefas e cenários financeiros. experiências para ajudar a melhorar versões futuras.
Em breve.
FinMem é uma nova estrutura de agente baseada em LLM desenvolvida para a tomada de decisões financeiras, abrange três módulos principais: Perfil, para delinear as características do agente, com processamento em camadas, para ajudar o agente na assimilação de dados financeiros hierárquicos realistas e na tomada de decisões; , para converter insights obtidos de memórias em decisões de investimento Atualmente, o FinMem pode negociar ações individuais com altos retornos após um aquecimento de modo simples. Abaixo está um início rápido para uma estrutura de versão dockerizada, com TSLA como exemplo. entrada.
Etapa 1: Defina variáveis ambientais em .env
adicione HUGGINGFACE TOKEN e OPENAI API KEY conforme necessário.
OPENAI_API_KEY = " <Your OpenAI Key> "
HF_TOKEN = " <Your HF token> "
Etapa 2: definir o URL do endpoint em config.toml
Use o URL do endpoint para implantar modelos com base no modelo de sua escolha (OPENAI, Gemini, modelos de código aberto no HuggingFace, etc.). Para modelos de código aberto no HuggingFace, uma opção para gerar TGI. os endpoints são por meio do RunPod.
[chat]
model = " tgi "
end_point = " <set the your endpoint address> "
tokenization_model_name = " <model name> "
...
Etapa 3: construir imagem e contêiner Docker
docker build -t test-finmem .devcontainer/.
iniciar contêiner:
docker run -it --rm -v $( pwd ) :/finmem test-finmem bash
Etapa 4: inicie a simulação!
Usage: run.py sim [OPTIONS]
Start Simulation
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --market-data-path -mdp TEXT The environment data pickle path [default: data/06_input/subset_symbols.pkl] │
│ --start-time -st TEXT The training or test start time [default: 2022-06-30 For Ticker ' TSLA ' ] │
│ --end-time -et TEXT The training or test end time [default: 2022-10-11] │
│ --run-model -rm TEXT Run mode: train or test [default: train] │
│ --config-path -cp TEXT config file path [default: config/config.toml] │
│ --checkpoint-path -ckp TEXT The checkpoint save path [default: data/10_checkpoint_test] │
│ --result-path -rp TEXT The result save path [default: data/11_train_result] │
│ --trained-agent-path -tap TEXT Only used in test mode, the path of trained agent [default: None. Can be changed to data/05_train_model_output OR data/06_train_checkpoint] │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Exemplo de uso:
python run.py sim --market-data-path data/03_model_input/tsla.pkl --start-time 2022-06-30 --end-time 2022-10-11 --run-model train --config-path config/tsla_tgi_config.toml --checkpoint-path data/06_train_checkpoint --result-path data/05_train_model_output
Existem também funcionalidades de checkpoint. Para obter mais detalhes, visite diretamente o Repositório FinMem.
Se você utiliza PIXIU em seu trabalho, cite nosso artigo.
@misc{xie2023pixiu,
title={PIXIU: A Large Language Model, Instruction Data and Evaluation Benchmark for Finance},
author={Qianqian Xie and Weiguang Han and Xiao Zhang and Yanzhao Lai and Min Peng and Alejandro Lopez-Lira and Jimin Huang},
year={2023},
eprint={2306.05443},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
@misc{xie2024FinBen,
title={The FinBen: An Holistic Financial Benchmark for Large Language Models},
author={Qianqian Xie and Weiguang Han and Zhengyu Chen and Ruoyu Xiang and Xiao Zhang and Yueru He and Mengxi Xiao and Dong Li and Yongfu Dai and Duanyu Feng and Yijing Xu and Haoqiang Kang and Ziyan Kuang and Chenhan Yuan and Kailai Yang and Zheheng Luo and Tianlin Zhang and Zhiwei Liu and Guojun Xiong and Zhiyang Deng and Yuechen Jiang and Zhiyuan Yao and Haohang Li and Yangyang Yu and Gang Hu and Jiajia Huang and Xiao-Yang Liu and Alejandro Lopez-Lira and Benyou Wang and Yanzhao Lai and Hao Wang and Min Peng and Sophia Ananiadou and Jimin Huang},
year={2024},
eprint={2402.12659},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
PIXIU está licenciado sob [MIT]. Para mais detalhes, consulte o arquivo MIT.