Python: mesterséges intelligencia, tanulásos modellek miért ebben készülnek?
Mi az oka annak, hogy Python nyelven készülnek különféle mesterséges intelligenciás projektek (deep learning, machine learning stb)?
Ha gépikódra fordítható programozási nyelvben készülnének ezek, akkor sokkal gyorsabb lehetne az egész, nem?
Laikus vagyok és nem kötekedésből, hanem őszinte kíváncsiságból érdekelne.
Biztosan megvan az oka hogy miért Python-ban íródnak ezek és nem másban, erre lennék kíváncsi.
Maguk a projektekhez használt python könyvtárak gyorsak, a kritukus részeik C-ben íródtak, és már eleve le vannak fordítva.
Az MI projektek jellegzetessége, hogy sok próbálkozást, finomhangolás igényelnek, amihez sok ad hoc kód szükséges. Ehhez viszont a python sokkal gyorsabb.
Összefoglalva: a futási idő alig több pythonban, a fejlesztési idő viszont sokkal kevesebb.
A Pythonnak szerencséje volt, mert a készítője Guido van Rossum már 1995-ben elkezdett dolgozni egy munkacsoporttal a nyelv numerikus képességein. Illetve volt pár okos döntése (nagyon könnyű bővíthetőség C-ben, illetve például nagy adattípusok, hatalmas tömbök referenciaként átadása stb.), ami nagyon megkönnyítette ezt a munkát. Több éves munka és több munkacsoport eredményeinek összedolgozása után kialakult egy nagy teljesítményű numerikus könyvtár, a C-ben írt numpy, amely lehetővé tette a nagyteljesítményű ventorműveleteket; majd az erre ráépülő Pandas könyvtár, amely nagy mátrixokat (dataframe-eket) képes kezelni. Kb. ez utóbbi volt az áttörés a Python számára, mivel abban az időben még csak spéci statisztikai nyelvek (SPSS, S, R, MATLAB stb.) voltak képesek erre.
Innen kezdve megindult a versenyfutás a Python és az R között. A legtöbb nagy könyvtárhoz (például a legfontosabb TensorFlow és PyTorch) mind a kettőre van interfész. Az R is erőlködött még egy sort, amikor a zseni Hadley Wickham nekiállt lefejleszteni pár nagyon fontos kömyvtárat (ggplot2, tidyverse stb.). De a Python univerzalitása és más kvalitásai miatt (például majdnem rendes OOP támogatás) a Python áll nyerésre, nagyon durván.
Összességében ami jó a Pythonban, az a nagyon eltalált szintax, a könnyű bővíthetőség és a nagyon jó könyvtárak.
Korábban utáltam ezt a nyelvet (Java és PHP felől közelítve), de amióta használnom kell, nagyon megszerettem.
Nagyon köszönöm.
Azért jutott eszembe - így laikusként ez a téma - mert most egy PyTorch alapú projektet futtatok, ami nagyon lassú, én meg persze laikusként azt gondoltam: "a script-nyelv miatt". :)
Sajnos csak egy Ryzen 3600 proci van, megpróbáltam - bár eleve kudarcra-ítéltnek gondoltam - a GT710 kártyát GPU-nak, de rögtön közölte, hogy túl régi, nem támogatja.
Megkérdezhetem mi a legolcsóbb videokártya, amellyel valamiféle gyorsulást lehet(ne) elérni?
Fejlesztés pythonban jóval gyorsabb mint C++ ban. Pár sor kódban meg tudsz írni olyan dolgokat ami C++ ban akár több 100 sor is lehet rosszabb esetben.
A másik pedig hogy ML könyvtárak nagyrésze elég szépen optimalizálva vannak tehát sebességben nem sokat vesztessz ahhoz képest mintha teljesen C++ ban íródott volna.
Ez kicsit olyan mint a low level nyelvek esete. Nagyon gyorsan lefutó kódokat lehet velük írni(mondjuk ha elcseszed akkor meg nagyon lassút) de nagyon sok a fejlesztési idő és csak a sebességkritikus dolgokkal érdemes csak vesződni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!