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!
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 meg – kö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.