Jedinica 12 / 12

Analiza podataka rudarenja sa Pythonom i granice AI

Dobici:

  • Sposobnost izrade skripti koje čiste i vizualiziraju podatke o bušenju, proizvodnji i praćenju pomoću Pythona, uz podršku AI
  • Sposobnost prepoznavanja rizika kvaliteta podataka, prekomjernog učenja i ekstrapolacije prilikom izgradnje jednostavnih modela predviđanja i anomalija
  • Sposobnost verifikacije koda generisanog od veštačke inteligencije i rezultata sa kontrolom jedinice, nezavisnim proračunom i inženjerskom verodostojnošću

U svakoj jedinici ovog modula ste vidjeli da je AI moćna u kodiranju: čišćenje bušotina, balans mase, kriging skelet, sažetak flote, analiza vibracija, skeniranje okoliša. Ova posljednja jedinica fokusira se na Python, konkretan alat za taj kod, i odgovarajuću disciplinu generiranja koda pomoću AI. Python je postao de facto standard u analizi podataka rudarenja jer je besplatan, ima moćne biblioteke (pande: tabelarna manipulacija podacima; numpy: numerički račun; matplotlib: crtanje; scikit-learn: mašinsko učenje) i automatizuje zadatke koji se ponavljaju. AI umnožava brzinu kojom pišete taj kod; ali kod koji proizvodi nije uvijek ispravan. Centralni princip ove jedinice: Nikada nemojte pokretati kod koji AI piše bez prethodnog čitanja, provjere njegove jedinice i testiranja 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 generisanja koda sa AI

Dobijanje koda od AI je inženjerski ciklus, a ne razgovor:

  1. Jasno opišite zadatak. Ulaz (kolone, jedinice, red uzorka), željeni izlaz i ograničenja. Dvosmislen zahtjev proizvodi dvosmislen kod.
  2. Zatražite da bude mala i čitljiva. Zatražite korak po korak, prokomentirani kod, a ne jednu ogromnu funkciju.
  3. Pročitajte i razumite. Shvatite šta svaka linija radi; Nemojte pokretati kod koji ne razumijete.
  4. Testirajte sa malim podacima. Pokrenite ga ručno sa 5-10 linija čije rezultate znate i provjerite očekivani izlaz.
  5. Slučajevi na rubu pitanja. Prazna ćelija, negativna vrijednost, miješanje jedinica, ponavljanje zapisa Kako se ponaša kod?
  6. Skalirajte i provjerite logiku. Pokreni na svim podacima; Da li je rezultat inženjerski razuman?
Savjet: Najčešće greške koje unose AI kod su tihe: pogrešno ime kolone, miješanje jedinica (m vs ft, g/t vs ppm), tiho ispušteni redovi (poput dropna), pogrešan prosjek (običan prosjek kada treba ponderirati). Oni ne uzrokuju greške; Samo proizvodi pogrešan broj. Dakle, "nisam dobio grešku" nikada ne znači "ispravno".

Tipični Python zadaci u rudarstvu

  • Čišćenje podataka: spajanje tablica bušenja/proizvodnje/nadgledanja, označavanje nedosljednosti, normalizacija jedinice.
  • Sažetak i vizualizacija: Histogram, vremenske serije, kriva napunjenosti i tonaže, OEE grafovi.
  • Statistika i geostatistika: zbirna statistika, korelacija, variogram/kriging (sa posebnim bibliotekama).
  • Detekcija anomalija: hvatanje pomaka na bazi praga ili jednostavnog modela.
  • Jednostavni modeli predviđanja: Na primjer, odnos veličina-prinos mljevenja s regresijom.

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

Granice modela: prekomjerno učenje i ekstrapolacija

Jednostavni modeli predviđanja koje AI lako gradi ranjivi su na dva velika rizika. Preopterećenje: Model pamti podatke o treningu, ali ima loš učinak na novim podacima; Izgradnja složenih modela sa malo podataka poziva na to. Ekstrapolacija: Model postaje nepouzdan kada je primoran da napravi 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 upravlja „spontano“ ovim rizicima umjesto vas; Na vama je da kritički pročitate model, napravite razliku između treninga/testiranja, pogledate interval pouzdanosti i provjerite da li je predviđanje fizički prihvatljivo. Bez obzira koliko tačan broj modela izgleda, on ne može biti osnova za inženjersku odluku izvan raspona podataka.

