Kezdőoldal » Számítástechnika » Programozás » Python: mesterséges intelligen...

Python: mesterséges intelligencia, tanulásos modellek miért ebben készülnek?

Figyelt kérdés

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.



2023. márc. 15. 08:17
 1/10 anonim ***** válasza:
93%

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.

2023. márc. 15. 08:58
Hasznos számodra ez a válasz?
 2/10 anonim ***** válasza:
94%

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.

2023. márc. 15. 09:40
Hasznos számodra ez a válasz?
 3/10 A kérdező kommentje:

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". :)

2023. márc. 15. 09:44
 4/10 anonim ***** válasza:
20%
Így alakult.
2023. márc. 15. 10:21
Hasznos számodra ez a válasz?
 5/10 anonim ***** válasza:
85%
Ez normális az ilyen típusú alkalmazásoknál. Profilozd az alkalmazásodat, hol vannak a lassú részek, és azokat kell tuningolni. Ez nem igazán nyelvfüggő, ha Javában lenne az app, akkor is profiloznod kellene, magától nem gyorsul fel. A Python valóban tud lassú lenni, de van rengeteg eszköz felgyorsítani, például numba, cython, polars stb. stb.
2023. márc. 15. 10:23
Hasznos számodra ez a válasz?
 6/10 A kérdező kommentje:
Nem én írtam az alkalmazást, én csak használnám. :) Valószínűleg egy bányász-gép kellene alá, hogy elfogadható sebességű legyen.
2023. márc. 15. 11:16
 7/10 anonim ***** válasza:
78%
Az nagy valószínűséggel nem a Python lesz akkor, hanem a C++-ban írt PyTorch, illetve sok adattal próbálsz bonyolult modelleket trenírozni. Az ilyen alá rendes GPU kell. :)
2023. márc. 15. 11:19
Hasznos számodra ez a válasz?
 8/10 A kérdező kommentje:

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?

2023. márc. 15. 11:26
 9/10 anonim ***** válasza:
78%
Processzor és dedikált videókártya között ég és föld a különbség ML modellek tanítására. Én alaphangon egy RTX videókártyát mondanék, ami támogatja a CUDA és CUDNN frameworkoket valamint megfelelő CUDA-code szám található benne, nyilván minél drágább annál jobb de régebbi generációs RTX videókártyák elég olcsón kb. 130-150k beszerezhető, mióta esett a kriptovaluták árfolyama.
2023. márc. 15. 12:42
Hasznos számodra ez a válasz?
 10/10 anonim ***** válasza:

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.

2023. márc. 16. 00:13
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!