Господа, помогите пожалуйста войти в машинное обучение.
Впечатленный последними достижениями в области нейросетей и машинного обучения (ChatGPT, Midjourney, AlphaZero и проч.), подумал, а не связать мне свою жизнь с машинным обучением?
Линейную алгебру, основы статистики, матанализ, матрицы более менее помню.
Python еще нужно изучать? Фреймворки вроде Pytorch?
Не совсем понимаю, что представляет собой сейчас Machine learning developer. Это тот, кто сам разрабатывает, или кто умело пользуется разработками компаний вроде OpenAI? Есть еще всякие Data analyst, Data scientist, Data Engineer
Где применимы эти знания? За машинным обучением будущее или хайп спадет? Что с вакансиями?
Здравствуйте, flаt, Вы писали:
F>Из ABBYY звонили, предлагали обучаться по ходу работы. По деньгам тоже не обижали. Мне кажется, хороший вариант для вхождения в область.
Здравствуйте, Mihal9, Вы писали:
F>>Из ABBYY звонили, предлагали обучаться по ходу работы. По деньгам тоже не обижали. Мне кажется, хороший вариант для вхождения в область.
M>А чему обучаться предлагали?
На основе обезличенного массива собранных данных нужно быстро и дёшево найти инсайты к быстрому обогащению владельцев компании.
M>Господа, помогите пожалуйста войти в машинное обучение.
Здесь это спрашивать бесполезно т.к. эта тема не программерская.
В этом "мышинном обучении" программирования еще меньше, чем в 1С, там основа — прикладная область и немного математики.
Есть известные пакеты этого "ИИ", их разработка — это мелкое допиливание и настройка.
В этой работе непосредственно кодирования(тем более проектирования) практически нет, основная — анализ данных(первичных, промежуточных, результата).
Основное место разработчика(если таковой требуется) в команде — написание софта по разметке данных "обучения".
Сама разметка — полу-ручная, с помощью того софта — довольно унылое занятие.
Здравствуйте, Mihal9, Вы писали:
M>Где применимы эти знания? За машинным обучением будущее или хайп спадет? Что с вакансиями?
Применимы в прикладных областях.
Большей частью работы будет работа с данными (поиск, автоматизация разметки, автоматизация контроля над разметкой, чистка, анализ). Чтение статей, копание в чужих разработках уже меньше. Написания кода скоро может вообще не быть в скором времени, потому что даже довольно сильные авторы новых архитектур выкладывают на гитхаб тот ещё говнокод.
Сейчас всё более чётко начитает область делиться на специализации: data scientist — редкая птица, обитает в крупных корпорациях и научных центрах, которые могут позволить себе железо для обучения нейросетей. Тут надо знать математику, английский, Питон, немного С++/CUDA приветствуется.
Data engineer — вот это уже да, найти данные, организовать их хранение, доступ, все дела. Тут уже SQL, облака, докеры, хранилища. Питон практически не нужен.
Machine learning engineer — надо в конкретной прикладной области взять то, что придумали data scientist'ы из крупных компаний, взять данные от data engineer и, написав тонкую прослойку на Питоне, подружить данные и модели.
Ну и программист, post Machine learning engineer (сам придумал). Я работаю примерно в этой роли. Питона касаюсь редко, но дообучить нейросеть могу. Читаю питоновский код, переписываю его на С++ (практически все фреймворки имеют С++ API). Занимаюсь низкоуровневой оптимизацией получения данных, подачи их на вход нейросети, могу на С++/CUDA что-то реализовать, если оно есть только в Питоне. Знаю классическое компьютерное зрение лучше всех предыдущих ролей. Инструменты, с одной стороны — чисто плюсовые библиотеки общего назначения, а с другой: TensorRT, OpenVINO, OpenCV, gstreamer, ffmpeg. Иногда могу ускорить питоновский прототип на Nvidia Jetson на порядок.
Отдельно стоит роль data analyst, которая не столько технивеская, сколько менеджерская, про разговоры с людьми, построение отчётов, графиков, визуализацию и представление данных, анализ работы систем/бизнеса и доведение человеческим языком того, что там происходит и как это можно оптимизировать.
Мне вот какой момент непонятен.
Какой смысл писать и тренировать своего чат-бота, если уже существует ChatGPT ?
С гигантами и крупными компаниями не посоревнуешься в качестве обучения нейросеток.
Здравствуйте, Mihal9, Вы писали:
M>Мне вот какой момент непонятен. M>Какой смысл писать и тренировать своего чат-бота, если уже существует ChatGPT ?
Их адаптируют под свой домен, например. Доучивают, например, для банковского сектора. Но это не задача для одиночки.
M>С гигантами и крупными компаниями не посоревнуешься в качестве обучения нейросеток.
Здравствуйте, Mihal9, Вы писали:
M>Потому что с их железом они натренируют сеть за пару дней, в то время у нас уйдет пара месяцев
Если ты про большие сети, то в домашнее железо они в принципе не влезут, поэтому без шансов. Обучение одной сети может стоить миллионы долларов, где-то видел такую оценку. Это если ты сможешь в точности повторить все условия и обучение сойдётся с первого раза.
Но есть и множество маленьких сеток, для которых хватает и игровых видеокарт. Люди собирают специализированные датасеты под конкретную предметную область, учат сетки, получают результат. Тут примерно как с софтом: свою ОС мало кто разрабатывает, но прикладной софт писать может любой.
Здравствуйте, Nuzhny, Вы писали:
N>Data engineer — вот это уже да, найти данные, организовать их хранение, доступ, все дела. Тут уже SQL, облака, докеры, хранилища. Питон практически не нужен.
Сюда еще ETL, DWH. Имхо, востребовано, и питон все-таки нужен
Здравствуйте, Nuzhny, Вы писали:
N>Если ты про большие сети, то в домашнее железо они в принципе не влезут, поэтому без шансов. Обучение одной сети может стоить миллионы долларов, где-то видел такую оценку. Это если ты сможешь в точности повторить все условия и обучение сойдётся с первого раза. N>Но есть и множество маленьких сеток, для которых хватает и игровых видеокарт. Люди собирают специализированные датасеты под конкретную предметную область, учат сетки, получают результат.
Я понял вашу мысль. И всё равно: если Chat GPT усовершенствуют до уровня, когда он будет адекватно отвечать на любой вопрос, то пропадает необходимость писать свои чат-боты и тренировать свой домен (единственный и неповторимый).
Здравствуйте, Mihal9, Вы писали:
M>Я понял вашу мысль. И всё равно: если Chat GPT усовершенствуют до уровня, когда он будет адекватно отвечать на любой вопрос, то пропадает необходимость писать свои чат-боты и тренировать свой домен (единственный и неповторимый).
Допустим, есть РЖД, для которого нужен чат-бот для справочной по билетам и перевозкам. Или Сбер со своими услугами. Ты уверен, что ChatGPT сможет из коробки консультировать пользователей по актуальным продуктам?
Здравствуйте, Mihal9, Вы писали:
M>Нужно ли изучать Python, если хочу заняться машинным обучением?
Да, однозначно. Я сейчас его изучаю. Но для ml там изучать особо нечего. Просто питон и помимо ml много где используется. Язык интересен и сам по себе.
Ко всему прочему, что советовали выше, добавлю:
— питон нужен, он в любом случае много где полезен
— начни просто с какой-то придуманной задачки для себя и начинай погружаться в тему. Ну, условно, натренируй сетку для распознавания цветов (растений). Это сразу потребует кучи вспомогательных действий: надо где-то достать кучу фоток -> надо распарсить какой-то сайт -> надо на питоне написать утилиту по парсингу сайта и выкачиванию картинок -> надо куда-то положить это в БД; потом надо сделать из этого датасет — опять питон и какая-то либа. Потом нужно их все привести к одному разрешению и что-то еще сделать — вот тебе и PIL пригодился (либа для работы с изображениями). Потом обучишь и поймешь, что обучилась плохо. Пойдешь изучишь тему балансировки датасета — тоже применишь и реализуешь такое. Ну и так далее. Потом поймешь, что нужно к этому веб-морду прикрутить или какой-то АПИ. Заюзаешь FastAPI + базу прикрутишь. Потом захочешь сам че-нить оптимизнуть, чтобы это на мобилках работало. Ну и так далее...
Ну и походу будет понятно: что более интересно, какая область применения ML, что вообще там есть (а там реально очень много всего вспомогательного вокруг).
N>Допустим, есть РЖД, для которого нужен чат-бот для справочной по билетам и перевозкам. Или Сбер со своими услугами. Ты уверен, что ChatGPT сможет из коробки консультировать пользователей по актуальным продуктам?
openai дает API для дообучения существующей модели под свои нужны. Это на порядки проще чем свое обучать с нуля.
Здравствуйте, C0x, Вы писали:
N>>Допустим, есть РЖД, для которого нужен чат-бот для справочной по билетам и перевозкам. Или Сбер со своими услугами. Ты уверен, что ChatGPT сможет из коробки консультировать пользователей по актуальным продуктам? C0x>openai дает API для дообучения существующей модели под свои нужны. Это на порядки проще чем свое обучать с нуля.
Я и не спорю,а наоборот говорю, что под свой домен всё равно надо будет тренировать. Сейчас и более простые сети всё чаще берут уже не голые, а с претрейном на имэйджнете.