Search
Write a publication
Pull to refresh
145
11
Александр Рябиков @rsashka

Системный архитектор

Send message

Голь на выдумки хитра или как сэкономить более 200 тыс.руб на изготовлении собственого оборудования

Level of difficultyMedium
Reading time3 min
Views8.6K


Как-то пару лет назад была поставлена задача облегчить работу ОТК и создать для них прибор входного контроля некоторых покупных изделий. Суть проверки заключалась в измерении внутреннего сопротивления и последующей сигнализации сотруднику, что результат измерения находится в пределах заранее заданного допуска.


Оборудование с подобной функциональностью уже присутствует на рынке (милли или микроомметры). Его можно свободно купить, запрограммировать на световую или звуковую индикацию при настройке нужного диапазона, но было несколько НО. Устройство требуется сперва настроить и перед началом каждой смены нужно переключать на необходимый для работы диапазон. Да и ценник у подобного оборудования находится в пределах 50-120тыс. руб., а самих приборов нужно было сразу несколько штук.


Типов контролируемых изделий было несколько и у них совершенно разные характеристики, но самая большая проблема была общая — очень узкий диапазон измерений (от единиц до полутора десятков Ом) и необходимость обеспечения высокой степени точности (в некоторых случаях требовалась погрешность порядка 1%).


Из-за высокого ценника покупных устройств и сложности их эксплуатации была поставлена задача разработать подобное устройство самостоятельно с максимально простым способом выбора режима работы, а потом изготовить небольшую партию в количестве 8-10 штук (с некоторым запасом) и меня подключили к этой работе в качестве разработчика программного обеспечения.


Что из этого в конце концов вышло?

Читать дальше →

Крепкое печатное слово: об онлайн-библиотеках и авторском праве. Дайджест ко Дню книг

Reading time5 min
Views1.8K

23 апреля — Всемирный день книг и авторского права. А значит, и ещё одна памятная дата, важная для Хабра, потому что он сам — и большая книга, и книгохранилище, и собрание знаний и опыта сотен тысяч людей. Поэтому очередной кураторский дайджест я решила посвятить Интернет-библиотекам и цифровому авторскому праву: ещё раз пройтись по архивам и вспомнить о доступности знаний (и научных знаний в первую очередь), о их регулярной воспроизводимости и сохранности.

Читать далее

LangСhain: создаем свой AI в несколько строк

Level of difficultyMedium
Reading time6 min
Views71K

В этой данной статье познакомимся с LangChain, перспективным фреймворком для работы с языковыми моделями. С его помощью можно создать свой собственный аналог ChatGPT всего в несколько строк кода. Благодаря модульной структуре, LangChain позволяет быстро и легко разрабатывать AI приложения различной сложности.

Читать далее

Осваивают ли LLM модели мира, или лишь поверхностную статистику?

Level of difficultyMedium
Reading time15 min
Views30K

Большие языковые модели (Large Language Model, LLM) сейчас у всех на слуху. Они привлекают внимание общественности своей, казалось бы, впечатляющей возможностью — составлять осмысленные тексты в ответ на запрос пользователя (иногда такие запросы называют «приглашениями», а так же — «промптами» или «промтами» — от английского «prompt»). Эти системы представляют собой тщательно сконструированные комбинации из исключительно простых алгоритмов, огромных объёмов данных и грандиозных вычислительных мощностей. LLM учатся, бесчисленное множество раз играя сами с собой в игру «угадай следующее слово». В каждом раунде такой игры модель смотрит на часть предложения и пытается угадать, или предсказать, следующее слово. Если слово угадано — модель обновляет параметры для того чтобы подкрепить свою уверенность; в противном случае модель учится на своей ошибке для того чтобы в следующий раз её догадка была бы точнее.

Хотя базовый алгоритм обучения LLM, по большому счёту, уже давно не меняется, недавнее увеличение размеров моделей и данных наделило эти модели качественно новыми возможностями. Среди них — написание простого программного кода и решение логических задач.

