Tekoälyn päivälehti — mallit, työkalut ja hardware
Päivän Python-kirjasto · Koodi
Upotusmallien vakiokirjasto uudisti gradienttivälimuistin, sai torch.compilen vihdoin nopeuttamaan päättelyä ja varoittaa: int8-upotukset eivät enää ole bitilleen entisensä.
Mitä se ratkaisee: sentence-transformers on kirjasto, jolla tekstistä tehdään upotuksia eli vektoreita, joita haku vertailee. Jokainen paikallinen RAG-järjestelmä — se, jossa malli vastaa omien dokumenttiesi pohjalta — seisoo jonkin upotusmallin päällä, ja tämä kirjasto on niiden ajamisen ja kouluttamisen vakiotyökalu. Torstaina julkaistu 5.7.0 on korjaus- ja suorituskykyversio, jonka muutoslista on poikkeuksellisen suora sanoissaan.
Suorin lause koskee koulutusta: gradienttivälimuistia käyttävät häviöfunktiot rakennettiin uusiksi yhden yhteisen moottorin päälle, ja samalla korjattiin useita hiljaa vääriä gradientteja. Hiljaa väärä tarkoittaa, ettei mikään kaatunut — koulutus vain oppi hieman väärin, eikä kukaan huomannut. Uusi toteutus lisää myös tokenipohjaisen minierien niputuksen, jonka luvataan nopeuttavan välimuistillista koulutusta jopa 3,9-kertaisesti. Kotikoneen hienosäätäjälle gradienttivälimuisti on juuri se tekniikka, jolla iso erä koulutetaan pienellä muistilla, joten korjaus osuu paikalliseen käyttöön suoraan.
Päättelypuolen uutinen on lakoninen: model.compile() nopeuttaa nyt oikeasti päättelyä. PyTorchin käännösominaisuus on ollut rajapinnassa ennenkin, mutta vasta nyt sen luvataan tuottavan vauhtia upotusajossa.
Sitten se rikkova osa, joka ansaitsee varoituksen: int8- ja uint8-kvantisoidut upotukset eivät enää ole bitilleen samoja kuin aiemmissa versioissa, koska arvoalueen ulkopuoliset arvot leikataan ja lokeroarvot pyöristetään nyt oikein. Jos vektorikantasi on rakennettu int8-upotuksilla, vanhat ja uudet vektorit eivät ole täsmälleen vertailukelpoisia — käytännössä kanta kannattaa laskea uudelleen päivityksen jälkeen. Toinen rikkova muutos koskee Matryoshka-tyyppisten häviöiden kerrospainotusta.
Horisontissa näkyy vielä yksi muutos: versiosta 6.0 alkaen sellaisten mallien lataaminen, joiden moduulit tuovat luokkia kirjaston ulkopuolelta, vaatii trust_remote_code-lipun. Se on sama turvallisuusperiaate, jonka transformers otti käyttöön aiemmin — etäkoodia ei ajeta ilman nimenomaista lupaa — ja se on paikallisen ajajan kannalta oikea suunta.
Rajoitukset ennallaan: kirjasto ajaa upotusmalleja, ei generatiivisia malleja, ja sen taustat ovat PyTorch sekä ONNX- ja OpenVINO-polut päättelyyn. Asennus on pip install sentence-transformers, koulutuskäyttöön train-lisäosalla.