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

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

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

Искусство общения с LLM: Гайд по техникам Prompt Engineering

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

Привет, Хабр! Меня зовут Никита Кулин, ML-Engineer NLP моделей.

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

Это мой первый пост, поэтому буду рад любой обратной связи!

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

Эффективный запуск и инференс LLM на своем сервере с нуля (часть 1)

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

Привет, Хабр! На связи CEO команды Compressa AI. Недавно обнаружил для себя крутой базовый курс по эффективному запуску и инференсу LLM моделей от легенды AI мира — Andrew NG и его платформы DeepLearning. Он полностью на английском языке в формате видео, поэтому я осмелился адаптировать его под формат Хабра на русском языке. Знания должны быть доступны всем и в удобной форме, так ведь?

Многие команды (включая и Compressa AI) начинали LLM проекты с использования облачных API. Но по мере развития все больше разработчиков хотят использовать open-source LLM, чтобы экономить на токенах, снижать latency, запускать fine-tuning на собственных данных и в целом меньше зависеть от внешних моделей.

Из этого курса вы узнаете детали эффективного обслуживания и дообучения open-source LLM, включая методы обработки множества запросов от нескольких пользователей. Используя несколько таких методов одновременно, вы можете улучшить как задержку (latency), так и пропускную способность (throughput). Например, благодаря применению последних open-source технологий в своем продукте, мы добились увеличения пропускной способности до 70x на 1 GPU в сравнении с дефолтными Hugging Face & PyTorch.

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

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

Prompt engineering 101

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

Привет!

Использование LLM все больше проникает в бизнес. И ритейл — не исключение. В X5 мы решили сделать небольшую методичку по prompt engineering для обычного бизнес‑пользователя. Мы посмотрели на получившийся результат и решили поделиться этой методичкой с сообществом, чтобы как можно больше людей смогли овладеть разными техниками, позволяющими работать с LLM эффективнее.

Для этого нам сначала придется разобраться с тем, как вообще устроены LLM, затем поговорим о промптах: общие принципы построения, техники оптимизации и промпты для изображений. А на десерт предложим вам продвинутые техники работы с LLM: автоматизированные подходы по улучшению промптов, Retrieval‑Augmented Generation и разметка данных для ML с помощью LLM.

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

Инженерные практики разработки LLM-приложений

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


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

Недавно мы помогали клиенту с разработкой proof of concept («проверки концепции») проекта AI Concierge. Этот ИИ-консьерж призван обеспечить интерактивный голосовой опыт пользователя для помощи в решении распространённых запросов. Он использует сервисы AWS (Transcribe, Bedrock и Polly) для преобразования человеческой речи в текст, обработки этих вводных данных через большую языковую модель (LLM) и, наконец, преобразования сгенерированного текстового ответа обратно в речь.

В этой статье мы подробно рассмотрим техническую архитектуру проекта, проблемы, с которыми мы столкнулись, а также методы, которые помогли нам несколько раз быстро создать ИИ-консьержа на базе LLM.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+11
Комментарии0

Git. Руководство по оформлению веток и коммитов

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

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

Познать истину
Всего голосов 17: ↑15 и ↓2+13
Комментарии15

Мега-Учебник Flask Глава 13: I18n и L10n (издание 2024)

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

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

Начать изучение
Всего голосов 7: ↑6 и ↓1+5
Комментарии3

Почему пользователи ненавидят вашу документацию и как это исправить

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

«Ваша документация — отстой!», «Я её никогда не читаю, всё равно там ерунда написана!», «Эти документаторы опять всё напутали», «Да любая нейросеть быстро напишет это в сто раз лучше», «Там никогда не найти ничего нужного», «А разве у нас есть документация?»

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

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

Лучшие open-source инструменты для Python проектов

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

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

Инструменты распределены по этапам/сферам разработки. По каждому из них я дам небольшое описание и попытаюсь рассказать о его пользе. Если утилита имеет дополнительные расширения/плагины, то я расскажу про самые полезные (на мой взгляд).

Читать далее
Всего голосов 33: ↑30 и ↓3+35
Комментарии9

43 полезных сервиса для управления проектами. Без эпитетов

