AI-támogatott programozás

Nem túlzás kijelenteni, hogy a mesterséges intelligencia átalakítja életünket és az üzleti élet folyamatait is. Az elmúlt kevesebb, mint egy év alatt felvillantotta, mire képes, sőt, az is egyértelmű, hogy mindez csupán a kezdet.

Bár régóta folyt a kutatás-fejlesztés az AI területén, a nagyközönség legfeljebb néha-néha találkozott ezzel a fogalommal – viszont legkésőbb a ChatGPT 3.0 2022 novemberi indulása óta valóságos „AI-robbanást” tapasztalunk: mindenki erről beszél: nyelvi modellek, kép- és videógenerálók, zene… Nézzük meg, milyen út vezetett idáig!

AI-támogatott programozás

EGY KIS AI-TÖRTÉNELEM…

Minden a Turing-géppel kezdődött… a tragikus sorsú angol matematikus, Alan Turing által megalkotott Turing-gép valójában a számítógépek leegyszerűsített modelljének tekinthető.

Később, a fix input-output reakciókra épülő játékprogramok jelentek megköztük is a legismertebbek a sakkprogramok, amelyek közül az elsőt éppen Alan Turing alkotta meg 1947-ben. Itt „mindössze” a megfelelő számítási kapacitáson múlik az, hogy az ismert (meghatározott) lehetőségek, lépéssorok összes kombinációját tudja a gép. Ezek az idő múlásával egyre fejlettebbekké váltak, míg 1996-ban megtörténhetett az is, hogy a Deep Blue nevű sakkprogram legyőzte Garri Kaszparov akkor sakkvilágbajnokot.

A következő lépés a neurális hálók és genetikus algoritmusok megalkotása volt. Amint a nevük alapján sejthető, ezek a biológiából és evolúcióból származtatott modellek, algoritmusok.

  • A neurális háló számokkal leírható bemenet (aktiváció) és kimeneti érték alapján működő hálózat. Nem kognitív rendszer, magától tanulni nem képes, ezért tanítani szükséges, és a tanítás paraméterei alapján egy elfogadható szinten megáll a folyamat.
  • Genetikus algoritmusok alatt olyan keresési technikák egy osztályát értjük, amelyekkel optimumot vagy egy adott tulajdonságú elemet lehet keresni. A genetikus algoritmusok speciális evolúciós algoritmusok, technikáikat az evolúcióbiológiából kölcsönözték.

A jelenhez közeledve, 1998-ban jelent meg először és a 2000-res évek elején élte virágkorát a Big Data, amely nagyméretű és komplex adatállományok feldolgozását lehetővé tevő technológiai környezetet jelent.  A Big Data jellemzője a három V: a nagy adatmennyiség, a gyors adatfeldolgozás és a nagyon változatos adatok (Volume, Velocity és Variety), amely a hagyományos strukturált adatmodellekkel, emberi erőforrással manuálisan nem kezelhető, elemezhető.

A következő lépésben a chatbotok jelentek meg. Bár az első chatbotot, ELIZA-t már 1966-ban megalkották, a chatbotok igazán csak a 2010-es évek második felében terjedtek el, leginkább vállalati weboldalakon, első szintű ügyfélszolgálati eszközként. Ezek előre beprogramozott eseteken alapulnak, korlátozottan képesek a tanulásra és a változó környezethez való alkalmazkodásra. Általában konkrét szakterületekre specializálódnak.

És lassan megérkezünk a jelenbe: a nagy nyelvi modellek (LLM, Large Language Model) közül talán a legismertebb, az OpenAI által fejlesztett ChatGPT 2022 novemberében került a piacra. Mellette, röviddel utána több hasonló alkalmazás is napvilágot látott: ilyen például a Bing AI, az Azure OpenAI Services, a GitHub Copilot vagy a Google Bard. A nagy nyelvi modellek célja a nyelvi kifejezőképesség javítása és a természetesebb ember-gép interakció megteremtése.

„Az AI a barátod”

Mennyiszer hallottuk azt, egy-egy kérdésünkre kapott válaszként, hogy „a Google a barátod”… a nem kicsit idegesítő mondat helyét lassan átveszi a modernizált változat, „az AI a barátod” – ugyanis a jól ismert internetes keresők (a Google és társai) mellett megjelent az AI keresés is, például a Bing vagy az Opera keresőbe, böngészőbe integrált AI eszközök révén.

