Jedinica 12 / 12

Analiza rudarskih podataka s Pythonom i granice umjetne inteligencije

Dobici:

  • Sposobnost izrade skripti koje čiste i vizualiziraju podatke o bušenju, proizvodnji i praćenju s Pythonom, s podrškom za umjetnu inteligenciju
  • Sposobnost prepoznavanja rizika kvalitete podataka, prekomjernog učenja i ekstrapolacije pri izgradnji jednostavnih modela predviđanja i anomalija
  • Sposobnost provjere koda i rezultata generiranog umjetnom inteligencijom s kontrolom jedinice, neovisnim izračunom i inženjerskom vjerodostojnošću

U svakoj jedinici ovog modula vidjeli ste da je umjetna inteligencija moćna u kodiranju: čišćenje bušotine, bilanca mase, kriging kostur, sažetak flote, analiza vibracija, skeniranje okoliša. Ova posljednja jedinica usredotočuje se na Python, konkretan alat za taj kod, i odgovarajuću disciplinu generiranja koda pomoću umjetne inteligencije. Python je postao de facto standard u analizi podataka rudarenja jer je besplatan, ima moćne biblioteke (pandas: manipulacija tabličnim podacima; numpy: numerički račun; matplotlib: crtanje; scikit-learn: strojno učenje) i automatizira zadatke koji se ponavljaju. AI umnožava brzinu kojom pišete taj kod; ali kod koji proizvodi nije uvijek točan. Središnje načelo ove jedinice: Nikada nemojte pokretati kod koji AI piše bez da ga prethodno pročitate, potvrdite njegovu jedinicu i testirate ga s malom količinom poznatih podataka. Kod može tiho proizvesti pogrešan rezultat, što se može pretvoriti u lošu inženjersku odluku u rudarenju.

Osnovni tok generiranja koda s AI

Dobivanje koda od umjetne inteligencije je inženjerski ciklus, a ne razgovor:

  1. Jasno opišite zadatak. Unos (stupci, jedinice, redak uzorka), željeni izlaz i ograničenja. Dvosmislen zahtjev proizvodi dvosmislen kod.
  2. Tražite da bude malen i čitljiv. Tražite korak po korak, komentirani kod radije nego jednu ogromnu funkciju.
  3. Pročitajte i shvatite. Razumjeti što svaka linija radi; Nemojte pokretati kod koji ne razumijete.
  4. Testirajte s malim podacima. Pokrenite ga ručno s 5-10 redaka čije rezultate znate i provjerite očekivani rezultat.
  5. Rubni slučajevi pitanja. Prazna ćelija, negativna vrijednost, miješanje jedinica, ponavljajući zapis Kako se kod ponaša?
  6. Skalirajte i provjerite logiku. Pokretanje na svim podacima; Je li rezultat inženjerski razuman?
Savjet: Najčešće pogreške koje unose AI kod su tihe: pogrešan naziv stupca, miješanje jedinica (m nasuprot stopa, g/t nasuprot ppm), tiho ispušteni redovi (poput dropna), pogrešan prosjek (običan prosjek kada bi trebao biti ponderiran). Oni ne uzrokuju pogreške; Samo proizvodi pogrešan broj. Dakle, "nisam dobio pogrešku" nikada ne znači "ispravno".

Tipični Python zadaci u rudarenju

  • Čišćenje podataka: spajanje tablica bušenja/proizvodnje/monitoringa, označavanje nedosljednosti, normalizacija jedinice.
  • Sažetak i vizualizacija: Histogram, vremenske serije, krivulja sadržaja i tonaže, OEE grafikoni.
  • Statistika i geostatistika: Sumarna statistika, korelacija, variogram/kriging (s posebnim bibliotekama).
  • Otkrivanje anomalija: Hvatanje drifta na temelju praga ili jednostavnog modela.
  • Jednostavni modeli predviđanja: Na primjer, odnos veličine mljevenja i prinosa s regresijom.

