Tekoälyn historia

Anonyymi-ap

Ideatasolla tekoäly on hyvin vanha keksintö.

Mutta ennen kuin ideasta saatiin toimiva tekoäly, siihen menikin huomattavan paljon aikaa!

Ensimmäisenä oikeasti toimivana tekoälynä voidaan pitää ChatGPT:tä, jonka ensimmäinen versio julkaistiin marraskuussa 2022.

Tuota ennen oikeasti toimivia tekoälyjä ei oikeastaan ollut olemassa, ainoastaan teoreettinen idea siitä, että saattaisi olla mahdollista toteuttaa tekoäly.

Lainaus IS:n lukijakirjoituksesta:

URL:
https://www.is.fi/digitoday/art-2000011671778.html

lukijakommentti, aikaleima "5.12. 13:41" eli 2025-12-05 T 13:41 (FI).

Lainaus: "Johan on kommenttia
5.12. 13:41

Uskallan väittää että tällaiset viat tullaan näkemään enemmän ja enemmän tulevaisuudessa. Tämä johtuu siitä että koodarit käyttävät enemmän ja enemmän tekoälyä koodatessa ja testaessaan uusia ominaisuuksia. Tekoäly on hyvä renki ja todella petollinen isäntä. T. Tekoäly käyttäneenä jo 15 vuotta."

Tuon kirjoittaja siis valehtelee, koska oikeasti toimivaa tekoälyä ei ollut olemassa 15 vuotta sitten - siis joulukuussa 2010.

Täytyy myös muistaa, että nykyisetkään tekoälyt eivät ole täydellisiä, koska ne eivät ole luotettavia, eli saattavat antaa virheellisiä ja/tai harhaanjohtavia vastauksia.

Ohjelmoinnissa tekoälystä saattaa olla jotakin hyötyä, mutta myös haittaa.

Haitta liittyy siihen, että jos pyydät tekoälyä kirjoittamaan ohjelmakoodia, niin on syytä varautua siihen, että tekoälyn kirjoittamassa ohjelmakoodissa voi olla (ja yleensä onkin) virheitä.

Jos siis sellaisenaan copy-pastetat tekoälyn kirjoittamaa koodia omaan ohjelmaasi - niin kerjäät ongelmia. Saat aikaan bugisen ohjelman, joka ei toimi oikein.

Tekoälyä voi käyttää kirjoittamaan ns. raakakoodia, mutta ihmisohjelmoijan täytyy aina lukea tekoälyn kirjoittama koodi huolellisesti läpi, ja korjata mahdolliset virheet.
Jos näin ei toimita, niin saadaan aikaiseksi heikkolaatuista ohjelmakoodia.

Jostain syystä myös ihmisohjelmoijista hyvin suuri osa tuottaa heikkolaatuista ohjelmakoodia!

Tässä muutama esimerkki:

a) PC:lle (eli ns. x86 -koodi): Jos keskeytysaliohjelma (jollaisia on esim. tulostinajureissa) haluaa käyttää matematiikkaprosessoria (FPU) eli alkuperäinenhän oli 8087, myös 80287, 80387, 80487 kunnes Pentiumista alkaen erillistä matematiikkaprosessoria ei ole enää tarvittu, koska sen toiminnot Pentiumista alkaen on integroitu osaksi pääprosessoria (CPU), niin OIKEA TAPA tehdä tuo on näin:

1. Tallenna FPU:n datarekisterit JA tila. Tilalla tarkoitetaan esim. pyöristysmoodia, laskentatarkkuus-asetuksia (32 / 64 / 80 -bit float) sekä ns. exception mask, eli bittikartta siitä, mitkä virhe- ja poikkeustilanteet aiheuttavat keskeytyksen.

2. Aseta asetukset sellaisiksi kuin tarvitset / haluat

3. Tee liukulukulaskutoimitukset FPU:lla.

4. Palauta vaiheessa 1 talletetut asetukset kokonaisuudessaan, siis siten, että FPU on täsmälleen samassa tilassa kuin keskeytysaliohjelman alakessa.

5. Valmis. Voit nyt suorittaa IRET -käskyn, joka päättää keskeytysaliohjelman ja CPU jatkaa siitä, mihin suoritus jäi keskeytysaliohjelman suorituksen alkaessa.

Pölvästit koodarit ovat koodanneet tulostusajureita, jotka EIVÄT noudata yllä kuvattua hyvää ohjelmointitapaa.
Seurauksena se, että jokin liukulukulaskentaa tekevä ohjelma alkaa antaa virheellisiä tuloksia, jos kesken sen tekemää laskentaa (tai ainakin ko. ohjelman käynnistyksen jälkeen) tulostetaan mitään - eli tulostusajuriin liittyvä keskeytysaliohjelma virheellisesti ei palauta FPU -asetuksia alkuperäiseksi FPU:ta käytettyään, jolloin muuttuneet asetukset saavat sovellusohjelman toimimaan väärin, eli antamaan virheellisiä laskentatuloksia!

Myös toinen alalla tunnettu virhe (PALJON vanhempi tapaus) liittyy keskeytysaliohjelmiin.

MS-DOSin valtakaudella aluksi oli vain 8086 (ja myöhemmin myös 80186 ja 80286) - mutta KAIKKI nuo olivat 16 -bittisiä prosessoreja, ja niissä rekisterin dataleveys oli 16 bittiä, siis AX, BX, CX, DX, SI, DI, BP, SP.

Sitten tuli suuri mullistus: 80386 - ensimmäinen 32 -bittinen CPU, ja nyt esim. AX olikin yht'äkkiä 32 -bittisen EAX -rekisterin alaosa (16 alinta bitiä).

Ja taas joku pölvästi teki väärin toimivan keskeytysaliohjelman:

Uusi väärin toimiva keskeytysaliohjelma käytti 16 -bitin suoritustilassa (jossa siis ohjelmaosoitin on vielä IP, ei siis vielä EIP) 32 -bittisiä rekistereitä kuten EAX.
Tämähän tehdään 16 -bitin suoritustilassa siten, että esim. heksakoodin B8 (mov AX, xxxx) edellä on ns. data size override prefix, joka muuttaa käskyn merkitystä siten, että se onkin nyt "mov EAX, xxxxxxxx".

Tässä ei sinänsä ole mitään väärää, kunhan homma tehdään OIKEIN.


MUTTA: tämä pölvästi laittoi keskeytysaliohjelmansa alkuun:

PUSH AX
PUSH BX
PUSH CX
PUSH DX

ja loppuun

POP DX
POP CX
POP BX
POP AX

Oikein olisi ollut:

PUSH EAX
PUSH EBX
PUSH ECX
PUSH EDX

ja loppuun

POP EDX
POP ECX
POP EBX
POP EAX

kun kerran keskeytysaliohjelmassa käytettiin myös 32 -bittisiä rekistereitä.
Pääohjelman 32-bit rekistereiden yläosa muuttuu satunnaisesti!

5

374

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      Kääntäjä hoitaa nuo. Ei niihin kannata keskittyä.

    • Anonyymi00002

      Tekoälyn historia kuin joku tieteiskirjailija tai tv-sarja Battlestar Galactica... creative AI.

      Oikeasti olen vähän innostunut kun huomasin että heidän prosessoreissa ei ole välttämättä tehoa, niin tuli Inteliltä joku juttu.. joku uusi väylä grafiikan ja CPU:n välille..

    • Anonyymi00003

      ei hoida kaikkea kuin jos bittileveys loppuu kesken niin segmentti-rekisteriäkin DS voi käyttää data-rekisterinä.

      Intel tai Microsoft sanoivat voit käyttää 32-bittisessä assemblykoodissa, mutta niin, toisaalta niin kun jo tottunut noihin AMD Radeon -juttujen käyttöön, niin löytyy bittileveyttä.

    • Anonyymi00004

      Kuulin suurilta yhtiöiltä että jokainen on erittäin kiinnostunut AI-sovelluksista.

    Ketjusta on poistettu 1 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Keitä täällä on??

      Kertokaa nimenne!! 🤔
      Ikävä
      110
      1084
    2. Tiedät, että en voi enää laittaa viestiä

      Aikaa kulunut. Eikä se näyttäisi enää luontevalta vastata näin pitkän ajan jälkeen. Tiedän myös, että sinä et enää lait
      Ikävä
      82
      814
    3. Tuleeko Martinasta rouva Muhis

      Saako vihdoinkin ne haaveilemansa prinsessa häät Hajjin entinen Muhammad kanssa, 😂 yhteistä heillä on se, että molemmat
      Kotimaiset julkkisjuorut
      264
      606
    4. Nostetaanpas kissa pöydälle: Onko Kuhmossa työpaikkakiusaamista?

      Kuka uskaltaa puhua? Vai uskaltaako kukaan? Naisvaltaisella alalla on kuulemma Kuhmossa ruma tilanne. Mitä aikuiset ede
      Kuhmo
      17
      595
    5. Mitä hyvää

      Mitä hyvää hän on tuonut elämääsi?
      Ikävä
      66
      548
    6. Ei enää kauaa rakkaani

      Ensin minun pitää saatella narsistit oikeuden eteen ❤️
      Ikävä
      93
      535
    7. Miten näytät / näytit ihastumisesi hänelle?

      Toimiko, miten hän vastasi? vinkki5
      Ikävä
      26
      512
    8. Oletko miettinyt sitä

      Että jos meidän persoonat ei sovi yhtään yhteen ;) No onneksi kumpikin on fiksu eikä halua toiselle mitään pahaa.
      Ikävä
      47
      491
    9. Mitä sanoisit

      juuri nyt kaivatullesi jos uskaltaisit/kehtaisit?
      Ikävä
      43
      476
    10. Mökötätkö, kun jäit ilman vastausta?

      Vai mitä ajattelet...
      Ikävä
      47
      437
    Aihe