tri mini kofera

Slučaj 1 — Greška tihe jačine zvuka. Inženjer želi kod koji tjera AI da izračuna prosječnu ocjenu iz podataka analize. Kod radi, rezultat je 2,1 g/t. Inženjer čita kod; Primijetite da prosjek nije ponderisan dužinom intervala, već se uzima kao pravi prosek. Visoke ocjene u kratkim intervalima nepravedno su dobijale na težini. Kada se pređe na ponderisani prosjek, vrijednost se smanjuje na 1,7 g/t. Kod nije dao greške; čitanje je uhvatilo grešku.

Slučaj 2 — Tihi pad linije. U kodu sažetka proizvodnje, AI je očistio redove s nedostajućim vrijednostima pomoću dropna. Kod radi glatko, ali ukupna tonaža je potcijenjena jer su neki važeći redovi potpuno izbačeni zbog jedne prazne kolone. Kada inženjer uporedi broj linija između ulaza i izlaza, vidi razliku i ispravlja logiku čišćenja. Lekcija: uvijek usporedite broj ulaznih i izlaznih linija.

Slučaj 3 — Ekstrapolaciona zamka. Tim primjenjuje regresijski model naučen u rasponu niske ocjene na područje visokog ocjena; Model daje apsurdno visoku procjenu prinosa. Na sreću, inženjer odbacuje rezultat, rekavši da je "ovo područje daleko izvan opsega koji vidi model" i zahtijeva metalurško testiranje. Lekcija: poznavati raspon podataka za koje model vrijedi; Nemojte koristiti procjenu izvan države.

Predlošci upita koji se mogu kopirati

KOD SIGURNOG ČIŠĆENJA PODATAKA "Uloga: Vi ste Python pomoćnik analitičara podataka. Napišite kod sa pandama koji čisti sljedeću tabelu. Kolone i jedinice: [lista]. Pravila: (1) štampajte broj redova PRIJE i NAKON ispuštanja redova; (2) umjesto toga prijavite koji su redovi izbačeni i zašto; (3) koristite jedinicu za prosječnu vrijednost (3) gdje je potrebna konverzija. Objasnite svaki korak redom za komentar."

ZAHTJEV ZA PREGLED KODOVA "Objasnite sljedeći Python kod red po red i ukažite na sljedeće rizične tačke: netačna pretpostavka naziva kolone, konfuzija jedinice, tiho spuštanje reda, ravnomjerna/ponderisana prosječna greška, ponašanje ivica (null/negativno). NEMOJTE POPRAVITI kod; samo navedite rizike. Kôd: [zalijepi]."

TESTIRANJE POSTAVKE SA MALE PODATKE "Za ovu funkciju, ručno proizvesti male testne podatke (5-6 redova) od kojih znam rezultat i očekivani izlaz; napišite testni blok koji provjerava da li funkcija ispravno radi na ovim podacima. Također testirajte ekstremne slučajeve (prazna ćelija, negativna, jedinična ekstremna vrijednost). Funkcija: [zalijepi]."

JEDNOSTAVNI MODEL + GRANIČNO UPOZORENJE "Postavite jednostavnu regresiju za [x -> y] sa sljedećim podacima. Razlikujte između treninga/testiranja, prijavite metriku greške i jasno navedite raspon x u kojem je model VAŽEĆI. Upozorite ako su predviđanja napravljena IZVAN ovog opsega. Komentirajte rizik od pretreniranosti i spars podataka."

Slaba prompt / Jaka prompt

WEAK PROMPT: "Izračunajte prosječnu ocjenu iz ovih podataka."

SNAŽNA PROMPT:"Uloga: Vi ste Python asistent. Kolone: HoleID, From(m), To(m),Au(g/t). Izračunajte WEIGHTED prosječnu ocjenu sa dužinom intervala. Kod: (1) ispišite broj ulaznih/izlaznih redova; (2) prijavite nulte/negativne vrijednosti prije nego što ih ispustim; (3) mogu potvrditi i podjedinicu. (3) rezultat ručno. Podaci: [zalijepi]."

Tabela poređenja: rizik i mjere opreza

Rizik

simptom

mjera opreza

Interferencija jedinice

Razuman, ali pogrešan broj

