Задать вопрос
  • Как искать работу DevOps c резюме frontend?

    Maksim_64
    @Maksim_64
    ML Engineer
    1. В оглавлении резюме пишешь DevOps

    2. Перечисляешь навыки (включая DevOps стек)

    3. Перечисляешь компании где занимался frontend-разработкой.

    На первичном собесе с эйчаром, говоришь занимался фронтом, но в какой то момент в компании переключился на DevOps, затем проходишь/не проходишь технический собес.
    Ответ написан
    Комментировать
  • Стоит ли бежать со стартапа?

    Maksim_64
    @Maksim_64
    ML Engineer
    С твоих слов 300+, при чем даже если твои отдельные навыки хромают, только за то что все на тебе.

    Искать? Я бы такую работу уже давно сменил, а ждать никого и ничего не надо.
    Ответ написан
    Комментировать
  • С помощью чего проанализировать данные и построить свою нейронную сеть для бана пользователей?

    Maksim_64
    @Maksim_64
    ML Engineer
    1. Размечаешь датасет вся информация о действиях пользователя и метка хороший/нехороший

    2. Арендуешь сервер с gpu

    3. Разворачиваешь Базу в которой будут хранится размеченные данные. (плюс mlflow и airflow требуют коннекта к бд)

    4. Разворачиваешь в докере mlflow для трекинга результатов экспериментов.

    5. Разворачиваешь в докере airflow для управления тасками (композиции пайплана тренировки определенной архитектуры нейронной сети и оценки результатов)

    6. Возможно понадобится векторная база тоже поднимаешь в докере (в зависимости от архитектуры нейронной сети), ты можешь создать эмбеддинги "плохих пользователей" (портреты так сказать) и потом транслировать поведение пользователей которые заходят на сайт в эмбеддингии искать ближайшие (тех кто похож).

    7. Здесь можно и нейронки и классификатор с xgboost/catboost попробовать, что не отменяет необходимость трекировать эксперименты.

    8. В целом либо классическая архитектура нейрокна получает на вход информацию в определенном представлении и выдает вероятность пользователя быть "нехорошим" либо вариант с созданием эмбеддинга либо и то другое.

    Это если реально интересен результат продакшен уровня, а не просто пойграться с нейронками и их параметрами.
    Ответ написан
    1 комментарий
  • Как учиться и практиковаться?

    Maksim_64
    @Maksim_64
    ML Engineer
    1. Возьми небольшой проект на гитхабе, как ориентир.
    2. Практика и еще раз практика.
    Ответ написан
  • Дашборд. Какую методу сбора данных и платформу выбрать для разработки?

    Maksim_64
    @Maksim_64
    ML Engineer
    1. База данных, например постгре (развернутая в докере), как основное хранилище.

    2. airflow для управлениями тасками (развернутый в докере)

    3. Metabase (развернутый в докере) для множества дашбордов, доступных по паролям ролям и т.д.

    В metabase подключаешь бд, одним кликом. Затем пишешь параметризованные sql запросы, параметры задает конечный пользователь из интерфейса дашборда, настраиваешь визуализацию и готово. Сами дашборды обновляются динамически. То есть либо при каждом доступе к странице, либо по заданному календарю.

    airflow будет нужен, для организации работы скриптов (А мой совет докер контейнеров), выгрузки, очистки данных и т.д. то есть весь пайплайн загрузки в базу.
    Ответ написан
    Комментировать
  • Целесообразно ли использование двух RTX 5080 для обучения нейросетей?

    Maksim_64
    @Maksim_64
    ML Engineer
    Может быть, такое, что и одна практически в холостую будет работать. Все зависит, от архитектуры нейронной сети и от архитектуры пайплайна.
    Ответ написан
    3 комментария
  • DevOps риски, фабрика или скам?

    Maksim_64
    @Maksim_64
    ML Engineer
    Сомневаешься не делай, делаешь не сомневайся.

    Ты не сможешь развиваться, работать, и т.д., если ты заведомо сильно сомневаешься в работодателе.

    Если тебя сильно что-то смущает и интуиция говорит, не связываться - значит не связывайся.
    Ответ написан
    1 комментарий
  • Почему Soup.find возвращает None?

    Maksim_64
    @Maksim_64
    ML Engineer
    формально, если скопировать твой пример то все работает, значит что-то со строкой. Может там русские, английские символы, может специальные символы какие и т.д.

    Используй регулярки, для "стандартизации" строки по которой ищешь.
    Ответ написан
    9 комментариев
  • Что мешает создать сугубо инженерную генеративную нейросеть?

    Maksim_64
    @Maksim_64
    ML Engineer
    Нет фундаментального трансформера, который сведет, CAD диаграмму к векторному представлению. Как только сделают, тогда, будут появляется модели, которые будут внедрять в софт.

    Пространства изображений не достаточно, для работы со специфическими диаграммами.
    Ответ написан
    1 комментарий
  • Требуется ли junior deep learning инженеру знание математики?

    Maksim_64
    @Maksim_64
    ML Engineer
    Все зависит от компании, нет никаких общих требований. Собеседование это лотерея, советую не тратить время в попытке удовлетворить, все требования, а делать проекты и получать опыт.
    Ответ написан
    Комментировать
  • Reverse engineering black box ML-модели?

    Maksim_64
    @Maksim_64
    ML Engineer
    1. Нет нельзя.
    2. Тоже нельзя.

    Без параметров, и детальной архитектуры ML - модели, ловить нечего.

    Для первого случая вообще нет исключений, даже если твой black-box это простая линейна регрессия, такой же выхлоп, может давать куда более сложная модель.

    Для второго, в качестве исключения на примитивных взаимоотношениях да.
    Ответ написан
    Комментировать
  • Не копятся ли строки в памяти при работе с python?

    Maksim_64
    @Maksim_64
    ML Engineer
    Нет при такой конструкции, не копятся.

    У каждого объекта в памяти есть счетчик указателей, когда он равен нулю, объект уничтожается. По тому что нет возможности к нему обратится. Упрощенное правило, если ты не можешь обратится к объекту он будет уничтожен.

    html (упрощенно это именованный указатель на адресс в памяти) = myData.text (сам объект)
    html - это выполнится потом = myData.text - сначала выполнится эта часть кода. счетчик = 1
    html = html.replace('rub', 'руб') сначала выполнится эта часть кода. счетчик = 1 при этом myData.text - счетчик для этого объекта стал 0, он уже навсегда потерян.

    del html - сам по себе не удаляет объект, а понижает счетчик на один, что в свою очередь, если у объекта, только один именованный указатель приведет к удалению.

    Это упрощенно, у этого есть свои нюансы, связанные с оптимизацией. Плюс в первую очередь для понимания поведения объектов надо учитывать мутабельность/не мутабельность.
    Ответ написан
    Комментировать
  • Как получить детальные данные по лицу с фото?

    Maksim_64
    @Maksim_64
    ML Engineer
    То что ты описываешь называется эмбеддинг. Затем эти самые эмбеддинги используются для распознавания, нахождение ближайших эмбеддингов.

    https://pypi.org/project/deepface/
    Это набор моделей с простым интерфейсом не оптимизированным под GPU. Можно даже эмоции извлекать, можно координаты где лицо или лица на фото, пол, и т.д.
    Ответ написан
    Комментировать
  • Извлечение таблиц со спецификациями из PDF чертежей металлоконструкций - решаемо? Или я встрял?

    Maksim_64
    @Maksim_64
    ML Engineer
    Было дело работал с российскими нормативными документами гостами. По сталям и фиттингам для трубопроводов.

    1. Качество pdf очень важная история. Если совсем плохое парсер не возьмет (нужно искать в интеренте) есть открытые нормативные базы.
    2. парсеры (tabula, camelot) с множеством настроек, в зависимости от того, как настроишь зависит практически все.
    3. Ну и pandas обе библиотеки вернут список с дата фреймами, где фрейм это каждая таблица. Обычно требует много пост процессинга, например две таблицы на странице а их конкатенировать одна на одну, таблицы имеют "многоуровневую шапку" column multi index на языке пандаса и т.д.

    После пункта три, до желаемого результата одна строчка кода.
    Ответ написан
    Комментировать
  • Как указать модификатор S в re.sub python?

    Maksim_64
    @Maksim_64
    ML Engineer
    показал, бы что именно не сработало, ошибка или нет желаемого результата.

    Напрмер,
    re.findall(pattern, string, flags=0)

    re.sub(pattern, repl, string, count=0, flags=0)

    В первом случае ты указываешь именованный параметр flags, как позиционный, и он оказывается на правильной позиции, во втором случае его позиция на два больше. То есть при вызове метода sub нужно указывать flags как именованный парметр.
    Ответ написан
    1 комментарий
  • Как правильно вывести результат регулярного выражения в Python?

    Maksim_64
    @Maksim_64
    ML Engineer
    Так если ищем паттерн в твоем случае (букву, для поиска буквы регулярка не нужна) в строке, почему match? Замени re.match на re.search, код отработает, но тут опять таки, если он ничего не найдет, то также будет none, добавь условие какое нибудь, например.

    import re
    a = 'samsung'
    b = re.search(r'u', a)
    if b:
        print(b)
        print(b.start())
        print(b.end())
    else:
        print('Паттерн не найден')
    Ответ написан
    7 комментариев
  • Как удалить строки в таблице с одинаковыми параметрами по столбцам?

    Maksim_64
    @Maksim_64
    ML Engineer
    dataframe.drop_duplicates(subset=[col1,col2,..],keep=False)
    keep параметр, поддерживает 'first' (оставить первое) и 'last' оставить последнее, False удалит все строки.

    Дополнил, ответ для сравнения между колонками для общего случая если это две или более или подсет.
    cols = ['col1', 'col2', ..]
    df.loc[~(df[cols].eq(df[cols].iloc[:, 0], axis=0).all(axis=1))]
    Ответ написан
    8 комментариев
  • Куда надо устанавливать Python и его библиотеки?

    Maksim_64
    @Maksim_64
    ML Engineer
    Правильно создавать виртуальные окружения для каждого проекта и устанавливать библиотеки в виртуальные окружения.

    Учись сразу делать правильно, интернет полон обучающих материалов, как это делать.
    Ответ написан
    6 комментариев
  • В данном случае является ли класс абстрактным?

    Maksim_64
    @Maksim_64
    ML Engineer
    Нет не является, ты можешь создать его экземпляр.

    Вот так будет абстрактный.
    from abc import ABC, abstractmethod
    class Shape(ABC):
    
        @abstractmethod
        def area(self):
            pass
    Ответ написан
    1 комментарий
  • Что изучать дальше?

    Maksim_64
    @Maksim_64
    ML Engineer
    Начни и продолжай разрабатывать проект, постепенно увеличивая его сложность и улучшая его качество. Используй git. Многие навыки тяжело развить вне контекста проекта.
    Ответ написан
    Комментировать