Sytuacja kobiet w IT w 2024 roku
23.08.20217 min
Sandro Luck

Sandro Luck Machine Learning EngineerDigitec Galaxus AG

Machine Learning – 11 pytań z rozmów kwalifikacyjnych

Poznaj 11 przykładowych pytań z rozmów kwalifikacyjnych na stanowiska z rewiru Machine Learning.

Machine Learning – 11 pytań z rozmów kwalifikacyjnych

Nie tak dawno udało mi się opuścić uniwersytet z tytułem Magistra Informatyki. I wiedziałem na pewno, że chcę pracować w dziedzinie Machine Learning oraz Data Science. W moim CV znalazło się doświadczenie w dziedzinie Data Science i inżynierii danych oraz tytuł magistra zdobytego na jednej z najlepszych uczelni. Jak się okazuje jest to jedynie klucz, aby otworzyć drzwi. Aby dostać pracę, potrzebujesz przekonać rekrutujących podczas rozmowy kwalifikacyjnej.

Chcę się upewnić, że dostaniesz swoją wymarzoną pracę lub zatrudnisz wymarzony zespół, dlatego podzielę się z Tobą pytaniami oraz rodzajami pytań, które zadano mi podczas rozmowy kwalifikacyjnej. Jeśli się z nimi zapoznasz, prawdopodobnie nie popełnisz tych błędów.

Odbyłem około 8 rozmów kwalifikacyjnych, z których wszystkie były wieloetapowe. Jednym razem obejmowały one wyzwania związane z kodowaniem, a innym były to rozmowy prowadzone przez „Zooma" (#pandemiatime).

Ogólnie rzecz biorąc, występują 4 rodzaje pytań: 

  • pytania programistyczne, 
  • pytania z zakresu Data Science/Machine Learning, 
  • wyzwania koderskie,
  • pytania podejściowe.

I w zależności od rodzaju pracy, powinieneś przygotować się tak, aby móc odpowiedzieć na te, których prawdopodobieństwo wystąpienia jest bardzo duże.

Kompromis/dylemat między obciążeniem a wariancją

Z całą pewnością jest to najczęstsze pytanie, które dostawałem. Wydaje mi się, że dostałem je na co drugiej rozmowie, dlatego powinieneś się mu przyjrzeć.

Kompromis między obciążeniem a wariancją polega na tym, że wariancja oszacowań parametrów może zostać zmniejszona poprzez zwiększenie obciążenia w szacowanym parametrze.

Inną stroną tego pytania jest dylemat obciążenia i wariancji. Tutaj problem polega na jednoczesnej minimalizacji obciążenia i wariancji na zestawie testowym.

W obu przypadkach wspomniałbym o tym drugim i podał jakieś przykłady, jak zmniejszyć duże obciążenie (np. zwiększyć złożoność modelu) i wysoką wariancję (np. wybrać mniej cech do treningu).

Różnica pomiędzy zbiorem treningowym, testowym oraz walidacyjnym

Kolejny bardzo częsty typ pytania charakterystycznego dla ML, z którym spotkasz się na rozmowie kwalifikacyjnej. Zdarzało mi się odpowiadać na nie w około 30% moich rozmów kwalifikacyjnych.

Chociaż odpowiedź jest prostsza, niż by się mogło wydawać. Zbiór treningowy jest używany do dopasowania/trenowania/budowania modelu, zbiór walidacyjny jest używany do oszacowania punktu, w którym występuje nadmierne dopasowanie (wczesne zatrzymanie) lub do strojenia hiperparametrów, natomiast zbiór testowy jest używany do oszacowania błędu generalizacji.

Zachęcałbym Was do mówienia tak długo, aż na ich twarzach pojawi się zadowolenie. Możesz dorzucić kolejny temat do dyskusji i powiedzieć ile % danych używasz dla każdego zestawu. Inne podobne tematy, takie jak kroswalidacja lub Twoje podejście do zbioru danych, które mają naturalne tymczasowe połączenia, pomogą Ci zdobyć kilka dodatkowych punktów.

Jaki model preferujesz?

Załóżmy, że masz wyniki dla zbioru danych, sieć neuronowa ma dokładność 93%, a drzewo decyzyjne 91%. Który model byś wybrał?