Komentirajte jedinicu u kodu, provjerite

Tihi pad linije

Ukupno nedostaje

Uporedite broj ulaznih/izlaznih linija

Običan naspram ponderisanog prosjeka

pogrešan prosek

Potvrdite ponderisanje

overlearning

Loše na testnim podacima

Razdvajanje treninga/testiranja, neka bude jednostavno

ekstrapolacija

Gluposti pogađate izvan dometa

Ograničite važeći raspon

Uobičajene greške

  • Pokretanje koda bez čitanja. "Nije bilo grešaka" ne znači da je istina.
  • Ne testiranje sa malim podacima. Povjerenje bez provjerljivog primjera je lažno.
  • Ne porediti broj ulaznih/izlaznih linija. Ovako beže tihi gubici.
  • Zanemarivanje asortimana modela. Ekstrapolacijske procjene su nepouzdane.
  • Vjerovanje u ljepotu grafikona. Moderan grafikon može sakriti pogrešan broj.
Pažnja: Ako AI kod ide u inženjerski račun, taj je kod jednako odgovoran kao i račun. Gdje god rezultat postane odluka o rudarenju, pokrenite kod i njegov izlaz kroz nezavisnu 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 kojom ga pišete. Ali AI kod može sadržavati tihe greške (zbrka jedinica, ispuštanje redova, pogrešno prosječenje) i zamke modela (preučenost, ekstrapolacija). Siguran tok: opišite jasno, želite malo i čitljivo, pročitajte i razumite, testirajte s malim poznatim podacima, rubni slučajevi upita, provjera razmjera i logike. Izlaz modela ne može biti osnova za odluku izvan raspona podataka; a svaki kod nosi odgovornost koliko i račun ako se pretvori u odluku o rudarstvu.

Zadatak aplikacije

Koristite predložak "Secure data sanitization code" sa zadatkom usrednjavanja ocjena ili sažetka proizvodnje da biste dobili kod od AI; Izbjegnite rizik od koda pomoću predloška "Zahtjev za pregled koda". Zatim, uz predložak "Test setup with small data", ručno kreirajte skup podataka čije rezultate znate i provjerite kod. Konačno, za jednostavnu vezu, postavite model sa šablonom "Jednostavan model + ograničenje upozorenje" i testirajte da li daje upozorenje kada izađe izvan važećeg raspona.

kontrolna lista

  • [ ] Pročitao sam AI kod i razumio svaki red, nisam ga pokrenuo naslijepo.
  • [ ] Testirao sam ga s malim podacima koji se mogu provjeriti ručno.
  • [ ] Uporedio sam broj ulaznih i izlaznih linija.
  • [ ] Provjerio sam konzistentnost jedinice i težinu.
  • [ ] Ograničio sam važeći raspon podataka modela, izbjegavajući ekstrapolaciju.
  • [ ] Provjerio sam rezultat, koji se pretvorio u odluku, nezavisnom logikom/drugom metodom.

Modul Exam

1. Stažista pita alatku za AI chat o prosječnom sadržaju rudnog tijela i upisuje rezultujuću vrijednost '1,8 g/t zlata' direktno u izvještaj o rezervama. Šta je suštinska greška u ovom pristupu?

  • A) Vrijednost ocjene mora doći iz vlastitih podataka o bušenju/analizi projekta i provjerene prognoze; Broj koji generiše AI može biti izmišljotina bez izvora ✔
  • B) Trebalo je tražiti AI u uncama umjesto u gramima
  • C) Vrijednost je tačna, umjesto zareza je trebalo koristiti samo tačku
  • D) Dovoljno je AI postaviti isto pitanje tri puta i uzeti prosjek

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

2. Šta omogućava 'klasifikacija zasnovana na riziku' u upotrebi AI u rudarskom inženjerstvu?

  • A) Snizite cijenu AI alata
  • B) Odrediti ulogu AI i obaveznu dubinu verifikacije prema nivou rizika zadatka ✔
  • C) Podatke treba pisati kraće
  • D) Automatski delegirajte sve odluke na AI

Objašnjenje: Nije svaka misija na istom nivou rizika. Klasifikacija zadatka kao nizak/srednji/visok/kritičan određuje koji izlaz se može slobodno koristiti, a koji zahtijeva standardnu ​​i terensku verifikaciju i odobrenje nadležnog inženjera.

