TheFounder

TheFounder

Здесь будет интересно всем, кто увлекается нейросетями, хочет стать разработчиком, создать свой IT-стартап... Ну, или просто любит и хочет изучать код :)
На Пикабу
146 рейтинг 6 подписчиков 0 подписок 104 поста 0 в горячем
0

Типичная жизнь ML-инженера: Ожидание VS Реальность

Мечтали о шикарной жизни ML-инженера? Вокруг панорамные экраны, общение с Нобелевскими лауреатами за завтраком и презентации моделей на сцене Кремниевой долины? Звучит как сказка, правда?

А реальность: бесконечные баги, часами сидишь на Stack Overflow, борешься с кодом и куча немытых чашек.

Хотите узнать, как всё выглядит на самом деле? Листайте наш новый комикс, если тоже хоть раз мечтали о блестящей жизни ML-инженера, а оказались в мире бесконечных дедлайнов и борьбы с кодом.

Типичная жизнь ML-инженера: Ожидание VS Реальность Программирование, Программист, IT, Удаленная работа, Машинное обучение, IT юмор, Длиннопост
Типичная жизнь ML-инженера: Ожидание VS Реальность Программирование, Программист, IT, Удаленная работа, Машинное обучение, IT юмор, Длиннопост
Типичная жизнь ML-инженера: Ожидание VS Реальность Программирование, Программист, IT, Удаленная работа, Машинное обучение, IT юмор, Длиннопост
Типичная жизнь ML-инженера: Ожидание VS Реальность Программирование, Программист, IT, Удаленная работа, Машинное обучение, IT юмор, Длиннопост
Типичная жизнь ML-инженера: Ожидание VS Реальность Программирование, Программист, IT, Удаленная работа, Машинное обучение, IT юмор, Длиннопост
Показать полностью 5
4

Dot — open-source приложение для локального разворачивания LLM, RAG и TTS для работы со своими документами

Dot — open-source приложение для локального разворачивания LLM, RAG и TTS для работы со своими документами Программирование, IT, Программист, Удаленная работа, Программа, Машинное обучение, Тестирование

Dot вдохновлено решениями вроде Nvidia's Chat with RTX, и у него очень простой интерфейс даже для тех, кто только начинает входить в IT. По умолчанию Dot использует Phi-3 LLM, что позволяет ему работать сразу из коробки.

Зачем вам это нужно?

В Dot можно загрузить несколько документов в LLM и работать с ними в полностью локальной среде. Поддерживаются документы в форматах PDF, DOCX, PPTX, XLSX и Markdown.

Как работает Dot?

Приложение построено на Electron JS и включает в себя полноценную Python среду со всеми нужными библиотеками. Dot использует FAISS для создания локальных векторных хранилищ, Langchain, llama.cpp и Huggingface для настройки цепочек разговоров, а также дополнительные инструменты для управления и работы с документами.

С Dot не нужно быть супер-программистом, чтобы всё настроить. Он уже готов к использованию, с простым интерфейсом и нужными инструментами. Например, вы можете загрузить пачку документов и задавать вопросы об их содержимом, а Dot будет отвечать, как ChatGPT, но… Всё это будет работать прямо у вас на компьютере.

Короче говоря, Dot упрощает жизнь новичкам в ML, позволяя им сосредоточиться на изучении и экспериментах, а не на сложной настройке.

Скачать и понять, как установить приложение, можно здесь.

Показать полностью
0

Библиотека, сокращающая время обучения языковых моделей до 25%

Библиотека, сокращающая время обучения языковых моделей до 25% Программирование, IT, Удаленная работа, Программист, Технологии, Код, Тестирование

Недавно Яндекс выпустил в опенсорс свой новый инструмент — YaFSDP, который поможет значительно ускорить обучение LLM (больших языковых моделей).

Почему это важно?

Представьте, что вы тренируете модель на одной GPU: прогоняете данные через сеть, считаете потери, делаете обратное распространение ошибки и обновляете веса модели…

А теперь представьте, что у вас 4 GPU. И тут начинаются проблемы: нужно синхронизировать работу всех GPU и пересылать огромное количество данных между ними. Это занимает кучу времени и съедает всю память. Например, для модели Llama 70B в fp16 нужно переслать 280 GB данных на каждую итерацию!

Поэтому на помощь приходят методы вроде ZeRO и FSDP, которые помогают эффективно разрезать и распределять веса, градиенты и состояния оптимизатора между всеми GPU. Но и у них есть свои недостатки: ZeRO может замедлять обучение на больших кластерах, а FSDP иногда выделяет больше памяти, чем нужно, и тормозит из-за коммуникаций между GPU.

Яндекс взял лучшее от этих методов и добавил свои улучшения. YaFSDP экономит память, избегает ненужных коммуникаций и оптимизирует процессы так, чтобы всё работало гладко и быстро. Они создали буферы для хранения данных, используют cuda-стримы для параллельных вычислений и коммуникаций, и избавились от проблем с «ёлочкой» (долгие задержки из-за пересылки данных).