Как эти модели достигли таких результатов? Они всего лишь запоминают обучающие данные и потом их воспроизводят, или они схватывают правила английской грамматики и усваивают синтаксис языка C? Создают ли они нечто вроде внутренней модели мира — доступной для понимания модели процесса, выдающего некие последовательности данных?

Читать далее

Модульное глубокое обучение

Level of difficultyHard
Reading time14 min
Views3.7K

В этом материале приведён краткий обзор использования модульного подхода в задачах глубокого обучения. Более детальный разбор этой темы вы можете найти здесь. Если вас интересует модульный подход к тонкой настройке (дообучению) моделей обработки естественного языка — взгляните на наше учебное руководство 2022 года по EMNLP. Дополнительные материалы по модульному глубокому обучению вы можете найти на этом ресурсе.

Читать далее

Dolly 2 — открытый аналог ChatGPT со свободной лицензией

Level of difficultyEasy
Reading time9 min
Views20K

В конце марта 2023г., компания Databricks выпустила Dolly, большую языковую модель, подобную ChatGPT, дообученную на платформе Databricks Machine Learning Platform. Результат оценки работы модели Dolly показывает, что модель с открытым исходным кодом двухлетней давности (GPT-J) при дообучении на публичном датасете, собранном в Стэнфорде (Stanford Alpaca), на небольшом наборе данных из 50 000 диалогов (вопросов и ответов), может демонстрировать удивительно высокое качество обучения, не характерное для родительской модели (GPT-J), на которой она основана.

Но с первой версией модели Dolly существует одна проблема - датасет от Stanford Alpaca был собран с помощью автоматизированных скриптов от ChatGPT, что нарушает лицензию и правила использования моделей OpenAI.

Чтобы исправить эту проблему, в апреле 2023г. Databricks выпустила
Dolly 2 - большую языковую модель с открытым исходным кодом и открытой лицензией для научных и коммерческих целей.

Dolly 2 - это языковая модель с 12 млрд. параметров, основанная на семействе моделей EleutherAI pythia и дообученная исключительно на новом датасете высокого качества, созданном сотрудниками Databricks с использованием RL from Human Feedback (RLHF).

Databricks открыли исходный код Dolly 2, включая код обучения, сам датасет и веса модели, подходящие для коммерческого использования. Это означает, что любая организация может создавать, владеть и настраивать комплексные модели, не платя за доступ к API или передавая данные третьим сторонам.

Читать далее

Telegram бот на ESP32 для удаленного мониторинга и управления насосной станцией

Level of difficultyMedium
Reading time63 min
Views28K

Делаем дешево и сердито!

История создания данного девайса следующая: есть очистная станция, в которой шкафы управления насосами и компрессорами на ПЛК Schneider Electric. При отключении городской электросети и переходе на дизель генератор и обратно оборудование уходит в ошибку, для квинтирования которой необходимо на месте нажать кнопки сброса аварии и запуска компрессоров. В случаи не работы компрессоров бактерии в емкостях умирают. И если рабочий день окончен некому произвести данную процедуру.

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

читать далее...

OpenAssistant: Вышла бесплатная открытая альтернатива ChatGPT

Level of difficultyEasy
Reading time3 min
Views53K

Участники открытого сообщества LAION-AI выпустили в открытый доступ первые обученные модели OA_SFT_Llama_30B и OA_SFT_Llama_13B. и запустили ИИ-чатбот OpenAssistant на их основе. На текущий момент доступны модели в 13 и 30 млрд параметров, дообученные на мультиязычных датасетах, собранных сообществом. В основе моделей лежит уже успевшая стать популярной LLaMA.

OpenAssistant - это диалоговый помощник на базе ИИ, который понимает задачи, может взаимодействовать со сторонними системами (подобно плагинам в ChatGPT) и динамически извлекать информацию из них. OpenAssistant позиционируется как открытая альтернатива ChatGPT.

