Как стать автором
Обновить
1
0

Пользователь

Отправить сообщение

Делаем HMI-панель из планшета для системы автоматизации на контроллере Wiren Board

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров21K

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

В комплекте с контроллером Wiren Board идёт программное обеспечение, которое позволяет закрыть большинство задач построения и эксплуатации системы автоматизации: графические и текстовые панели, архив данных с графиками, драйверы для устройств, скрипты wb-rules.

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

Читать далее
Всего голосов 29: ↑29 и ↓0+29
Комментарии14

Дообучение ruGPT-3.5 13B с LoRA

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров20K

Добрый день, уважаемые читатели и авторы Хабра!

Сегодня я рад представить вам подробное руководство по обучению модели ruGPT-3.5 13B с использованием датасетов модели Saiga-2/GigaSaiga, технологии Peft/LoRA и технологии GGML. Эта статья призвана стать полезным и практичным ресурсом для всех, кто интересуется машинным обучением, искусственным интеллектом и глубоким обучением, а также для тех, кто стремится глубже понять и освоить процесс обучения одной из самых мощных и перспективных русскоязычных моделей.

В данной публикации мы разберем каждый этап обучения модели, начиная от подготовки данных и заканчивая конвертацией в формат GGML. Буду рад, если мой опыт и знания помогут вам в вашем исследовании и экспериментах в этой захватывающей области!

Читать далее
Всего голосов 30: ↑30 и ↓0+30
Комментарии27

Функциональное программирование в Python: ежедневные рецепты

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров16K
Как говорится, спроси пять программистов, что такое функциональное программирование, получишь шесть разных ответов. В целом это программирование через функции в их математическом понимании, то есть когда функция принимает что-то на вход и что-то возвращает на выходе, не меняя глобального состояния.

В своей команде — команде разработки инструментов для разработчиков под KasperskyOS — мы создаем разные интересные консольные утилиты, эмулятор, обеспечиваем интеграцию с IDE и так далее. И для этого мы используем разные языки — C++, C, TypeScript; но больше всего пишем на Python.



В этой статье, которая написана по следам моего выступления на конференции PiterPy, я обращаюсь к практикующим разработчикам — расскажу о том, какие функциональные приемы можно использовать в этом языке. Сконцентрируюсь на практике — на тех примерах, которые можно использовать уже буквально сейчас, не переписывая свой проект.
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии3

Делаем «router-on-a-stick» в linux namespaces

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров7K


Не буду томить вас долгим вступлением. Ниже подробное описание этой реализации.

Читать дальше →
Всего голосов 14: ↑13 и ↓1+17
Комментарии5

Протоколы семейства TCP/IP. Теория и практика

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров141K
image

В сети можно найти огромное количество материала о том, как функционируют сети на базе стека протоколов TCP/IP, а также как писать компьютерные программы с сетевыми возможностями. При рассмотрении компьютерных сетей часто углубляются в описание физических основ и структур данных, передаваемых по сети, а при рассмотрении сетевого программирования основное внимание уделяют интернет-сокетам.

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

В ходе работы над статьёй я написал небольшое приложение, которое послужит отправной точкой для понимания компьютерных сетей и семейства протоколов TCP/IP. С приложением можно экспериментировать, получая дополнительные знания.

Приложение — простое и понятное и, надеюсь, упростит изучение материалов статьи. Ведь именно радость первой победы даёт мотивацию, достаточную для того, чтобы потратить гораздо больше времени на изучение темы.

В статье изложены наиболее важные с моей точки зрения понятия, которые должен знать любой программист, хоть как-то сталкивающийся с компьютерными сетями. Так что без теоретических сведений не обошлось.
Читать дальше →
Всего голосов 82: ↑82 и ↓0+82
Комментарии5

Stable Diffusion: text-to-person

Уровень сложностиПростой
Время на прочтение35 мин
Количество просмотров31K

Многие из вас сталкивались со Stable Diffusion и знают, что с помощью этой нейросети можно генерировать разнообразные изображения. Однако не всем интересно создавать случайные картинки с кошкодевочками, пускай даже и красивыми, и всем прочим. Согласитесь, было бы гораздо интереснее, если бы можно было обучить нейросеть создавать изображения... нас самих? Или наших любимых актёров и музыкантов? Или наших почивших родственников? Конкретных людей, в общем, а не какие-то собирательные образы из того, что было заложено при обучении нейросети. И для достижения этой цели нам потребуется обучить некую модель. Этим мы и займёмся, пытаясь определить наиболее оптимальный воркфлоу и максимально его автоматизировать.

Читать далее
Всего голосов 30: ↑30 и ↓0+30
Комментарии29

Loose uRPF – зачем он нужен?

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров1.9K

Несмотря на то, что два режима unicast Reverse Path Forwarding (uRPF) довольно известны, не только лишь все знают причину, по которой эти два режима существуют. В этой статье я постараюсь построить мостик между loose uRPF и одним из типовых сценариев его применения.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии2

Bash Auto Completion в Linux

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров18K

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

Однако в Linux предусмотрена удобная функция автодополнения для Bash. Этот инструмент, с которым знакомятся на начальных этапах изучения Linux, значительно ускоряет и упрощает процесс ввода команд. Он автоматически дополняет имена файлов, каталогов или опции команд, когда вы вводите их в командной строке.

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

Читать далее
Всего голосов 29: ↑27 и ↓2+29
Комментарии6

Полный релиз бесплатного интерактивного 700-страничного учебника по тестированию

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров106K

Гуд ньюз эвриван! Спустя полтора года работы восьми айтишников с суммарным опытом в IT 130 лет достигнут результат в виде учебника по тестированию, которого еще никто и никогда не делал.

Читать далее
Всего голосов 131: ↑130 и ↓1+158
Комментарии162

Основы C++: Указатели и Итераторы

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров25K

Знакома ли вам ситуация, когда вы внезапно оказываетесь совершенно не в состоянии объяснить какой-нибудь базовый элемент языка, с которым работаете? Вам задают простой вопрос, а вы только и можете, что сказать «ээээээээ, ну я точно не помню, мне нужно освежить знания, извините».

Не вешайте нос! Мы очень часто воспринимаем такие вещи как должное, и пока менее опытный коллега не спросит нас о них, мы о таком даже не задумываемся. Поэтому иногда нам все-таки стоит возвращаться к основам, чтобы освежить или даже углубить свои знания.

Сегодня мы с вами обсудим указатели и итераторы.

Читать далее
Всего голосов 18: ↑10 и ↓8+5
Комментарии21

Особенности проксирования через CDN/Websocket/gRPC для обхода блокировок

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров80K

Эта статья — заключительная (наконец‑то!) из моего огромного цикла про недетектируемые инструменты для обхода блокировок. В предыдущих публикациях я упоминал, что клиенты и серверы XRay (форк V2Ray) и Sing‑box при использовании протоколов VLESS/VMess/Trojan могут работать через веб‑сокеты и gRPC, что позволяет подключаться к даже заблокированным Роскомнадзором прокси‑серверам через CDN (content delivery или content distribution network) и дает дополнительные преимущества. Сегодня мы поговорим об этом поподробнее.

Читать далее
Всего голосов 62: ↑60 и ↓2+76
Комментарии148

Dream Booth — очень умное дообучение stable diffusion

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров11K

Как можно наказать модель за то что она забывает "абстрактные" признаки какого-то обьекта? Почему это важно при обучении дифузионных генеративных моделей на специфичном датасете

Читать далее
Всего голосов 12: ↑11 и ↓1+10
Комментарии6

Разбор работы FIFO на микроархитектурном тренажере

Уровень сложностиСредний
Время на прочтение1 мин
Количество просмотров4.3K

FIFO – ключевая концепция в хардварном дизайне. Понимание работы FIFO необходимо, в частности, для понимания протокола valid/ready, который в свою очередь необходим для организации flow-control как внутри цифровых блоков так и на межблочном уровне.

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

Микроархитектурный тренажер дает возможность «прощупать» хардварные сценарии в пошаговом (интерактивном) режиме, предоставляя детальную визуализацию цифровой логики.

Поскольку тренажер является "фронтендом" для HDL симулятора то на самом симуляторе исполняется реальный, синтезируемый SystemVerilog который можно посмотреть и даже поменять его функциональность.

Смотреть видео и читать дальше
Всего голосов 17: ↑16 и ↓1+19
Комментарии17

Bleeding-edge обход блокировок с полной маскировкой: настраиваем сервер и клиент XRay с XTLS-Reality быстро и просто

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров486K

В серии предыдущих статей я описывал, почему повсеместно используемые VPN- и прокси-протоколы такие как Wireguard и L2TP очень уязвимы к выявлению и могут быть легко заблокированы цензорами при желании, обозревал существующие гораздо более надежные протоколы обхода блокировок, клиенты для них, а также описывал настройку сервера для всего этого.

Но кое о чем мы не поговорили. Во второй статье я вскользь упомянул самую передовую и недетектируемую технологию обхода блокировок под названием XTLS-Reality, и пришло время рассказать о ней поподробнее, а именно - как настроить клиент и сервер для нее.

Кроме того, что этот протокол еще более устойчив к выявлению, приятным фактом будет и то, что настройка сервера XTLS-Reality гораздо проще, чем описанные ранее варианты - после предыдущих статей я получил довольно много комментариев типа "А что так сложно, нужен домен, нужны сертификаты, и куча всего" - теперь все будет гораздо проще.

Читать далее
Всего голосов 37: ↑37 и ↓0+37
Комментарии310

Как (быстро) сделать русский локальный ChatGPT

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров41K

Эта история началась в начале марта этого года. ChatGPT тогда был в самом расцвете. Мне в Telegram пришёл Саша Кукушкин, с которым мы знакомы довольно давно. Спросил, не занимаемся ли мы с Сашей Николичем языковыми моделями для русского языка, и как можно нам помочь.

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

После этого мы какое-то время продолжали какое-то время делать всё то же самое. Я потихоньку по инерции расширял rulm новыми наборами данных. Посчитав, что обучить базовую модель нам в ближайшее время не светит, мы решили сосредоточиться на дообучении на инструкциях и почти начали конвертировать то, что есть, в формат инструкций по аналогии с Flan. И тут меня угораздило внимательно перечитать статью.

Читать далее
Всего голосов 70: ↑69 и ↓1+88
Комментарии54

Подборка бесплатных ресурсов для обучения тестировщика

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров58K

Сегодня День знаний, с чем вас и поздравляю! По этому случаю собрал для вас различные бесплатные ресурсы и платформы для обучения профессии "тестировщик".

Все материалы использовал или использую сам.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии6

CodeLama в вашей клавиатуре | Локальный Copilot для любого поля ввода

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров18K

Стою я значит утром (около 2 часов дня) возле кофеварки и листаю ленту хабра, а там CodeLama вышла. Copilot для бедных это или панацея в мире локальных текстовых моделей? Попытаюсь не отвечать на этот вопрос, ведь ваши соседи снизу утонут в воде, которая сейчас льётся из экрана.
Читать далее - на свой страх и риск. Статья писалась спинным мозгом и глубокой ночью, как следствие я получил натянутую на глобус сущность, которую можно инкапсулировать в технотекст, что бы она вызывала меньше подозрений у случайного читателя. Ну вы поняли уровень, верно?
Предлагаю обойтись кратким вступлением и перейти сразу к делу.

Сразу к делу
Всего голосов 48: ↑48 и ↓0+48
Комментарии14

На работу не берут без опыта, а опыт без работы не получить. Что делать? Собрали 25+ стажировок для тестировщиков

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров31K

Джуна не берут на работу без опыта, а опыт без работы он получить не может.
Что делать?

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

Итак, поехали!

Оплачиваемые стажировки:

Читать далее
Всего голосов 10: ↑8 и ↓2+6
Комментарии6

Создайте свой клон с помощью Fine-tuned LLM

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров15K

Обретите цифрового двойника

Цель этой статьи - показать, как эффективно и с минимальными затратами настроить LLM на пользовательском датасет. Мы рассмотрим использование модели Falcon-7B с адаптерами LoRa, с использованием библиотеки Lit-GPT.

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии4

Заметки про увеличение картинок нейронными сетями

Уровень сложностиСложный
Время на прочтение28 мин
Количество просмотров6.7K


TLDR — это не готовое решение, это попытка самостоятельно разобраться, подобрать архитектуру и обучить генеративно-состязательную модель (GAN) для увеличения картинок в 2 или 4 раза. Я не претендую на то, что моя модель или путь рассуждений лучше каких-то других. Кроме того, относительно недавно стали популярны трансформеры и diffusion модели — заметки не про них.


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


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


Для обучения оказалось достаточно возможностей моего ПК. Какие-то простые эксперименты занимали десятки минут или несколько часов, самый длинный с обучением финальной большой модели — трое суток.

Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии9

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург и область, Россия
Зарегистрирован
Активность