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

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

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

Как настроить LLM на локальном сервере? Краткое руководство для ML-специалистов

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

Привет, Хабр! Все чаще коллеги из ML замечают, что компаниям нравятся возможности ChatGPT, но далеко не каждая готова передавать данные во внешние АРІ и жертвовать своей безопасностью. В результате команды начинают внедрять open source-LLM, развернутые локально. Чтобы осуществить этот процесс, инженерам нужно выполнить две задачи.

  • Сделать удобную «песочницу» для экспериментов, чтобы быстро проверять гипотезы для бизнеса.
  • Эффективно масштабировать найденные кейсы внутри компании, по возможности снижая затраты на ресурсы.

В статье рассказываем, какие есть проблемы у open source-LLM и как оптимизировать инференс модели с помощью квантизации и LoRA-адаптеров. Подробности под катом!

Автор: Алексей Гончаров, основатель платформы Compressa.ai для разработки GenAI-решений на своих серверах.
Читать дальше →
Всего голосов 31: ↑24 и ↓7+22
Комментарии8

5 одноплатников для самых разных задач: новинки сентября

Время на прочтение4 мин
Количество просмотров11K

В этом месяце появилось несколько интересных одноплатников, о которых стоит рассказать на Хабре. Среди них как универсальные девайсы, так и устройства, которые предназначены для определенного круга задач. Если вдруг мы что-то упустили — рассказывайте в комментариях о тех девайсах, которые понравились именно вам. А если вы с чем-то работаете давно и плотно — делитесь своим опытом! Подробности под катом.
Читать дальше →
Всего голосов 36: ↑36 и ↓0+48
Комментарии25

Немного про DDD: Реализация событий предметной области в .NET

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

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

Одним из относительно простых в реализации и полезных в архитектурном смысле паттернов, на мой взгляд, являются события предметной области (Domain Events). В данной статье я бы хотел рассказать о возможных вариантах реализации этого шаблона DDD с использованием .NET.

Читать далее
Всего голосов 9: ↑8 и ↓1+12
Комментарии16

Автоматизируем подключение Сisco AnyConnect на Mac OS

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

Так сложилось, что у меня на работе используется Cisco AnyConnect Secure Mobility Client. Периодически приходится подключаться к рабочему VPN используя эту программу. Мне, как человеку постоянно работающему в терминале, захотелось иметь под рукой консольную утилиту, которая сама введет пароль и TOTP, после чего инициирует подключение.

Как это сделать?
Всего голосов 4: ↑4 и ↓0+8
Комментарии19

Улучшение производительности рендеринга с помощью CSS content-visibility

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

Недавно я обнаружил интересную ошибку в работе emoji-picker-element:

Я работаю на экземпляре fedi с 19 тыс. пользовательских эмодзи [...], и когда я открываю панель выбора эмодзи [...], страница замирает как минимум на целую секунду, а после этого на некоторое время замирает общая производительность.

Если вы не знакомы с Mastodon или Fediverse, то на разных серверах могут быть свои собственные эмодзи, как в Slack, Discord и т.д. Наличие 19k (на самом деле ближе к 20k в данном случае) крайне необычно, но не является чем-то неслыханным.

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

Кодирование с кодеком HEVC простым языком — гайд на FFmpeg. Высокое качество, но низкий вес

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

Казалось бы, довольно простой вопрос: «Чем сжать видео?». На ум сразу приходят Handbrake, Movavi Converter или ещё что-нибудь пострашнее. Однако когда речь заходит о более гиковском подходе с упором на максимальное качество и экономию места, такие программы сложно назвать инструментами. Равно как и для обратной ситуации, когда картинку нужно сильно сжать и сохранить в целостности большую часть полезной информации. Все эти программы только лишь предоставляют набор наиболее общих конфигов для обычной съёмки и 2D.

В этой статье мы изучим, как при помощи самого большого сборника свободных библиотек FFmpeg научиться кодировать видео самому именно под ваши задачи.
Читать дальше →
Всего голосов 62: ↑61 и ↓1+82
Комментарии89

Знакомство с гипермедийными системами на ASP.NET Core 8.0

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

Быстрый старт с HTMX 2.0. Знакомство с гипермедийными системами на основе современной серверной платформы ASP.NET Core.

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

Как я создал тренажер для таблицы умножения: опыт разработки, сложности и MidJourney для UI

Время на прочтение4 мин
Количество просмотров2.1K

Пришло время дочке учить таблицу умножения, и я не смог найти нормальных тренажеров. В итоге, пара часов работы над программной частью и день работы над UI/UX вылились в полноценную игру для Яндекс.Игр.

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

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

Spring patterns. Fluent interface

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

Spring Patterns. Fluent interface.

В этой статье я хочу поделиться опытом создания Fluent Interface, но не классического шаблона из GOF, а с использованием Spring. Классическим примером шаблона Fluent Interface в Java является Stream API. Я покажу, как можно написать нечто подобное, используя Spring.

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

Блоки в Scratch с нуля — обучение для детей 8-9 лет и старше

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

Что такое Scratch? Это визуальная среда программирования, созданная для детей и подростков. Программирование здесь осуществляется перемещением визуальных программных блоков, маленькие «кирпичики» объединяются в «ветки». Все просто: достаточно достать блок из меню скриптов и перенести его в поле для программирования, а результат мы будем наблюдать на сцене справа.

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

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

Мой опыт в переводе между типами С++ и С#

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

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

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

Тёмная сторона LLM: Исследование уязвимостей ПО и сетевых атак. The Bad

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

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

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

Блеск и нищета WebAssembly

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

Всем привет! Сейчас за окном осенние деньки 2024 года. Вещает Пройдаков Евгений. Сейчас я руковожу группой разработки среды исполнения языка eXtraction and Processing в R&D департаменте Positive Technologies.

Доменно специфичный язык eXtraction and Processing является важной частью движка поведенческого анализа, используемого в таких продуктах Positive Technologies, как MaxPatrol SIEM и PT ISIM. Сегодня хотелось представить вашему вниманию выжимку нашего R&D процесса в экспериментах с WebAssembly. Узнаем, что такое WebAssembly. Поймём, как его можно встроить в программный продукт. Коснёмся инструментов разработки и сред исполнения WebAssembly. А также в рамках одной статьи пройдём путь от постановки задачи до результатов по разработке среды исполнения для доменно специфичного языка программирования. Кроме того, мы разберем некоторые проблемы, которые могут появиться у вас при попытке собрать и отладить большой С++ проект под WebAssembly. Материал может быть особенно полезен тем, кто хочет использовать WebAssembly за пределами веб‑браузера.

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

На старт, внимание, поехали!
Всего голосов 33: ↑32 и ↓1+43
Комментарии13

Визуализация покрытия автотестами для gRPC сервисов

Время на прочтение15 мин
Количество просмотров1.9K

В данной статье хочу рассказать про инструмент измерения покрытия gRPC сервисов tests-coverage-tool, написанный на языке Golang. Основная задача инструмента — автоматическое измерение покрытия требований на основе proto контрактов. Поговорим про использование в автотестах, концепцию, отчет и кратко про архитектуру самого инструмента tests-coverage-tool.

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

Как сочетать Next.js и Go: основы

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

В современной веб-разработке перед разработчиком в основном стоит задача создать приложения, которые не только быстро загружаются, но и дают плавный пользовательский опыт. Сочетание Next.js и Go предлагает мощное решение для этой задачи.

Next.js, с его возможностями статической генерации и серверного рендеринга, позволяет создавать высокопроизводительные интерфейсы, которые легко оптимизируются для поисковых систем. Go, в свою очередь, дает надежный бэкенд, способный обрабатывать множество запросов одновременно.

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

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

Создаём быстрые gRPC-сервисы с Tonic и Rust

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

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

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

Как продуктовая аналитика помогает масштабировать продукты

Время на прочтение6 мин
Количество просмотров1.2K

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

В этой статье я расскажу, как ведущие компании, на российском и международном рынке, такие как Яндекс, Авито, Booking и Google, используют продуктовую аналитику для масштабирования своих продуктов.

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

Пример создания Full Stack проекта, используя функциональное тестирование как инструмент дизайна

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

Зачастую full stack (и не только) проекты создаются без функциональных тестов.

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

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

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

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

В этой части статьи я на примере покажу, как можно спроектировать простое веб-приложение, используя функциональное тестирование, и имплементировать веб-приложение.

Поехали!
Всего голосов 4: ↑4 и ↓0+8
Комментарии3

1001-ый способ миграции на асинхронный Python

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

Если вы пишите на Python, то наверняка давно хотите все свои сервисы переписать на asyncio. Вот и я хотел, но не из‑за того, что стильно‑модно‑молодёжно, а потому что уже болело.

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

Читать ещё одну статью про GIL и asyncio
Всего голосов 15: ↑14 и ↓1+17
Комментарии13

Ещё один инструмент для обновления зависимостей

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

Обновление зависимостей в проектах на Go может быть утомительным и трудоемким процессом, особенно когда речь идет о множестве репозиториев. В данной статье автор делимся опытом разработки скрипта go-mod-bump, который значительно упрощает эту задачу, автоматизируя рутинные операции и минимизируя риск ошибок.

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

Информация

В рейтинге
5 939-й
Зарегистрирован
Активность