3. Šta 'variogram' modelira u geostatistici?

  • A) Potrošnja goriva opreme
  • B) Promjena cijene metala tokom vremena
  • C) Prostorni kontinuitet u zavisnosti od udaljenosti; ✔ kako se sličnost smanjuje kako se tačke udaljavaju
  • D) Frekvencija vibracija stvorena miniranjem

Opis: Variogram opisuje kako se sličnost uzoraka međusobno smanjuje (prostorni kontinuitet) kako se rastojanje između dvije tačke povećava. Kriging koristi ovaj model za procjenu neizmjerenih tačaka sa marginom nesigurnosti.

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

  • A) Obrada vrste stijene koju je dala AI direktno u dnevnik bušenja
  • B) Kopiranje teksta AI u izvještaj bez pregleda fotografije
  • C) Otkazivanje geologa i oslanjanje isključivo na AI
  • D) Rezultat smatrajte preliminarnim predviđanjem/hipotezom i potvrdite ga geološkim posmatranjem i laboratorijskom analizom ✔

Opis: AI može generirati predviđanje i listu pažnje iz slike; Međutim, konačnu odluku o litologiji/izmjeni donosi geologovo promatranje i laboratorijska analiza. AI izlaz je početak, hipoteza koju treba provjeriti.

5. Šta znači 'odnos uklanjanja' u planiranju otvorenog kopa?

  • A) Količina rđe (otpadne stijene) koja se mora ukloniti da bi se postigla jedna jedinica rude ✔
  • B) Procenat metala u rudi
  • C) Dnevni broj putovanja kamiona
  • D) Količina eksploziva korištenog u miniranju

Opis: Brzina otkopavanja je količina otpada (traka/otpad) koja se mora ukloniti da bi se dobila jedna jedinica rude. Konačna granica jame i ekonomičnost u velikoj mjeri zavise od ovog omjera; Iako AI generiše scenarije, odluka o granicama je na nadležnom inženjeru.

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

  • A) Dokaz da je oprema definitivno pokvarila
  • B) Upozorenje da podaci odstupaju od normalnih; To nije konačna dijagnoza kvara, već znak koji treba potvrditi fizičkim pregledom ✔
  • C) Naredite da se oprema automatski zaustavi
  • D) Garantujemo da su podaci pogrešno evidentirani

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 operativnog menadžera.

7. Šta je bitno za sigurnost kada se koristi AI u dizajnu bušotine?

  • A) Implementacija AI preporuke direktno na terenu
  • B) Preskakanje mjerenja vibracija
  • C) Verifikacija predloženog dizajna AI sa mjerenjem na terenu, regulatornim ograničenjem i odobrenjem ovlaštenog stručnjaka za miniranje ✔
  • D) Fiksiranje količine eksploziva sa maksimumom koji je dao AI

Opis: miniranje; Nosi ozbiljne sigurnosne i regulatorne rizike kao što su vibracije, zračni udari i leteće kamenje. AI može proizvesti skicu dizajna i preporuku parametara; Međutim, konačni projekat 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 'oporavka' i 'koncentrata' u preradi minerala i čega AI treba da ima na umu kada to tumači?

  • A) To dvoje se uvijek povećava zajedno
  • B) Nema veze između njih
  • C) Odnos je konstantan i isti u svim objektima
  • D) Obično postoji obrnuti saldo (prinos se smanjuje kako se nivo povećava); stvarne vrijednosti moraju biti potvrđene metalurškim ispitivanjem i ravnotežom mase ✔

Objašnjenje: Općenito, kako pokušavamo dobiti veću koncentriranu ocjenu, prinos se smanjuje (ravnoteža ocjena-prinos). 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 lokaciju.

9. Koja je najprikladnija upotreba analize podataka o bliskim nesrećama/nesrećama pomoću AI u zaštiti na radu?

  • A) Klasifikovati zapise slobodnog teksta i izdvojiti ponavljajuće obrasce rizika; Prepustite odluku stručnjaku za OHS ✔
  • B) Automatski utvrditi krivca nesreće
  • C) Delegiranje naloga za obustavu rada na AI
  • D) Arhiviranje podataka o skorom promašaju bez njihovog pregleda

Opis: AI može klasifikovati velike količine zapisa slobodnog teksta i brzo izdvojiti obrasce koji se ponavljaju i rizične uslove. Međutim, odluka o prekidu rada, evakuaciji područja ili osnovnom uzroku se donosi u okviru stručnjaka za zdravlje na radu i zakonodavstva; AI izlaz je ulaz, a ne odluka.

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

  • A) Definitivno ukazuje da je mjerni uređaj pokvaren.
  • B) Može najaviti progresivni poraz; Odluka o ranom upozorenju i evakuaciji pripada inženjeru geotehnike ✔
  • C) Pokazuje da je nagib potpuno siguran
  • D) Značajno je samo kada ima padavina i može se zanemariti

Objašnjenje: Prije sloma na nagibu općenito se opaža postepeno povećanje brzine deformacije (ubrzanja); Ovo može biti znak progresivnog neuspjeha. AI može istaknuti trend, ali odluku o evakuaciji/ranom upozorenju donosi analiza i protokol geotehničkog inženjera.

11. U monitoringu životne sredine, koji je najtačniji odgovor na znak 'prekoračenja' koji AI nalazi u vremenskoj seriji kvaliteta vode?

  • A) Izvještavanje o izlazu AI direktno vladinoj agenciji
  • B) Zanemarite upozorenje i nastavite sa gledanjem
  • C) Provjeriti rezultatom akreditovane laboratorije, regulatornim ograničenjem i ocjenom inženjera zaštite okoliša ✔
  • D) Oslanjanje samo na AI i poništavanje laboratorijskih analiza

Opis: AI može rano signalizirati moguće kršenje; Međutim, zvanična odluka o usklađenosti se donosi analizom akreditovane laboratorije, graničnim vrijednostima u zakonodavstvu i ocjenom inženjera zaštite okoliša. AI izlaz je upozorenje o skriningu, a ne pravna/tehnička odluka.

12. Koji je najpouzdaniji način da izbjegnete izmišljenu (halucinantnu) referencu kada od AI zatražite broj klauzule standarda kao što je JORC ili NI 43-101?

  • A) Oslanjajući se na broj stavke koji je dao AI
  • B) Ponovo postaviti isto pitanje drugim riječima
  • C) Gledanje blog posta umjesto standardnog
  • D) Otvaranje i potvrđivanje svake reference artikla iz trenutnog zvaničnog teksta standarda i dobijanje odobrenja od kompetentne osobe ✔

Objašnjenje: Iako jezički model točno zna naziv standarda, može halucinirati broj članka i tekst. Svaka referenca supstance mora biti otvorena i potvrđena iz trenutnog zvaničnog teksta standarda, a konačnu usklađenost mora potvrditi nadležna osoba (CP/QP).

13. Koja je najkritičnija provjera prije pokretanja Python skripte za analizu napisanu umjetnom inteligencijom?

  • A) Čitanje koda i provjera podudaranja jedinice/kolone, testiranje s malim poznatim podacima i provjera vjerodostojnosti rezultata ✔
  • B) Izvođenje koda direktno na cijelom skupu podataka bez čitanja
  • C) Samo vidjeti da nema greške i prihvatiti rezultat
  • D) Oslanjajući se na grafiku izlaza da izgleda lijepo.

Opis: AI kod može mešati jedinice, pretpostavljati pogrešne nazive kolona ili tiho ispuštati redove. Bitno je pročitati kod, provjeriti podudaranje volumena i stupaca, testirati s malom količinom poznatih podataka i provjeriti je li rezultat inženjerski razuman.

14. Koje je najbolje ponašanje u smislu privatnosti kada se podaci o rudarenju daju AI alatu u oblaku?

  • A) Zalijepite sve neobrađene podatke kako jesu
  • B) Anonimizirajte kontekst i očistite osjetljive podatke o rezervi/koordinaciji/proizvodnji i koristite korporativni alat koji je usklađen sa politikom ✔
  • C) Pod pretpostavkom da je pružanje stvarnih koordinata bitno za kvalitet rezultata
  • D) Uopšte ignorisanje politike privatnosti

Objašnjenje: Brojke rezervi, informacije o licenci/koordinatu i podaci o proizvodnji su osjetljivi u smislu poslovne tajne i zakonodavstva. Neophodno je anonimizirati kontekst, očistiti prave koordinate i imena, odabrati korporativni/garantni alat i pridržavati se politike kompanije.