Разработката на софтуер с машинно обучение (ML), изкуственият интелект, дизайнът, предизвикателството на ежедневните релийзи – тези и други актуални теми дискутираха специалисти по време на конференцията „Astea Conference: Practical Magic” тази събота в Интер Експо Център – София, организирана от Astea Solutions.
Голяма част от работата в ML компаниите заема самото машинното обучение (около 20-30%), останалото е стандартна разработка на софтуер. Това е съпътствано и от редица проблеми, стана ясно от лекцията на Ивайло Странджев, лидер по машинно обучение в HyperScience.
Подводните камъни на машинното обучение
Един от тях е наличието на много различни „фреймуърк” среди като Caffe, Pytorch и Tensorflow, които се разработват със „скоростта на светлината”, но същевременно са уязвими на атаки, има проблеми с контрола на броя нишки, определен тип процесори „крашват”, резултатите не са детерминистични и т.н.
Често разработките се извършват „на сляпо” – защото една застрахователна компания, например, не дава достъп до истинските си бази данни, разказа Странджев. Затова в процеса на машинното обучение се генерират данни, които само „изглеждат истински”.
Друг проблем е консистентността. Дори да подобрим точността на модела (да речем от 98 на 99%), не можем да гарантираме, че конкретен пример, който е бил верен, ще остане такъв. Да се постигне 100 процента надеждност на решението е химера, посочи специалистът. Достатъчно голяма надеждност е 98%, но клиентът няма как да я измери.
Освен това е възможно малките промени да доведат до големи разлики – например при машинното разпознаване на снимки.
Проблемите се решават чрез добавяне на повече данни, махане на грешни данни, усложняване/опростяване на модела, след което следва ново трениране, а ако няма подобрение – отново итерации.
Последното предизвикателство в процеса на машинно обучение е следенето на версиите на моделите и възможността да се възстанови изцяло предишна версия – например, от преди 2 седмици, каза в заключение Странджев.
Предизвикателството на ежедневните релийзи
За предизвикателството на ежедневните релийзи разказа Дамян Димитров, специалист от Isobar Commerce Bulgaria. Най-важното, според него, е разработчикът да знае кой е клиентът, за когото работи. След това трябва да избере начина на тестване и какви инструменти за автоматизирано тестване да използва.
Той даде пример от работата си с компания – световен бранд, производител на спортни артикули, която притежава платформи за електронни магазини. Ежедневните релийзи за компания с 2 млрд. долара годишен оборот се правят трудно, защото сайтовете й поддържат 10 езика, над 60 вида плащания, тясна интеграция с външни услуги и т.н. Разработващият екип е от около 150 човека, разделени на под-екипи – от тях 70 на сто са програмисти, останалите 30 процента са SQL експерти, работи се в 10 под-екипа.
Когато програмистът е готов, започва верифицирането, а голяма част от него се извършва автоматично. Над 500 са автоматизираните тестове, които се ползват всеки ден, и броят им непрекъснато се увеличава.
„Коя е магията, която ни помага успешно да доставяме всеки ден работещ софтуер на клиентите си, които са милиони по цял свят? Тайната е в процеса – създаден е и се следва. Другата магия е автоматизираното тестване, защото това са функционални тестове, които трудно се поддържат”, обобщи Димитров.
Софтуерният дизайн е грижа и емпатия
„Там където има само функция, там няма дизайн. Дизайнът е грижа и емпатия”. Това каза Антон Стойчев, лектор с над 10 години опит в разработката на UI софтуер и дизайн, пред аудиторията на „Astea Conference: Practical Magic”.
„Целият дизайн е нещо като магия, той е навсякъде – в столовете на тази зала, по мокета на стълбите към залата и т.н. Дизайнът е асоциация и изживяване, той се прави от хора с различни специалности и влияе на живота ни всеки ден, по всякакъв начин”, каза Стойчев.
По неговите думи, самата софтуерна разработка е един вид дизайн. Но софтуерният дизайн се отличава от останалия видим, триизмерен дизайн, който ни заобикаля.
Има значение как е написан кодът, дали е оптимизиран с мисъл за човека или за машината. Всеки детайл е важен, дори най-дребният. Дизайнерските решения са навсякъде и ни влияят, те определят как се чувстваме, заключи Стойчев.
Браво!