Привет, друзья! Открываем новую главу в истории Хабра и представляем новый тип публикаций: посты.
Пользователь
Создание пакета NuGet для библиотеки с платформозависимым API
Когда речь заходит о создании .NET библиотеки, части API которой являются платформозависимыми, приходится думать, как всё это оформить в NuGet пакет, да так, чтобы установленная из пакета библиотека работала в разных сценариях (.NET Framework, .NET Core, self-contained app и т.д.). К сожалению, в сети сложно найти инструкцию, которая бы шаг за шагом показывала, как выполнить эту задачу. Данная статья призвана быть такой инструкцией.
Создание .NET библиотеки от А до Я
Думаете о создании .NET библиотеки, но не знаете, в какую сторону двигаться? Уже разрабатываете нечто подобное, но хочется открыть для себя что-то новое? Ищете варианты расширить автоматизацию? Не знаете, что делать с пользователями?
Надеюсь, данная статья поможет ответить на эти и другие вопросы. На примере своей библиотеки с открытым исходным кодом – DryWetMIDI – рассмотрим различные аспекты создания подобных проектов. И хотя речь будет идти про .NET/C#, уверен, многое применимо и к другим популярным платформам и языкам программирования.
Chrome Headless против cloudflare JS challenge
Автоматизация сбора информации с различных ресурсов - обычная задача для людей разных сфер деятельности. Жаль, что не всегда бывает достаточно сделать простой GET запрос и разобрать полученный html. Веб-сайты, с которых собираются данные, принимают защитные меры для предотвращения автоматизированных запросов. Одной из таких мер является использование cloudflare. Сегодня мы посмотрим, как cloudflare выявляет ботов через javascript и коснёмся темы деобфускации скриптов.
Осваиваем TypeScript: 21 лучшая практика при написании кода
TypeScript является популярным открытым языком программирования, идеально подходящим для современной разработки. За счёт своей продвинутой системы типов он позволяет писать более надёжный, обслуживаемый и масштабируемый код. Однако, чтобы задействовать весь потенциал этого языка и создавать высококачественные проекты, важно понимать лучшие практики и следовать им.
В этой статье мы углубимся в мир TypeScript и изучим 21 лучшую практику, с помощью которых вы сможете повысить свой навык работы с этим языком. Эти практики охватывают широкий спектр тем и сопровождаются конкретными вариантами применения в реальных проектах. Независимо от того, являетесь ли вы начинающим либо опытным разработчиком на TS, эта статья даст вам ценное понимание и рекомендации, которые помогут писать более чистый и эффективный код.
Введение в библиотеку Transformers и платформу Hugging Face
Библиотека Transformers предоставляет доступ к огромному кол-ву современных предобученных моделей глубокого обучения. В основном основаных на архитектуре трансформеров. Модели решают весьма разнообразный спектр задач: NLP, CV, Audio, Multimodal, Reinforcement Learning, Time Series.
В этой статье пройдемся по основным ее возможностям и попробуем их на практике.
Source Generators в действии
C# 9 дал долгожданную возможность кодогенерации, интегрированную с компилятором. Тем, кто мечтал избавиться от тысяч строк шаблонного кода или попробовать метапрограммирование, стало проще это сделать.
Ранее Андрей Дятлов TessenR выступил на конференции DotNext с докладом «Source Generators в действии». А теперь, пока мы готовим следующий DotNext, сделали для Хабра текстовую расшифровку его доклада.
Что вообще такое эти Source Generators? Как их использовать? Как предоставить пользователю вашего генератора необходимую гибкость конфигурации и понятные сообщения о возникающих проблемах? Как разобраться, когда что-то пошло не так?
Ответы на все эти и другие вопросы — в тексте.
Как сделать так, чтобы новый сайт быстро добавился в поисковые системы Яндекс и Google и начал индексироваться?
Для начала проясняю: в этой статье я описываются общие моменты для новых сайтов с использованием новорегов (новых доменов без истории). Подробнее описывать как регистрироваться и заводить аккаунты я не намерен, так как при желании с этим любой справится.
Берем в учет то, что сайт уже разработан и просто лежит где-то на тесте.
Честно сказать, задачка не из простых.
Итак, поехали: выберете тематику вашего сайта и точно определитесь с тем, что хотите продвигать. Это нужно для того, чтобы у вашего сайта в последствии было максимально релевантное доменное имя к основному запросу. Затем выберете доменное имя, это можно сделать на таких площадках как: nic.ru, reg.ru, beget.com/ru и многих других.
SVTR — state-of-the-art нейросеть для задачи OCR
SVTR - state-of-the-art модель-трансформер для решения задачи OCR.
Авторами статьи была предложена архитектура с одним "зрительным" модулем для эффективного распознавания текста. Основная идея работы заключается в обработке признаков разного уровня, то есть локальных, которые представляют собой признаки отдельных частей символов, и глобальных, признаков целого изображения. Входное изображение с текстом сперва разбивается на компоненты, которым соответствуют определенные части изображения. Далее, применяя механизм self-attention между компонентами модель извлекает важную информацию, используя локальные и глобальные признаки. Также, уменьшая размерность и объединяя признаки после блоков self-attention, модель формирует многогранное представление о тексте на изображении. В результате, модель выдаёт последовательность признаков, в которой уже закодирован текст без использования рекуррентных сетей!
Экзибит, прокачай мой трансформер или Основные идеи по улучшению модели трансформера с 2018 по 2020 год (часть 1)
В июне 2021 года вышла статья “A Survey of Transformers” - обзор различных нововведений, сделанных с применением архитектуры “трансформер” после ее появления в материале “Attention is all you need”.
Этот материал особенно актуален сейчас. Приведенные подходы и архитектуры начинают использоваться сообществом с большим опозданием и понимание их работы становится востребованным лишь сейчас, когда все уже понимают сильные и слабые стороны обычного трансформера и хотят его улучшить. Многие архитектуры, которые появляются сейчас, используют наработки, родившееся в первые три года после появления трансформеров.
Представляю в блоге ЛАНИТ обзор статьи “A Survey of Transformers”.
Token Pruning или «Первое слово съела корова»
Начнем повествование с приевшейся, шаблонной, клишированной фразы, мотивирующей сжатие нейронных сетей:
За последние несколько лет нейронные сети достигли значительных успехов в разнообразных приложениях и сферах человеческой (и нечеловеческой) деятельности, превосходя даже человека на ряде задач. Но мощь и гибкость, способность фитировать сложные зависимости, требуют значительных вычислительных ресурсов как на этапе обучения, так и на инференсе, что ограничивает зачастую применение нейронных сетей на мобильных устройствах и при наличии ограниченных вычислительных мощностей.
Поэтому по мере бурного прогресса и развития новых архитектур параллельно идет активная разработка разнообразных подходов по сжатию и повышению эффективности нейронных сетей.
И cегодня я бы хотел рассказать об одном методе, специфичном для популярной нынче архитектуры Transformer.
Контекстные многорукие бандиты для рекомендации контента, или Не Бернулли единым
Привет, Хабр! Меня зовут Александр Сухочев, я занимаюсь машинным обучением и руковожу командой рекомендаций и развития сервисов ВКонтакте. Сегодня хочу поделиться нашим опытом и результатами внедрения контекстуальных многоруких бандитов для рекомендации контента на примере игр и стикеров.
Статья состоит из четырёх частей, переходите сразу ко второй или третьей, если знакомы с проблематикой, или читайте по порядку, чтобы составить полную картину:
Введение расскажет о том, какие бывают подходы к построению рекомендательных систем и при чём здесь многорукие бандиты — это раздел для тех, кто раньше не был знаком с данным подходом.
Основные алгоритмы решения задачи многорукого бандита: эпсилон-жадный подход, сэмплирование Томпсона, Upper Confidence Bound.
Алгоритм контекстных многоруких бандитов — о контекстных многоруких бандитах и способе их обучения в частном случае, который мы использовали в нашем решении.
Заметки о практической реализации — о тонкостях внедрения, бизнес-требованиях и результатах на примере сервиса рекомендации игр и стикеров.
Чек-лист по проектированию регистрации
В проектировании сложно давать универсальные советы. Сколько задач, контекстов и целевых аудиторий — столько и решений. Поэтому вместо чек-листа с рекомендациями предлагаю вашему вниманию чек-лист с вопросами. Сегодня на повестке вопросы, которыми я задаюсь при проектировании форм регистрации пользователей (которые сами по себе могут оказаться вершинами айсберга). Для новичков контент полезный. Для продвинутых — интересный (проверьте, сколько пунктов учитываете в работе вы сами). А для профессионалов — повод показать автору, что он упустил что-то важное, и утереть ему нос. Поехали.
Рейтинг русскоязычных энкодеров предложений
Энкодер предложений (sentence encoder) – это модель, которая сопоставляет коротким текстам векторы в многомерном пространстве, причём так, что у текстов, похожих по смыслу, и векторы тоже похожи. Обычно для этой цели используются нейросети, а полученные векторы называются эмбеддингами. Они полезны для кучи задач, например, few-shot классификации текстов, семантического поиска, или оценки качества перефразирования.
Но некоторые из таких полезных моделей занимают очень много памяти или работают медленно, особенно на обычных CPU. Можно ли выбрать наилучший энкодер предложений с учётом качества, быстродействия, и памяти? Я сравнил 25 энкодеров на 10 задачах и составил их рейтинг. Самой качественной моделью оказался mUSE, самой быстрой из предобученных – FastText, а по балансу скорости и качества победил rubert-tiny2. Код бенчмарка выложен в репозитории encodechka, а подробности – под катом.
Самый полный чек-лист для защиты от мошенников
Несколько месяцев я изучал тему интернет мошенничества с целью собрать наиболее полный список действий, которые обезопасили бы меня от жуликов и их махинаций. Итогом изучения стал чек-лист, которым хочу поделиться со всеми. Его цель - сделать взлом цифровых активов сложным и бессмысленным.
32 типичные ошибки в интернет-рекламе
Всякая реклама — это инвестиция. И она должна приносить прибыль бизнесу, иначе смысла вкладываться нет. Но важно понимать, что реклама рекламе рознь. В контекстной и таргетированной рекламе крайне много параметров, которые нужно учесть для того, чтобы реклама была максимально эффективной. И подрядчики не всегда все эти параметры учитывают. Поэтому многие бизнесмены разочаровываются в интернет-рекламе и считают её неэффективной.
В этой статье разберём типичные ошибки, которые допускают подрядчики по рекламе и которые снижают её эффективность.
Итак, к ошибкам:
Подключаем к Экселю GPU и ускоряем Эксель в 300 раз
Попалась мне задачка оптимизации, а так как я большой фанат Экселя, то и выбор инструмента был скорым. Единственная пакость: Эксель дико медленный. Так, на одну итерацию уходило как минимум 35 минут, а таких итераций планировалось сделать 1275 (как минимум)!
Цель этого небольшого проектика – ускорить исполнение VBA скриптов задействуя все доступные мне железяки: GPU и CPU. Ну и до кучи, так как библиотека моя, была реализована многозадачность.
«Как я придумала термин open source». 3 февраля 1998 года Кристин Питерсон предложила новое название для free software
3 февраля отмечается годовщина появления термина «программное обеспечение с открытым исходным кодом». Поскольку программное обеспечение с открытым исходным кодом становится все более популярным и обеспечивает некоторые из самых важных инноваций нашего времени, мы размышляем о его развитии.
Я являюсь автором термина «программное обеспечение с открытым исходным кодом» и придумала его, когда работала исполнительным директором в Foresight Institute. Не будучи разработчиком программного обеспечения, как все остальные, я благодарна программисту Linux Тодду Андерсону за то, что он поддержал термин и предложил его группе.
Это рассказ с моей точки зрения о том, как я придумала этот термин, как он был предложен, и о том, как на него в последующем отреагировали. Конечно, существует множество рассказов о создании термина, например, от Эрика Реймонда и Ричарда Столлмана, но мой рассказ ещё ни разу не был опубликован до этого момента.
Введение термина «программное обеспечение с открытым исходным кодом» было сознательной попыткой сделать эту область деятельности более понятной для новичков и бизнеса, что считалось необходимым для его распространения среди более широкого сообщества пользователей.
Таймер в .NET с интервалом 1 мс. Windows
Вы пишите код на платформе .NET под Windows и вам нужно выполнять некоторые действия каждую миллисекунду. Возможно ли это? Какие есть варианты и насколько они надёжны? Разберёмся, что можно использовать, и какие есть гарантии по точности срабатывания. Статья сконцентрирована на поиске такого решения, которое работало бы и под .NET Framework, и под .NET Core / .NET, и в разных версиях ОС, и являлось бы механизмом общего назначения (а не только для программ с GUI, например).
CRUD операции с Blazor, .Net 6.0 и Entity Framework Core
В этой статье мы создадим веб-приложение, используя Blazor, .Net 6.0 и Entity Framework Core для выполнения CRUD операций на базе Asp.Net Core.
В этом руководстве мы будем использовать Visual Studio 2022 и SQL Server 2014.
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity