Dans cet exemple, nous utilisons les transformateurs Jina, PyTorch et Hugging Face pour créer un système de réponse aux questions financières basé sur BERT prêt pour la production. Nous adaptons une approche de reclassement des passages en récupérant d'abord les 50 meilleures réponses des candidats, puis en reclassant les réponses des candidats à l'aide de FinBERT-QA, un modèle basé sur BERT affiné sur l'ensemble de données FiQA qui a obtenu les résultats les plus avancés.
? Veuillez vous référer à ce didacticiel pour un guide étape par étape et des explications détaillées.
Motivés par la demande émergente dans le secteur financier pour l'analyse automatique des données non structurées et structurées à grande échelle, les systèmes d'assurance qualité peuvent offrir des avantages lucratifs et compétitifs aux entreprises en facilitant la prise de décision des conseillers financiers. Le but de notre système est de rechercher une liste de passages de réponses pertinents pour une question. Voici un exemple de question et de réponse de vérité terrain tirées de l'ensemble de données FiQA :
https://github.com/yuanbit/jina-financial-qa-search.git
Nous utiliserons jina-financial-qa-search/
comme répertoire de travail.
pip install -r requirements.txt
bash get_data.sh
Nous souhaitons indexer un sous-ensemble des passages de réponses de l'ensemble de données FiQA, dataset/test_answers.csv
:
398960 From http://financial-dictionary.thefreedictionary.com/Business+Fundamentals The facts that affect a company's underlying value. Examples of business fundamentals include debt, cash flow, supply of and demand for the company's products, and so forth. For instance, if a company does not have a sufficient supply of products, it will fail. Likewise, demand for the product must remain at a certain level in order for it to be successful. Strong business fundamentals are considered essential for long-term success and stability. See also: Value Investing, Fundamental Analysis. For a stock the basic fundamentals are the second column of numbers you see on the google finance summary page, P/E ratio, div/yeild, EPS, shares, beta. For the company itself it's generally the stuff on the 'financials' link (e.g. things in the quarterly and annual report, debt, liabilities, assets, earnings, profit etc.
19183 If your sole proprietorship losses exceed all other sources of taxable income, then you have what's called a Net Operating Loss (NOL). You will have the option to "carry back" and amend a return you filed in the last 2 years where you owed tax, or you can "carry forward" the losses and decrease your taxes in a future year, up to 20 years in the future. For more information see the IRS links for NOL. Note: it's important to make sure you file the NOL correctly so I'd advise speaking with an accountant. (Especially if the loss is greater than the cost of the accountant...)
327002 To be deductible, a business expense must be both ordinary and necessary. An ordinary expense is one that is common and accepted in your trade or business. A necessary expense is one that is helpful and appropriate for your trade or business. An expense does not have to be indispensable to be considered necessary. (IRS, Deducting Business Expenses) It seems to me you'd have a hard time convincing an auditor that this is the case. Since business don't commonly own cars for the sole purpose of housing $25 computers, you'd have trouble with the "ordinary" test. And since there are lots of other ways to house a computer other than a car, "necessary" seems problematic also.
Vous pouvez modifier le chemin d’accès à answer_collection.tsv
pour l’indexer avec l’ensemble de données complet.
python app.py index
À la fin, vous verrez ce qui suit :
✅ done in ⏱ 1 minute and 54 seconds ? 7.7/s
gateway@18904[S]:terminated
doc_indexer@18903[I]:recv ControlRequest from ctl▸doc_indexer▸⚐
doc_indexer@18903[I]:Terminating loop requested by terminate signal RequestLoopEnd()
doc_indexer@18903[I]:#sent: 56 #recv: 56 sent_size: 1.7 MB recv_size: 1.7 MB
doc_indexer@18903[I]:request loop ended, tearing down ...
doc_indexer@18903[I]:indexer size: 865 physical size: 3.1 MB
doc_indexer@18903[S]:artifacts of this executor (vecidx) is persisted to ./workspace/doc_compound_indexer-0/vecidx.bin
doc_indexer@18903[I]:indexer size: 865 physical size: 3.2 MB
doc_indexer@18903[S]:artifacts of this executor (docidx) is persisted to ./workspace/doc_compound_indexer-0/docidx.bin
Nous devons créer un exécuteur personnalisé pour reclasser les 50 meilleures réponses des candidats. Nous pouvons le faire avec l'API Jina Hub. Assurons-nous que l'extension Jina Hub est installée :
pip install "jina[hub]"
Nous pouvons créer le Ranker personnalisé, FinBertQARanker
en exécutant :
jina hub build FinBertQARanker/ --pull --test-uses --timeout-ready 60000
Nous pouvons désormais utiliser notre moteur de recherche Financial QA en exécutant :
python app.py search
Le Ranker peut prendre un certain temps pour calculer les scores de pertinence car il utilise un modèle basé sur BERT. Vous pouvez essayer cette liste de questions de l'ensemble de données FiQA :
• What does it mean that stocks are “memoryless”?
• What would a stock be worth if dividends did not exist?
• What are the risks of Dividend-yielding stocks?
• Why do financial institutions charge so much to convert currency?
• Is there a candlestick pattern that guarantees any kind of future profit?
• 15 year mortgage vs 30 year paid off in 15
• Why is it rational to pay out a dividend?
• Why do companies have a fiscal year different from the calendar year?
• What should I look at before investing in a start-up?
• Where do large corporations store their massive amounts of cash?
#JinaSearch
Copyright (c) 2021 L'amie de Jina. Tous droits réservés.