Za većinu ovih zadataka AI pruža izvrstan početni kod. Ali postoje dvije zamke: kvaliteta podataka i ograničenja modela. Poznavanje oba ključna je za sigurno korištenje AI koda.

Ograničenja modela: prekomjerno učenje i ekstrapolacija

Jednostavni prediktivni modeli koje umjetna inteligencija lako gradi osjetljivi su na dva glavna rizika. Prekomjerno opremanje: model pamti podatke o obuci, ali ima lošu izvedbu na novim podacima; Izgradnja složenih modela s malo podataka to potiče. Ekstrapolacija: model postaje nepouzdan kada je prisiljen napraviti predviđanje u rasponu izvan podataka o obuci; Na primjer, model naučen u rasponu od 0,3-0,8 g/t može dati besmislene rezultate za 5 g/t. AI ne "spontano" upravlja ovim rizicima umjesto vas; Na vama je da kritički pročitate model, napravite razliku između treninga i testa, pogledate interval pouzdanosti i provjerite je li predviđanje fizički prihvatljivo. Bez obzira na to koliko se broj modela čini točnim, on ne može biti temelj za inženjersku odluku izvan raspona podataka.

tri mini kućišta

Slučaj 1 — Pogreška tihe glasnoće. Inženjer želi kod koji tjera umjetnu inteligenciju da izračuna prosječnu ocjenu iz podataka ispitivanja. Kod radi, rezultat je 2,1 g/t. Inženjer čita šifru; Primijetite da prosjek nije ponderiran duljinom intervala, već se uzima kao ravni prosjek. Visoke ocjene u kratkim intervalima nepravedno su dobivale na težini. Prelaskom na vagani prosjek vrijednost se smanjuje na 1,7 g/t. Kod nije davao pogreške; čitajući uhvatio pogrešku.

Slučaj 2 — Tiho ispuštanje linije. U proizvodnom kodu sažetka, AI je pomoću dropna očistio retke s nedostajućim vrijednostima. Kod radi glatko, ali je ukupna tonaža podcijenjena jer su neki važeći redovi potpuno izbačeni zbog jednog praznog stupca. Kada inženjer uspoređuje broj linija između ulaza i izlaza, on vidi razliku i ispravlja logiku čišćenja. Lekcija: uvijek usporedite broj ulaznih i izlaznih linija.

Slučaj 3 — Ekstrapolacijska zamka. Tim primjenjuje regresijski model naučen u rasponu niskih ocjena na područje visokih ocjena; Model daje apsurdno visoku procjenu prinosa. Srećom, inženjer odbacuje rezultat, govoreći da je "ovo područje daleko izvan raspona koji vidi model" i zahtijeva metalurško ispitivanje. Lekcija: znati raspon podataka za koje model vrijedi; Nemojte koristiti procjenu izvan države.

Predlošci upita koji se mogu kopirati

KOD ZA SIGURNO ČIŠĆENJE PODATAKA "Uloga: Vi ste pomoćnik analitičara Python podataka. Napišite kod s pandama koji čisti sljedeću tablicu. Stupci i jedinice: [popis]. Pravila: (1) ispišite broj redaka PRIJE i NAKON ispuštanja redaka; (2) izvješćujte koji su retci ispušteni i zašto; (3) komentirajte konverzije jedinica; (4) koristite ponderirani prosjek gdje je to potrebno umjesto običnog. Objasnite svaki korak s retkom komentara."

ZAHTJEV ZA PREGLED KODA "Objasnite sljedeći Python kod redak po redak i istaknite sljedeće rizične točke: pretpostavka netočnog naziva stupca, zabuna jedinica, tiho ispuštanje redaka, ravna/ponderirana prosječna pogreška, ponašanje rubnih slučajeva (nulto/negativno). NE POPRAVLJAJTE kod; samo navedite rizike. Kod: [zalijepi]."

POSTAVKA TESTIRANJA S MALIM PODACIMA "Za ovu funkciju ručno izradite male testne podatke (5-6 redaka) od kojih ja znam rezultat i očekivani izlaz; napišite testni blok koji provjerava radi li funkcija ispravno na ovim podacima. Također testirajte ekstremne slučajeve (prazna ćelija, negativna, ekstremna vrijednost jedinice). Funkcija: [zalijepi]."

JEDNOSTAVAN MODEL + UPOZORENJE O GRANICI "Postavite jednostavnu regresiju za [x -> y] sa sljedećim podacima. Razlikujte obuku/testiranje, prijavite metriku pogreške i jasno navedite raspon x unutar kojeg je model VALJAN. Upozorite ako su predviđanja napravljena IZVAN ovog raspona. Komentirajte rizik od pretreniranosti i rijetkost podataka. Podaci:[zalijepi]."

Slab upit / Jak upit

SLABA UPITKA: "Izračunajte prosječnu ocjenu iz ovih podataka."

SNAŽNA UPOTREBA: "Uloga: Vi ste Python pomoćnik. Stupci: HoleID, From(m), To(m),Au(g/t). Izračunajte POnderiranu prosječnu ocjenu s duljinom intervala. Šifra: (1) ispišite broj ulazno/izlaznih redaka; (2) prijavite nulte/negativne vrijednosti prije nego ih ispustite; (3) potvrdite pretpostavku o jedinici. Također pokažite međuzbrojeve da mogu provjeriti rezultat ručno. Podaci: [zalijepi]."

Usporedna tablica: rizik i mjera opreza

Rizik

simptom

mjera opreza

Smetnje jedinice

Razuman, ali pogrešan broj

Komentirajte jedinicu u kodu, provjerite je

Tihi pad linije

Ukupno nedostaje

Usporedite broj ulazno/izlaznih linija

Običan u odnosu na ponderirani prosjek

pogrešan prosjek

Provjerite ponderiranje

prekomjerno učenje

Loše na testnim podacima

Razdvajanje obuke/testiranja, neka bude jednostavno

ekstrapolacija

Glupost nagađanja izvan dometa

Ograničite važeći raspon

Uobičajene greške

  • Pokretanje koda bez čitanja. "Nije dobio nikakve pogreške" ne znači da je to istina.
  • Ne testira se s malim podacima. Povjerenje bez provjerljivog primjera je lažno.
  • Ne uspoređuje se broj ulazno/izlaznih linija. Ovako bježe tihi gubici.
  • Ignoriranje raspona modela. Procjene ekstrapolacije su nepouzdane.
  • Povjerenje u ljepotu karte. Elegantan grafikon može sakriti krivi broj.
Pažnja: ako AI kod ide na inženjerski račun, taj kod je jednako odgovoran kao i račun. Gdje god ishod postane odluka o rudarenju, pokrenite kod i njegov izlaz kroz neovisnu logičku provjeru i usporedbu s drugom metodom ako je moguće.

Ukratko

Python je de facto alat za analizu podataka rudarenja, a AI uvelike povećava brzinu pisanja. Ali kod umjetne inteligencije može sadržavati tihe greške (zbrka jedinica, ispuštanje redaka, pogrešno izračunavanje prosjeka) i zamke modela (pretjerano učenje, ekstrapolacija). Siguran tok: opišite jasno, želite malo i čitljivo, čitajte i razumite, testirajte s malim poznatim podacima, postavljajte rubne slučajeve upita, provjeravajte mjerilo i logiku. Izlaz modela ne može biti osnova za odluku izvan raspona podataka; a svaki kod nosi jednaku odgovornost kao i račun ako se pretvori u odluku o rudarenju.

Zadatak aplikacije

Upotrijebite predložak "Sigurni kod za sanaciju podataka" s prosjekom ocjena ili zadatkom sažetka proizvodnje kako biste dobili kôd od umjetne inteligencije; Uklonite rizik koda pomoću predloška "Zahtjev za pregled koda". Zatim, s predloškom "Test setup with small data" ručno izradite skup podataka čije rezultate znate i potvrdite kod. Konačno, za jednostavan odnos, postavite model s predloškom "Jednostavan model + upozorenje o ograničenju" i testirajte daje li upozorenje kada izađe izvan važećeg raspona.