В чём фишка?

Освобождается память, чтобы не делать лишние чекпоинты активаций и ускорить обучение на 25%!

Подход позволяет быстро пересылать данные между GPU, не создавая лишних задержек.

YaFSDP интегрируется с torch и не требует сложной настройки.

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

Исходный код YaFSDP здесь.

Показать полностью
1

AGI близко… Или так только кажется?

AGI близко… Или так только кажется? IT, Программирование, Программист, Технологии

Технологии, которые совмещают носимые гаджеты и искусственный интеллект, стали неотъемлемой частью нашей повседневной жизни. Когда они не работают, это вызывает панику, ведь мы привыкли полагаться на них. Хотя концепция "Life 3.0" от Макса Тегмарка говорит о том, что человек и ИИ могут сосуществовать отдельно друг от друга.

Или возьмем "Сверхразум" Бострома. Он предполагает, что ИИ может развиваться автономно и даже принять на себя управление человечеством. Хоть это напоминает сюжет фантастических фильмов, но какова на самом деле вероятность, что ИИ будет стремиться к самообучению и максимальному развитию в цифровой среде?

Голосовые помощники, генераторы визуального контента и персональные AI-ассистенты, не требующие постоянного контроля человека, — все они уже здесь. Но объединить их всех в один искусственный интеллект так, чтобы он конкурировал с человеком? Мы уже близки, но еще не совсем. А если мы научим его учиться, мыслить и развиваться самостоятельно — тогда да, мы можем говорить о появлении AGI, искусственного интеллекта, способного соперничать с человеком.

Хотя Сэм Альтман (OpenAI) говорил, что AGI станет “эквивалентом среднего человека, которого вы могли бы нанять в качестве сотрудника" , ссылаясь тем самым на разработку GPT-5, Дженсен Хуанг (NVIDIA) заявил, что мы можем увидеть развитие AGI в течение следующих 5-ти лет… Правда в том контексте, если под AGI будет подразумеваться прохождении любых тестов на сортировку интернет-пользователей на роботов и людей или любых других тестов, какие можно придумать.

Показать полностью 1
4

Как сумасшедшие идеи 90-х стали основой современного компьютерного зрения

Как сумасшедшие идеи 90-х стали основой современного компьютерного зрения Программирование, Технологии, Инновации, IT, Программист

Перенесёмся в 90-е, когда CV только начинало выбираться из лабораторий. И даже тогда, как и в 1970, это всё оставалось чем-то вроде фантастики, и работать приходилось с кучей проблем.

В начале 90-х Ян Лекун, амбициозный молодой учёный в AT&T Bell Labs, разрабатывал нейросети. Он создал первую CNN для распознавания рукописных цифр. И это было круто, хотя многие его коллеги считали это странной затеей. Тогда Ян им доказал, что глубокие нейросети могут решать задачи распознавания образов.

Тем временем в MIT Такэо Канадэ из Университета Карнеги-Меллон разрабатывал алгоритмы для 3D-реконструкции объектов. В 1992 году его команда сделала первую систему, которая могла снимать и создавать 3D-модели объектов. Это открытие стало прорывом для медицины, архитектуры и робототехники.

К середине 90-х Джитендра Малик из Калифорнийского университета в Беркли проделал проделал колоссальную работу по использованию графов для разделения изображения на области. Малик автоматизировал процесс выделения объектов на изображениях, что оказалось важным для медицинской диагностики и автономного вождения.

А к концу 90-х Канаде и его команда создали алгоритм для отслеживания движущихся объектов. Это доказало, что CV может работать в реальном времени.

Тогда же Дэвид Лоу предложил алгоритм Scale-Invariant Feature Transform (SIFT), который стал ключевым для обнаружения и описания локальных особенностей изображений. Теперь SIFT — основа для многих приложений в области CV, включая робототехнику и 3D-моделирование.

В 2000-х компьютерное зрение развивалось ещё быстрее. Появились базы данных изображений, такие как Caltech 101, ставшие стандартом для тестирования алгоритмов. Исследователи начали активно использовать ML для повышения точности и скорости своих моделей.

С появлением интернета и мощного “железа” CV стало внедряться во многие сферы, в которые на тот момент позволяли технологии.

Эти годы стали прорывным временем. И это несмотря на то, какое нелегкое оно тогда было.

Показать полностью
4

История, которую вы, скорее всего, не знали: компьютерное зрение в 1970-х

История, которую вы, скорее всего, не знали: компьютерное зрение в 1970-х Программирование, IT, Программист, Технологии

Эти годы были настоящей золотой эпохой для компьютерного зрения. Именно тогда были заложены основы многих современных технологий, которые мы используем сегодня.

Представьте себе: огромные компьютеры, зелёные экраны и группа умных людей, которые пытались научить машины видеть мир так же, как это делаем мы.

Одним из ключевых игроков того времени был Дэвид Марр. Он, как и Ларри Лоуренс, задался вопросом: "Как, черт возьми, мы можем научить машину распознавать объекты на изображениях?". Марр решил подойти к проблеме комплексно и предложил свою теорию обработки изображений, разделив её на три этапа.