A továbbiakban, informatikai cégként, az AI eszközök, ezen belül is a nagy nyelvi modellek programozásban, a fejlesztői munka támogatásában való felhasználására fogunk koncentrálni.

AI-TÁMOGATOTT PROGRAMOZÁS – NÉHÁNY FONTOS TUDNIVALÓ

2023 júniusában publikáltak a GitHUB-on egy 500 szoftverfejlesztő részvételével készült felmérést: eszerint a fejlesztők 92%-a használ már a munkájában (és természetesen magáncélra is) valamilyen mesterséges intelligenciára épülő szolgáltatást! Bár a felmérés az USA-ban készült, valószínűleg az európai fejlesztők körében is hasonló lehet ez az arány.

Az AI alkalmazásának fő céljai a fejlesztők számára a következők:

  • Tanulás, szakmai fejlődés elősegítése: az AI segítségével könnyebb utánanézni dolgoknak, elmélyedni egy-egy szakmai témában
  • Termelékenység, hatékonyság növelése: a standard kódolási feladatok „delegálhatók” az AI-nak
  • Fókusz az alkotáson: a „favágást” nyugodtan rá lehet bízni az AI-ra, és a fejlesztő az igazán kreatív fejlesztési munkára tud koncentrálni

Mi a DSS-nél megjelenése óta használjuk a ChatGPT-t. Eddigi tapasztalataink alapján meg is fogalmazhatunk néhány általános irányelvet, tudnivalót a ChatGPT szoftverfejlesztésben való felhasználásához:

A ChatGPT (vagy bármilyen hasonló LLM) használható az alábbi célokra:

  • általános információgyűjtésre bármilyen témában
  • konkrétan megfogalmazható kérdések megválaszolására, kérések teljesítésére
  • összefüggések tisztázására

Ugyanakkor nem osztunk meg vele

  • sem személyes adatokat
  • sem üzleti titkokat bármilyen formában (kód, dokumentáció, levelezés) – hiszen ezeket mind felhasználhatja

Nem célszerű a ChatGPT-t egzakt információk, adatok, referenciák keresésére sem használni – hiszen arra egy egyszerű Google keresés is alkalmasabb, amelynek segítségével könnyen eljuthatunk (például) egy gyártó honlapjára, ahol megtaláljuk a keresett adatokat, specifikációkat.

