Finomhangolás nagy nyelvi modelleken (LLM) pénzügyi természetes nyelvi feldolgozáshoz (NLP) gyakran a korlátozott és kiegyensúlyozatlan adatok miatt akad el: a valós pénzügyi hírekben a beszámolók és árfolyammozgások túlreprezentáltak, míg ritkább események — például hitelminősítési változások, termékengedélyezések vagy munkaügyi problémák — nehezen gyűjthetők. Egyetlen nagy közvetlen generálás sok közeli ismétlődést eredményez, ezért a szerzők egy iteratív pipeline‑ot mutatnak be, amely 500 000 egyedi pénzügyi hírcímet hoz létre 12 témakör + „Other” kategória mentén.
Miben áll a munkafolyamat
Az architektúra három fő NVIDIA‑komponenst egyesít: NVIDIA NeMo Data Designer a strukturált generálásért, NVIDIA NeMo Curator a szemantikus deduplikációért, és NVIDIA Nemotron modellek a nagy áteresztőképességű szintézisért. A generálást vLLM szolgálja ki, a deduplikációhoz pedig sentence‑transformers embeddingeket (all‑MiniLM‑L6‑v2) használnak. A pipeline kulcseleme egy „farthest‑from‑centroid” (legtávolabbi a centrumból) few‑shot kiválasztási stratégia, amely minden iterációban a modell kimenetét új, eltérő irányba tereli.
Reprodukálhatóság — verziók és hardver
A cikkben használt szoftver-/modellverziók:
- NeMo Curator: 1.0.0rc0.dev0
- NeMo Data Designer: 0.1.5
- vLLM: 0.12.0
- Modell: nvidia/NVIDIA‑Nemotron‑3‑Nano‑30B‑A3B‑FP8
- sentence‑transformers: >= 2.2.0
Hardver: egyetlen 8‑utas NVIDIA B200 node. GPU‑k 0–3 a vLLM inferenciát szolgáltatták (4‑utas tensor párhuzamosság, 448 egyidejű kérelem); GPU‑k 4–7 NeMo Curator futtatására Ray‑lal. A teljes futás körülbelül 6 napot vett igénybe, checkpointolással, crash‑recovery‑vel és SLURM job chaininggel.
A pipeline áttekintése
A generálás nem működik jól egyszeri, nagy lefutásként: egy naiv 50 000 címes próbálkozásnál a deduplikáció után csupán 17 348 egyedi fejlécre maradt. A helyes megközelítés egy zárt iterációs kör: generálás súlyozott kategóriaválasztóval, szabályalapú minőségi szűrés, globális szemantikus deduplikáció a teljes felhalmozott korpusz ellen, majd diverz few‑shot példák kiválasztása és kategóriasúlyok újraszámolása a következő körre.
Kulcslépés: globális deduplikáció. Minden új batchet összevetnek az addig összegyűjtött összes megtartott fejléccel, így elkerülhetőek a kereszt‑batch ismétlődések.
1. Generálás — NeMo Data Designer + Nemotron
A Nemotron 3 Nano (30B paraméter, 3B aktív) modelt vLLM‑en keresztül szolgálják ki 4‑utas tensor párhuzamossággal és 448 egyidejű kéréssel. A NeMo Data Designer deklaratív konfigurációval futtatja a generálást: egy súlyozott kategóriasampler 12 témára + „Other”, illetve egy LLM oszlop, amely a kiválasztott kategória és az aktuális few‑shot példák alapján hoz létre címet. A generálásnál magas diverzitást céloznak (temperature=0.95, top_p=0.95, kisebb frekvencia/presence büntetések), a rossz vagy redundáns kimeneteket később szűrik.
A prompt felépítése tartalmaz egy rendszer‑utasítást („You are a financial news headline writer.”), kategóriánként csoportosított few‑shot példákat (iterációnként frissítettek), és instrukciót a 10–25 szavas, professzionális stílusú headline generálására.
2. Minőségi szűrés
Egy könnyű, szabályalapú lépés eltávolítja a trancírozott, futamodó vagy karakteresen zavaros kimeneteket. Alkalmazott küszöbök például:
- Minimális szószám: >= 5
- Minimális karakterszám: >= 25
- Maximális szószám: <= 100
- Maximális karakter: <= 1000
- Zárójel‑szám < 5
- Speciális karakter arány <= 25%
Ezek a szabályok a gyakorlatban <1%‑ot távolítottak el egy batchből; a fő ellenőrzés a szemantikus deduplikáció.
3. Szemantikus deduplikáció — NeMo Curator
Ez a pipeline kulcsa. Minden iteráció után az új címeket összefűzik a felhalmozott korpusszal, majd a TextSemanticDeduplicationWorkflow lefuttatja az embedelést (sentence‑transformers/all‑MiniLM‑L6‑v2), K‑means klaszterezést és páronkénti koszinusz‑similaritás ellenőrzést. 90% fölötti hasonlóság esetén a duplikátum eltávolításra kerül; a megőrzési stratégia a klasztercentrumba legközelebb eső, „legreprezentatívabb” változat megtartása.
Konfigurációs döntés: n_clusters=500. Ennek célja, hogy 500K végső korpusznál az átlag klaszterméret körülbelül 1 000 legyen, így a páronkénti összehasonlítások száma körülbelül 500 millió marad. Sokkal kevesebb klaszter (pl. csak kategóriánként) a páros összehasonlítások számát drámaian (milliárdokig) növelné.
A pipeline ECDF (Empirical Cumulative Distribution Function) görbéket is készít a páronkénti koszinusz‑hasonlóságokról minden iteráció után; az idővel balra tolódó görbe a szélesebb szemantikus lefedettség jele.
4. Few‑shot példák kiválasztása — farthest‑from‑centroid
A deduplikációból származó K‑means klaszterek centereit használva a pipeline a centrumtól legtávolabbi példákat választja few‑shot mintaként: ezek a leginkább atipikus példák a saját szemantikus környezetükben, és hatékonyan ösztönzik a modellet új kimenetekre. Három példát választanak kategóriánként (összesen 39 iterációnként).
Ezenfelül minden jelöltet összehasonlítanak az összes korábban használt few‑shot példával, és elutasítják azokat, amelyek >= 80% koszinusz‑hasonlóságot mutatnak, hogy elkerüljék az iterációk közötti prompt‑ismétlést. Ha kifogynak a megfelelő outlier‑példákból, fallbackként véletlenszerű mintát vagy seed példákat használnak.
A példák iterációk során egyre specifikusabbá váltak: korai iterációk rövidebb, általánosabb címeket tartalmaztak, míg a későbbi 82. iteráció példái konkrétabb entitásokat és részletesebb szerkezetet mutattak.
5. Dinamikus eloszlás‑korrekció
A modell hajlamos az „egyszerűbb” kategóriák felé tolódni (pl. Other, Stock Movement). Minden iteráció után a pipeline összehasonlítja a cél‑ és tényleges kategóriaarányokat, alulreprezentált kategóriákat megerősít, szélsőségeket levág, majd normalizálja a súlyokat. A szerzők klampfaktorokat és alsó korlátot is alkalmaznak a stabilitás érdekében.
A javító algoritmus célja, hogy a ritka kategóriák (például Credit Ratings, Product Approval) közelebb kerüljenek az 1%‑os célarányukhoz, miközben az „Other” kategória mindvégig túlreprezentált maradt, de a korrekciók jelentősen csökkentették a modell elfogultságát.
Eredmények és mérőszámok
Futtatás összegzése:
- Végső megtartott egyedi címek: 502 536 (cél: 500 000; a túltermelés 2 536 címet a „Other” kategóriából vágták le)
- Iterációk száma: 82
- Batch méret: jellemzően 35 000 cím per iteráció (korai iterációkban 50 000)
- Előállított (pre‑deduplication): ~2.87 millió cím
- Összesített deduplikációs arány: ~82%
- Nettó új cím/iteráció: ~5 000–6 000 (a későbbi iterációkban)
- Kategóriák: 12 széles témakör + Other
- Similarity küszöb: 90% koszinusz
- Few‑shot példák per iteráció: 39 (3/kategória)
Deduplication dinamikája: az 1. iterációban egy naiv 50 000 generálásból 17 348 maradt meg (~35% yield), tehát 65% közel‑duplikátumnak bizonyult. Miután az iterációk előrehaladtak és a korpusz növekedett, az egy batch‑re eső nettó új címek aránya csökkent: 40+ iterációnál stabilizálódott ~15% körülre (35 000‑es batchből ~5–6 ezer új cím).
Downstream alkalmazás: model distillation
A létrehozott FinHeadlineMix adathalmazt felhasználták egy AI Model Distillation developer példában: egy 49B–70B tanármodell címkézte a szintetikus headline‑okat, majd kisebb (1B, 3B, 8B) diákmodelleket LoRA‑val finomhangoltak. 25K címkézett példával egy 3B diák elérte a tanármodell F1‑értékének 95%-át ezen a feladaton. A szerzők hangsúlyozzák, hogy a korpusz szemantikus sokszínűsége és kategóriaegyensúlya fontos a ritka események és szélsőséges esetek lefedéséhez.
Gyakorlatias tanulságok
A szerzők négy alapelvet javasolnak az iteratív, globálisan deduplikált szintetikus adatgeneráláshoz:
- Iterálj, ne csak egyszeri nagymenetet futtass.
- Dedupikálj globálisan (az összes korpusz ellen), ne csak batch‑szinten.
- Few‑shot példák irányítanak: a farthest‑from‑centroid stratégia és az iterációk közötti szemantikus szűrés a leghatékonyabb eszköz.
- Dinamikus eloszlás‑korrekció nélkül a modell túltermeli a könnyű kategóriákat és alulreprezentálja a ritkákat.
Hogyan tovább
A kész dataset, FinHeadlineMix, elérhető a Hugging Face‑en letöltésre és közvetlen felhasználásra cím‑osztályozáshoz, finomhangoláshoz vagy tudásdestillációs munkafolyamatokhoz. A pipeline reprodukálható és kiterjeszthető NeMo Data Designerrel és NeMo Curatorral; a Nemotron‑3‑Nano‑30B‑A3B modell pedig a szerzők által használt MoE architektúra, amely jó egyensúlyt ad a minőség és az áteresztőképesség között.
Az eredmények hasznos útmutatót adnak olyan gyakorlati munkafolyamatokhoz, ahol nagy, kiegyensúlyozott és szemantikus szempontból egyedi szintetikus adathalmazra van szükség pénzügyi kutatáshoz vagy felügyeleti rendszerekhez.
Műszaki részletek és checkpointing
Minden iteráció állapotát checkpointolják: a korpusz aktuális állapota, kategóriasúlyok, few‑shot példák, metrikák és a használt példák embeddingjei mentésre kerülnek a crash recovery és SLURM chaining támogatására. A deduplikáció és példaválasztás konfigurációi a cikkben részletezett paraméterekkel futottak (például 500 K‑means klaszter, 90% dedup küszöb, 80% cross‑iteration cutoff a példaválasztásnál).
Az itt ismertetett munkafolyamat és eredmény a FinHeadlineMix dataset közzétételével elérhető, és gyakorlati alapot ad modelldistillációhoz, felügyeleti rendszerek fejlesztéséhez és más pénzügyi NLP feladatokhoz.