popis za provjeru

  • [ ] Pročitao sam AI kod i razumio svaki redak, nisam ga slijepo izvodio.
  • [ ] Testirao sam ga s malim podacima koji se mogu ručno provjeriti.
  • [ ] Usporedio sam broj ulaznih i izlaznih linija.
  • [ ] Provjerio sam dosljednost i težinu jedinice.
  • [ ] Ograničio sam važeći raspon podataka modela, izbjegavajući ekstrapolaciju.
  • [ ] Provjerio sam rezultat, koji se pretvorio u odluku, neovisnom logičkom/drugom metodom.

Modul ispit

1. Pripravnik pita AI chat alat o prosječnom sadržaju rudnog tijela i zapisuje dobivenu vrijednost od '1,8 g/t zlata' izravno u izvješće o rezervama. Koja je temeljna pogreška u ovom pristupu?

  • A) Vrijednost ocjene mora proizaći iz vlastitih podataka bušenja/analize projekta i verificirane prognoze; Broj koji generira AI može biti izmišljotina bez izvora ✔
  • B) Trebalo je tražiti AI u uncama umjesto u gramima
  • C) Vrijednost je točna, samo je trebala biti korištena točka umjesto zareza
  • D) Dovoljno je AI-ju postaviti isto pitanje tri puta i uzeti prosjek

Objašnjenje: Jezični model ne poznaje podatke o bušenju vašeg projekta; proizvodi broj koji se čini najvjerojatnijim (halucinacija). Ocjena dolazi samo iz vlastitih složenih podataka bušenja i geostatističke procjene projekta; Izlaz AI ne može se uključiti u izvješće bez odobrenja nadležne osobe.

2. Što 'klasifikacija temeljena na riziku' omogućuje u korištenju umjetne inteligencije u rudarstvu?

  • A) Snizite cijenu AI alata
  • B) Odredite ulogu umjetne inteligencije i obveznu dubinu verifikacije prema razini rizika zadatka ✔
  • C) Upute treba pisati kraće
  • D) Automatski delegirajte sve odluke na AI

Objašnjenje: Nije svaka misija na istoj razini rizika. Klasificiranje zadatka kao niskog/srednjeg/visokog/kritičnog određuje koji se izlaz može slobodno koristiti, a koji zahtijeva standardnu ​​provjeru i provjeru na terenu te odobrenje nadležnog inženjera.

3. Što model 'variogram' u geostatistici?

  • A) Potrošnja goriva opreme
  • B) Promjena cijene metala tijekom vremena
  • C) Prostorni kontinuitet ovisno o udaljenosti; ✔ kako se sličnost smanjuje što su točke dalje
  • D) Frekvencija vibracija nastala miniranjem

Opis: Variogram opisuje kako se međusobna sličnost uzoraka smanjuje (prostorni kontinuitet) kako se udaljenost između dviju točaka povećava. Kriging koristi ovaj model za procjenu neizmjerenih točaka s marginom nesigurnosti.

4. Koji je najbolji pristup kada AI unaprijed klasificira litologiju iz fotografije bušotine?

  • A) Obrada vrste stijene koju daje AI izravno u zapis bušenja
  • B) Kopiranje AI-jeva teksta u izvješće bez da se uopće pregleda fotografija
  • C) Otkazivanje promatranja geologa i oslanjanje isključivo na AI
  • D) Rezultat smatrajte preliminarnim predviđanjem/hipotezom i potvrdite ga promatranjem geologa i laboratorijskom analizom ✔

Opis: AI može generirati predviđanje i popis pažnje iz slike; Međutim, konačna odluka o litologiji/promjeni donosi se promatranjem geologa i laboratorijskom analizom. AI izlaz je početak, hipoteza koju treba provjeriti.

5. Što znači 'omjer raskrivanja' u planiranju otvorenog kopa?

  • A) Količina hrđe (otpadne stijene) koja se mora ukloniti da bi se dobila jedna jedinica rude ✔
  • B) Postotak metala u rudi
  • C) Dnevni broj vožnji kamiona
  • D) Količina eksploziva korištenog u miniranju