"Мы хотим, чтобы OpenAssistant стал единой, объединяющей платформой, которую все другие системы используют для взаимодействия с людьми." - декларируют своё видение члены сообщества LAION.

Вы можете попробовать поговорить с OpenAssistant уже сейчаст тут.
Еще вы можете принять участие в формировании датасета на своём языке тут.

Читать далее

Ускорение работы моделей Stable Diffusion на процессорах Intel

Level of difficultyHard
Reading time8 min
Views7.4K

Недавно мы рассказывали о последнем поколении процессоров Intel Xeon (кодовое название Sapphire Rapids). Мы говорили об их новых аппаратных возможностях, ориентированных на ускорение задач глубокого обучения,  разбирались с тем, как использовать их для ускорения распределённого дообучения трансформеров, занимающихся обработкой естественного языка, как применять их для ускорения работы таких моделей.

В этом материале мы собираемся остановиться на различных подходах к ускорению моделей Stable Diffusion на процессорах Sapphire Rapids. В следующем похожем посте речь пойдёт о распределённом дообучении.

Читать далее

Локальные нейросети (генерация картинок, локальный chatGPT). Запуск Stable Diffusion на AMD видеокартах

Level of difficultyEasy
Reading time5 min
Views81K

Многие слышали про Midjourney, но про то, что есть локальная Stable Diffusion, которая может даже больше, знает уже куда меньше людей, или они не знают, что она локальная. И если они пробовали её онлайн, то быстро приходили к выводу, что она сильно хуже чем Midjourney и не стоит обращать на неё более внимания. И да, SD появился раньше Midjourney. Для запуска хватит и cpu или 4гб видеопамяти.

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

Читать далее

Кроссплатформенная сборка Qt5 для Nvidia Jetson TX2

Level of difficultyEasy
Reading time4 min
Views2.9K

Эта статья будет полезна тем, кто пишет проекты на Qt и работает с Nvidia Jetson. В статье представлена пошаговая инструкция для кроссплатформенной сборки Qt5 для Nvidia Jetson TX2 на базе Ubuntu.

Читать далее

Kandinsky 2.0 — первая мультиязычная диффузия для генерации изображений по тексту

Reading time7 min
Views48K

Диффузия всё увереннее вытесняет GANы и авторегрессионные модели в ряде задач цифровой обработки изображений. Это не удивительно, ведь диффузия обучается проще, не требует сложного подбора гиперпараметров, min-max оптимизации и не страдает нестабильностью обучения. А главное, диффузионные модели демонстрируют state-of-the-art результаты почти на всех генеративных задачах — генерации картинок по тексту, генерация звуков, видео и даже 3D!

К сожалению, большинство работ в области text-to-something сосредоточены только на английском и китайском языках. Чтобы исправить эту несправедливость, мы решили создать мультиязычную text-to-image диффузионную модель Kandinsky 2.0, которая понимает запросы более чем на 100 языках! И главное, на русском ;) Подробности — под катом.

Читать далее

LAION и энтузиасты по всему миру разрабатывают Open Assistant — открытый аналог ChatGPT

Level of difficultyMedium
Reading time6 min
Views14K

Некоммерческая организация LAION и энтузиасты по всему миру занимаются разработкой Open Assistant — это проект, цель которого в предоставлении всем желающим доступа к продвинутой большой языковой модели, основанной на принципах чат-бота, с конечной целью революции в инновациях в области обработки естественного языка...

Читать далее

Дайджест научпоп-новостей за неделю, о которых мы ничего не писали

Level of difficultyMedium
Reading time6 min
Views3.4K
Здравствуйте, с вами Вячеслав Голованов, и я курирую поток «Научпоп» на Хабре. Среди моих задач — увеличение количества публикаций в этом потоке, в том числе через привлечение новых хороших авторов на Хабр. Если вы всегда хотели написать статью на научно-популярную тему, но боялись начать – это ваш знак. Можете обсудить это со мной через личные сообщения, и/или написать статью в «Песочницу» и кинуть мне ссылку.