Chociaż nie ma tu dobrej lub złej odpowiedzi, jest to dobra okazja, aby porozmawiać o kompromisie między wyjaśnialnością a dokładnością. Jeśli jest to model handlu akcjami, to 1-2% może być sporą sumą pieniędzy. Jeśli jest to model, który akceptuje lub odrzuca wnioski kredytowe, a obsługa klienta musi wyjaśnić, dlaczego model doszedł do takiego wniosku, odpowiedź może być zupełnie inna.

Inne kwestie, które warto omówić, to koszty rzeczywiste szkolenia, rozwoju, prognozowania i przekwalifikowania sieci neuronowej, które mogą być bardzo różne w porównaniu z drzewem decyzyjnym.

Baaardzo dużo pytań dotyczących SQL

Będąc całkiem szczerym, byłem zaskoczony ilością pytań z zakresu SQL. Zawsze pojawi się w jakiejś formie: w postaci pytania o Pandas, np. różne typy łączeń, w postaci zagadki SQL (co da to zapytanie lub napisz mi zapytanie, które...), a czasami w postaci pytania o takie pojęcia jak widoki, klucze główne czy normalizacja.

Tutaj należy wiedzieć, że nie będą oczekiwać od Ciebie pisania zoptymalizowanych zapytań, ale znajomość podstaw to tutaj must have.

Pytania podejściowe 

Co byś zrobił, gdybyś musiał powiedzieć interesariuszowi, że cechy, które on uważa za najlepsze dla modelu ML, Twoim zdaniem nie są najlepsze?

Jak zakomunikowałbyś, że interesariusze w sposób stronniczy wybrali dane, które Ci przedstawili? (Jedna wersja, gdy są to inżynierowie danych, druga w przypadku, gdy są to ludzie z biznesu, którzy znają tylko podstawy Excela).

Pytania podejściowe są częstsze niż początkowo sądziłem, ale to w dużej mierze zależy od stanowiska. Tak szybko jak stanowisko napotka nietechnicznych interesariuszy, będą oni stanowić ważną część procesu. Zwłaszcza w świecie konsultingu, rozsiądą się szeroko w swoich fotelach w trakcie rozmowy kwalifikacyjnej.

W całej serii tych rozmów, w jednej z dużych firm technologicznych, tego typu pytanie zadawano mi nawet przez 4 godziny. Rekruterzy zadawali te same pytania w kółko i w kółko. Było to dość wyczerpujące doświadczenie i zdecydowanie nie było to coś, na co byłem przygotowany. Ale Ty możesz poradzić sobie lepiej!

Jak poradziłbyś sobie z problemem braku etykiet?

Czasami pytania są zadawane w celu sprawdzenia, czy znasz jakieś pojęcie. W tym przypadku chodziło o to, abyś powiedział trochę o różnicy między uczeniem nienadzorowanym, a uczeniem nadzorowanym.

Inne możliwe odpowiedzi obejmowałyby pozwolenie komuś na objaśnienie danych lub zbudowanie oprogramowania do etykietowania. Nawiązanie i wyjaśnienie poszczególnych wersji algorytmów klasteryzacji, takich jak k najbliższych sąsiadów albo mieszanki gaussowskie i potencjalnie pogłębienie tematu może być dodatkowym atutem. Pamiętaj, aby dostosować swoje odpowiedzi do branży, w której aplikujesz, aby pokazać, że jesteś odpowiednią osobą na to stanowisko.

Co to jest Pep8

W rzeczywistości specyficzne dla języka programowania pytania nie pojawiają się tak często. Tutaj pojawiło się pytanie o Pythona, dlatego bycie dobrym inżynierem oprogramowania będzie zawsze ogromnym plusem.

Pep8 jest najbardziej powszechnym Style Guide dla kodu Pythona, określającym takie rzeczy, jak ilość spacji po argumencie lub sposób organizacji importów.

Tutaj dużo zależy od tego, w jakich językach się określasz, w C++, Scali itp. Na rozmowie kwalifikacyjnej będą zadawać bardzo różne pytania. Na Twoim miejscu sprawdziłbym, czy znasz przynajmniej jeden Style Guide i może coś związanego z testowaniem.

Jeżeli dysponowałbyś API, jak załadowałbyś plik CSV?

Odpowiedziałem, że powinno się po prostu załadować go z pandas, ponieważ zaimplementowali to o wiele lepiej, niż ja kiedykolwiek bym potrafił i prawdopodobnie nie ma lepszego sposobu...

Rekruter powiedział, że wszyscy tak myślą i to źle (wstydź się Sandro). Najwyraźniej ładowanie za pośrednictwem pandas trwało 7 sekund, a ich implementacja radziła sobie z tym w 300 ms.

To, co chcę przekazać tym pytaniem, to, że nie powinieneś być zbyt pewny siebie, kiedy odpowiadasz na te z pozoru łatwe. Proszę, przynajmniej przetestuj i sprawdź dodatkowe rzeczy takie jak parquet, czy też załadowanie go do pamięci (a może nawet Cython? ;)).

Wyjaśnij, czym jest macierz błędu?

Nazywany również macierzem pomyłek. Przy tak prostym pytaniu nie powinieneś wymieniać wszystkich możliwych odpowiedzi, ale upewnij się, że krótko stwierdzasz, że zawiera ona True Positive (prawdziwie pozytywna), False positive (fałszywie pozytywna) i że możesz obliczyć takie rzeczy jak Precision (precyzja) i Recall (czułość).

Tutaj należy rozważyć opcje rozwinięcia Twojego wywodu w zależności od wyrazu ich twarzy. To zawsze będzie pewien rodzaj aktu dyplomatycznego, aby znaleźć odpowiednią ilość informacji do zaprezentowania.

Wykrywanie anomalii?

Jest to pytanie o bardzo szerokim zakresie. Pierwszą rzeczą, jaką bym zrobił, to omówiłbym różnicę między obserwacją odstającą a anomaliami. Chociaż nie wszyscy ją tutaj widzą, Ty możesz pokazać, że masz pewną wiedzę na temat różnic "kulturowych" w danej dziedzinie. Ci, którzy zauważają tą różnicę, zwykle uważają anomalie za "błędy" w danych, które nie pochodzą z rozkładu, a wartości odstające za pochodzące z rozkładu, ale nie są one tak częste.

Możesz również mówić o różnych metodach statystycznych takich jak las izolacji, mieszanki gaussowskie, czy po prostu odchylenie standardowe. Po omówieniu tych tematów z łatwością zajmiesz im 5-6 minut, a biorąc pod uwagę, że rozmowy kwalifikacyjne zazwyczaj zawierają więcej pytań, powinno to być więcej niż wystarczająco.

Implementacja API uczenia maszynowego?

Inną bardzo ważną częścią rozmów kwalifikacyjnych związanych z uczeniem maszynowym są realne wyzwania kodowania. Poproszono mnie o wytrenowanie modelu na danych i zbudowanie API, które obsługuje żądania przy użyciu tego modelu,  w tym takie rzeczy jak docker, ładowanie modeli czy testowanie. 

Chociaż nie mogę w pełni omówić moich odpowiedzi w tym artykule, to na szczęście nagrałem cały filmik pokazujący na bardzo rzeczywistym przykładzie, jak można wykonać takie ćwiczenie w odpowiednim czasie i na co zwrócić szczególną uwagę.

Wnioski

Chociaż proces rozmowy kwalifikacyjnej może być bardzo wymagający zarówno technicznie, jak i psychicznie, jestem pewien, że teraz wiesz już lepiej, czego się spodziewać. Oczywiście zawsze znajdzie się jakieś niespodziewane pytanie, na które nie znasz odpowiedzi, ale z pomocą technik, które omówiliśmy w tym artykule i po prostu będąc świetnym Data Scientist, inżynierem oprogramowania czy inżynierem uczenia maszynowego jestem przekonany, że znajdziesz swoją wymarzoną pracę.

Nie zapomnij sprawdzić mojego kanału YouTube, gdzie co tydzień będę publikował nowe filmy.



Oryginał tekstu w języku angielskim przeczytasz tutaj.

<p>Loading...</p>