Novým hostem v podcastu Nejen o rekamě byl tentokrát programátor fulltextového vyhledávání v Seznamu. S Martinem Jandorou si povídali o tom, jak taková práce programátora vypadá, co stojí za fungováním funkce vyhledávání na Seznamu a jak se pracuje s neuronovou sítí.
Je těžké stát se programátorem?
Neřekl bych, že je to těžké. Ale při této práci je potřeba uvažovat určitým způsobem. Umět algoritmizovat úlohu a rozpadnout ji na menší části. V určité formě se to může naučit každý. Ale důležitá je také praxe.
Co stojí za službou Vyhledávání a jak se vyvíjí?
Mašinérie za tím je tak veliká, že je těžké to jednoduše popsat. V poslední době je to celé o strojovém učení, zatímco před deseti lety to bylo spíše o hledání klíčových slov. Uživatelé však dnes očekávají, že po zadání dotazu vyhledávač pochopí, co přesně myslí a co chtějí vyhledat.
Nedávno jsme udělali velký technologický skok, když jsme použili ve větší míře neuronové sítě. Jsou to právě transformers modely, které umí pochopit význam dotazu uživatele a význam stránek. Pracovali jsme na tomto projektu téměř rok.
A jak přesně funguje neuronová síť?
Tento projekt pro nás představoval docela riziko. Do této doby jsme zatím nic podobného nezkusili. Ale věděli jsme, že to pro nás může mít velký přínos. Technologie již zmíněných transformers modelů je hodně disruptivní, to znamená že redefinuje způsob, jak se věci dělají a jak je nad tím potřeba přemýšlet. Předtím po zadání klíčového slova engine hledal stránky, které to klíčové slovo obsahují. Nyní se dotaz převádí do abstraktní matematické reprezentace, konkrétně do vektoru, a hledají se stránky, které tomu vektoru nejvíce odpovídají. A to je něco, co vyžaduje úplnou změnu uvažování a pohlížet na vyhledávání jiným způsobem.
Pozoruješ na sobě někdy kódovou slepotu?
Každý člověk dělá chyby a také seniorní vývojáři dělají chyby. Proto je potřeba zavést mechanismy k eliminaci takových chyb. Psát testy ke kódu a dělat code review. Lidské chyby se tímto způsobem snažíme eliminovat na minimum.
Dá se říct, že má vývojář svůj specifický rukopis?
Když dva vývojáři napíšou jeden kód, nikdy nebude identický. Ale to neznamená, že by byl jeden z nich horší.
A co dalšího uslyšíte?
- Jak funguje Jarkův pracovní tým?
- Jak se ve svém oboru vzdělává?