1 этап — примитивное изображение

На первом этапе компьютер должен был научиться выделять края и контуры. Представьте, что вы смотрите на картину и сначала видите только контуры объектов. Марр и его команда разработали методы, которые помогали компьютеру находить эти границы. Таким методом стал оператор Собела, который до сих пор используется для выделения границ на изображениях.

2 этап — символическое изображение

Следующий шаг — научить компьютер распознавать, что же это за объекты. Это что-то вроде пазла: сначала вы видите отдельные кусочки, а затем пытаетесь собрать из них целое изображение. Так и появилась сегментация, когда контуры объектов соединялись и образовывали узнаваемые формы.

3 этап —  интерпретация изображения

Когда объекты на изображении распознаны, компьютер должен не просто увидеть их, но и понять их взаимосвязь и контекст. Это примерно как разглядеть на фотографии людей, стол и еду, и понять, что они не просто сидят за столом, а едят вместе. А раз они едят вместе, возможно, это одна семья, родственники или друзья… И вот у нас уже вырисовывается история, которую и должен распознать компьютер!

Марр и его коллеги также разработали множество алгоритмов, которые сделали революцию в компьютерном зрении. Среди них были методы обнаружения краев, такие как оператор Канни, который до сих пор считается одним из лучших методов для выделения границ объектов. И о котором, кстати, мы поговорим завтра.

Показать полностью 1

Как компьютер научился видеть?

Как компьютер научился видеть? Программирование, Программист, IT, Удаленная работа, Карьера, Компьютерная графика

Компьютерное зрение (CV) появилось на горизонте где-то в 1960-х годах. Мало того, что это было время, когда компьютеры сами по себе были чем-то из области фантастики, но инженеры в этой области уже начали задумываться: "А что если мы научим эти машины видеть?"

Лоуренс Робертс, или просто Ларри, стал пионером в области CV. Закончив MIT, он в 1963 году защитил докторскую по использованию компьютеров для обработки изображений.

Но какой была его мечта? Научить машины "видеть".

В те времена ученые уже понимали, что компьютеры могут больше, чем просто считать. Робертс и его коллег вдохновляла идея, что машины могут анализировать визуальную информацию так же, как и люди. Они хотели автоматизировать задачи, которые до сих пор были подвластны только человеческому глазу.

Что ж, у них это получилось.

Робертс сосредоточился на преобразовании 2D-изображений в 3D-информацию. Это была сложная задача, но он разработал методы для определения границ объектов и их сопоставления с моделями.

Технически, методы Ларри были похожи на нынешние сверточные нейронки (CNN): доктор использовал техники для выделения границ объектов на изображениях. Этот процесс включал нахождение изменений яркости или контраста на изображении, чтобы определить, где один объект заканчивается, а другой начинается.

И это дало свои плоды — его первым достижением стала программа, способная распознавать простые формы: круги, треугольники, квадраты. Компьютер смог обработать изображение блок-схемы или чертежа с четкими линиями и углами. Это и стало тем самым “мостиком” от догадок к действиям – машины действительно могли анализировать визуальные данные.

Что было дальше?

Расскажем в следующих постах.

Показать полностью 1
1

Олдскулы свело: операторы Собела и Канни

Олдскулы свело: операторы Собела и Канни Программирование, IT, Программист, Удаленная работа, Технологии, Машинное обучение, Код, Кот

Операторы Собела и Канни, как мы писали в предыдущем посте, стали первыми мощными инструментами, сыгравшими огромную роль в развитии CV.

Почему?

Оператор Собела помогает выявить изменения яркости в изображении, что позволяет находить края объектов.

Как это работает? Допустим, у вас есть фотография, и вы хотите найти на ней границы всех объектов. Оператор Собела берет небольшие области изображения (обычно 3x3 пикселя) и проверяет, как меняется яркость в горизонтальном и вертикальном направлениях. Результат получается за счет применения специальных матриц, называемых фильтрами Собела, которые и выделяют эти изменения.

Оператор Канни — это уже более сложный инструмент для выделения границ. Разработанный Джоном Канни в 1986 году, этот метод до сих пор считается одним из лучших для выявления краев на изображениях.

Оператор Канни использует несколько этапов для достижения точного результата:

Фильтрация шума

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

Поиск градиентов

Затем вычисляются градиенты изображения, чтобы определить изменения яркости.

Подавление немаксимумов

Далее проверяется, какие из найденных границ являются локальными максимумами.

Двойная пороговая обработка

В конце применяется двойной порог для выделения сильных и слабых границ, а затем проводится соединение краев.

Даже сейчас операторы Собела и Канни остаются важными инструментами в арсенале ML-инженеров. Их эффективность и простота делают их незаменимыми для многих задач, от предварительной обработки изображений до анализа в реальном времени.

А примеры кода на Python для операторов Собела и Канни вы можете посмотреть по этой ссылке.

Показать полностью 1
Отличная работа, все прочитано!