TL;DR
Fine-tuning a model to read the company or industry together with the headline resolved target-specific errors that frozen Qwen embeddings retained. On a fresh test panel of 161 company and 351 industry examples, the final classifier agreed with Claude Haiku sentiment labels, written under my investor rubric, on 85.7% and 87.2% of them. Those are agreement rates with an AI teacher, and a human-graded acceptance set is the next step.
The backfill scored 67.79 million of 71.86 million target pairs. Estimated scoring fell to $3 to $5 after measured batches, compared with about $8,754 for the same distinct inputs using my language-model setup. Part 2 will test whether these scores improve trading returns after costs.
The results at a glance
- Final v3 sentiment agreement, fresh test panel
- Company: 85.7% (138/161). Industry: 87.2% (306/351).Agreement with Claude Haiku labels under my rubric, on stories outside training.
- Final v3 relevance precision, fresh test panel
- Company: 84.0%. Industry: 82.3%.Relevance asks whether a headline concerns the target; sentiment asks which direction it points.
- Archive coverage
- 67.79M scored / 71.86M target pairs.4.07M pairs carry an unscored non-ASCII status.
- Estimated scoring cost
- $3 to $5 classifier / about $8,754 language model.Same 61.62M distinct inputs; the classifier estimate awaits the settled bill.
The final rubric improved company sentiment agreement from 82.6% to 85.7% and industry agreement from 82.9% to 87.2%. Company relevance precision moved from 86.6% to 84.0%, while industry precision rose from 77.8% to 82.3%. Each metric keeps its own task and evaluation population.
These results establish a practical way to measure news at archive scale. Trading returns after realistic costs are the subject of the follow-up experiment.
1. The question: can news sentiment improve a trading strategy?
After the Cambridge Analytica revelations, Facebook shares fell nearly 7% on March 19, 2018. CNNMoney reported about $37 billion erased from the company's market value and about $5 billion from Mark Zuckerberg's estimated net worth that Monday.
I want to measure how company-specific news relates to later stock returns and whether a strategy can use it after costs. That requires consistent headline classification before the trading test.
Watch part 1: the methodology
The dataset: headlines, targets and labels
GDELT's Global Knowledge Graph supplies the headline archive. The selected batches span September 22, 2019 through October 18, 2026. This is a headline-only model: each input pairs a headline with one company or industry.
The scoring archive holds 71.86 million deduplicated target pairs: 67.79 million scored and 4.07 million with an unscored non-ASCII status.
The v3 training file contains 21,703 rows, combining SEntFiN's human entity-sentiment annotations, cached Massive news labels, and labeled company/industry samples. Haiku relabeled selected examples under my investor rubric; SEntFiN author labels stayed unchanged. Unknown labels are masked per task.
For fresh data, I sampled 12,138 candidate pairs across 9,940 stories from the October 18 and 19 collector. Grouping related titles and URLs kept all targets for a story in the same split: approximately 80% training, 10% validation and 10% testing. Sampling excluded previously labeled stories, repeated pairs and non-ASCII headlines.
One headline creates two labeled examples
For "Extreme Networks' Agentic AI Push Is Fueling Gains Against Cisco, HPE", the saved HPE example has a negative reference label, while the Extreme Networks example has a positive reference label. The model receives the requested target with the headline, so each pair has its own answer.
2. The model comparison: read the headline with its target
A headline can help one company and hurt another. I therefore ask two questions about each company or industry: is the headline relevant, and is the news negative, neutral or positive for that target?
I first used Qwen3-Embedding-8B to turn headlines into vectors, froze those vectors, and trained a small neural-network classifier on top. Cached vectors made each new classifier fit take about a second. The retained company model reached 73.9% agreement even on its own 4,789 training pairs.
The winner-and-loser distinction exposed the problem. On the Extreme Networks headline below, the frozen approach called the news positive for both Extreme Networks and HPE. Fine-tuned DeBERTa-v3-base reads the target and headline together, allowing those words to interact before classification.
The fine-tuned model separated the two targets in this saved diagnostic example. The matched validation comparison above measures the broader change.
Extreme Networks' Agentic AI Push Is Fueling Gains Against Cisco, << HPE >>
Target: HPE. Right answer: negative. Embeddings approach: positive ✗. Fine-tuned model: negative ✓.
<< Extreme Networks >>' Agentic AI Push Is Fueling Gains Against Cisco, HPE
Target: Extreme Networks. Right answer: positive. Embeddings approach: positive ✓. Fine-tuned model: positive ✓.
3. The measured results and their trade-offs
Read the explanation
The final model matched Haiku on 138 of 161 company sentiment examples and 306 of 351 industry examples. Stories were grouped before splitting so the same story did not appear in both training and evaluation. Validation chose the candidate before its fresh test was read. These numbers measure agreement with Claude Haiku labels under my stated rubric. I shaped that rubric by reviewing individual misses myself. For example, I decided that a Warren Buffett headline can be about Berkshire Hathaway and that an Elon Musk headline can be about DOGE. A human-graded acceptance set is the next step, and it will turn agreement into an accuracy estimate.
The rubric improved sentiment agreement while company relevance precision fell by 2.6 percentage points. Neutral company examples scored negative fell from 8 to 2; negative-to-positive reversals increased from 1 to 2 of 161 examples. The test panel had already been inspected under the previous rubric before it was relabeled.
The model also inherits the teacher's investor policy. Its commodity labels follow producers, routine product launches and law-firm notices are neutral, and acquisitions are neutral for the acquirer and positive for the target. Those choices define the trading input.
4. What else I tested, including fine-tuned baselines
Read the explanation
I fine-tuned other models before DeBERTa. On October 18 and 19, a fine-tuned ModernBERT encoder lost to the embedding classifiers: 75.5% versus 84.7% on 72 company test references, and 73.5% versus 85.8% on 54 industry references. That pilot had only 552 company and 412 industry direction labels to learn from. DeBERTa v1 trained on 7,635 direction labels.
On October 15, I also adapted a MiniLM relevance encoder and an earlier ModernBERT sentiment encoder to cached GDELT labels. Later I benchmarked a local Qwen3-4B model without fine-tuning, and compared XGBoost with the neural-network head on the same cached Qwen vectors. None of them replaced the frozen-embedding baseline at the time.
Each row uses its own evaluation panel. None of these panels is the 434 and 378 example validation panel or the 161 and 351 example fresh test behind the headline results, so compare each row only with the baseline numbers in the same row.
I did not test FinBERT. The ProsusAI FinBERT weights are licensed for noncommercial use only, which rules them out for NexusTrade. I also did not test LoRA fine-tuning of the Qwen embedding model itself, which would keep the 8B model's inference cost.
Show the table · 6 rows, 4 columns
Scroll sideways to compare all columns. Select a heading to sort.
| Fine-tuned ModernBERT, October 18 to 19 | Pilot test: 72 company and 54 industry known directions, two-teacher AI labels, mean of 3 seeds | Company 75.5% versus 84.7% for the joint-embedding MLP (75.0% for the earlier MLP). Industry 73.5% versus 85.8% for the validation-selected MLP (95.1% for the earlier MLP). | Lost. Trained on 552 company and 412 industry direction labels. |
| Fine-tuned MiniLM relevance encoder and ModernBERT sentiment encoder, October 15 | Fixed regression limits on Massive and GDELT validation | MiniLM finished 1,024 steps, and every adapted checkpoint failed the regression limits. ModernBERT's evaluated step-128 checkpoint failed its Massive validation guard before I paused the run. | Original weights kept for both. |
| Local Qwen3-4B (Q4_K_M), not fine-tuned, October 19 | 72 recent company, 54 recent industry and 368 historical industry known labels | Sentiment agreement 69.4%, 40.7% and 55.7%, versus 85.6%, 95.7% and 81.4% for the fitted MLPs. About 1.39 pairs per second on 1,147 pairs. | Not promoted. |
| XGBoost on the same Qwen vectors, October 15 | 1,267 article and ticker reference pairs from 2,000 common test headlines, cached teacher scores | Sentiment mean absolute error 0.1306 versus 0.1170 for the MLP at 20,000 articles (lower is better). Sign agreement 60.3% versus 65.5%. | MLP kept. |
| FinBERT | Not tested | No result | ProsusAI weights are licensed CC BY-NC-SA 4.0, noncommercial. |
| LoRA fine-tuning of Qwen3-Embedding-8B | Not tested | No result | Would keep the 8B inference cost. |
No matching rows. Clear the filter to see all records.
Each row is scored on its own panel, so its numbers compare only with the baseline in the same row. None of these panels is the panel behind the headline results.
5. Production and cost: score the archive once, then catch up
The completed backfill reconciles across all 64 partitions: 103.06 million raw headline-target matches became 71.86 million unique target pairs. It scored 67.79 million pairs and kept 4.07 million with a non-ASCII status. Repeated target/text inputs reused inference within a partition.
The classifier processed 61.62 million distinct inputs in 3.60 summed GPU-hours, averaging 4,756 inputs per GPU-second. The working scoring estimate fell from an initial $5 to $15 GPU budget to $3 to $5 including preparation after the measured buckets. The final provider bill is still outstanding.
Sending those same 61.62 million distinct inputs to Claude Haiku 5.5 Batch would cost about $8,754 at the recorded job prices. That estimate uses my measured average of 2,367 input and 95 output tokens per judgment, priced at $0.05 per million input tokens and $0.25 per million output tokens.
Teacher labels cost $4.38 in recorded spend. The v2 rented training run cost about $0.18; v1 and v3 trained on the M3 Max. Storage, collection, engineering and future relabeling sit outside the scoring estimate. Daily collection scores new unmatched work instead of rereading the archive.
6. What Part 2 will test
The next question is whether target-specific news sentiment adds useful information about later stock returns. Part 2 will report the trading experiment and its costs.
The comparison needs a strategy with sentiment and a baseline under the same trading rules, using a period held outside strategy selection. It must account for fees and execution costs, use news only after it was available, and decide how to handle missing coverage and syndicated copies. Returns, drawdowns and trading activity will show what the signal changes.
You can inspect the inputs now: open Apple's sentiment history, compare its positive, neutral and negative headlines, and check which days have coverage before choosing a rule.
Technical appendix: evidence and methodology
The final classifier agrees on 85.7% of company examples
The selected v3 model matched Haiku's sentiment labels on 138 of 161 company examples (85.7%) and 306 of 351 industry examples (87.2%). Stories were grouped before splitting so the same story did not appear in training and evaluation. Selection used validation; the candidate was frozen before this fresh test was read.
These figures measure agreement with a single AI teacher under a stated rubric. The stories remained outside training, but the test panel had already been inspected under the previous rubric before relabeling. A new future-source test will measure how the classifier handles later news.
The change has a measurable cost: company relevance precision fell from 86.6% to 84.0%. Neutral company examples scored negative fell from 8 to 2, while negative-to-positive reversals increased from 1 to 2 of 161 examples. The older industry validation, still labeled under the old policy, fell from 88.1% to 81.0%.
Levi & Korsinsky Urges GoDaddy Inc. (GDDY) Shareholders to Act Before ...
GoDaddy, law-firm notice. Labeled neutral. Before: negative. After: neutral.
Did You Lose Money on Beta Bionics, Inc. (BBNX)? Levi & Korsinsky Urges ...
Beta Bionics, law-firm notice. Labeled neutral. Before: negative. After: neutral.
Lost Money on Innventure, Inc. (INV)? Join Class Action Before October ...
Innventure, law-firm notice. Labeled neutral. Before: negative. After: neutral.
Nvidia denies RTX 5090 discontinued claims amid ongoing supply shortages
Nvidia, still wrong. Labeled neutral. Before: negative. After: positive.
Alector (NASDAQ: ALEC) prices shares at a 7.3% premium in stock sale
Alector, still wrong. Labeled neutral. Before: positive. After: positive.
A model call per match is the wrong cost structure
The frozen archive contained 103,055,832 headline-target matches. A target is the company or industry named by a match. One headline can have several targets, and repeated observations add more rows. The expensive unit is the headline-target judgment, not just a unique article.
Even a cheap language model has to read each input and produce an answer. The labels can differ too. For the same Google Play Fest headline and the same Alphabet target, my saved pilot has Claude Haiku 5.5 calling it positive while Claude Sonnet 5.5 calls it neutral. I needed an explicit investor rubric and a repeatable classifier.
I can put a price on that choice using my own relabeling job. Its 21,464 successful Claude Haiku 5.5 Batch requests used 50,801,133 input tokens and 2,037,386 output tokens. At the job's $0.05 per million input tokens and $0.25 per million output tokens, the sample cost $3.0494. That is about 2,367 input tokens and 95 output tokens per judgment.
The saved model disagreement
Google Play Fest is coming to shower app lovers with sweepstakes and big discounts. Target: Alphabet. Claude Haiku 5.5: positive. Claude Sonnet 5.5: neutral.
Use the language model as a teacher
Label a selected training sample and state the investor rubric.
Use the specialist model at archive scale
Train on those examples, test on separate stories, then save a score for each eligible target pair.
Show the table · 7 rows, 2 columns
| Claude Haiku 5.5 Batch | Recorded usage or price |
|---|---|
| Input rate | $0.05 per 1M tokens |
| Output rate | $0.25 per 1M tokens |
| Successful sample | 21,464 requests |
| Average input / output | 2,366.81 / 94.92 tokens |
| 103,055,832 raw matches | $14,641 estimated |
| 71,858,132 unique target pairs | $10,209 estimated |
| 61,618,694 distinct model inputs | $8,754 estimated |
No matching rows. Clear the filter to see all records.
Archive costs extrapolate the measured sample's token lengths and recorded Batch prices. Repeated inputs, prompt length and model choice determine the total.
The classifier has two jobs
First it decides whether the headline is really about the requested company or industry. Then it classifies the news as negative, neutral or positive for that target. A headline about a rival winning business can have opposite answers for the winner and loser.
The continuous score is P(positive) minus P(negative), from -1 to +1. Relevance filters passing mentions before those scores become an indicator. A value near zero can reflect neutrality or offsetting class probabilities; it is useful to inspect the direction and coverage alongside the average.
Qwen made the first experiment quick and cheap
I started with Qwen3-Embedding-8B. It converts text into numerical vectors. I froze and cached those vectors, then trained small neural-network classifiers on top. Once the vectors existed, fitting another small head took about a second, making model variants inexpensive to compare.
That was a sensible first experiment: test whether an existing text representation already contains the distinctions this task needs. The earlier XGBoost-versus-MLP comparison used the same cached features and favored the MLP for sentiment.
The first model could not fit its own training data
The retained company MLP scored 73.9% on its own 4,789 training pairs. This training result exposed a fitting problem before I could even ask how well it generalized. Longer fitting and reweighting did not repair the examples that depended on which company benefited.
For MTNL's narrowing-loss headline, the nearest vectors grouped MTNL stories with mixed sentiment. My interpretation was that the frozen representation emphasized identity and topic more strongly than the relationship the classifier needed.
MTNL snaps 18% post block deal on NSE
Labeled negative. Similarity 0.93.
MTNL fails to deliver every time: Hemen Kapadia
Labeled negative. Similarity 0.93.
MTNL on a roll, hits 52-week high; up 70% in 2012
Labeled positive. Similarity 0.92.
MTNL raises Rs 3,768.97 crore through bonds this fiscal: Government
Labeled positive. Similarity 0.92.
MTNL raises Rs 1.5k crore through 10-year Bonds
Labeled positive. Similarity 0.91.
The replacement reads the target and headline together
I fine-tuned DeBERTa-v3-base, a model with about 184 million parameters, to read a target such as 'Company: HPE' together with the headline and its matched mention marked. A cross-encoder lets those words interact before it makes the classification.
On matched validation views, it improved on the focused MLP. The earlier ModernBERT pilot had lost with roughly 550 company and 410 industry direction labels. This run started with 7,635 direction labels and 8,639 relevance labels. Architecture and supervision changed together.
The training labels had bugs too
Changing the model also required cleaning the supervision. I masked 621 imported SEntFiN rows whose target binding was wrong, such as a stock index mapped to a company. Unknown direction stayed masked rather than becoming neutral. The author-provided sentiment labels were not rewritten.
Sensex rangebound; top 20 intraday trading ideas
Imported as National Spot Exchange Limited. Actually names a stock index.
Nifty likely to trade in 7500-7700 range
Imported as National Spot Exchange Limited. Actually names a stock index.
Dow drops 300 points as US stocks plunge
Imported as Dow. Actually names the Dow Jones index.
FMC mulls centre-specific commodity forward trades
Imported as FMC. Actually names a commodities regulator.
LIC likely to pick 5 per cent stake in BHEL
Imported as Lic Housing Finance Ltd.. Actually names Life Insurance Corporation.
Real news traffic broke relevance
Fresh collector traffic exposed irrelevant matches that curated training data barely contained. A sports headline mentioning silver medals is not evidence about the silver industry. Adding 12,138 fresh candidate pairs made the relevance classifier confront the actual traffic.
On the 850-pair fresh industry test, the old-data model accepted 811 pairs, including 333 labeled irrelevant. The fresh-data candidate accepted 562, including 104 labeled irrelevant. Precision rose from 58.9% to 81.5%. These are v1-versus-v2 relevance results, separate from the v3 sentiment results below.
Para Asian Games: Mona Agarwal, Avani Lekhara secure gold, << silver >> in 10m air rifle standing
Target: silver. Labeled not relevant.
Analysis: For Trump, results have often revealed the << art >> of no deal
Target: art. Labeled not relevant.
Trump's << intel >> chief warns AI companies over rogue agents hacking websites
Target: Intel. Labeled not relevant.
Quakes clinch << playoff >> spot with draw vs. MLS-leading Nashville
Target: sports and fitness. Labeled not relevant.
Show the table · 2 rows, 5 columns
Scroll sideways to compare all columns. Select a heading to sort.
| Industry pairs (850, 481 truly relevant) | 333 of 811 | 104 of 562 | 58.9% | 81.5% |
| Company pairs (374, 248 truly relevant) | 82 of 330 | 25 of 264 | 75.1% | 90.5% |
No matching rows. Clear the filter to see all records.
Before: trained on the old data. After: added the fresh labels. Counts derive from recorded precision and recall.
The labeler disagreed with itself
The teacher itself needed a policy. Reports of the same oil-facility strikes received opposite original labels for oil. I wrote an investor rubric, then had Haiku relabel 21,464 pairs for $3.05.
The rubric makes commodity prices follow producers, treats facility damage as negative, and keeps routine product launches and law-firm notices neutral. Buy, Hold and Sell ratings follow their stated direction. An acquisition is neutral for the acquirer and positive for the target.
Russian oil sites ablaze as Ukraine launches more than 1,000 drones
Original label for oil: positive.
Ukrainian strike sparks major fire at Saint Petersburg oil refinery
Original label for oil: positive.
St Petersburg on fire as Zelensky defies Trump again with massive strike hitting oil depot
Original label for oil: negative.
Ukraine launches 1,000+ drones at St. Petersburg oil sites after Trump's energy ceasefire claim
Original label for oil: negative.
More training made validation worse
Training loss fell every epoch, but validation peaked at epoch 3 on all three runs, so I kept epoch 3.
Show the table · 6 rows, 4 columns
Scroll sideways to compare all columns. Select a heading to sort.
| Epoch 1 | 1.095 | 0.8359 | discarded |
| Epoch 2 | 0.651 | 0.8636 | discarded |
| Epoch 3 | 0.463 | 0.8677 | kept |
| Epoch 4 | 0.334 | 0.8524 | discarded |
| Epoch 5 | 0.241 | 0.8592 | discarded |
| Epoch 6 | 0.183 | 0.8643 | discarded |
No matching rows. Clear the filter to see all records.
One v3 training run. Higher validation score is better.
The cost comparison: about $8,754 versus a $5 to $15 GPU budget
For the same 61.62 million distinct inputs, the language-model estimate is about $8,754. The specialist classifier's initial GPU budget was $5 to $15, or roughly $8.74 thousand less estimated compute. After the first measured buckets, the working scoring estimate fell to $3 to $5 including preparation. The provider's settled bill will give the final scoring cost.
Fresh labels cost $1.33, and the rubric relabel cost $3.05: $4.38 in recorded labeling spend. The v2 training run cost about $0.18 on a rented RTX A4500. The v1 and v3 runs trained on the M3 Max without an additional cloud GPU charge.
The daily CPU probe measured roughly 120 to 140 pairs per second. Actual daily cost depends on incoming volume, model load time, catch-up work and the machine's billed runtime. The archive estimate excludes storage, collection, engineering and future relabeling.
Show the table · 7 rows, 3 columns
Scroll sideways to compare all columns. Select a heading to sort.
| Haiku 5.5 Batch, 61.62M inputs | About $8,754 | Measured token usage extrapolated at the recorded Batch prices |
| Fresh teacher labels | $1.33 | Recorded spend |
| Rubric relabel | $3.05 | Recorded spend |
| v2 rented training | About $0.18 | Recorded GPU estimate |
| Historical scoring, initial | $5 to $15 GPU + about $1 CPU | Pre-benchmark estimate |
| Historical scoring, revised | $3 to $5 total | Working estimate after measured buckets |
| Historical scoring, final bill | Unverified | Execution receipts do not settle billing |
No matching rows. Clear the filter to see all records.
Dollar estimates and measured execution are kept distinct.
All eight saved diagnostic target cases
Extreme Networks' Agentic AI Push Is Fueling Gains Against Cisco, << HPE >>
Target: HPE. Right answer: negative. Embeddings approach: positive ✗. Fine-tuned model: negative ✓.
<< Extreme Networks >>' Agentic AI Push Is Fueling Gains Against Cisco, HPE
Target: Extreme Networks. Right answer: positive. Embeddings approach: positive ✓. Fine-tuned model: positive ✓.
Macquarie initiates neutral rating on Lupin
Target: Lupin. Right answer: neutral. Embeddings approach: positive ✗. Fine-tuned model: neutral ✓.
<< TTML >> narrows down net loss to Rs 156.36 crore in Q3
Target: TTML (Tata Teleservices). Right answer: positive. Embeddings approach: negative ✗. Fine-tuned model: positive ✓.
<< MTNL >>'s Q2 loss narrows to Rs 947 crore
Target: MTNL. Right answer: positive. Embeddings approach: negative ✗. Fine-tuned model: positive ✓.
Manufacturing, << Construction >> Add Jobs in New September Report
Target: Construction industry. Right answer: positive. Embeddings approach: neutral ✗. Fine-tuned model: positive ✓.
<< Google >> antitrust lawsuit: Google wins dismissal of Chegg, Penske Media lawsuits over AI overviews
Target: Alphabet (Google). Right answer: positive. Embeddings approach: positive ✓. Fine-tuned model: positive ✓.
Google antitrust lawsuit: Google wins dismissal of << Chegg >>, Penske Media lawsuits over AI overviews
Target: Chegg. Right answer: negative. Embeddings approach: negative ✓. Fine-tuned model: positive ✗.
Complete backfill timing and publication scope
The completed receipts reconcile exactly: 103,055,832 raw matches became 71,858,132 unique headline-target pairs. Of those, 67,791,808 received scores and 4,066,324 carried a non-ASCII status. That filter is a real coverage limit.
Inference used 61,618,694 distinct inputs. The saved buckets report 3.60 summed GPU-hours and a weighted 4,756 inputs per GPU-second, with bucket rates from 4,382 to 5,415. Partitioning took 529 seconds. GPU-hours add time across devices; they are different from elapsed time and billed machine-hours.
The production cutover record reports about 20.6 million headlines and 22.1 million ticker rows republished for 2019 through 2026. That ticker table is narrower than the company-and-industry scoring archive. Each daily collector pass scores new unmatched work rather than rereading the entire archive.
Dataset inventory and split ownership
Read the explanation
The archive retains GDELT observation times separately from publisher publication times, which need their own validation before a trading test. The archive counts describe several units. A GDELT observation is an occurrence in a source batch. A headline version is identified by its original URL and raw title. A headline-target pair adds a company or industry target. Story groups connect related titles or URLs for the training split, and repeated model inputs can share inference.
The initial training mixture included SEntFiN entity judgments, cached Massive/Haiku article-derived and headline-only labels, and separately labeled industry samples. The 621 imported SEntFiN rows with invalid issuer bindings were masked without rewriting the authors' sentiment labels. Missing target annotations were not treated as negative examples.
The fresh sample produced 12,101 valid Haiku labels. Its original labeled split contained 9,599 training rows, 1,230 validation rows and 1,272 test rows. The later 21,464-pair rubric relabel covered the fresh pool plus older pilot and industry examples. The v3 training file combines the training-owned rows with the retained earlier supervision; these job and file counts describe different populations.
Keyword matching limits candidate recall: an unnamed company may be absent even when the headline affects it. Syndicated headlines require story grouping or weighting, and the non-ASCII exclusion leaves 4,066,324 archive pairs unscored. The final test panel's previous inspection under the earlier rubric is recorded in the evaluation section.
Show the table · 9 rows, 3 columns
Scroll sideways to compare all columns. Select a heading to sort.
| Historical GDELT observations | 330,330,294 | Source-batch observations in the completed raw archive |
| Unique URL + raw-title versions | 329,292,748 | Headline versions before target matching |
| Raw candidate associations | 103,055,832 | Headline observations matched to candidate targets |
| Unique target pairs in scoring output | 71,858,132 | 67,791,808 scored; 4,066,324 non-ASCII status |
| Distinct model inputs | 61,618,694 | Repeated target/text combinations reuse inference |
| Final v3 TRAIN file | 21,703 rows | Combined training examples, with task-specific label masks |
| Fresh candidate sample | 12,138 pairs / 9,940 stories | October 18 and 19 collector additions |
| Valid fresh teacher labels | 12,101 pairs | 9,599 TRAIN; 1,230 validation; 1,272 TEST |
| Investor-rubric relabel job | 21,464 pairs | Fresh pool plus earlier pilot and industry examples |
No matching rows. Clear the filter to see all records.
The labeled training collection and the archive being scored have separate roles. Counts come from the saved preparation, labeling and completed backfill records.
Methodology, data and costs
- Input
- "Company: name" or "Industry: name", plus the headline with the matched mention wrapped in << >>
- Outputs
- Relevance and sentiment, each loss masked when the label is unknown
- Frozen-embedding approach
- Frozen Qwen3-Embedding-8B vectors with a 3,079 to 128 to 64 to 3 classifier
- Cross-encoder approach
- microsoft/deberta-v3-base (184M parameters), 6 epochs, learning rate 2e-5, batch 32, max length 96
- v1 training labels
- 7,635 direction and 8,639 relevance labels
- Label repair
- 621 SEntFiN rows masked (Sensex and Nifty bound to an exchange, the Dow index, the FMC regulator, bare LIC, Nasdaq as an index); none relabeled
- Fresh data
- Collector additions for October 18 and 19: 89,509 headlines, 27,566 matches, 12,138 pairs in 9,940 stories, split 80/10/10 by story
- Rubric
- Commodities follow producers; facility damage is negative; premium rises help insurers; routine launches, filings and law-firm notices are neutral; ratings follow their direction
- Versions
- v1 old data; v2 adds fresh labels; v3 adds the investor rubric. Validation chose the checkpoint before the v3 test read. The same out-of-training test stories had already been inspected under the previous rubric.
- Costs
- Fresh labels $1.33; rubric relabel $3.05; v2 training on a rented RTX A4500 about $0.18; v1 and v3 trained on an Apple M3 Max
No comments yet.