{"id":32,"date":"2026-06-04T20:00:00","date_gmt":"2026-06-04T18:00:00","guid":{"rendered":"https:\/\/airex.se\/blogg\/auktionsbevakningen-tyst-timeout\/"},"modified":"2026-06-04T20:00:00","modified_gmt":"2026-06-04T18:00:00","slug":"auktionsbevakningen-tyst-timeout","status":"publish","type":"post","link":"https:\/\/airex.se\/blogg\/auktionsbevakningen-tyst-timeout\/","title":{"rendered":"Uppgraderingen som tystade 94 procent av jobbet"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Ett auktionshus l\u00e4gger ut n\u00e5gra hundra nya objekt i veckan. Beskrivningarna \u00e4r korta, kategorierna slarviga, och det enda s\u00e4ttet att hitta n\u00e5got intressant \u00e4r att bl\u00e4ddra igenom allt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">S\u00e5 jag byggde n\u00e5got som g\u00f6r det \u00e5t mig: h\u00e4mtar objekten, kategoriserar dem, tittar p\u00e5 bilderna, \u00f6vers\u00e4tter det som \u00e4r p\u00e5 engelska och gissar vad saken \u00e4r v\u00e4rd. Fyra olika AI-uppgifter i en kedja \u2014 och det mest l\u00e4rorika var n\u00e4r den slutade fungera utan att sluta rapportera framg\u00e5ng.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Olika modeller f\u00f6r olika jobb<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Det f\u00f6rsta man vill g\u00f6ra \u00e4r att v\u00e4lja &#8221;den b\u00e4sta modellen&#8221; och skicka allt dit. Det \u00e4r fel av tv\u00e5 sk\u00e4l: den b\u00e4sta modellen \u00e4r l\u00e5ngsammast, och de olika stegen \u00e4r olika sv\u00e5ra.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kategorisering, bildanalys och \u00f6vers\u00e4ttning \u00e4r rutinuppgifter \u2014 en medelstor multimodal modell klarar dem snabbt och billigt. Att resonera om marknadsv\u00e4rde \u00e4r n\u00e5got annat: det kr\u00e4ver bredare kunskap om vad saker faktiskt s\u00e4ljs f\u00f6r, och d\u00e4r g\u00e5r en betydligt st\u00f6rre modell in trots att den tar l\u00e4ngre tid per objekt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00f6rdelningen \u00e4r inte en optimering man g\u00f6r i efterhand. Den \u00e4r designen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Uppgraderingen som tystade allt<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">H\u00e4r kommer historien som \u00e4r v\u00e4rd hela inl\u00e4gget.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Jag bytte bildanalysmodellen mot en nyare och b\u00e4ttre. Det \u00e4r den sortens \u00e4ndring man g\u00f6r p\u00e5 en rad, k\u00e4nner sig n\u00f6jd med, och g\u00e5r vidare fr\u00e5n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00e4sta genomk\u00f6rning: <strong>680 av 720 objekt fick &#8221;timeout, hoppar \u00f6ver&#8221;.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Orsaken var trivial n\u00e4r den v\u00e4l syntes. Varje bild hade en tidsbudget p\u00e5 trettio sekunder, satt efter den gamla modellen. Uppm\u00e4tt efter\u00e5t: den gamla tog omkring fem sekunder per bild, den nya omkring trettiosju. Allts\u00e5 sju g\u00e5nger l\u00e5ngsammare \u2014 och strax \u00f6ver gr\u00e4nsen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Det obehagliga \u00e4r inte att den var l\u00e5ngsam. Det \u00e4r att <em>ingenting gick s\u00f6nder<\/em>. Jobbet startade, k\u00f6rde igenom hela listan, hoppade \u00f6ver n\u00e4stan varje objekt och avslutades snyggt. Loggen fylldes av rader som var f\u00f6r sig s\u00e5g ut som normal felhantering. Ur systemets perspektiv fungerade allt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L\u00e4xan generaliserar l\u00e5ngt utanf\u00f6r auktioner: <strong>n\u00e4r du byter modell byter du hela prestandaprofilen, och varje timeout som \u00e4r avst\u00e4md mot den gamla blir ett tyst filter.<\/strong> En modelluppgradering \u00e4r inte en konfigurations\u00e4ndring \u2014 den \u00e4r en kapacitets\u00e4ndring, och ska m\u00e4tas som en s\u00e5dan innan den sl\u00e4pps.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Det finns dessutom en obekv\u00e4m f\u00f6ljdfr\u00e5ga. Om systemet kan hoppa \u00f6ver 94 procent av sitt arbete utan att n\u00e5gon m\u00e4rker det \u2014 hur mycket av det arbetet beh\u00f6vdes egentligen? Den fr\u00e5gan tog l\u00e4ngre tid att skaka av sig \u00e4n buggen tog att fixa.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Var, och hur, \u00e4r tv\u00e5 olika fr\u00e5gor<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">En senare funktion var att fril\u00e4gga objektet p\u00e5 bilden \u2014 f\u00e5 bort auktionshusets bord, golv och kartonger s\u00e5 att listvyerna blir l\u00e4sbara.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Den sj\u00e4lvklara ansatsen \u00e4r att be en stor bildmodell g\u00f6ra hela jobbet. Jag delade i st\u00e4llet upp det: den multimodala modellen f\u00e5r svara p\u00e5 <em>var<\/em> objektet finns \u2014 en ruta i bilden \u2014 och ett litet specialiserat verktyg f\u00e5r svara p\u00e5 <em>hur<\/em> kanten ska klippas, med mjuka \u00f6verg\u00e5ngar kring h\u00e5r, glas och skuggor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Uppdelningen gav tv\u00e5 f\u00f6rdelar. Den r\u00e4cker f\u00f6r de allra flesta objekten, och den slapp en tung segmenteringsmodell som hade beh\u00f6vt en egen server. En generell modell som pekar och ett specialverktyg som utf\u00f6r \u00e4r ofta b\u00e5de billigare och b\u00e4ttre \u00e4n en stor modell som g\u00f6r allt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Tv\u00e5 minuter som s\u00e5g ut som ett trasigt system<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">En driftdetalj v\u00e4rd att spara: efter att bibliotek f\u00f6r bildbehandling lagts till tog tj\u00e4nsten <strong>tv\u00e5 minuter<\/strong> att starta i st\u00e4llet f\u00f6r en sekund. Under den tiden svarade den med fel, och det s\u00e5g ut som att hela drifts\u00e4ttningen misslyckats.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Orsaken var att biblioteket gjorde tung initiering redan vid import \u2014 innan n\u00e5got ens anv\u00e4nt det. Fixen var att importera det f\u00f6rst n\u00e4r funktionen faktiskt anropas. Starttiden gick tillbaka till en sekund, och kostnaden flyttades till f\u00f6rsta anv\u00e4ndningen, d\u00e4r den h\u00f6r hemma.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Det \u00e4r en generell f\u00e4lla i AI-relaterade beroenden: de laddar modeller och kompilerar saker vid import. Ett program som startar l\u00e5ngsamt \u00e4r inte bara irriterande \u2014 det ser ut som ett trasigt program f\u00f6r allt som h\u00e4lsokontrollerar det.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">S\u00e5 vet du att det funkar<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>R\u00e4kna det som lyckades, inte det som misslyckades.<\/strong> Ett jobb ska rapportera &#8221;412 av 720 objekt behandlade&#8221; \u2014 inte &#8221;klart&#8221;. Hade den siffran funnits hade timeout-problemet uppt\u00e4ckts samma kv\u00e4ll i st\u00e4llet f\u00f6r veckor senare.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>M\u00e4t tiden per anrop och spara den.<\/strong> Det g\u00f6r en modelluppgradering till en j\u00e4mf\u00f6relse i st\u00e4llet f\u00f6r en k\u00e4nsla.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Titta p\u00e5 utfallet med egna \u00f6gon.<\/strong> Slumpa fram tio objekt och l\u00e4s vad modellen skrivit om dem. Kategoriseringar som \u00e4r fel p\u00e5 ett systematiskt s\u00e4tt syns aldrig i statistiken \u2014 bara i texten.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Vad jag tar med mig<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Nyare \u00e4r inte snabbare.<\/strong> Vi \u00e4r vana vid att en uppgradering g\u00f6r saker b\u00e4ttre p\u00e5 alla s\u00e4tt. F\u00f6r modeller g\u00e4ller det inte \u2014 b\u00e4ttre svar och l\u00e4ngre tid \u00e4r ofta samma sak, och det \u00e4r en avv\u00e4gning man m\u00e5ste g\u00f6ra medvetet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ett skippat objekt m\u00e5ste synas.<\/strong> Felhantering som \u00e4r f\u00f6r sn\u00e4ll d\u00f6ljer att systemet inte g\u00f6r sitt jobb. &#8221;Hoppar \u00f6ver&#8221; ska r\u00e4knas, summeras och rapporteras \u2014 annars \u00e4r det inte felhantering, det \u00e4r f\u00f6rnekelse med loggutskrift.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>Jag bytte bildmodell mot en nyare och b\u00e4ttre. N\u00e4sta k\u00f6rning hoppade \u00f6ver 680 av 720 objekt \u2014 och rapporterade att allt g\u00e5tt bra. Om timeouts som blir tysta filter.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-32","post","type-post","status-publish","format-standard","hentry","category-ai-i-praktiken"],"_links":{"self":[{"href":"https:\/\/airex.se\/blogg\/wp-json\/wp\/v2\/posts\/32","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/airex.se\/blogg\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/airex.se\/blogg\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/airex.se\/blogg\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/airex.se\/blogg\/wp-json\/wp\/v2\/comments?post=32"}],"version-history":[{"count":0,"href":"https:\/\/airex.se\/blogg\/wp-json\/wp\/v2\/posts\/32\/revisions"}],"wp:attachment":[{"href":"https:\/\/airex.se\/blogg\/wp-json\/wp\/v2\/media?parent=32"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/airex.se\/blogg\/wp-json\/wp\/v2\/categories?post=32"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/airex.se\/blogg\/wp-json\/wp\/v2\/tags?post=32"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}