Opis: Stopa otkrivke je količina otpada (traka/otpad) koja se mora ukloniti da bi se dobila jedna jedinica rude. Konačna granica jame i ekonomičnost uvelike ovise o ovom omjeru; Iako AI generira scenarije, odluka o granicama ovisi o kompetentnom inženjeru.

6. Što u prediktivnom održavanju znači kada umjetna inteligencija pronađe 'anomalije' u podacima o vibracijama i temperaturi?

  • A) Dokaz da je oprema definitivno otkazala
  • B) Upozorenje da podaci odstupaju od normale; To nije konačna dijagnoza kvara, već znak koji treba potvrditi fizičkim pregledom ✔
  • C) Naredite da se oprema automatski zaustavi
  • D) Jamstvo da su podaci netočno snimljeni

Objašnjenje: Anomalija je odstupanje podataka od normalnog ponašanja i može ukazivati ​​na kvar; ali to nije konačna dijagnoza. Odluka o zaustavljanju opreme ili zamjeni dijelova donosi se fizičkim pregledom tima za održavanje i odobrenjem voditelja operacija.

7. Što je bitno za sigurnost pri korištenju umjetne inteligencije u projektiranju bušenjem i pjeskarenjem?

  • A) Provedba preporuke AI izravno na terenu
  • B) Preskakanje mjerenja vibracija
  • C) Provjera AI-jevog predloženog dizajna s mjerenjem na terenu, regulatornim ograničenjem i odobrenjem ovlaštenog stručnjaka za miniranje ✔
  • D) Fiksiranje količine eksploziva s maksimumom koji daje AI

Opis: Miniranje; Nosi ozbiljne sigurnosne i regulatorne rizike kao što su vibracije, zračni udar i leteće kamenje. AI može izraditi skicu dizajna i preporuku parametara; Međutim, konačni projekt mora proći mjerenje na terenu, regulatorna ograničenja i odobrenje ovlaštenog stručnjaka za miniranje (detonator/odgovorni).

8. Kakav je tipičan odnos između 'iskorištenja' i 'koncentratnog stupnja' u preradi minerala i što bi umjetna inteligencija trebala zapamtiti kada ovo tumači?

  • A) Dva se uvijek povećavaju zajedno
  • B) Među njima nema veze
  • C) Odnos je stalan i isti u svim objektima
  • D) Obično postoji obrnuta ravnoteža (prinos se smanjuje kako se stupanj povećava); stvarne vrijednosti moraju se potvrditi metalurškim ispitivanjem i bilancom mase ✔

Objašnjenje: Općenito, kako pokušavamo dobiti višu koncentraciju, prinos se smanjuje (ravnoteža razreda i prinosa). AI može objasniti ovaj trend, ali stvarne radne vrijednosti moraju biti potvrđene metalurškim ispitivanjem i ravnotežom mase; opći trend nije zamjena za stvarnost specifičnu za mjesto.

9. Koja je najprikladnija upotreba analize podataka o skorom promašaju/nezgodama s umjetnom inteligencijom u zaštiti na radu?

  • A) Klasificirati besplatne tekstualne zapise i izdvojiti ponavljajuće obrasce rizika; Prepustite odluku stručnjaku za zaštitu na radu ✔
  • B) Automatsko određivanje krivca nesreće
  • C) Delegiranje naloga za prekid rada AI-u
  • D) Arhiviranje zapisa o zamalo promašajima bez pregledavanja istih

Opis: AI može klasificirati velike količine besplatnih tekstualnih zapisa i brzo izdvojiti uzorke koji se ponavljaju i rizična stanja. Međutim, odluka o obustavi radova, evakuaciji područja ili osnovnom uzroku donosi se unutar okvira stručnjaka za zaštitu na radu i zakonodavstva; AI izlaz je unos, a ne odluka.

