Wątek przeniesiony 2023-05-12 12:30 z Inżynieria oprogramowania przez Riddle.

Kilka pytań o ML

0

Trochę kojarzę svm, kmeans, jakieś proste sieci neuronowe, ale ML generalnie było i nadal jest mi obce.

Ogólnie nie widzę siebie w tym, i nie stawiam sobie poprzeczki, aby tym bardziej w tym wymiatać, szukać pracy itp Raczej chciałbym móc z tym coś fajnego porobić, z nastawieniem na możliwe porażki, ale również poczuciem, że mam jakieś rozsądne opcje wpłynięcia na projekt.

Domyślam się, że niekreatywna część pracy w obszarze ML polega na:

  1. pozyskaniu treści,
  2. dobieraniu odpowiedniej metody do uczenia modeli (biorąc pod uwagę charakter treści)
  3. i odpowiednim znormalizowaniu treści pod metodę uczenia modelu

Ale trochę obawiam się, że ML może być trochę jak nodejs :D czyli easy to learn, but hart to master.

Tutaj wiem, że przeplataniem myślenia z metodą prób i błędów pozwoli mi trochę wdrapać się, może to pozwoli uzyskać jakiś ciekawy efekt, ale nie jestem pewien co dzieje się potem i jak bardzo konieczne jest poleganie na matematyce w sytuacji, gdy opracowany model ma skuteczność 70-80% i gdy okazuje się, że to jednak za mało.

Czy wtedy klepie się jakieś nowatorskie algorytmy do uczenia, czy raczej podkręca ilość materiałów, stosuje jakieś dzielenie modelu na podmodele z mniejszą liczbą cech, ciągła analiza wyników i stopniowe zawężanie do tego co generuje najbardziej optymalne rozpoznawanie? Na czym właściwie polega tutaj najcięższa część pracy?

Przy okazji poboczne pytania:

czy gdyby była potrzeba rozpoznawanie zegarka na ręce to, żeby uzyskać powiedzmy 90% wykrywalność to jak wielki musiałby być zbiór danych do uczenia, i przeważnie ile czasu taka nauka modelu musiałaby trwać? Czy takie rozpoznawanie trzeba wcześniej poprzedzić rozpoznawaniem człowieka, później rozpoznawaniem ręki, a potem dopiero gdzieś rozpoznawaniem zegarka?

Do jakich rozsądnych granic w uczeniu wystarczyłby jeden komputer z jakąś mocniejszą karta graficzna mieszczącą się w top 10. Do jak bardzo złożonych zadań konieczne jest korzystanie z chmur?

0

co do Ogólnie nie widzę siebie w tym(…), aby (…) w tym wymiatać, szukać pracy itp (…) również poczuciem, że mam jakieś rozsądne opcje wpłynięcia na projekt. - to nie chcesz szukać w tym pracy, ale zaraz potem pytasz o to opcje wpłynięcia na projekt?

1

Nie jestem jakimś ekspertem od ML.

Domyślam się, że niekreatywna część pracy w obszarze ML polega na:
pozyskaniu treści,
dobieraniu odpowiedniej metody do uczenia modeli (biorąc pod uwagę charakter treści)
i odpowiednim znormalizowaniu treści pod metodę uczenia modelu

Mniej więcej tak.

Tutaj wiem, że przeplataniem myślenia z metodą prób i błędów pozwoli mi trochę wdrapać się, może to pozwoli uzyskać jakiś ciekawy efekt, ale nie jestem pewien co dzieje się potem i jak bardzo konieczne jest poleganie na matematyce w sytuacji, gdy opracowany model ma skuteczność 70-80% i gdy okazuje się, że to jednak za mało.
Czy wtedy klepie się jakieś nowatorskie algorytmy do uczenia, czy raczej podkręca ilość materiałów, stosuje jakieś dzielenie modelu na podmodele z mniejszą liczbą cech, ciągła analiza wyników i stopniowe zawężanie do tego co generuje najbardziej optymalne rozpoznawanie? Na czym właściwie polega tutaj najcięższa część pracy?

Jedno i drugie :) Czasami widać, że danych jest trochę za mało do uzyskania sensownych wyników i trzeba zwiększyć zbiór uczący. Albo zmienić metodę. Albo skorzystać z innego podejścia.

ML nigdy tak nie używałem, ale w innych metodach robiłem coś takiego, że "a jakby to zaimplementować przy systemach rozmytych, spróbujemy? o, zamiast 90% jest 91%, sukces!". W światku akademickim jest czasami taka walka o pojedyncze punkty procentowe.

czy gdyby była potrzeba rozpoznawanie zegarka na ręce to, żeby uzyskać powiedzmy 90% wykrywalność to jak wielki musiałby być zbiór danych do uczenia, i przeważnie ile czasu taka nauka modelu musiałaby trwać? Czy takie rozpoznawanie trzeba wcześniej poprzedzić rozpoznawaniem człowieka, później rozpoznawaniem ręki, a potem dopiero gdzieś rozpoznawaniem zegarka?

Ale mówisz o rozpoznawaniu ze zdjęcia, czy o czym?

Do jakich rozsądnych granic w uczeniu wystarczyłby jeden komputer z jakąś mocniejszą karta graficzna mieszczącą się w top 10. Do jak bardzo złożonych zadań konieczne jest korzystanie z chmur?

Trudno powiedzieć.

Jeżeli pracujesz z dużymi modelami językowymi (LLM) to taki MPT-7B był trenowany na 440 kartach A100-40GB VRAM przez 9.5 dnia. Jednak już fine-tuning Vicuna-13B to kilka godzin na RTX 4090.

Z kolei rozpoznawanie obrazów przez YOLOv5 w wersji xl chyba potrzebuje tylko 8 dni na pojedynczej V100.

Ogólnie IMO granica to kilka dni – jak trenowałem jakiś model Text-To-Speech, nie pamiętam teraz jaki to był konkretnie, to po 2 dniach na RTX 3070 miałem coś, co nadal nie brzmiało zbyt dobrze i wiedziałem, że chyba trzeba będzie zwiększyć zbiór danych. Jakbym miał się o tym przekonać po tygodniu, to bym się załamał bardziej. Krótszy czas treningu = szybsza pętla iteracji.

Możesz sobie też przeliczyć koszt korzystania z chmury, bo może dla twoich potrzeb (testy, zabawa, trening od czasu do czasu) będzie to tańsze niż koszt jakiegoś 4090.

1 użytkowników online, w tym zalogowanych: 0, gości: 1