Ubers maskininlärning och versionshantering

Uber har publicerat en övergripande beskrivning av sin infrastruktur för maskininlärningsmodeller samt ett verktyg, VerCD, som hjälper dem att hantera olika versioner av dessa modeller [1].

Maskininlärningsmodeller skapas i fem steg: 

  • Dataintag. Dataloggar för utveckling av maskininlärningsmodeller väljs ut och förs in till maskininlärningstacken. Ungefär 75 % av data används för träning, 15% för test och 10 % för validering.
  • Datavalidering. Den utvalda datamängden behandlas för att detektera och klassificera olika objekt. Dessa jämförs sedan med andra datamängder över samma scener för att förstå hur förhållandena har förändrats.
  • Modellträning. För att träna modeller appliceras Horovods distribuerad träning. Träningen sker parallellt på olika processorer så att samma modell tränas på flera processorer med olika delar av datamängden. I ett nästa steg används Horovods ring-allreduce-algoritm för att fördela det som en processor lärt sig till alla andra processorer. För att säkerställa att träningen går enligt plan övervakar ingenjörerna processen med hjälp av TensorFlow och PyTorch. Orkestrering av träningsarbetet görs med hjälp av Peloton, en open source resursplanerare utvecklad av Uber. 
  • Modellutvärdering. Utvärderingen omfattar modeller såväl som hela systemets prestanda. Här används både modellspecifika mätvärden och systemvärden. Utöver det utvärderas hårdvaran som modellerna kommer att exekveras på för att se hur väl den hanterar dessa modeller.
  • Modellimplementering. Efter att en modell tränats och utvärderats implementeras den på en dator i det självkörande fordonet.

Alla dessa steg kräver en hel del handpåläggning och stöd från ingenjörer vilket öppnar upp för misstag. Då varje steg har inbyggda beroenden till andra steg och andra system kan ett litet misstag få påtagliga konsekvenser. Det är där som verktyget VerCD kommer in i bilden. Det har skapats av Uber för att automatisera arbetsflödet samt underlätta hanteringen av olika beroenden och modellversioner. 

Egen kommentar

Kopplat till detta kan ni vi också rapportera att Ubers VD Dara Khosrowshahi är positiv till att använda självkörande teknologi från andra tillverkare och ska ha inlett samtal med relevanta aktörer. Några gissningar?

En annan Uber-relaterad nyhet är att företagets f.d. ingenjör Anthony Levandowski beordrats av en domstol i Kalifornien att betala 179 miljoner dollar till Google för brott mot villkoren i hans kontrakt och separationsavtal med Google. Han har nu ansökt om konkursskydd. Levandowski påstås ha stulit med sig flera tusentals dokument när han lämnade Google (Waymo), och som han sedan ska ha använt för att utveckla en lidarsensor för automatiserade lastbilar på Otto – som senare blivit uppköpta av Uber.

Källor

[1] Yu Guo, Khalid Ashmawy, Eric Huang, Wei Zeng. Uber Engineering. Under the Hood of Uber ATG’s Machine Learning Infrastructure and Versioning Control Platform for Self-Driving Vehicles. 2020-03-04 Länk