А сегодня я снова пройдусь по новостям уходящей недели, которые нашей редакции стоило бы осветить подробнее, но не получилось, потому что мы не многорукие.

Астрономы нашли горячий Нептун, которого не должно существовать



Читать дальше →

Фотореализм без Midjourney: тестируем новую нейросеть

Level of difficultyEasy
Reading time3 min
Views24K

Бесплатных генераций в Midjourney больше нет и пришлось искать альтернативы.

Нейросеть Midjourney покорила сотни тысяч пользователей по всему миру качеством генерации картинок. Изображения, созданные там, многие путают с реальными рисунками или фотографиями. Лично для меня в Midjourney нашлись недостатки — необходимость работать в Discord (редко пользуюсь в повседневной жизни) и стоимость попыток генерации (200 попыток стоят $10, а подписка $30), а еще писать запросы можно только на английском.

Можно попробовать запустить Automatic111 или Dreambooth для генерации, но взять именно эту нейросеть не получится, а с CivitAI или Huggingface не каждый умеет работать. Преимуществом работы в Telegram‑боте является отсутствие необходимости в своём «железе», ведь для запуска подобной нейросети потребуется минимум 12 Гб видеопамяти, а ещё это всё настроить самому надо. В общем, когда за тебя уже всё сделали и бесплатно дают воспользоваться, то это круто. Да, есть и сайты, на которых можно генерировать изображения, но мессенджер всегда под рукой и это стало ещё одним плюсом для меня.

Авторы указывают, что нейросеть обучалась на базе архитектуры Stable Diffusion. Сравнивая с моделями из CivitAI и HuggingFace, убедился, что синтаксис запросов у данной модели намного проще, хоть и не без грехов.

Учитывая минусы Midjourney, решил попробовать другую нейросеть для генерации изображений от российских разработчиков — TurboText. Первое, что меня интересовало, смогу ли я получать реалистичные картинки, не хуже чем в MJ. Также обращал внимание на скорость работы, стоимость тарифов и удобство использования. Сначала покажу свои примеры, которые удалось сгенерировать по простым запросам, а после озвучу собственные выводы.

Посмотреть примеры

Нюансы разработки парсера для своего языка программирования

Level of difficultyMedium
Reading time7 min
Views13K

image


Недавно прочитал на Хабре статью Свой язык, или как я устал от ассемблера и С, и невольно взглядом зацепился за один абзац:


Я решил не сильно париться, поэтому использовал библиотеку parglare. Она очень легкая и удобная, всем рекомендую. Для описания синтаксиса парсер принимает строку в соответствующем формате, использует регулярные выражения (не надо осуждать регулярки, они всесильны!).

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


Ведь в жизни практически любого программиста может наступить момент, когда ему в голову приходит светлая идея — разработать свой собственный язык программирования. Может быть и не ради захвата мира, наравне с C/C++, Python или хотя бы PHP, а в качестве личного пет-проекта, с которым он, длинными зимними вечерами будет оттачивать собственное мастерство.


А так как у любого языка (не только программирования), все начинается с анализа его грамматики, то самой первой задачей создателя будет выбор инструментов для синтаксического анализа исходного текста.


Это история — заметки на память о муках выбора связки лексер-парсер для разбора грамматики NewLang. А так же попытка описать и систематизировать выводы об особенностях разных анализаторов с которыми пришлось поработать при выборе парсера для разбора грамматики у своего языка программирования.

Читать дальше →

Девайс HabrScore для хаброзависимых с блекджеком и …

Level of difficultyMedium
Reading time8 min
Views6.9K

|300


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


И мне очень захотелось подобное устройство, вот только было несколько но:


  • Очень лень было делать, заказывать и паять печатную плату
  • Еще хотелось выводить рейтинг последней статьи, но хардкодить адрес и каждый раз пересобирать прошивку показалось очень муторно.
  • Разработка на С/С++ меня не пугает, так как занимаюсь этим более 20 лет, но писать что-то под Arduino у меня душа не лежит. И это не говоря про необходимость настройки системы сборки под конкретный микроконтроллер.

Короче, немного поразмыслив, было принято решение делать свое устройство для визуализации рейтингов на Хабре, и как обычно с блекджеком и… ну вы поняли. И самое главное, чтобы можно было собирать устройство из покупных деталей с Алиэкспресса для максимально простого повторения и кодить на чем-нибудь попроще, чем на С/С++.

Читать дальше →

Комбинированный датчик, с преферансом и поэтессами

Reading time7 min
Views37K
Сначала мы делали датчик температуры и влажности для офисов в красивом настенном корпусе с интерфейсом RS-485 Modbus, но пока делали, аппетиты немного выросли.

В итоге, в компактный корпус вместили датчики:
— концентрации СО2,
— температуры/влажности
— освещенности
— шума
— концентрации VOC — «летучих органических веществ (ЛОВ)»
— движения

А также:
— ИК-передатчик (с приемником для обучения)
— а еще умеет пищать и моргать «глазом» красным/зеленым
Читать дальше →

Как новичку подарить жизнь telegram-боту на java

Level of difficultyMedium
Reading time5 min
Views9.8K

Мне 43 года и я профессиональный юрист. Неуемная интеллектуальная энергия и неудовлетворенность основной профессией 2,5 года назад привели меня в IT. Да-да, вот так – взрослая тетя с гуманитарным образованием решила попробовать себя на ниве программирования и замахнулась аж на такой язык как… JAVA!!!

Замахнулась, переквалифицировалась на дистанционных курсах одного крупного рогатого скота образовательного ресурса и, поскольку прагматичная жажда наживы необходимость зарабатывать на кусок хлеба с маслом здесь и сейчас не дает ей возможности оставить основное место работы и уйти на неведомые просторы для it-специалиста, решила совместить опыт юриста и знания java-разработчика.

Оглянувшись по сторонам и не встретив направленных на меня глаз я поняла – все эти глаза устремлены в гаджеты! Месседжеры и социальные сети правят умами. Значит, надо действовать через них.

И тут я вспомнила, что самый частый юридический вопрос, с которым ко мне обращаются друзья/знакомые – это просьба дать ту или иную форму документа (договора, расписки, заявления, доверенности и т.д.). Эврика! – нужна несложная мобильная программа с формами самых востребованных документов, чтобы их оставалось просто скачать и наполнить необходимыми сведениями. И тут самым коротким путем к конечному пользователю мне представился telegram-бот.

Поскольку на курсах таким тонкостям не учили, вооружившись статьями и видеороликами из всемирной паутины, закатав рукава я принялась создавать свою первую «взрослую» программу-помощника человечеству!

Читать далее

Восемь неочевидных вещей в шаблонах С++

Level of difficultyMedium
Reading time7 min
Views14K

Привет, я backend-разработчик IT-компании SimbirSoft Леонид. В этой статье расскажу про 8 нюансов, которые я обнаружил при изучении шаблонов С++. Честно признаюсь, что наткнувшись на некоторые из них, я был удивлен: «Хм, SFINAE есть, а слова нет?» или «А что, есть разница между шаблоном в шаблоне и шаблоном с двумя параметрами?».

Материал будет полезен начинающим разработчикам, которые знакомятся с шаблонами, а также специалистам уровня middle, которые используют шаблоны время от времени.

Некоторые из примеров были описаны в cpp-referernce чуть ли не в самом первом абзаце, некоторые потребовали пошерстить stackoverflow, и в конце концов все есть в стандарте. Но кто учит язык по документации? У кого из нас не было такой ситуации: «Сейчас я код потыкаю, а там разберемся, что к чему». Так вот, сейчас пришло время узнать, как это работает и почему именно так. 

Читать далее

Information

Rating
1,104-th
Location
Россия
Date of birth
Registered
Activity

Specialization

Embedded Software Engineer, Software Architect
Lead
C++
OOP
Linux
Programming microcontrollers
Embedded system
C
Qt
Software development