CoolFace
Modelpublic

NickyNicky/Financial_graph

sourceHugging Faceupdated 2y agoView on Hugging Face
2likes26downloads
README.md155 linesDownload Raw Back to root
1---2language:3- es4- en5library_name: transformers6pipeline_tag: text-generation7tags:8- finance9---10 11 12 13![image/png](https://cdn-uploads.huggingface.co/production/uploads/641b435ba5f876fe30c5ae0a/L1WKeGC2PXVVRF_74xAmw.png)14## Descripcion.15Este modelo de IA es competente en la comprensión y análisis de noticias financieras y de la bolsa de valores. Puede interpretar y procesar información relacionada con los mercados financieros, incluyendo tendencias bursátiles, informes económicos y análisis de inversiones. Además, tiene la capacidad de comprender y comunicarse de manera efectiva tanto en español como en inglés, lo que le permite interactuar con usuarios y fuentes de información en ambos idiomas de manera fluida. Asimismo, el modelo puede trabajar con grafos en formato JSON, permitiendo la visualización y análisis de estructuras de datos.16 17## Code.18```py19import torch,gc20 21import transformers22from transformers import AutoModelForCausalLM, AutoTokenizer, TrainingArguments, BitsAndBytesConfig23from datasets import load_dataset24from peft import LoraConfig, PeftModel, get_peft_model, prepare_model_for_kbit_training25 26from transformers import (27    AutoModelForCausalLM,28    AutoTokenizer,29    BitsAndBytesConfig,30    HfArgumentParser,31    TrainingArguments,32    pipeline,33    logging,34    GenerationConfig,35    TextIteratorStreamer,36)37 38from transformers import StoppingCriteria, StoppingCriteriaList39 40import os41 42 43model_id="NickyNicky/Financial_graph"44 45max_seq_length=404846 47tokenizer = AutoTokenizer.from_pretrained(model_id,48                                          token=access_token,49                                          max_length=max_seq_length)50model = AutoModelForCausalLM.from_pretrained(model_id,51                                            #  quantization_config=bnb_config,52                                             device_map={"":0},53                                             token=access_token,54                                             attn_implementation="flash_attention_2",55                                             torch_dtype=torch.bfloat1656                                             ).eval()57 58 59 60# dpo_trainer.model.config.use_cache = True  # silence the warnings. Please re-enable for inference!61# tokenizer.padding_side='left'62 63class ListOfTokensStoppingCriteria(StoppingCriteria):64    """65    Clase para definir un criterio de parada basado en una lista de tokens específicos.66    """67    def __init__(self, tokenizer, stop_tokens):68        self.tokenizer = tokenizer69        # Codifica cada token de parada y guarda sus IDs en una lista70        self.stop_token_ids_list = [tokenizer.encode(stop_token, add_special_tokens=False) for stop_token in stop_tokens]71 72    def __call__(self, input_ids, scores, **kwargs):73        # Verifica si los últimos tokens generados coinciden con alguno de los conjuntos de tokens de parada74        for stop_token_ids in self.stop_token_ids_list:75            len_stop_tokens = len(stop_token_ids)76            if len(input_ids[0]) >= len_stop_tokens:77                if input_ids[0, -len_stop_tokens:].tolist() == stop_token_ids:78                    return True79        return False80 81# Uso del criterio de parada personalizado82stop_tokens = ["<end_of_turn>"]  # Lista de tokens de parada83 84# Inicializa tu criterio de parada con el tokenizer y la lista de tokens de parada85stopping_criteria = ListOfTokensStoppingCriteria(tokenizer, stop_tokens)86 87# Añade tu criterio de parada a una StoppingCriteriaList88stopping_criteria_list = StoppingCriteriaList([stopping_criteria])89 90 91 92prompt= """<bos><start_of_turn>system93Eres un agente experto en finanzas multilenguaje.<end_of_turn>94<start_of_turn>user95**news:**96In a sudden decision, investment firm 21Shares submitted a filing to the Securities and Exchange Commission in the late afternoon of Friday, May 31, to rename its proposed spot Ether 97ETH98tickers down99$3,686100exchange-traded fund (ETF) and to remove ARK Invest from the application.101A spokesperson for ARK Invest later confirmed the firm decided not to move forward with the crypto product, citing a need to reassess its investment strategy. The move raised concerns among the crypto community concerning the short-term viability of the newly approved ETFs.102During an interview on June 5, United States Securities and Exchange Commission (SEC) Chair Gary Gensler suggested a delay in final approvals for asset managers. ETFs will “take some time,” said Gensler. The SEC has yet to sign off on S-1 registration statements from applicants.103ARK Invest and 21Shares will remain partners on their spot Bitcoin 104BTC105tickers down106$69,346107ETF, launched in January.108This week’s Crypto Biz also explores Galaxy Digital’s tokenized loan for Animoca Brands, Avail’s fundraising, the Toposware acquisition, and Bitcoin miners’ first reports since the halving.109Galaxy Digital uses historic violin NFT to secure loan110Michael Novogratz’s Galaxy Digital and Animoca Brands co-founder Yat Siu have tokenized a Stradivarius violin from 1708 to use as collateral for a multimillion-dollar loan. On June 4, Galaxy reportedly lent an undisclosed amount of funds to Siu, who used the 316-year-old violin he owned as collateral. The digital assets firm turned the violin into a nonfungible token (NFT) and will hold the NFT and the physical version until Siu settles the loan. The violin once belonged to the Russian Empress Catherine the Great.111 112genera un grafo de razonamiento que contenga nodes: 10 y edges: 20<end_of_turn>113<start_of_turn>model114"""115 116input= tokenizer(prompt,117                 return_tensors="pt",118                 add_special_tokens=False).to(model.device)119 120max_new_tokens=1500121generation_config = GenerationConfig(122              max_new_tokens = max_new_tokens,123              temperature = .3,124              # top_p=0.55,125              # top_k = 50,126              # repetition_penalty = 1.1,127              do_sample=True,128          )129outputs = model.generate(**input,130                         generation_config=generation_config,131                         stopping_criteria=stopping_criteria_list,132                        )133print(tokenizer.decode(outputs[0], skip_special_tokens=False) )134 135##output:136# {'nodes': [{'entity': 'ARK Invest', 'type': 'Organization'}, {'entity': '21Shares', 'type': 'Organization'}, {'entity': 'SEC', 'type': 'Organization'}, {'entity': 'Gary Gensler', 'type': 'Person'}, {'entity': 'United States Securities and Exchange Commission', 'type': 'Organization'}, {'entity': 'Galaxy Digital', 'type': 'Organization'}, {'entity': 'Animoca Brands', 'type': 'Organization'}, {'entity': 'Toposware', 'type': 'Organization'}, {'entity': 'Bitcoin miners', 'type': 'Organization'}, {'entity': 'S-1 registration statements', 'type': 'Document'}], 'edges': [{'from': 'ARK Invest', 'to': '21Shares', 'relation': 'ASSOCIATED_WITH'}, {'from': 'ARK Invest', 'to': 'SEC', 'relation': 'ASSOCIATED_WITH'}, {'from': 'ARK Invest', 'to': 'Gary Gensler', 'relation': 'ASSOCIATED_WITH'}, {'from': '21Shares', 'to': 'SEC', 'relation': 'ASSOCIATED_WITH'}, {'from': '21Shares', 'to': 'Gary Gensler', 'relation': 'ASSOCIATED_WITH'}, {'from': 'SEC', 'to': 'Gary Gensler', 'relation': 'WORKED_AT'}, {'from': 'SEC', 'to': 'United States Securities and Exchange Commission', 'relation': 'PART_OF'}, {'from': 'Galaxy Digital', 'to': 'Animoca Brands', 'relation': 'ASSOCIATED_WITH'}, {'from': 'Galaxy Digital', 'to': 'Toposware', 'relation': 'ASSOCIATED_WITH'}, {'from': 'Galaxy Digital', 'to': 'Bitcoin miners', 'relation': 'ASSOCIATED_WITH'}, {'from': 'Galaxy Digital', 'to': 'S-1 registration statements', 'relation': 'ASSOCIATED_WITH'}, {'from': 'Animoca Brands', 'to': 'Toposware', 'relation': 'ASSOCIATED_WITH'}, {'from': 'Toposware', 'to': 'Bitcoin miners', 'relation': 'ASSOCIATED_WITH'}, {'from': 'Bitcoin miners', 'to': 'S-1 registration statements', 'relation': 'ASSOCIATED_WITH'}, {'from': 'S-1 registration statements', 'to': 'SEC', 'relation': 'ASSOCIATED_WITH'}, {'from': 'S-1 registration statements', 'to': 'Galaxy Digital', 'relation': 'ASSOCIATED_WITH'}, {'from': 'S-1 registration statements', 'to': 'Animoca Brands', 'relation': 'ASSOCIATED_WITH'}, {'from': 'S-1 registration statements', 'to': 'Toposware', 'relation': 'ASSOCIATED_WITH'}, {'from': 'S-1 registration statements', 'to': 'Bitcoin miners', 'relation': 'ASSOCIATED_WITH'}, {'from': 'S-1 registration statements', 'to': '21Shares', 'relation': 'ASSOCIATED_WITH'}]}137```138 139 140![image/png](https://cdn-uploads.huggingface.co/production/uploads/641b435ba5f876fe30c5ae0a/3_iflpJDHp6CotDVoO9Qc.png)141 142 143![image/png](https://cdn-uploads.huggingface.co/production/uploads/641b435ba5f876fe30c5ae0a/4vYQAYSZKHD_bQHB8r_6s.png)144 145## https://huggingface.co/NickyNicky/Financial_graph/blob/main/3d_graph%20(1).html146![image/png](https://cdn-uploads.huggingface.co/production/uploads/641b435ba5f876fe30c5ae0a/x4gHsLa0GvTHuEPbQidNe.png)147 148```149better than BloombergGPT :V150```151 152## colab153```154https://colab.research.google.com/drive/1-D7kgig6ODqhjCPaQBrZ8QG2OWsS29ML?usp=sharing155```