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

359

    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. Vesikin maksaa, miksei hengitysilma?

      Jatkuvasti itketään ettei ole rahaa mihinkään, mutta tilastojen mukaan rahaa on enemmän kuin koskaan, joten miksei asial
      Maailman menoa
      8
      1656
    2. Satuolennoista tarinointi ei kuulu peruskoulun tehtäviin

      Opetustunteja on muutenkin käytössä vain rajallinen määrä. Eli nämä satuhommat koulun ulkopuolelle vapaaehtoisiin harras
      Maailman menoa
      124
      1642
    3. Suomalainen perheenisä vaatii Suvivirren esittämisestä hyvityksiä

      Itse lapsena uskonnonopetuksesta vissiin traumoja saanut ihka suomalainen (!) perheenisä vaatii Espoon kaupungilta korva
      Maailman menoa
      245
      1162
    4. Lahkokasteen ja kristillisen kasteen erot

      Raamatun mukaan Kristillisessä yhdessä kasteessa Jumala pesee ja puhdistaa ihmisen sydämen ja poistaa perisynnin kirouks
      Kaste
      422
      1078
    5. Mies profiloin sinut

      Etsit täysin hallittavaa mutta samalla poikkeuksellista ihmistä. Etsit jotain mitä et koskaan tule saamaan.
      Ikävä
      186
      996
    6. Mitä haluaisit

      Tehdä kaivattusi kanssa?
      Ikävä
      128
      919
    7. Heikki Paasosen Marita-vaimo jätti tunteikkaat jäähyväiset: "Tällä kertaa me..."

      Heikki Paasonen on naimisissa Marita Paasosen (os. Alatalo) kanssa ja heillä on kaksi pientä lasta. Nyt koitti aika jätt
      Suomalaiset julkkikset
      2
      866
    8. Känsäkoura ja hotelli

      Tietoa kuka ostanut?
      Kuhmo
      10
      845
    9. Pirkanlinna yleisötapahtuma

      Oli todella hyvä tilaisuus. Ja EERO. L. Aivan mahtava tyyppi. Veti rennosti ja asiallisesti. Ja yleisöltä hyviä kysymyks
      Ähtäri
      48
      833
    10. Kuka omistaa keltaisen vanhan aravan?

      Pitäs saada rakennuksen omistajaan yhteys, rappukäytävät on siivottomassa kunnossa. Hiekkaa ja roskia rappusissa, lisäks
      Haapavesi
      29
      827
    Aihe