Apie Viską DI Agentai DI Atviro Kodo DI Kodui DI Medicinoje DI Modeliai - LLM DI Muzikai DI Nuotraukoms DI Prietaisai DI Satyra ir Humoras DI Saugumas DI Video DI ir Teisėtvarka DI Žaidimuose Dirbtinis Intelektas NVIDIA AI Pamąstymai Apie DI Redaktoriaus Žodis Robotika Technologijų Dvikova

Miesto skaitmeninis kodas: kaip „City2Graph“ ir „PyTorch Geometric“ keičia urbanistinę analizę

Artūras Malašauskas 2026-06-13 5 min skaitymui
Miestų planavimą krečianti skaitmeninė revoliucija sujungė „City2Graph“ ir „PyTorch Geometric“ į galingą įrankį, gebantį paversti chaotiškas gatvių sankryžas ir pastatų kontūrus išmaniais giliesiems neuroniniams tinklams suprantamais tenzoriais. Šis technologinis šuolis leidžia inžinieriams kurti stulbinamai tikslius skaitmeninius miestų dvynius, nors algoritmo logikai vis dar tenka susidurti su neprognozuojama žmogiškosios elgsenos realybe.

Tradiciniai geografinės informacijos sistemų (GIS) įrankiai ilgą laiką strigo bandydami suderinti statinius erdvinius duomenis su dinamiškais mašininio mokymosi modeliais. Kai tyrėjams prireikia analizuoti sudėtingą miesto audinį – nuo gatvių sankryžų iki pastatų tarpusavio ryšių – jie dažnai susiduria su programinio kodo suderinamumo problemomis. Šią spragą užpildo naujos kartos sisteminė sinergija, sujungianti klasikinius atvirojo kodo įrankius su giliaisiais grafų neuroniniais tinklais (GNN). Naujoji City2Graph biblioteka veikia kaip universalus tiltas, integruojantis „GeoPandas“ erdvines operacijas, „NetworkX“ tinklų topologiją ir galingą „PyTorch Geometric“ mašininio mokymosi karkasą.

Urbanistinių tyrimų pagrindas prasideda nuo kokybiškų pirminių duomenų išgavimo, kur nepakeičiamu standartu išlieka Geoffo Boeing sukurta OSMnx biblioteka. Ji leidžia tiesiogiai iš „OpenStreetMap“ atsisiųsti ir struktūrizuoti realius transporto bei pėsčiųjų tinklus į „NetworkX MultiDiGraph“ objektus. Visgi, siekiant sukurti tikrą skaitmeninį miesto dvynį, vien gatvių ašių neužtenka. „City2Graph“ žengia žingsnį į priekį ir leidžia kurti heterogeninius morfologinius grafus, apimančius ne tik viešąsias erdves (gatvių segmentus), bet ir privačias teritorijas, pavyzdžiui, pastatų kontūrus iš „Overture Maps“ platformos. Sistema automatiškai sugeneruoja Voronojaus teseliacijas aplink pastatus, nustato jų erdvinį kaimynystės santykį ir susieja juos su artimiausiais gatvių segmentais per geometrines sankirtas.

Nuo miesto topologijos iki tensorinės architektūros

Šios architektūros grožis slypi gebėjime transformuoti heterogeninius urbanistinius ryšius į griežtai struktūrizuotus tensorius, kuriuos tiesiogiai supranta PyTorch Geometric. Pavyzdžiui, „City2Graph“ vidinis „metapath“ modulis leidžia materializuoti sudėtingas semantines trajektorijas, tokias kaip „paslauga → gatvės segmentas → gatvės segmentas → paslauga“. Tai reiškia, kad pėsčiųjų pasiekiamumas ar judumo srautai yra paverčiami svoriniu grafo briaunų tinklu, eliminuojant poreikį naudoti sunkiasvorius išorinius maršruto paieškos variklius. „City2Graph“ automatiškai atlieka zonų suderinimą, briaunų simetrizavimą ir suformuoja `HeteroData` objektus, kur skirtingi mazgų tipai (pavyzdžiui, pastatai ir sankryžos) turi savo unikalius požymių matricas.

Duomenų perdavimo sparta ir modelio našumas šioje sistemoje tiesiogiai priklauso nuo glaudaus CUDA aparatinio pagreitinimo integravimo. Kadangi realaus laiko urbanistiniai grafai gali apimti milijonus mazgų ir briaunų, atminties valdymas tampa kritiniu faktoriumi. „PyTorch Geometric“ naudojami optimizuoti grafų konvoliuciniai sluoksniai (tokie kaip „SageConv“ arba „GATConv“) leidžia atlikti pranešimų perdavimą (angl. message passing) tiesiogiai vaizdo plokštės (GPU) atmintyje. Naudojant sparčiąsias „DuckDB“ užklausas viešojo transporto GTFS duomenims apdoroti, „City2Graph“ paruošia kilmės-tikslo (OD) matricas kelis kartus greičiau nei klasikiniai GIS algoritmai. Tai užtikrina, kad erdvinių GNN modelių mokymas vyksta be dirbtinių duomenų perdavimo strigčių, atveriant visiškai naujas galimybes prognozuoti eismo spūstis ar modeliuoti miestų mikroklimatą.

Aukštasis pilotažas po gaubtu: viena didžiausių techninių problemų, kylančių perkeliant didžiulius geografinius grafus į mašininio mokymosi modelius, yra atminties fragmentacija. Kai dirbama su tokiais miestais kaip Berlynas ar Niujorkas, „OSMnx“ sugeneruoti tinklai dažnai turi milijonus briaunų, kurios įprastoje sistemos atmintyje (RAM) saugomos kaip dinaminiai sąrašai. Sistemų inžinieriai žino, kad tiesioginis šių duomenų perdavimas į GPU atmintį sukelia katastrofišką našumo sumažėjimą dėl nuolatinio duomenų kopijavimo. Štai čia „City2Graph“ atlieka kritinę optimizaciją: ji iš anksto konvertuoja geografinius duomenis į kompaktiškus, contiguous (gretimos atminties) masyvus, naudoja CSR (Compressed Sparse Row) indeksavimą ir tik tada suformuoja galutinius `torch.Tensor` objektus.

Šis perėjimas nuo „GeoPandas“ geometrijų prie tenzorinių matricų reikalauja specifinio architektūrinio požiūrio į heterogeninių duomenų struktūras. Klasikiniai grafų neuroniniai tinklai tikisi homogeniškos aplinkos, kur visi mazgai turi vienodą požymių skaičių. Tačiau mieste pastatas, turintis savo plotą bei aukštį, negali būti aprašomas taip pat, kaip sankryža su šviesoforų fazėmis. „PyTorch Geometric“ aplinkoje ši problema sprendžiama per `HeteroData` sąsają, kur „City2Graph“ sukuria atskirus žodynus kiekvienam mazgų ir briaunų tipui. Inžineriniu požiūriu tai leidžia pritaikyti skirtingus tiesinės transformacijos sluoksnius prieš prasidedant bendram pranešimų perdavimo (angl. message passing) ciklui, taip išsaugant semantinį duomenų grynumą.

Duomenų konvejerio optimizavimas ir lygiagretusis apdorojimas

Siekdama išvengti CPU procesoriaus strigčių ruošiant duomenis, sistema naudoja pažangius grafų skaidymo algoritmus, tokius kaip METIS, integruotus tiesiai į „PyTorch Geometric“ ekosistemą. Didžiulis miesto grafas supjaustomas į mažesnius, topologiškai vientisus subgrafus (angl. subgraphs), kurie gali būti kraunami į GPU atmintį mini-partijomis (angl. mini-batches). „City2Graph“ šį procesą dar labiau paspartina perkeldama Voronojaus teseliacijų skaičiavimą ir pastatų buferizavimą į daugiagijus C++ variklius per „Shapely“ bibliotekos vektrizuotas operacijas, todėl pasiekiamas maksimalus turimų procesoriaus branduolių išnaudojimas.

Galiausiai, tikrasis našumo lūžis įvyksta pranešimų agregavimo etape, kur įprasti Python ciklai yra visiškai pakeičiami CUDA branduolių operacijomis. Naudojant specializuotus „PyTorch Geometric“ išsklaidytos redukcijos (angl. scatter-reduce) algoritmus, kaimyninių mazgų požymiai sumuojami arba vidurkinami tiesiogiai vaizdo plokštės aparatinėje įrangoje be papildomų atminties alokacijų. Tai leidžia sėkmingai apmokyti gilius „Graph Attention Networks“ (GAT) modelius, kurie dinamiškai nustato, kurios gatvės ar pastatai turi didžiausią įtaką bendram miesto funkciniam raštui, paversdami žalius GIS duomenis aukšto lygio analitine įžvalga.

