Iltakooste

Tekoälyn päivälehti — mallit, työkalut ja hardware

Maanantai · 10. elokuuta 2026Iltapainos · klo 21Nro 38
← Takaisin etusivulle

Päivän Python-kirjasto · Koodi

ExecuTorch 1.4.0: PyTorch-malli puhelimeen ilman Pythonia — ja se, jolla Metan Mac-luvut mitattiin

Uusi versio ilmestyi perjantaina, ja tänään sen nimi näkyi Muse Glimmerin julkaisussa kolmesti. Kirjasto vie PyTorch-mallin .pte-tiedostoksi, jota ajetaan C++-ajurilla puhelimessa, mikrokontrollerissa tai Macissa.

nn.ModulePyTorchexport.pteXNNPACK · CPUCore ML · MPSQNN · OpenVINO1.4.0 · julkaistu 7.8.2026 · Python 3.10–3.14pip-paketti on yhä beetassa

ExecuTorch on PyTorch-säätiön oma alusta mallien ajamiseen laitteessa, ja versio 1.4.0 ilmestyi PyPI:hin perjantaina 7. elokuuta. Se olisi ollut kohtuullisen arkinen julkaisu — edellinen versio 1.3.1 on toukokuulta — ellei tämän päivän suurin uutinen olisi maininnut sitä kolmesti. Metan Muse Glimmerin Mac-nopeusmittaukset tehtiin ExecuTorchilla, mallista julkaistiin erilliset ExecuTorch-käännökset, ja tutkimusblogi listaa sen llama.cpp:n ja MLX:n rinnalle reunapuolen ajokehyksenä.

Mitä kirjasto ratkaisee? Ongelmana on, että PyTorch-malli on Python-ohjelma, ja Python-tulkkia ei haluta puhelimeen, kuulokkeeseen eikä mikrokontrolleriin. ExecuTorch vie mallin ensin välikieleen ja sarjallistaa sen .pte-tiedostoksi, jota ajetaan kevyellä C++-ajurilla ilman Pythonia. Ero llama.cpp:hen on siinä, mistä päästä tullaan: llama.cpp toteuttaa arkkitehtuurit käsin C++:lla, ExecuTorch vie olemassa olevan PyTorch-määrittelyn sellaisenaan.

Taustaosat ovat se kohta, jossa kirjasto koskettaa tämän lehden aihepiiriä. Valmiiksi käännetty runtime-moduuli sisältää XNNPACK-taustan suorittimelle kaikilla alustoilla. macOS:llä mukana ovat lisäksi Core ML ja MPS eli Applen oma neuroprosessori ja Metal-näytönohjain. Linuxin x86-64-koneilla mukaan on linkitetty Qualcommin QNN, ja Linuxilla myös OpenVINO, joka asennetaan erikseen komennolla pip install executorch[openvino].

Käytännön reunaehdot kannattaa lukea ennen kuin ilta menee virheilmoitusten kanssa. Tuetut Python-versiot ovat 3.10–3.14, ja alustat Linux x86-64, Linux aarch64 ja macOS aarch64 — Windowsia listalla ei ole. Paketti ei tuo mukanaan PyTorchia, joten yhteensopiva torch asennetaan erikseen. Valmiiseen runtime-moduuliin on linkitetty vain ydin-ATen-operaatiot, eli epätavallinen operaatio mallissa tarkoittaa kääntämistä lähteestä. Ja pip-paketti on julkaisumuistion oman sanamuodon mukaan yhä beetassa.

Minimaalinen asennus on uusi ja kätevä yksityiskohta: ympäristömuuttujalla EXECUTORCH_BUILD_MINIMAL=1 saa wheelin, jossa on vain Python-vientipolku ja .pte-sarjallistaja mutta ei runtime-sidoksia, ytimiä, taustapaketteja eikä esimerkkejä. Silloin riippuvuuksiin ei tule coremltoolsia, pandasia, scikit-learnia eikä hydra-corea, ja asennus pysyy pienenä. Tämä on juuri se tapaus, jossa kirjastoa käytetään vain viemiseen ja ajo tapahtuu muualla.

Rajoitus, joka on syytä sanoa: ExecuTorch ei ole vaihtoehto llama.cpp:lle työpöydällä. Se on vientityökalu ja laiteajuri, jonka koko olemassaolon syy on se laitekanta, jolla llama.cpp on hankala — iOS, Android, sulautetut. Työpöydällä sen käyttö on perusteltua lähinnä silloin, kun sama malli pitää saada myös puhelimeen samasta lähteestä. Muse Glimmerin tapauksessa se oli juuri se tarve.

Lisälähteet

Muut jutut tässä numerossa