Время на прочтение13 мин
Количество просмотров692K
Дано: собственные и аутсорс-проекты, некоторые участники работают удаленно.

Требуется: необходимо быстро назначать задачи исполнителям, планировать спринты, трекать выполнение и статусы, визуализировать процессы и делиться результатами с заказчиками.

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

Изначально сервисов было более 100, но постепенно список сокращался, и мы остановили наш выбор на трех, удовлетворяющих вместе наши нужды лучше всего: Jira, Slack и GanttPro. Но, если вдруг эти сервисы не помогут вам в планировании задач и работы с командой, делюсь с вами полным списком:

Процесс поиска очень часто усложняется тем, что все сервисы, как один, пишут «Лучший сервис, помогающий превратить ваши идеи в реальность и реализовать ваши проекты. Сегодня.». Так, а что вы делаете-то? Поэтому в этом списке без лишних эпитетов, только что какой сервис умеет. :)




Читать дальше →
Всего голосов 38: ↑32 и ↓6+26
Комментарии46

Backup. Файловое резервное копирование бюджетного VPS

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

Предыстория. В своё время, когда мне надо было найти решение этого вопроса на Хабре, казалось, что все статьи состоят из установки и настройки Veeam Backup, Proxmox Backup и прочих коммерческих решений для блочных устройств. У меня запросы поскромнее. SLA и 3-2-1 не требуются. Достаточно восстановить работоспособность за пару часов или хотя бы пару дней. В общем, в поиске нужной статьи мне не особо повезло. Зато в комментах оказались интересные находки. Попробовав некоторые из них, в итоге остановился на описанном ниже варианте. Настроил и забыл. В качестве облачного хранилища ранее был выбран Storj. Но недавно они превратили бесплатные аккаунты в триальные. Пришлось отказаться, пересесть на Mega и освежить в памяти настройки. Заодно и выложить сюда. Надеюсь, кому-то тоже пригодятся.

TL;DR Статья состоит из настройки rsnapshot, rclone и небольшого скрипта автоматизации.

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

Наглядное руководство по SSH-туннелям

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

Прим. переводчика: автор статьи рассматривает практические сценарии и примеры организации SSH-туннелей. А для лучшего понимания того, как это работает, графически показывает потоки трафика.

Туннели SSH — это зашифрованные TCP-соединения между клиентами и серверами SSH. Трафик входит с одной стороны туннеля и прозрачно выходит с другой. Изначально этот термин относился к туннелям на виртуальных сетевых интерфейсах TUN/TAP, однако сейчас так обычно называют проброс портов SSH.

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

Материалы для подготовки к собеседованию на позицию Data Scientist. Часть 1: Live Coding

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

Привет! Меня зовут Артем. Я работаю Data Scientist'ом в компании МегаФон (платформа для безопасной монетизации данных OneFactor).

В данной статье разберемся что такое live coding интервью и как к нему готовиться.

Материал в первую очередь будет полезен Data Scientist'ам и ML инженерам, при этом некоторые разделы, например, Алгоритмы и структуры данных подойдут всем IT специалистам, которым предстоит пройти секцию live coding.

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

Комфортная работа в Linux. ZRAM и гибернация — особенности взаимодействия

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

Далеко не все работающие на сегодняшний день компьютеры и ноутбуки имеют объём оперативной памяти, гарантированно перекрывающий потребности возложенных на них задач. Для ноутбуков среднего и нижнего ценовых сегментов типовой задачей может быть работа с большим количеством открытых вкладок браузера, для более дорогих ноутбуков или системных блоков — ресурсоёмкие игры, рендеринг, видеомонтаж, для серверов — базы данных и прочие требовательные к RAM задачи.

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

Если типовые задачи вашего компьютера требуют в 2-3 раза больше оперативной памяти, чем стоит в системе, наилучшим решением будет её увеличение. Если установить больше памяти невозможно технически (самый, пожалуй, острый пример — нетбуки на процессоре Atom с максимально возможным объёмом RAM 2 Гб) — ресурсоёмкие задачи лучше перенести на более мощный аппарат, а этот использовать только для офисно-браузерных задач (отдать детям или родителям). В случае же менее значительной нехватки (в пределах половины имеющегося объёма RAM), есть возможность улучшить ситуацию.

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

Кейс: разметка приложения с нуля на конкретном примере

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

Привет! На связи Сергей Матросов и команда X5 Tech, ответственная за аналитику в “Пятёрочке”. Хотим поделиться с вами тем, как мы внедрили трекер AppMetrica от Яндекса и сделали с помощью него разметку для приложения “Пятёрочки”. Почему мы остановились именно на этом фреймворке, какую мы выбрали архитектуру разметки, как писали правила и словари, а также разберём процесс разметки на живом примере разметки экрана приложения. Очень надеемся, что эта статья поможет вам сэкономить много времени, если перед вами будет стоять аналогичная задача.

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

Первые 10 минут на сервере

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

Азбука безопасности Ubuntu


«Мои первые 5 минут на сервере» Брайана Кеннеди — отличное введение, как быстро обезопасить сервер от большинства атак. У нас есть несколько исправлений для этой инструкции, чтобы дополнить ею наше полное руководство. Также хочется подробнее объяснить некоторые вещи для более юных инженеров.

Каждое утро я проверяю почтовые уведомления logwatch и получаю основательное удовольствие, наблюдая несколько сотен (иногда тысяч) безуспешных попыток получить доступ. (Многие довольно прозаичны — попытки авторизоваться как root с паролем 1234 снова и снова). Приведённая здесь общая методика подходит для серверов Debian/Ubuntu, которые лично мы предпочитаем всем остальным. Они обычно служат только хостами для контейнеров Docker, но принципы те же.

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

Примечание: Эта справка создана как базовая азбука. Её следует расширить и дополнить в соответствие с вашими потребностями.
Читать дальше →
Всего голосов 54: ↑40 и ↓14+26
Комментарии55

Превратите свой пет-проект из хобби в карьеру

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

Привет, Хабр!

Меня зовут Данил Картушов, в этом посте я расскажу, почему и как именно pet-project'ы могут стать ключом к вашей карьере.

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

Начнем!
Всего голосов 39: ↑32 и ↓7+30
Комментарии24

Основные типы распределений вероятностей в примерах

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

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

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

Как линуксовый админ управлял детским хором с помощью системы распознавания нот под Ubuntu 16.04. Микрофон и аккорды

Время на прочтение4 мин
Количество просмотров11K
Что нужно, чтобы лето проходило весело? Нужна музыка! Но если музыка записана нотами на бумаге, а вы — обыкновенный системный администратор, и вам поручили задачу создать детский хор, то в качестве одного из вариантов решения этой проблемы представляю несколько полезных программ. Они написаны на Java и доступны как в репозитарии Ubuntu 16.04, так и на Гитхабе для решения задачи машинного распознавания нот, создания музыкальных партий, выгрузки и редактирования получившегося музыкального продукта в популярные форматы и раздачи файлов (а также и подзатыльников) отдельным исполнителям. Тема, я надеюсь, будет интересна читателям нашего блога.(UPD1. Есть добавление по системе оптического распознавания TESSERACT 5.0.0-alpha для быстрой работы системы на современных процессорах.)

image
Читать дальше →
Всего голосов 33: ↑31 и ↓2+29
Комментарии33

Как делить пользователей на группы в АБ-тестах: ошибки и рекомендации

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

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

Может показаться, что задача элементарная - сгенерировать случайное целое число каждому пользователю с вероятностью 1/n, где n - число групп в АБ тесте. Но на практике, особенно для высоконагруженных сервисов, таких как Ozon, возникает множество архитектурных и платформенных сложностей. В данной статье мы сконцентрируемся на основных принципах деления на группы, принятых в индустрии.

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

Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному

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

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

Вы, наверняка, помните отличный цикл статей на Хабре в прошлом году от пользователя MiraclePtr, который рассказывал о разных методах блокировок, о разных методах обхода блокировок, о разных клиентах и серверах для обходов блокировок, и о разных способах их настройки (раз, два, три, четыре, пять, шесть, семь, восемь, десять, десять, и вроде были еще другие), и можете спросить, а зачем еще одна? Есть две основные причины для этого.

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность