Üksus 10 / 11

Keemiatehnika Pythoniga: andmete analüüsi ja modelleerimise automatiseerimine

Kasu:

  • Võimalus printida Pythoni koodi ning mõista ja aktsepteerida koodi rida-realt andmete puhastamiseks, konto automatiseerimiseks ja tehisintellektiga modelleerimiseks
  • Oskus mõista, et testimata kood on hüpotees, kontrollida iga koodi teadaoleva tulemusega ning testida ühikut ja servajuhtumeid
  • Oskus mõista, et turvalisuse seisukohast kriitilised kontokoodid nõuavad nii testimist kui ka volitatud inseneri kinnitust.

Kaasaegse keemiatehnoloogia vaikne mootor on nüüd Python (laialt kasutatav, hõlpsasti õpitav programmeerimiskeel). Andurite andmete puhastamine, massitasakaalu automatiseerimine, kineetilise mudeli sobitamine andmetega, sadade simulatsioonitulemuste võrdlemine, graafiku koostamine – kõik see võtab käsitsi tunde, kuid mõne Pythoni reaga sekundeid. Selles õppetükis saate teada, kuidas kasutada tehisintellekti abivahendina Pythoni koodi kirjutamisel, selgitamisel ja silumisel; Kuid me saame teada, miks ei tohiks iga toodetud koodi ilma testimise ja kontrollimiseta kasutada.

Keemiainsener ei ole üldjuhul professionaalne tarkvaraarendaja; Siin lisab AI suurt jõudu. Insener ütleb "Ma tahan skripti, mis seda teeb" ja kirjutab AI mustandi. Kuid see põhimõte jääb muutumatuks: kood, mille AI kirjutab, pole õige, sest see näeb õige välja; See on hüpotees, kuni seda testitakse teadaoleva tulemusega. Vaikne viga – vale ühik, vale indeks, nihutatud valem – võib anda inseneriarvutuses ohtlikke tulemusi.

Python koos tehisintellektiga keemiatehnoloogias: samm-sammult

1. Määratlege töö selgelt. Mis on sisend (CSV, massiiv, võrrand), milline peaks olema väljund, millistes ühikutes? Mitmetähenduslik viip tähendab halba koodi.

2. Taotle koodi mustandit. Tehisintellekt loob visandi sobivate raamatukogudega (pandad andmete jaoks, numpy numbriliseks töötlemiseks, matplotlib graafikute jaoks, scipy optimeerimiseks/lahenduseks).

3. Mõista raamatukogu ja eeldusi. Laske tehisintellektil selgitada iga rida ja eeldust (ühik, andmevorming, aktsepteerimine). Ärge käivitage koodi, millest te aru ei saa.

4. Test teadaoleva tulemusega. Käivitage kood lihtsal näitel, millele te juba teate vastust. Saldokood peab andma õige tulemuse näites, mida saab käsitsi dešifreerida.

5. Üksuse ja serva oleku kontroll. Mida teeb kood äärejuhtudel, nagu null, negatiivne, väga suured väärtused, puuduvad andmed? Keemiatehnikas on üksuse rike klassikaline katastroof.

6. Testi tulemust füüsikaga. Kood andis numbri – kas mass on säilinud, kas väärtus on realistlik? See, et kood töötab, ei tõenda, et tulemus on õige.

Näpunäide: tehisintellektilt koodi küsimisel öelge "kirjutage kommentaarireale iga muutuja ühik ja määrake sisendühikud selgesõnaliselt". Märkimisväärne osa keemiatehnilistest vigadest tuleneb ühikute segamisest (bar/Pa, kg/g, °C/K); Koodi ühikute manustamine muudab need vead nähtavaks.

Testimata kood on hüpotees

AI toodab sujuvat ja töötavat koodi; Kuid "töötab" ja "õige" on kaks erinevat asja. Kood võib töötada vigadeta ja anda vale numbri: valemis märgiviga, massiivi nihe (ühe kaupa), vale ühikute teisendus. Seega kuldreegel: iga koodi testitakse testjuhtumis, kus õige vastus on iseseisvalt teada. Lihtne analüütiline näide, käsitsi arvutamine või võrdlusandmed tõestavad koodi usaldusväärsust. Ükski tehniline otsus ei tohiks põhineda koodil ilma testimist läbimata.

Ettevaatust! Ohutus-, dimensiooni- või turvaarvutust teostavat koodi ei saa pidada usaldusväärseks ainult sellepärast, et see "töötab". Turvakriitilisi kontokoode tuleks testida teadaoleva tulemusega ja volitatud insener peaks tulemusi sõltumatult kontrollima.

kolm minikarpi

Juhtum 1 – andmete puhastamise automatiseerimine. Insener puhastas iga kuu käsitsi 8 andurilt kolme kuu andmeid (umbes 1,1 miljonit rida). Tehisintellektiga kirjutatud pandaskript vähendas selle minutiteks. Esmalt testis insener koodi väikeses tuntud näidisfailis; märkas, et üks veerg sõeluti valesti, parandas selle ja rakendas seejärel kogu andmetele.

Juhtum 2 – vaikse helitugevuse viga. YZ kirjutas koodi rõhulanguse arvutamiseks, kuid ajas sisendi segi, eeldades bar ja valemit Pa. Kood töötas vigadeta, kuid tulemus oli 100 000 korda vale. Insener tabas järjekorra erinevuse käsitsijuhtimisarvutusega. Pärast üksuse kommentaaride lisamist viga selgitati ja parandati.

Juhtum 3 – testimine salvestatud. Üks meeskond sai AI-lt massitasakaalu lahendaja koodi. Esmalt katsetasid nad seda kahekomponendilise käsitsi lahustuva prooviga; kood sulges loopbacki valesti ja ei sumbunud. Viga tabati enne, kui seda rakendati tõelisele keerukale mudelile. Ilma testimiseta leviks viga kõikidele tulemustele.

Neli kopeeritavat malli

1) Andmeanalüüsi koodi kavand:

Sinu roll: Pythoni abimees keemiatehnoloogias. Ülesanne: [kirjeldus]. Sisend: [CSV/massiiv, veerud, ÜHIKUD]. Väljund: [mis, millises ühikus].kasuta pandas/numpy. Koodis: (1) tõlgendada iga muutuja ühikut, (2) esitada sisendeeldused alguses, (3) käsitleda servajuhtumeid (puuduvad andmed, null). Testin koodi teadaoleva näitega; ära kasuta maagilisi numbreid, defineeri konstandid selgesõnaliselt.

2) Koodi selgitus ja kontrollimine:

Selgitage järgmist Pythoni koodi rida-realt: mida see teeb, milliseid eeldusi teeb, milliseid ühikuid ootab. Tõstke esile võimalikud veakohad (ühiku segadus, indeksi nihe, nulliga jagamine, ületäitumine). Soovitage, millist lihtsat ja tuntud testjuhtumit saan selle koodi kinnitamiseks kasutada. Kood: [kleebi]

3) Teadaoleva tulemusega testi seadistamine:

Kirjutage selle funktsiooni kontrollimiseks testikomplekt: vähemalt 3 lihtsat juhtumit, mille vastus on analüütiliselt või käsitsi teada. Kirjeldage iga testi puhul oodatavat tulemust ja miks me seda tulemust ootame. Ma ei rakenda koodi pärisandmetele ilma testimiseta. Funktsioon: [kleebi]

4) Silumine:

See kood annab järgmise vea/vale tulemuse: [veateade või eeldatav vsactual output]. Loetlege võimalikud põhjused tõenäosuse järjekorras ja öelge mulle, kuidas neid kõiki testida. Ärge öelge otse: "Ma parandasin ära"; Kontrollime esmalt koos algpõhjust. Soovitage ka üksuste ja tellimuste kontrollimist. Kood ja andmed: [kleebi]

Nõrk viip / Tugev viip

Nõrk viip:

Kirjutage mulle rõhulanguse arvutamise kood.

Sisestusvorming, ühik, võrrand, tingimus pole selged. AI varjab oma eeldusi, võib üksused segi ajada.

Võimas viip:

Sinu roll: keemiatehnoloogia Pythoni abimees. Ülesanne: hõõrdumisest tingitud rõhulangus ringtorus. Sisend: voolukiirus [m3/s], läbimõõt [m], pikkus [m], tihedus [kg/m3], viskoossus [Pa·s]. Väljund: rõhulang [Pa].Kasuta Darcy-Weisbachi; Kontrollige hõõrdeteguri voolurežiimi (Re). Kommenteerige iga ühikut, esitage eeldused (täiskoormus, stabiilne vool). Testin koodi laminaarsel näitel käsitsi arvutamise vastu.

Erinevus on selge: sisendühikud, meetod, väljundüksus ja testimise eesmärk muudavad koodi usaldusväärseks.

Rollide jaotus Pythoni kasutamisel

äri

AI roll

mehe otsus

koodi kirjutamine

Loo mustand

Ametikirjeldus, ühikud

Raamatukogu valik

Soovitus

Vastavuse kinnitus

Kirjeldus

rida-realt

Nõustuge mõistmisega

test

Testikomplekti soovitus

Kinnitamine teadaoleva tulemusega

Silumine

hüpotees, suund

Algpõhjuse kinnitus

Järeldus

Numbri genereerimine

Testimine füüsikaga

Levinud vead

  • Koodi kasutamine ilma seda testimata. Töökood ei ole õige kood; Seda ei saa usaldada, kui pole testitud teadaoleva tulemusega.
  • Ühikute määramata jätmine. Üksuste segadus on keemiatehnika kõige levinum ja ohtlikum viga.
  • Tegutsemine ilma mõistmiseta. Ärge usaldage tulemusi, ilma et mõistaksite AI ridade kaupa kirjutatud koodi.
  • Servaseisunditest möödasõit. Null, negatiivne, puuduvad andmed võivad koodi vaikselt valele järeldusele viia.
  • Turvaarvutuse aluseks võttes ainult koodi. Turvakriitilised koodid nõuavad testimist + sõltumatut autoriteetset kontrolli.

Kokkuvõttes

AI keemiatehnoloogias Pythoniga; See on võimas assistent, mis koostab, selgitab ja annab silumisjuhiseid andmete puhastamiseks, raamatupidamise automatiseerimiseks, modelleerimiseks ja graafikaks. Kuid tehisintellekti kood pole usaldusväärne mitte sellepärast, et see õige välja näeb, vaid sellepärast, et seda on testitud teadaoleva tulemusega. Oluline on ühikud selgesõnaliselt määratleda, koodist aru saada, servajuhtumeid katsetada ja tulemust füüsikaga kontrollida; Ohutuskriitilised arvutused nõuavad ka volitatud inseneri kinnitust.

Rakenduse ülesanne

Valige arvutus (nt toru rõhulang või kahekomponendiline massibilanss). Hankige tehisintellektilt kood malliga „Andmeanalüüs/kontokoodi mustand”, esitage selgelt ühikud. Seejärel kontrollige koodi käsitsi dekodeeritavas näites mustriga "seadista test teadaoleva tulemusega"; Kui tulemus ei ühti, leidke algpõhjus "silumismustriga".

kontrollnimekiri

  • [ ] Olen selgelt välja öelnud sisend/väljundühikud ja meetodi.
  • [ ] Sain koodist rida-realt aru ja nägin selle eeldusi.
  • [ ] Testisin koodi teadaoleva/käsitsi dešifreeritava näite peal.
  • [ ] Testisin servajuhtumeid (null, negatiivne, puuduvad andmed).
  • [ ] Kontrollisin tulemust füüsikaga (massi jäävus, järjekord); Ka turvakonto lasin ametnikul kinnitada.