SPB Git forge

spb/wp13_uqo

Public
3commits 1branches 1releases
1.2 MBsize
maindefault branch
4 h agolast push
TeX 93.9% Python 6%
15.2 KB · 198 lines markdown
Rendered Raw Blame History
1<!--2Author: Simon-Pierre Boucher3Contact: simon-pierre.boucher@uqo.ca4-->56# CHANGELOG — Révision scientifique complète (editorial board, 2026-10-17)78Papier : **WP 13 — VQuant: An Agentic Large Language Model Architecture for Automated Quantitative9Financial Analysis and Document Generation** (`finance/vquant-llm-quant-platform`, dépôt `wp13_uqo.git`).10État de départ figé : tag `pre-revision-20261017`, PDF `docs/main_pre-revision-20261017.pdf` (28 pages, v1.0, June 2026).11État d'arrivée : `paper/main.pdf` (41 pages, v1.1, October 2026). Pas de `main_anon.tex` (papier jamais soumis).12Rapport scientifique : `docs/REVIEW-REPORT.md`.1314Le papier ne contient ni données ni code ; la « réanalyse » possible était l'**audit de la description15contre le code réel** de la plateforme. Il a été fait sur un clone en lecture seule de `gitsrv:srv/git/vquant.git`16(HEAD `e2a148a`, « adopt: état déployé sur M2U64 … », 2026-10-02 ; commits antérieurs `cfe8ef7` et `9215dce`,172026-08-05). Script versionné : `docs/verify/audit_vquant_code.py` ; sorties : `docs/verify/code_facts.json`,18`docs/verify/tool_families.json` ; table générée : `paper/tables/tools.tex`.1920Convention : **C** = correction (énoncé démontrablement faux), **A** = ajout/renforcement, **E** = éditorial.2122---2324## 1. Corrections majeures (où, avant → après, preuve)2526### C1 — Le papier se présentait comme rapportant des « résultats » et une « robustesse » sans aucune mesure27- **Où** : titres de §5 (« Execution Substrate and Document Generation » dans un fichier `results.tex`) et §628  (« Performance, Reliability, and Security », fichier `robustness.tex`), Table 4 (« Operational characteristics »29  avec latences « indicatives »), résumé (« principal innovations »), conclusion.30- **Avant** : Table 4 donnait « sub-second perceived response », « several seconds », « roughly ten seconds »31  sans aucune mesure ; §6.1 affirmait que le single-call « removes the dominant source of latency ».32- **Après** : §5 renommée « Execution Substrate, Document Generation, and an Illustrative Walk-Through »33  (walk-through = *demonstration* au sens design science, sans chiffre) ; §6 renommée « Design Rationale,34  Threats to Validity, and a Proposed Evaluation » ; Table 4 → « Design rationale » (mécanisme, constante35  réelle, propriété visée, mesure qui la testerait) ; toutes les latences chiffrées retirées ; §6.636  « A proposed evaluation protocol (not executed) » (suite de tâches, métriques dont le *unsupported-number37  rate*, ablations, baselines, contrôles). Le résumé dit explicitement « The paper reports no empirical38  evaluation ».39- **Preuve** : absence totale de script, de données ou de journal de mesure dans le dépôt du papier et dans40  `vquant.git` (6 suites de tests unitaires seulement).4142### C2 — Comptes d'outils et de bibliothèques43- **Avant** : « more than two hundred tools », « over 265 market-data endpoints, wrapped by roughly 230 typed44  functions », « seventeen scientific libraries », « four web-research services », Table 3 avec des « 40+ », « 8+ ».45- **Après** : **245** outils définis par schéma (`toolDefinitions.ts`, noms uniques), **249** fonctions exportées46  sur **233** chemins d'endpoint distincts (`fmpService.ts`), **29** paquets tentés à l'import par le sandbox47  (`customPythonExecutor.py` ; la doc de la plateforme dit 17), **3** services web exposés en **14** outils48  (Firecrawl 7, Tavily 5, Exa 2 ; SerpAPI est intégré côté serveur mais sans définition d'outil). Table 349  régénérée par script avec des comptes exacts par famille (17 familles).50- **Preuve** : `docs/verify/code_facts.json`, `docs/verify/tool_families.json`.5152### C3 — « Exact tokenizer for billing » / le tokenizer piloterait le déclencheur de contexte53- **Avant** (§4.7 et §6.2) : « an exact tokenizer for billing » ; §6.2 : « VQuant estimates token counts locally54  with a tokenizer before each call, which both drives the context-management trigger … ».55- **Après** : le comptage local utilise le paquet npm `gpt-tokenizer` (BPE OpenAI), donc une **approximation**56  dont le signe d'erreur n'est pas fixé ; il ne couvre que le texte de réponse (pas les tokens de raisonnement) ;57  le déclencheur de contexte utilise l'heuristique chars/4, pas le tokenizer. Barème de coût unique 3 $/15 $ par58  million pour **tous** les modèles → le grand livre est faux pour tout modèle au prix différent (limite ajoutée).59- **Preuve** : `claudeService.ts` l. 2, 44–47, 112–114, 160–175.6061### C4 — Outils numériques « exposés au modèle »62- **Avant** (§5.2) : « the platform exposes a small set of pre-built numerical tools … a Monte Carlo path simulator,63  a closed-form European option pricer, a GARCH(1,1) estimator, and a Value-at-Risk calculator ».64- **Après** : seul `calculate_options_price` est dans le catalogue ; les handlers `run_monte_carlo_simulation`,65  `estimate_garch_volatility`, `calculate_var`, `optimize_portfolio`, `analyze_risk_metrics`, `create_plot`66  existent dans `routes.ts` (l. 764–1019) mais n'ont **aucune définition d'outil** → injoignables ; le prompt67  système cite encore `run_monte_carlo_simulation` et `create_volatility_surface` (`systemPrompt.ts` l. 67, 80).68  §5.2 réécrite ; Appendix C précise que ces routines servent de référence pour le protocole d'évaluation.6970### C5 — Couche modèle « Claude only »71- **Avant** (§3.5, Table 1) : « model-agnostic within the Claude family », modèles non nommés.72- **Après** : chemin de référence Anthropic (défaut `claude-fable-5` ; thinking adaptatif pour fable-5,73  opus-4-8/4-7/4-6, sonnet-4-6 ; haiku-4-5 sans ; `max_tokens` 64 000 ; température 1) **et** un second74  adaptateur OpenAI-compatible (OpenAI + Google) limité aux **128 premiers outils** ; appel Beamer épinglé à75  `claude-opus-4-8`. Identifiants Anthropic vérifiés (liste de modèles du fournisseur) ; identifiants76  OpenAI/Google reproduits sans audit et signalés comme tels.77- **Preuve** : `client/src/lib/models.ts`, `claudeService.ts` l. 18–21, 84–96, `openaiService.ts` l. 14–16, 60–63,78  `beamerSlidesService.ts` l. 236 ; `git show 9215dce` confirme que le multi-fournisseur existait déjà en août 2026.7980### C6 — Authentification, limites, BYOK, schéma de persistance81- **Avant** (§6.3, Appendix B) : « local accounts and third-party single sign-on », « daily limits that differ for82  anonymous and authenticated users », « bring-your-own-keys », entité Users avec « optional encrypted custom API83  keys », entité « Daily usage ».84- **Après** : aucune de ces fonctions n'existe dans **aucun** commit (`shared/schema.ts`, `schema-sqlite.ts`,85  `auth.ts`, grep `daily|apiKey|oauth|google` vide, y compris sur `9215dce`). Réel : comptes locaux86  e-mail + mot de passe, code à usage unique par courriel, appareils de confiance, limitation des tentatives,87  journal de sécurité ; 12 entités persistées. §6.2 et Appendix B réécrites ; retrait explicite des trois affirmations.8889### C7 — Contexte : troisième étage manquant et constantes90- **Avant** : deux étapes (cap 5 000 chars, puis résumé).91- **Après** : **trois** étapes : (1) troncature à l'exécution 3 000 chars (15 000 pour les 14 outils d'extraction92  et le Python) `routes.ts` l. 1860–1885 ; (2) cap de renvoi 5 000 ; (3) résumé si > 10^5 tokens, 5 derniers93  messages, entrée ≤ 10 000 chars, `max_tokens` 2 000, température 0,5, repli 500 premiers caractères94  (`tokenManagement.ts` l. 64–105). Algorithme 2 réécrit avec ces constantes ; Algorithme 1 intègre95  `PrepareContext`, l'événement `status` par lot et la troncature.9697### C8 — Boucle : contenu du tour assistant et absence de borne98- **Ajouté** : le message assistant ne contient que les blocs `tool_use` (ni texte ni blocs de raisonnement),99  la récursion n'a pas de profondeur maximale (`routes.ts` l. 420–495). Signalés comme points de durcissement.100101### C9 — Référence Kim–Muhn–Nikolaev (2024)102- **Avant** : citée comme preuve que « LLMs can analyze financial statements at a level competitive with human103  analysts ».104- **Après** : l'arXiv 2407.17866 a été **retiré par les auteurs le 2025-02-20** (« inconsistencies in the data and105  analyses ») ; l'affirmation est retirée du texte, la référence conservée en note de bas de page avec le statut106  de retrait (SSRN 4835311). Preuve : page arXiv consultée le 2026-10-17.107108### C10 — Lopez-Lira & Tang : publié109- **Avant** : arXiv 2304.07619 (2023). **Après** : *Journal of Financial Economics* 184 (2026) 104335,110  DOI 10.1016/j.jfineco.2026.104335 (Crossref). Clé `lopezlira2026chatgpt`.111112## 2. Ajouts (A)113114- **A1** Cadrage design science (Hevner et al. 2004 ; Peffers et al. 2007 ; Gregor & Hevner 2013) : §1 « What kind115  of paper this is », §2.1, conclusion.116- **A2** Paragraphe « Terminology » (agentic, tool use, reasoning-capable) en §1.117- **A3** Paragraphe « Audit against the code » en §1 + **Appendix E** : table de 33 énoncés → fichier:lignes →118  énoncé v1.0 (longtable).119- **A4** §2.3 « Evaluating LLM agents » (AgentBench, Reflexion, WebGPT, LLM-as-a-judge, FinanceBench, FinBen,120  survey Chang et al.) ; §2.2 enrichie (PoT, Mialon, Gorilla, ToolLLM, Lost in the Middle, MCP) ; §2.4 enrichie121  (Loughran–McDonald, Gentzkow–Kelly–Taddy, Li–Mai–Shen–Yan, Chen–Kelly–Xiu, Hansen–Kazinnik, Li et al. ICAIF,122  Fatouros et al., Korinek, Dell).123- **A5** §5.4 « An illustrative walk-through » (flux de contrôle d'une requête, aucun chiffre).124- **A6** §6.4 « Threats to validity » (design vs description), §6.5 « Reproducibility » (température 1 / 0,5,125  pas de graine, code écrit par le modèle, dépendance CDN KaTeX et TeX local), §6.6 protocole d'évaluation.126- **A7** Équations numérotées en Appendix C (GBM, d1/d2, GARCH) ; demi-vie explicitée.127- **A8** Figures : compteurs mis à jour (architecture : « 2 providers · 233 endpoints », « 29 packages »,128  « 3 services · 14 tools » ; sandbox : « 29 pkgs »).129130## 3. Éditorial (E)131132- Résumé réécrit (« design-science description », « reports no empirical evaluation ») ; mots-clés et JEL (+O33).133- Suppression du vocabulaire promotionnel (« production-grade », « remarkable », « unusually broad », « strategically134  engineered », « innovations ») ; « agentic financial intelligence » retiré de la conclusion.135- Orthographe britannique uniformisée (summarise, visualisation…) ; `\path` pour les chemins de fichiers ; tables en136  `\footnotesize` avec colonnes `p{}` (0 Overfull > 10 pt ; un Overfull résiduel de 5,8 pt dans l'Appendix B).137- Métadonnées : `\WPversion` 1.0 → 1.1, `\WPdate` June 2026 → October 2026 ; page titre canonique inchangée.138139## 4. Références140141Avant : 20 entrées, aucune avec DOI. Après : **46 entrées**, DOI ou identifiant arXiv/SSRN pour toutes celles qui142en ont. Vérification le 2026-10-17 : Crossref `api.crossref.org/works?query.bibliographic=` (30 requêtes),143API arXiv `export.arxiv.org/api/query?id_list=` (22 identifiants), OpenAlex, pages PMLR / ICLR / TMLR144(mlanthology, proceedings.iclr.cc), page docs Anthropic, spécification MCP, registre npm (gpt-tokenizer).145146| Référence ajoutée | Vérification |147|---|---|148| Hevner, March, Park, Ram 2004 MISQ 28(1) 75–105 | Crossref 10.2307/25148625 |149| Peffers et al. 2007 JMIS 24(3) 45–77 | Crossref 10.2753/MIS0742-1222240302 |150| Gregor & Hevner 2013 MISQ 37(2) 337–355 | Crossref 10.25300/MISQ/2013/37.2.01 |151| Liu et al. 2024 TACL 12 157–173 (Lost in the Middle) | Crossref 10.1162/tacl_a_00638 |152| Ji et al. 2023 ACM CSUR 55(12) | Crossref 10.1145/3571730 |153| Chen, Ma, Wang, Cohen 2023 TMLR (Program of Thoughts) | arXiv 2211.12588 + mlanthology TMLR 2023 |154| Mialon et al. 2023 TMLR (Augmented LMs survey) | arXiv 2302.07842 + mlanthology TMLR 2023 |155| Patil et al. 2024 NeurIPS 37 (Gorilla) | Crossref 10.52202/079017-4020 |156| Qin et al. 2024 ICLR (ToolLLM) | arXiv 2307.16789 + proceedings.iclr.cc 2024 |157| Liu et al. 2024 ICLR (AgentBench) | arXiv 2308.03688 + proceedings.iclr.cc 2024 |158| Shinn et al. 2023 NeurIPS 36 (Reflexion) | Crossref 10.52202/075280-0377 |159| Nakano et al. 2021 arXiv (WebGPT) | arXiv 2112.09332 |160| Wang et al. 2024 Frontiers of Computer Science 18(6) | Crossref 10.1007/s11704-024-40231-1 |161| Anthropic 2026, « Tool use with Claude » (docs) | page consultée (platform.claude.com) |162| Model Context Protocol, spécification 2025-06-18 | page consultée (modelcontextprotocol.io) |163| Zheng et al. 2023 NeurIPS 36 (LLM-as-a-judge) | Crossref 10.52202/075280-2020 |164| Chang et al. 2024 ACM TIST 15(3) | Crossref 10.1145/3641289 |165| Islam et al. 2023 arXiv (FinanceBench) | arXiv 2311.11944 |166| Xie et al. 2024 NeurIPS 37 (FinBen) | OpenAlex / Crossref 10.52202/079017-3033 |167| Loughran & McDonald 2016 JAR 54(4) 1187–1230 | Crossref 10.1111/1475-679X.12123 |168| Gentzkow, Kelly, Taddy 2019 JEL 57(3) 535–574 | Crossref 10.1257/jel.20181020 |169| Li, Mai, Shen, Yan 2021 RFS 34(7) 3265–3315 | Crossref 10.1093/rfs/hhaa079 |170| Li, Wang, Ding, Chen 2023 ICAIF 374–382 | Crossref 10.1145/3604237.3626869 |171| Chen, Kelly, Xiu 2023 (working paper) | titre/auteurs confirmés par la présentation Wharton Jacobs Levy (sept. 2024) et listes de séminaires ; page SSRN inaccessible (403) → pas de numéro SSRN cité |172| Hansen & Kazinnik 2023 SSRN 4399406 | Crossref 10.2139/ssrn.4399406 |173| Fatouros et al. 2025 Neural Computing and Applications 37(30) 24893–24918 | Crossref 10.1007/s00521-024-10613-4 (print 2025-10) |174| Korinek 2023 JEL 61(4) 1281–1317 | Crossref 10.1257/jel.20231736 |175| Dell 2025 JEL 63(1) 5–58 | Crossref 10.1257/jel.20241733 |176177Références existantes corrigées : Vaswani (pages 5998–6008), Wei (DOI), Toolformer (pages 68539–68551, DOI), PAL178(PMLR 202), Lopez-Lira & Tang (JFE 2026, C10), Kim et al. (statut retiré, C9), Black–Scholes, Merton, Engle,179Bollerslev, Glasserman (DOI ajoutés), Anthropic doc (titre/URL actuels). Aucune référence retirée ; aucune non vérifiée.180181## 5. Réanalyses exécutées182183| Analyse | Script / commande | Durée | Sortie |184|---|---|---|---|185| Audit du code (comptes, constantes, handlers injoignables, familles d'outils) | `docs/verify/audit_vquant_code.py /tmp/vquant` | < 5 s | `code_facts.json`, `tool_families.json`, `paper/tables/tools.tex` |186| Vérification de l'historique git de `vquant.git` (3 commits ; multi-fournisseur et EODHD présents dès `9215dce`) | `git log`, `git show 9215dce --stat`, `git show 9215dce:client/src/lib/models.ts` | — | consigné ici |187188## 6. Non modifié / non exécuté (faute de données ou hors périmètre)189190- **Protocole d'évaluation de §6.6** : non exécuté (nécessite des clés API, un instantané de données figé, deux191  évaluateurs humains). Décrit comme pré-enregistrement.192- **Corrections du code** (borne de récursion, barème de prix par modèle, réintégration des outils numériques dans le193  catalogue, cohérence prompt/catalogue, conteneurisation du sandbox) : relèvent de `vquant.git` (remote-first,194  nœud M2U64), **non faites** dans le cadre de la révision du papier ; listées en §7 et en conclusion.195- Identifiants de modèles OpenAI/Google du sélecteur : non audités (hors connaissance vérifiable), signalés comme tels.196- Pas de version anonyme (`main_anon.tex`) : le papier n'a jamais été soumis ; à créer avant soumission selon197  `HARMONISATION.md` §7.198