10. Zašto je 'ubrzanje brzine deformacije' kritičan znak u podacima radara/prizme u praćenju nagiba?

  • A) Definitivno znači da je mjerni uređaj pokvaren.
  • B) Može biti najava progresivnog poraza; Odluka o ranom upozoravanju i evakuaciji pripada inženjeru geotehnike ✔
  • C) Pokazuje da je padina potpuno sigurna
  • D) Značajan je samo kada ima oborina i može se zanemariti

Objašnjenje: Prije loma na kosini općenito se opaža postupno povećanje stope deformacije (ubrzanje); Ovo može biti znak progresivnog neuspjeha. AI može istaknuti trend, ali odluku o evakuaciji/ranom upozoravanju donosi analiza i protokol geotehničkog inženjera.

11. U praćenju okoliša, koji je najtočniji odgovor na znak 'prekoračenja' koji umjetna inteligencija pronađe u vremenskom nizu kvalitete vode?

  • A) Izvještavanje AI rezultata izravno vladinoj agenciji
  • B) Ignorirajte upozorenje i nastavite gledati
  • C) Potvrdite rezultatom akreditiranog laboratorija, regulatornim ograničenjem i ocjenom inženjera zaštite okoliša ✔
  • D) Oslanjanje samo na umjetnu inteligenciju i otkazivanje laboratorijske analize

Opis: AI može rano signalizirati moguće kršenje; Međutim, službena odluka o sukladnosti donosi se analizom ovlaštenog laboratorija, graničnim vrijednostima u zakonodavstvu i ocjenom inženjera zaštite okoliša. AI rezultat je upozorenje za provjeru, a ne pravna/tehnička odluka.

12. Koji je najpouzdaniji način da izbjegnete dobivanje izmišljene (halucinatorne) reference kada tražite od AI-a broj klauzule standarda kao što je JORC ili NI 43-101?

  • A) Oslanjanje na broj stavke koji je dao AI
  • B) Ponovno postavljanje istog pitanja drugim riječima
  • C) Gledanje posta na blogu umjesto standarda
  • D) Otvaranje i potvrđivanje svake reference članka iz trenutnog službenog teksta norme i dobivanje odobrenja od nadležne osobe ✔

Objašnjenje: Iako jezični model točno zna naziv standarda, može halucinirati broj članka i tekst. Svaka referenca tvari mora biti otvorena i potvrđena iz trenutnog službenog teksta norme, a konačnu sukladnost mora potvrditi nadležna osoba (CP/QP).

13. Koja je najkritičnija provjera prije pokretanja Python skripte za analizu koju je napisao AI?

  • A) Čitanje koda i provjera podudaranja jedinice/stupca, testiranje s malim poznatim podacima i provjera vjerodostojnosti rezultata ✔
  • B) Pokretanje koda izravno na cijelom skupu podataka bez njegovog čitanja
  • C) Samo vidjeti da nema pogreške i prihvatiti rezultat
  • D) Oslanjanje na grafiku izlaza da izgleda lijepo.

Opis: AI kod može miješati jedinice, netočno pretpostaviti nazive stupaca ili tiho ispuštati retke. Bitno je pročitati kod, provjeriti podudaranje volumena i stupaca, testirati s malom količinom poznatih podataka i provjeriti je li rezultat tehnički prihvatljiv.

14. Koje je najbolje ponašanje u smislu privatnosti kada se daju podaci rudarenja AI alatu temeljenom na oblaku?

  • A) Lijepljenje svih neobrađenih podataka kakvi jesu
  • B) Anonimizirajte kontekst i očistite osjetljive podatke o rezervi/koordinati/proizvodnji i koristite korporativni alat usklađen s pravilima ✔
  • C) Pretpostavka da je davanje stvarnih koordinata bitno za kvalitetu rezultata
  • D) Ignoriranje pravila o privatnosti uopće

Objašnjenje: Podaci o rezervama, podaci o licenci/koordinati i podaci o proizvodnji osjetljivi su u smislu poslovnih tajni i zakona. Potrebno je anonimizirati kontekst, očistiti stvarne koordinate i imena, odabrati korporativni/privatni alat za jamstvo i pridržavati se politike tvrtke.