Žvelgiant giliau į fasadą: nors technologinis „City2Graph“ ir „PyTorch Geometric“ derinys ant popieriaus atrodo kaip tobula urbanistikos evoliucija, praktinis jo pritaikymas atveria gilių metodologinių prieštaravimų. Didžiausia erdvinių grafų neuroninių tinklų iliuzija – prielaida, kad miesto gyvybingumą ir funkcinius ryšius galima visiškai redukuoti į geometrinius atstumus bei topologinį kaimynystę. Algoritmas mato tiesiausią vektorių tarp pastato ir viešojo transporto stotelės, tačiau jis nesupranta subjektyvių žmogiškųjų faktorių, tokių kaip saugumo jausmas naktį, prasta šaligatvių kokybė ar paprasčiausias estetiškas maršruto patrauklumas. Ignoruodami šiuos nematymus kintamuosius, inžinieriai rizikuoja sukurti matematiškai idealius, bet realybėje visiškai nefunkcionalius miesto modelius.

Kita esminė problema yra tiesiogiai susijusi su pačių pirminių duomenų kokybe bei reprezentatyvumu. „OpenStreetMap“ ir „Overture Maps“ duomenų bazės yra neįkainojami ištekliai, tačiau jie kenčia nuo sisteminio netolygumo – ekonomiškai aktyvūs centriniai rajonai būna detalizuoti iki smulkiausių elementų, tuo tarpu periferiniai ar mažiau pasiturintys priemiesčiai lieka su fragmentiškais gatvių tinklais. Kai „City2Graph“ konvejeris šiuos duomenis paverčia tensorinėmis matricomis, modelis nesąmoningai ima gilinti šią atskirtį. GNN modeliai, mokomi ant tokių asimetriškų duomenų struktūrų, natūraliai generuoja iškreiptas prognozes, kurios vėliau, priimant realius urbanistinius sprendimus, gali dar labiau izoliuoti jau dabar apleistas miesto erdves.

Algoritminis optimizavimas prieš realią urbanistiką

Negalima pamiršti ir vadinamojo „juodosios dėžės“ efekto, kuris mašininiame mokymesi išlieka viena didžiausių kliūčių siekiant sprendimų skaidrumo. Kai miesto planuotojui pateikiamas tradicinis GIS žemėlapis, jis gali aiškiai atsekti kiekvieną erdvinę užklausą ir jos logiką. Tuo tarpu po keliolikos „Message Passing“ ir „Graph Attention“ sluoksnių gautą rezultatą patikrinti tampa praktiškai neįmanoma. Tai sukuria pavojingą precedentą, kai technokratiniai sprendimai priimami pasikliaujant vien tik abstrakčiais svoriniais koeficientais, kurių reikšmės negali paaiškinti net patys sistemų architektai, bandantys suderinti teorinį modelio našumą su chaotiška miesto realybe.

Galiausiai, sparti miestų transformacija meta iššūkį pačiam statiniam grafų pobūdžiui. Nors „City2Graph“ sugeba efektyviai apdoroti dinamines OD matricas, pats fizinės infrastruktūros grafas išlieka santykinai inertiškas. Kelių remontas, laikinai uždarytos gatvės ar pop-up renginiai iš esmės pakeičia pėsčiųjų elgseną per kelias valandas, o modelio perkrovimas ir naujos topologijos skaičiavimas vis dar reikalauja didelių skaičiavimo resursų. Todėl šis įrankis kol kas išlieka labiau retrospektyvinės analizės ir strateginio planavimo, o ne operatyvaus miesto valdymo realiuoju laiku instrumentu.

Didžiausia šiuolaikinio urbanisto dilema – sukurti algoritmą, kuris idealiai suplanuotų miestą, ir tada kažkaip įtikinti jame gyvenančius žmones elgtis taip pat logiškai, kaip elgiasi „PyTorch Geometric“ tenzoriai.
Vyr. redaktorius Artūras Malašauskas, DI sistemų integratorius, sukaupęs daugiau nei 20 metų patirties kuriant gamybinio lygio žiniatinklio inžinerijos sprendimus. Jis projektavo, diegė ir plėtė verslo klasės „Python“/„PHP“ sistemas logistikos, SaaS bei viešojo sektoriaus klientams. Pastaruosius metus jis specializuojasi išskirtinai DI integracijų srityje: diegia atvirojo kodo didžiuosius kalbos modelius (LLM), kuria generatyvinių medijų (vaizdo, garso, video) srautus bei projektuoja daugiagentines darbo eigas realioms gamybinėms aplinkoms. Jo standartas: atkuriamumas, saugumas ir ekonomiškai efektyvi išvestis – jokio „vaporware“. Artūras dokumentuoja bei vertina naujus DI įrankius, atskirdamas patvirtintas galimybes nuo rinkodarinio triukšmo. Techninis redaktorius svetainėse: ai-naujienos.lt, ai-verslas.lt, muza-ai.eu. Susisiekite per „LinkedIn“.

Komentarai

Prisijunk jei nori komentuoti: