IT горячка в Сиэттле, эпизод 2

voyager3
Уже с Приветом
Posts: 1951
Joined: 11 Mar 2015 01:12

Re: IT горячка в Сиэттле, эпизод 2

Post by voyager3 »

Круто, не знал, что в форумный пост можно такую хтмлину воткнуть.
Вот описания самих контор - только с голодухи.
Chessplayer
Уже с Приветом
Posts: 345
Joined: 27 Nov 2007 05:33

Re: IT горячка в Сиэттле, эпизод 2

Post by Chessplayer »

voyager3 wrote: 11 Apr 2020 16:52 Вот описания самих контор - только с голодухи.
всё не смотрел, но, например, Hugging Face - это довольно продвинутая контора in the NLP space.
Mmodel
Уже с Приветом
Posts: 8193
Joined: 27 Mar 2016 23:56

Re: IT горячка в Сиэттле, эпизод 2

Post by Mmodel »

скажите, а чем Seatle лучше Bay Area?
User avatar
IvanGrozniy
Уже с Приветом
Posts: 10528
Joined: 04 Feb 2004 14:14
Location: Edgewater, NJ

Re: IT горячка в Сиэттле, эпизод 2

Post by IvanGrozniy »

Neural Networks and Deep Learning - done!
You do not have the required permissions to view the files attached to this post.
User avatar
Dweller
Уже с Приветом
Posts: 12258
Joined: 20 Dec 2000 10:01
Location: Bellevue, WA

Re: IT горячка в Сиэттле, эпизод 2

Post by Dweller »

О, надо же, я как раз щас переделываю тренинг пайплайн написаный под тензорфлоу на питоне, там руками имплементировали тренировку многослойной сети. Т.к. не было подходящей библиотеки. Надо сказать тензорфлоу не совсем очевиден и прозрачен, к тому же быстро эволюционирует, так что мозги задействуются по полной.
User avatar
IvanGrozniy
Уже с Приветом
Posts: 10528
Joined: 04 Feb 2004 14:14
Location: Edgewater, NJ

Re: IT горячка в Сиэттле, эпизод 2

Post by IvanGrozniy »

Dweller wrote: 14 Apr 2020 20:20 О, надо же, я как раз щас переделываю тренинг пайплайн написаный под тензорфлоу на питоне, там руками имплементировали тренировку многослойной сети. Т.к. не было подходящей библиотеки. Надо сказать тензорфлоу не совсем очевиден и прозрачен, к тому же быстро эволюционирует, так что мозги задействуются по полной.
Интересная задача, но, похоже, что очень простая :D
Сейчас также посматриваю туториалы к этому фреймворку. И у меня уже есть две претензии к гугловцам в связи с изученной теорией и тем, что они делают.
1. Зачем нужны epochs для тренировки глубокой (и не очень) нейронной сети? По-моему, бесполезная вещь, если опираться на теорию ML.
2. Какие преимущества даёт параметр BatchSize? Если интуитивно рассуждать, то он просто акууратность модели портит. Для предсказывания многих результатов, да, полезен, но в туториале его задают даже и на процессе тренировки. Может не совсем профессионалы этот туториал в Гугле составляли?
Если гугловцы есть среди нас, то, пожалуйста, проясните ситуацию.
User avatar
Dweller
Уже с Приветом
Posts: 12258
Joined: 20 Dec 2000 10:01
Location: Bellevue, WA

Re: IT горячка в Сиэттле, эпизод 2

Post by Dweller »

IvanGrozniy wrote: 14 Apr 2020 21:04
Dweller wrote: 14 Apr 2020 20:20 О, надо же, я как раз щас переделываю тренинг пайплайн написаный под тензорфлоу на питоне, там руками имплементировали тренировку многослойной сети. Т.к. не было подходящей библиотеки. Надо сказать тензорфлоу не совсем очевиден и прозрачен, к тому же быстро эволюционирует, так что мозги задействуются по полной.
Интересная задача, но, похоже, что очень простая :D
Сейчас также посматриваю туториалы к этому фреймворку. И у меня уже есть две претензии к гугловцам в связи с изученной теорией и тем, что они делают.
1. Зачем нужны epochs для тренировки глубокой (и не очень) нейронной сети? По-моему, бесполезная вещь, если опираться на теорию ML.
2. Какие преимущества даёт параметр BatchSize? Если интуитивно рассуждать, то он просто акууратность модели портит. Для предсказывания многих результатов, да, полезен, но в туториале его задают даже и на процессе тренировки. Может не совсем профессионалы этот туториал в Гугле составляли?
Если гугловцы есть среди нас, то, пожалуйста, проясните ситуацию.
при чем тут гугловцы, это общие вещи
1. для gradient descent нужно данные прогонять не один раз чтобы модель приблизить к оптимальной. Если Вы стругаете ножичком карандаш то лучше пройти два раза по кругу чтобы получился идеальный конус :)
2. batch size это чтобы сеть не прыгала из крайности в крайность. Должно быть достаточно данных в батче чтобы апдейт сети не разбрасывал её параметры слишком далеко между итерациями. В то же время достаточно маленьким чтобы кол-во итераций тоже было достаточно большим для convergence.
Разумеется если есть неограниченный ресурс памяти и проца то всё это не нужно :)
User avatar
IvanGrozniy
Уже с Приветом
Posts: 10528
Joined: 04 Feb 2004 14:14
Location: Edgewater, NJ

Re: IT горячка в Сиэттле, эпизод 2

Post by IvanGrozniy »

Dweller wrote: 14 Apr 2020 21:38
IvanGrozniy wrote: 14 Apr 2020 21:04
Dweller wrote: 14 Apr 2020 20:20 О, надо же, я как раз щас переделываю тренинг пайплайн написаный под тензорфлоу на питоне, там руками имплементировали тренировку многослойной сети. Т.к. не было подходящей библиотеки. Надо сказать тензорфлоу не совсем очевиден и прозрачен, к тому же быстро эволюционирует, так что мозги задействуются по полной.
Интересная задача, но, похоже, что очень простая :D
Сейчас также посматриваю туториалы к этому фреймворку. И у меня уже есть две претензии к гугловцам в связи с изученной теорией и тем, что они делают.
1. Зачем нужны epochs для тренировки глубокой (и не очень) нейронной сети? По-моему, бесполезная вещь, если опираться на теорию ML.
2. Какие преимущества даёт параметр BatchSize? Если интуитивно рассуждать, то он просто акууратность модели портит. Для предсказывания многих результатов, да, полезен, но в туториале его задают даже и на процессе тренировки. Может не совсем профессионалы этот туториал в Гугле составляли?
Если гугловцы есть среди нас, то, пожалуйста, проясните ситуацию.
при чем тут гугловцы, это общие вещи
1. для gradient descent нужно данные прогонять не один раз чтобы модель приблизить к оптимальной. Если Вы стругаете ножичком карандаш то лучше пройти два раза по кругу чтобы получился идеальный конус :)
2. batch size это чтобы сеть не прыгала из крайности в крайность. Должно быть достаточно данных в батче чтобы апдейт сети не разбрасывал её параметры слишком далеко между итерациями. В то же время достаточно маленьким чтобы кол-во итераций тоже было достаточно большим для convergence.
Разумеется если есть неограниченный ресурс памяти и проца то всё это не нужно :)
1. Вы подразумеваете Number Of Iterations. Epochs - это другое, согласно туториалу. В том же туториале есть это параметр, вроде iterationsNumber
2. Апдейт сети должен проходить на всех примерах из тренировочного сета. Нет смысла "частично" подсчитывать cost function для дальнейшего градиентого спуска. Если уж задан BatchSize, как 32, то проще выбросить все тренировочные примеры и оставить только 32 примера. Как раз с малым параметром BatchSize она и будет прыгать. Так же?
User avatar
Dweller
Уже с Приветом
Posts: 12258
Joined: 20 Dec 2000 10:01
Location: Bellevue, WA

Re: IT горячка в Сиэттле, эпизод 2

Post by Dweller »

IvanGrozniy wrote: 14 Apr 2020 21:49
Dweller wrote: 14 Apr 2020 21:38
IvanGrozniy wrote: 14 Apr 2020 21:04
Dweller wrote: 14 Apr 2020 20:20 О, надо же, я как раз щас переделываю тренинг пайплайн написаный под тензорфлоу на питоне, там руками имплементировали тренировку многослойной сети. Т.к. не было подходящей библиотеки. Надо сказать тензорфлоу не совсем очевиден и прозрачен, к тому же быстро эволюционирует, так что мозги задействуются по полной.
Интересная задача, но, похоже, что очень простая :D
Сейчас также посматриваю туториалы к этому фреймворку. И у меня уже есть две претензии к гугловцам в связи с изученной теорией и тем, что они делают.
1. Зачем нужны epochs для тренировки глубокой (и не очень) нейронной сети? По-моему, бесполезная вещь, если опираться на теорию ML.
2. Какие преимущества даёт параметр BatchSize? Если интуитивно рассуждать, то он просто акууратность модели портит. Для предсказывания многих результатов, да, полезен, но в туториале его задают даже и на процессе тренировки. Может не совсем профессионалы этот туториал в Гугле составляли?
Если гугловцы есть среди нас, то, пожалуйста, проясните ситуацию.
при чем тут гугловцы, это общие вещи
1. для gradient descent нужно данные прогонять не один раз чтобы модель приблизить к оптимальной. Если Вы стругаете ножичком карандаш то лучше пройти два раза по кругу чтобы получился идеальный конус :)
2. batch size это чтобы сеть не прыгала из крайности в крайность. Должно быть достаточно данных в батче чтобы апдейт сети не разбрасывал её параметры слишком далеко между итерациями. В то же время достаточно маленьким чтобы кол-во итераций тоже было достаточно большим для convergence.
Разумеется если есть неограниченный ресурс памяти и проца то всё это не нужно :)
1. Вы подразумеваете Number Of Iterations. Epochs - это другое, согласно туториалу. В том же туториале есть это параметр, вроде iterationsNumber
2. Апдейт сети должен проходить на всех примерах из тренировочного сета. Нет смысла "частично" подсчитывать cost function для дальнейшего градиентого спуска. Если уж задан BatchSize, как 32, то проще выбросить все тренировочные примеры и оставить только 32 примера. Как раз с малым параметром BatchSize она и будет прыгать. Так же?
Это что за туториал такой?
1. Epochs - это сколько раз пропускать весь датасет во время тренинга. Backpropagation делается раз в батч
2. Если апдейтить сеть только после всего датасета то надо уменьшать кол-во этих апдейтов иначе тренинг затянется на годы. Во-первых, cost function будет считаться долго на всем датасете, во вторых сеть не будет сходится за один присест, надо будет все равно много раз прогонять весь датасет.
Все эти танцы с батчами и эпохами как раз для того чтобы ускорить процесс на больших данных. Смысл в том чтобы 1) прогнать все данные больше одного раза, причем каждый раз в новом случайном порядке чтобы от порядка не зависел результат, 2) достаточно маленький батч чтобы быстро итерироваться, и 3) чтобы не прыгать слишком далеко по всему пространству решений нужен достаточно большой батч
User avatar
M. Ridcully
Уже с Приветом
Posts: 12003
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: IT горячка в Сиэттле, эпизод 2

Post by M. Ridcully »

Dweller wrote: 14 Apr 2020 20:20 О, надо же, я как раз щас переделываю тренинг пайплайн написаный под тензорфлоу на питоне, там руками имплементировали тренировку многослойной сети. Т.к. не было подходящей библиотеки. Надо сказать тензорфлоу не совсем очевиден и прозрачен, к тому же быстро эволюционирует, так что мозги задействуются по полной.
А до TF с чем были знакомы?
Что думаете по поводу чисто-символьных фреймворков (остались еще такие?) против неких странных-гибридных, которые пытаются запомнить, что делаешь на Питоне и уже по этому построить граф?
Действительно математегам так уж нужна совместивость с numpy, или проще новых математегов сделать?
User avatar
kyk
Уже с Приветом
Posts: 31438
Joined: 21 Nov 2004 05:12
Location: камбуз на кампусе

Re: IT горячка в Сиэттле, эпизод 2

Post by kyk »

Кстати, сейчас нанимают для удалённой работы, чистой воды 100%-remote WFH из-за кронавируса. Получается, что для работодателя физическое местонахождение работника, его география не имеет ниакого значения.

Через годик ситуация с короной улучшится, а привычка к 100%-remote WFH останется. Можно покупать дом в дешёвом и удобном месте США, работать удалённо и хрен с этой Калифорнией и NYC.

Более того, и иммиграционный статус может перестать иметь значение. Есть ГК или нет ГК, да вобще под какой пальмой сидит программёр - неважно для 100%-remote WFH.
Лучше переесть, чем недоспать! © Обратное тоже верно :umnik1:
User avatar
IvanGrozniy
Уже с Приветом
Posts: 10528
Joined: 04 Feb 2004 14:14
Location: Edgewater, NJ

Re: IT горячка в Сиэттле, эпизод 2

Post by IvanGrozniy »

Dweller wrote: 15 Apr 2020 03:26
IvanGrozniy wrote: 14 Apr 2020 21:49
Dweller wrote: 14 Apr 2020 21:38
IvanGrozniy wrote: 14 Apr 2020 21:04
Dweller wrote: 14 Apr 2020 20:20 О, надо же, я как раз щас переделываю тренинг пайплайн написаный под тензорфлоу на питоне, там руками имплементировали тренировку многослойной сети. Т.к. не было подходящей библиотеки. Надо сказать тензорфлоу не совсем очевиден и прозрачен, к тому же быстро эволюционирует, так что мозги задействуются по полной.
Интересная задача, но, похоже, что очень простая :D
Сейчас также посматриваю туториалы к этому фреймворку. И у меня уже есть две претензии к гугловцам в связи с изученной теорией и тем, что они делают.
1. Зачем нужны epochs для тренировки глубокой (и не очень) нейронной сети? По-моему, бесполезная вещь, если опираться на теорию ML.
2. Какие преимущества даёт параметр BatchSize? Если интуитивно рассуждать, то он просто акууратность модели портит. Для предсказывания многих результатов, да, полезен, но в туториале его задают даже и на процессе тренировки. Может не совсем профессионалы этот туториал в Гугле составляли?
Если гугловцы есть среди нас, то, пожалуйста, проясните ситуацию.
при чем тут гугловцы, это общие вещи
1. для gradient descent нужно данные прогонять не один раз чтобы модель приблизить к оптимальной. Если Вы стругаете ножичком карандаш то лучше пройти два раза по кругу чтобы получился идеальный конус :)
2. batch size это чтобы сеть не прыгала из крайности в крайность. Должно быть достаточно данных в батче чтобы апдейт сети не разбрасывал её параметры слишком далеко между итерациями. В то же время достаточно маленьким чтобы кол-во итераций тоже было достаточно большим для convergence.
Разумеется если есть неограниченный ресурс памяти и проца то всё это не нужно :)
1. Вы подразумеваете Number Of Iterations. Epochs - это другое, согласно туториалу. В том же туториале есть это параметр, вроде iterationsNumber
2. Апдейт сети должен проходить на всех примерах из тренировочного сета. Нет смысла "частично" подсчитывать cost function для дальнейшего градиентого спуска. Если уж задан BatchSize, как 32, то проще выбросить все тренировочные примеры и оставить только 32 примера. Как раз с малым параметром BatchSize она и будет прыгать. Так же?
Это что за туториал такой?
1. Epochs - это сколько раз пропускать весь датасет во время тренинга. Backpropagation делается раз в батч
2. Если апдейтить сеть только после всего датасета то надо уменьшать кол-во этих апдейтов иначе тренинг затянется на годы. Во-первых, cost function будет считаться долго на всем датасете, во вторых сеть не будет сходится за один присест, надо будет все равно много раз прогонять весь датасет.
Все эти танцы с батчами и эпохами как раз для того чтобы ускорить процесс на больших данных. Смысл в том чтобы 1) прогнать все данные больше одного раза, причем каждый раз в новом случайном порядке чтобы от порядка не зависел результат, 2) достаточно маленький батч чтобы быстро итерироваться, и 3) чтобы не прыгать слишком далеко по всему пространству решений нужен достаточно большой батч
Гуглу нужно больше времени потратить на объяснения. Я так понимаю что если batchsize меньше числа примеров для тренировки модели, то создатели используют теорию и алгоритм так называемого стохастического градиентного спуска. Я эту тему проходил в первой сертификате по ML. В таком методе есть подводные камни. Например, cost function может и не уменьшаться с итерациями при неправильно подобранных гиперпараметрах, типа learning rate. Во-первых, непонятно если мое предположение сейчас верно. Во-вторых, эта вся информация должна быть в документации к этому продукту. Иначе люди в слепую доверяются Гуглу, а косяки модели не заметят сразу.
Физик-Лирик
Уже с Приветом
Posts: 5104
Joined: 19 Oct 2004 01:46

Re: IT горячка в Сиэттле, эпизод 2

Post by Физик-Лирик »

kyk wrote: 15 Apr 2020 10:44 Кстати, сейчас нанимают для удалённой работы, чистой воды 100%-remote WFH из-за кронавируса. Получается, что для работодателя физическое местонахождение работника, его география не имеет ниакого значения.

Через годик ситуация с короной улучшится, а привычка к 100%-remote WFH останется. Можно покупать дом в дешёвом и удобном месте США, работать удалённо и хрен с этой Калифорнией и NYC.

Более того, и иммиграционный статус может перестать иметь значение. Есть ГК или нет ГК, да вобще под какой пальмой сидит программёр - неважно для 100%-remote WFH.
Сейчас нанять по другому и не получится. А вообще предполагается, что сейчас - удаленка, а потом, типа, добро пожаловать к нам.
User avatar
Dweller
Уже с Приветом
Posts: 12258
Joined: 20 Dec 2000 10:01
Location: Bellevue, WA

Re: IT горячка в Сиэттле, эпизод 2

Post by Dweller »

IvanGrozniy wrote: 15 Apr 2020 12:53
Dweller wrote: 15 Apr 2020 03:26
IvanGrozniy wrote: 14 Apr 2020 21:49
Dweller wrote: 14 Apr 2020 21:38
IvanGrozniy wrote: 14 Apr 2020 21:04

Интересная задача, но, похоже, что очень простая :D
Сейчас также посматриваю туториалы к этому фреймворку. И у меня уже есть две претензии к гугловцам в связи с изученной теорией и тем, что они делают.
1. Зачем нужны epochs для тренировки глубокой (и не очень) нейронной сети? По-моему, бесполезная вещь, если опираться на теорию ML.
2. Какие преимущества даёт параметр BatchSize? Если интуитивно рассуждать, то он просто акууратность модели портит. Для предсказывания многих результатов, да, полезен, но в туториале его задают даже и на процессе тренировки. Может не совсем профессионалы этот туториал в Гугле составляли?
Если гугловцы есть среди нас, то, пожалуйста, проясните ситуацию.
при чем тут гугловцы, это общие вещи
1. для gradient descent нужно данные прогонять не один раз чтобы модель приблизить к оптимальной. Если Вы стругаете ножичком карандаш то лучше пройти два раза по кругу чтобы получился идеальный конус :)
2. batch size это чтобы сеть не прыгала из крайности в крайность. Должно быть достаточно данных в батче чтобы апдейт сети не разбрасывал её параметры слишком далеко между итерациями. В то же время достаточно маленьким чтобы кол-во итераций тоже было достаточно большим для convergence.
Разумеется если есть неограниченный ресурс памяти и проца то всё это не нужно :)
1. Вы подразумеваете Number Of Iterations. Epochs - это другое, согласно туториалу. В том же туториале есть это параметр, вроде iterationsNumber
2. Апдейт сети должен проходить на всех примерах из тренировочного сета. Нет смысла "частично" подсчитывать cost function для дальнейшего градиентого спуска. Если уж задан BatchSize, как 32, то проще выбросить все тренировочные примеры и оставить только 32 примера. Как раз с малым параметром BatchSize она и будет прыгать. Так же?
Это что за туториал такой?
1. Epochs - это сколько раз пропускать весь датасет во время тренинга. Backpropagation делается раз в батч
2. Если апдейтить сеть только после всего датасета то надо уменьшать кол-во этих апдейтов иначе тренинг затянется на годы. Во-первых, cost function будет считаться долго на всем датасете, во вторых сеть не будет сходится за один присест, надо будет все равно много раз прогонять весь датасет.
Все эти танцы с батчами и эпохами как раз для того чтобы ускорить процесс на больших данных. Смысл в том чтобы 1) прогнать все данные больше одного раза, причем каждый раз в новом случайном порядке чтобы от порядка не зависел результат, 2) достаточно маленький батч чтобы быстро итерироваться, и 3) чтобы не прыгать слишком далеко по всему пространству решений нужен достаточно большой батч
Гуглу нужно больше времени потратить на объяснения. Я так понимаю что если batchsize меньше числа примеров для тренировки модели, то создатели используют теорию и алгоритм так называемого стохастического градиентного спуска. Я эту тему проходил в первой сертификате по ML. В таком методе есть подводные камни. Например, cost function может и не уменьшаться с итерациями при неправильно подобранных гиперпараметрах, типа learning rate. Во-первых, непонятно если мое предположение сейчас верно. Во-вторых, эта вся информация должна быть в документации к этому продукту. Иначе люди в слепую доверяются Гуглу, а косяки модели не заметят сразу.
ага, все претензии к гуглу
они сделали хорошую библиотеку open source так что все пользуются бесплатно, и еще и должны идеально документировать?
проблемы две: библиотека меняется так быстро что они могут поддерживать только минимальную документацию, плюс предполагается что люди уже получили masters/PhD с уклоном в ML и разбираются во всех тонкостях и им нужно только сухая специфика реализации. Ну на это собственно лучше всего читать исходники, как впрочем во всем остальном.
Их тулзы в клауде тоже плохо документированы, но и там тоже все быстро мутирует и поддерживать документацию разных версий становится непросто
User avatar
Big W
Уже с Приветом
Posts: 920
Joined: 22 Jun 2007 20:41
Location: Santa Rosita

Re: IT горячка в Сиэттле, эпизод 2

Post by Big W »

Сабина wrote: 10 Feb 2020 09:03 Так ML ещё позже взлетел на фоне роста тех же самых big data технологий. Разьве за это платили такие хорошие деньги до того как все вышеперечисленные технологии поперли в гору ?
Вы безусловно вовремя влились в струю и позиция у вас сейчас вкусная ( поздравляю ), но я бы не уменьшала роль инженеров. Наоборот сейчас столько народу поперло в Data Science например что их даже стали сокращать то тут то там. А инженеров по прежнему везде не хватает. Точнее туда прут те самые Пердеши с древним хадупоопытом, если не вообще с голимой Джавой, а latest и greatest по прежнему мало кто знает на деле или вообще умеет
Сорри за запоздалый вопрос, хочу полюбопытствовать, что в данном контексте есть latest и greatest?
User avatar
IvanGrozniy
Уже с Приветом
Posts: 10528
Joined: 04 Feb 2004 14:14
Location: Edgewater, NJ

Re: IT горячка в Сиэттле, эпизод 2

Post by IvanGrozniy »

Dweller wrote: 15 Apr 2020 18:40
ага, все претензии к гуглу
они сделали хорошую библиотеку open source так что все пользуются бесплатно, и еще и должны идеально документировать?
проблемы две: библиотека меняется так быстро что они могут поддерживать только минимальную документацию, плюс предполагается что люди уже получили masters/PhD с уклоном в ML и разбираются во всех тонкостях и им нужно только сухая специфика реализации. Ну на это собственно лучше всего читать исходники, как впрочем во всем остальном.
Их тулзы в клауде тоже плохо документированы, но и там тоже все быстро мутирует и поддерживать документацию разных версий становится непросто
У Гугла есть косвенная выгода от того, что люди больше используют TensorFlow. Им нужно, чтобы эта научная ниша развивалась гораздо быстрее, чтобы извлекать выгоду поскорей. Сейчас у них дефицит кадров по этой специализации, все вокруг с руками и ногами вырывают специалистов от конкурентов. Так что могли бы и потратить 50-100 тысяч на достойную документацию. Если бы не необходимость использования модели на мобильных устройствах, я бы с этим фреймворком и не связывался. Андрюша Нг хорошие лабы подготавливает, которые легко конвертируются в рабочие модели адаптированные к железу и без этого фреймворка.
User avatar
IvanGrozniy
Уже с Приветом
Posts: 10528
Joined: 04 Feb 2004 14:14
Location: Edgewater, NJ

Re: IT горячка в Сиэттле, эпизод 2

Post by IvanGrozniy »

del
Ann4Ann
Уже с Приветом
Posts: 1239
Joined: 14 Nov 2002 23:02
Location: S.Peterburg, Russia -->SoFla

Re: IT горячка в Сиэттле, эпизод 2

Post by Ann4Ann »

ну дел так дел
User avatar
IvanGrozniy
Уже с Приветом
Posts: 10528
Joined: 04 Feb 2004 14:14
Location: Edgewater, NJ

Re: IT горячка в Сиэттле, эпизод 2

Post by IvanGrozniy »

Да просто про установку tensorflow и танцы с бубном написал :)
В общем эта приблуда не дружит с последними версиями Питона. Пришлось убить немного времени на разборки (три дня факультативного времени), чтобы найти обход проблемы.
В общем 2 пути:
1. Использовать готовый контейнер докера подготовленный Гуглом. Но он старый Питон 2.7 поддерживает.
2. Этот уже сегодня попробовал. Опытный учитель даже видео сделал, как на винду поставить. Нужно вместо обычного питона, устанавливать обрезанного питона miniconda 3.7. Вот его видео с объяснениями. Как ни странно, у меня все взлетело с первого раза!


Теперь нужно разобраться, как на Маке то же самое повторить (нужно будет модель тестировать в среде разработки айфоновских программ). Мак по умолчания ставится со старым Питоном, который TensorFlow не любит...
User avatar
IvanGrozniy
Уже с Приветом
Posts: 10528
Joined: 04 Feb 2004 14:14
Location: Edgewater, NJ

Re: IT горячка в Сиэттле, эпизод 2

Post by IvanGrozniy »

В общем, у меня появилась идея, как сделать фильтр для фильтрации резюме товарищу 8К по имени и фамилии кандидата.
viewtopic.php?p=7289245#p7289245
Один форумчанин предложил отфильтровать резюме индусов и китайцев :D
Я решил накидать модельку нейронной сети для этих целей. Решил упростить задачу - фильтровать только индусов и только по фамилии. Потратил час. Построил сбор данных и тренировку модели. Аккурастность предсказания 75% всего лишь на тренировке на 178 фамилий.
Вот что было.
1. Собрал данные с сайтов 100 самых распространненных американских фамилий и 100 самых распостраненных индусских фамилий.
2. Обработал их, загнав каждую букву фамилии, как порядковое число буквы алфавита

Code: Select all

def loadDataset():
    df = pd.read_csv("C:\\Temp\\indians.csv")
    arr = []
    for i, row in enumerate(df.values):
        arr.append([row[0].lower(), 1])
    df = pd.read_csv("C:\\Temp\\none-indians.csv")
    for i, row in enumerate(df.values):
        arr.append([row[0].lower(), 0])
    random.shuffle(arr)
    return arr
def convertWordToInts(word):
    arr = []
    for c in word.ljust(15):
        arr.append(ord(c) - ord('a'))
    return arr    

def getExamplesAndLabels(arr_train):
    examples = []
    labels = []
    for word in arr_train:
        examples.append(convertWordToInts(word[0]))
        labels.append(word[1])
    return (np.array(examples), np.array(labels))
3. Затем я их перемешал и 10% отделили для тестирования:

Code: Select all

def makeModel():
    arr_all = loadDataset()
    arr_train = arr_all[:int(len(arr_all) * 0.9)]
    arr_test = arr_all[int(len(arr_all) * 0.9):]
    (train_examples, train_labels) = getExamplesAndLabels(arr_train)
    (test_examples, test_labels) = getExamplesAndLabels(arr_test)
    train_examples =train_examples / 26.
    test_examples = test_examples / 26.
    train_labels.reshape((train_labels.shape[0], 1))
    test_labels.reshape((test_labels.shape[0], 1))
4. Сделал модель

Code: Select all

    model = keras.Sequential([
        keras.layers.Dense(15), #Flatten(input_shape=(train_examples.shape[0], train_examples.shape[1])),  # input layer (1)
        keras.layers.Dense(128, activation='relu'),  # hidden layer (2)
        keras.layers.Dense(2, activation='softmax') # output layer (3)
    ])
    model.compile(optimizer='adam',
                loss='sparse_categorical_crossentropy',
                metrics=['accuracy'])
    model.fit(train_examples, train_labels, epochs=10)

    test_loss, test_acc = model.evaluate(test_examples,  test_labels, verbose=1) 
    print('Test accuracy:', test_acc)
Собственно аккуратность предсказания получилось такая

Code: Select all

Test accuracy: 0.75
Понятно, что модель шуточная. Для большей точности, нужно еще подмешать имен и взять побольше примеров. Например, тысяч 10. :gen1:
User avatar
Albert_al
Уже с Приветом
Posts: 2308
Joined: 14 Apr 1999 09:01
Location: Ural->CA

Re: IT горячка в Сиэттле, эпизод 2

Post by Albert_al »

kyk wrote:Кстати, сейчас нанимают для удалённой работы, чистой воды 100%-remote WFH из-за кронавируса. Получается, что для работодателя физическое местонахождение работника, его география не имеет ниакого значения.

Через годик ситуация с короной улучшится, а привычка к 100%-remote WFH останется. Можно покупать дом в дешёвом и удобном месте США, работать удалённо и хрен с этой Калифорнией и NYC.

Более того, и иммиграционный статус может перестать иметь значение. Есть ГК или нет ГК, да вобще под какой пальмой сидит программёр - неважно для 100%-remote WFH.
Никто не даст работать с sensitive data чуваку под пальмой.
Ивану за фильтр индюков Кудос!ImageImageImage
Alcohol, Tobacco, Firearms, and Explosives. The makings of a great weekend in West Virginia!
User avatar
Nostradamus
Уже с Приветом
Posts: 6796
Joined: 30 Apr 2000 09:01
Location: Из будущего

Re: IT горячка в Сиэттле, эпизод 2

Post by Nostradamus »

kyk wrote: 15 Apr 2020 10:44
Через годик ситуация с короной улучшится, а привычка к 100%-remote WFH останется. Можно покупать дом в дешёвом и удобном месте США, работать удалённо и хрен с этой Калифорнией и NYC.
Если даже и наймут то платить будут соответственно. И скорее всего захотят открыть там офис, как только будет возможность.
Вот вам успокаивающее. А вот - патроны к нему.
User avatar
M. Ridcully
Уже с Приветом
Posts: 12003
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: IT горячка в Сиэттле, эпизод 2

Post by M. Ridcully »

Albert_al wrote: 23 Apr 2020 19:11 Никто не даст работать с sensitive data чуваку под пальмой.
А что такое "sensitive data", и почему над ней нельзя работать из под пальмы?
Меня в этом сценарии другое напрягает. Предположим, я ценный работник, и предположим, что _текущий босс_ даже согласен, чтобы я работал из под пальмы, и даже сохранил (пока) текущую калифорнийскую зарплату.
Вот я переехал, купил среди пальм дом и все такое. Я теперь пипец как завишу от своего работодателя! Босс может смениться, в хорошей компании незаменимых людей не бывает, и т.д. Любое изменение ситуации - и я в очень уязвимой ситуации.
Если только работа из под пальмы не станет стандартом для большинства хороших компаний.
User avatar
kyk
Уже с Приветом
Posts: 31438
Joined: 21 Nov 2004 05:12
Location: камбуз на кампусе

Re: IT горячка в Сиэттле, эпизод 2

Post by kyk »

M. Ridcully wrote: 24 Apr 2020 03:55 Вот я переехал, купил среди пальм дом и все такое. Я теперь пипец как завишу от своего работодателя! Босс может смениться, в хорошей компании незаменимых людей не бывает, и т.д. Любое изменение ситуации - и я в очень уязвимой ситуации.
Вы это компенсируете боссу тем, что соглашаетесь работать remotely под пальмой за меньшую оплату. Иными словами, для вас - одного и того же человека - будут два рейта оплаты: Local at California и remote - под пальмой.

Один и тот же Вы переезжаете в оффис в калифорнию - получаете больше, переезжаете под пальму - получаете меньше, возвращаетесь в калифорнию - опять боьше. Ну или можно ввести поправочные коффициенты к Вашему рейту: (1) local и (2) под пальмой

Базовый рейт будет привязан к Вашей personality, наличию омериканского опыта.

А наличие омериканского гражданства позволит Вам вернуться в Калифорнию если проклятый капиталист-кровосос захочет сильно снизить Вашу ЗП под пальмой.
Лучше переесть, чем недоспать! © Обратное тоже верно :umnik1:
Lisa
Уже с Приветом
Posts: 3209
Joined: 25 Jul 2000 09:01

Re: IT горячка в Сиэттле, эпизод 2

Post by Lisa »

kyk wrote:Кстати, сейчас нанимают для удалённой работы, чистой воды 100%-remote WFH из-за кронавируса. Получается, что для работодателя физическое местонахождение работника, его география не имеет ниакого значения.

Через годик ситуация с короной улучшится, а привычка к 100%-remote WFH останется. Можно покупать дом в дешёвом и удобном месте США, работать удалённо и хрен с этой Калифорнией и NYC.
Имеет и не останется. Работ, где можно 100% удаленно работать с той же эффективностью, не так много. То, что сейчас все работают удаленно, не значит что производительность не упала или не упадёт в будущем.

Return to “Работа и Карьера в IT”