Ami a konkrét, fejlesztői munkával kapcsolatos feladatokat illeti, a következő típusú feladatokhoz lehet hasznos a ChatGPT az AI-támogatott programozásban:

  • Általános kérdések, alapok tisztázása egy új vagy kevésbé ismert üzleti területről (domain-ről), hogy az elvárt funkció és a fejlesztési feladat egyértelmű legyen; vagy legalább már pontosabban lehessen a kérdéseket megfogalmazni
  • SQL script generálása egy adott célfeladatra
  • Tervezési minták alapján osztályok, interfészek vázának forráskódszintű előzetes generálása (pl. C# vagy Java nyelveken); egyéb scriptek, parancsok generálása (pl. PowerShell és batch parancsok DevOps folyamatok esetén)
  • Konkrét technikai problémák vizsgálata, alternatív megoldási lehetőségek keresése; nyílt forráskód esetén kontextusfüggő elemzése
  • Egyedi megoldások fejlesztése LLM AI API integrációval (pl. LangChain)

Bár köztudott, de gyakran elfeledkezünk róla, hogy a ChatGPT legfrissebb adatai 2021 szeptemberiek – tehát olyan információt, javaslatot nem érdemes kérni tőle, amelyre várhatóan ennél frissebb a válasz vagy megoldás.

És miután választ kaptunk a kérdésünkre, kérésünkre, az AI által adott választ értelmezni is kell:

  • Az AI nem tudja, ha téved: könnyen összemos információkat (sőt, előfordul például, hogy általános iskolás szintű matematikai feladatokat hibásan old meg) – ráadásul visszakérdezéssel könnyen megzavarható
  • Az sem mindegy, hogyan és mikor kérdezünk: a token-elvű működésből adódóan a megfogalmazás, szórend, ragozás is számít
  • Az AI-tól kapott alapinformációk jellemzően rendben vannak, de a speciális kérdésekre adott válaszok fenntartásokkal kezelendők, pontosító kérdések és utánajárás célszerű – minél egzaktabb a kérdés, annál inkább érdemes utánajárni a kapott adatoknak
  • Nem feltétlenül a konkrét megoldást adja, inkább azt, ami ahhoz vezet – az AI által adott válaszokat, megoldásokat egy az egyben nem javasolt átemelni, csak értelmezést követően

Összefoglalva: mivel nagyon gyorsan fejlődik az AI (így a ChatGPT és a hasonló nyelvi modellek is), ezért az alábbiakat érdemes fejben tartani:

  • Amit az AI ma még nem tud, holnap már lehet, hogy tudja
  • Folyamatos gyakorlati használat, rutinszerzés szükséges
  • Kísérletezés és újítások beépítése fontos

JÖVŐKÉP

Az AI-t illetően a jövő felvázolása a kristálygömbbe való bámulással egyenértékű, de néhány trend azért mégis látható:

További gyors fejlődés

Az erős verseny miatt az LLM-ek gyorsan fejlődnek: az a cél, hogy legyen olcsóbb, gyorsabb és „okosabb” (pl. stateful API, GPT-4). Sőt, ne felejtsük el, hogy az AI nemcsak LLM-ből áll: megjelentek és egyre fejlődnek a beszéd- és hangfelismerő alkalmazások, az AI által támogatott fordítás, a kép- és videó felismerés és -szerkesztés, a beszédszintézis, a zeneszerkesztés… a határ a csillagos ég.

Alkalmazások és eszközök további integrációja

Megjelent és a közeljövőben várhatóan folytatódik az alkalmazások/szolgáltatások és eszközök/hardverek további integrációja – ezek például a következő területekre terjedhetnek ki:

Értéknövelt, testreszabott szolgáltatások és szolgáltatások összekapcsolása

  • Microsoft Azure OpenAI Services: a Microsoft az OpenAI ChatGPT szolgáltatását bővítette ki
  • OpenAI ChatGPT Web Browsing: ez az alkalmazás pedig a Bing keresési eredményeit tölti vissza a ChatGPT-be, hogy ne csak 2021 szeptemberéig legyenek adatai
  • A nagy piaci szereplők építi a saját rendszereiket: ilyen a Meta AI, az xAI vagy a Google Bard – nem tudjuk pontosan, mire és hogyan használják házon belül a saját adataikon: a Google talán inkább a keresési találatokat optimalizálja, a Meta a chat és postok alapján dolgozhat, pl. reklámokat, térképen javaslatokat, a felhasználók számára érdekes témákat javasolnak

Okoseszközök (órák, tévék, autók, bármi) „AI-osítása”

Felmerültek területspecifikus megoldások is, például:

  • Az oktatásban: interaktív elektronikus tananyag, tantermi AI asszisztens
  • Az egészségügyben: vizuális és szöveges elemzés kombinációja (MRI, röntgen, bőr és egyéb fotó), az orvosi diagnosztika támogatása
  • A jogalkalmazásban: értelmezési kérdések és precedensek AI támogatása

Magas szintű gépi intelligencia

A jelenlegi generatív AI után a következő lépcső az úgynevezett magas szintű gépi intelligencia (High level machine intelligence, HLMI) lesz, amelynek megjelenését a GitHub 2019-es felmérésében a megkérdezettek többsége 10 éves belülre jósolta (ne felejtsük el, ez ma már csak hat év!). A végcél viszont az „igazi” („real” vagy „true”) AI, amely teljes mértékben hasonló az emberi gondolkodáshoz, és emberi beavatkozás és karbantartás nélkül működik.

Hardverek fejlődése

Az AI rohamos fejlődése magával húzza a processzorok és egyéb hardverek fejlődését is: az egyre nagyobb tudás egyre nagyobb adatmennyiséggel jár, ami egyre nagyobb tárhelyet és teljesítményt igényel.

Jogi szabályozás

Végül, de nem utolsósorban: várható a AI-t használó alkalmazások jogi szabályozása is – hiszen az AI-alapú alkalmazások rengeteg lehetőséget adnak mind személyes adatokkal való visszaélésekre, mind pedig a szerzői jogok megsértésére is – e téren már elindultak az első perek is.