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

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

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

SEO-продвижение: Как мы увеличили трафик на 88% в месяц и обошли Amazon

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

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

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

CORS — это тупо

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

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

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

Прежде всего, отмечу, что CORS — это огромный костыль, помогающий снизить влияние ошибок, передающихся с унаследованным кодом. В этой системе защита предоставляется как по принципу отказа от участия (opt-out) в попытке частично купировать XSRF-атаки против незащищённых или немодифицированных сайтов, так и по принципу активного участия (opt-in), чтобы на сайте включалась активная самозащита. Но ни одной из этих мер не достаточно, чтобы решить целенаправленно созданную проблему. Если на вашем сайте используются куки, то вы обязаны деятельно позаботиться о его безопасности. (Ладно, это касается не любого сайта, но лучше перестрахуйтесь. Выделите время на тщательный аудит вашего сайта или выполните описанные ниже простые шаги. Даже придерживаясь самых разумных паттернов, вы всё равно можете подставиться под XSRF-уязвимости).

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

Могут ли трансформеры «думать»

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

Недавние исследования показывают, что модели трансформеров способны почти безошибочно решать задачи, требующие нескольких логических шагов. Например, из утверждения А вывести Б и дойти логически до В. И что удивительно, это достигается без использования Chain-of-Thought или особых промптов — только классический GPT-2. Давайте посмотрим, как трансформеры «думают» при решении задач рассуждения, и напишем для этого код с использованием библиотеки Hugging Face.

Читать далее
Всего голосов 19: ↑14 и ↓5+11
Комментарии21

$1697 за выключатель кондиционера: DIY ремонт управляющего планшета

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

Примечание переводчика: Представьте себе ситуацию, когда ваша система кондиционирования воздуха полностью исправна, но перестает работать из-за отказа простого планшета, который служит обычным выключателем. Вам предлагают решить проблему, заменив всю систему за $1697. Эта история — не просто рассказ о возмутительной ценовой политике, а о том, как инженерный подход и немного упорства могут сэкономить вам кучу денег. В этой статье автор делится своим опытом DIY-ремонта, который позволил ему обойтись без ненужных затрат и вернуть контроль над системой кондиционирования.

Заставлять клиентов менять всю систему из-за поломки самого дешевого компонента — возможно, и выгодно, но меня это так взбесило, что я решил разобраться сам. Я понимаю, что мои действия могут оказаться сложными для большинства пользователей Advantage Air, но в ходе моего исследования я выяснил, что причина несовместимости современных планшетов с более старыми системами управления кроется только в программном обеспечении. Если бы они просто добавили в свои приложения функцию выбора "системы", это решило бы проблему для всех, а их кастомный POE-разъем все равно бы заставлял использовать их оборудование.

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

Как дообучать LLM с помощью Supervised Fine-Tuning

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

Обычно большие языковые модели (large language model, LLM) обучают в несколько этапов, включающих предварительное обучение и множество этапов fine-tuning (см. ниже). Предварительное обучение — это дорогостоящий процесс (например, требующий многих сотен тысяч долларов на вычислительные ресурсы), однако fine-tuning модели LLM (или контекстное обучение) по сравнению с этим гораздо дешевле (например, сотни долларов или даже меньше). Учитывая широкую доступность и бесплатность (даже для коммерческого использования) предварительно обученных LLM (например, MPT, Falcon или LLAMA-2), мы можем создавать большой спектр мощных приложений благодаря fine-tuning моделей под нужные задачи.


Этапы обучения LLM

На текущем этапе исследований ИИ одним из самых широко применяемых видов fine-tuning моделей LLM стал supervised fine-tuning (SFT). При этой методике курируемый датасет высококачественных выходных данных LLM применяется для непосредственного fine-tuning модели. SFT прост и дёшев в использовании, это полезный инструмент выравнивания языковых моделей, ставший популярным даже за пределами исследовательского сообщества опенсорсных LLM. В этой статье мы вкратце расскажем о принципах SFT, рассмотрим исследования по этой теме и приведём примеры того, как практикующие специалисты могут с лёгкостью пользоваться SFT, написав всего несколько строк кода на Python.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+5
Комментарии4

Простая красота XOR-сжатия чисел с плавающей запятой

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

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

Алгоритм


Алгоритм* прост. Сначала мы записываем первое число с плавающей запятой полностью; для всех последующих чисел выполняется XOR с предыдущим числом, а затем результат кодируется одним из трёх способов.

[*Конкретно эта версия сжатия чисел с плавающей запятой при помощи XOR была впервые описана в «Gorilla: A Fast, Scalable, In-Memory Time Series Database» и часто называется «Gorilla-сжатием».]
Читать дальше →
Всего голосов 23: ↑22 и ↓1+31
Комментарии16

Уроки, извлеченные из масштабирования до многотерабайтных датасетов

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

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

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

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

Управление личными делами в Obsidian (прототип)

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

В статье будет показан прототип системы дел, который реализован в Obsidian. Система в основном будет базироваться на идеях GTD.

Задачи будут создаваться в дневнике/журнале и агрегироваться в отдельных заметках с использованием плагина Tasks.

Система будет адаптирована для телефонов.

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

Задачи и Obsidian? Звучит интересно!
Всего голосов 13: ↑11 и ↓2+11
Комментарии10

Делаем резервное питание для роутера

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

На самом деле резервное питание мы будем делать для ONT (Optical Network Terminal), но т.к. способ подходит для всех подобных устройств с 12v питанием, то обобщил до "роутера".

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

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

Разработка Java-проекта с ChatGPT-4: от идеи до реализации

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

Как Java-методист с 15-летним опытом я решил проверить, как нейросеть ChatGPT-4 придумывает use cases, создает доменную модель и пишет программный код. Давайте посмотрим, способна ли эта большая языковая модель в ее текущей итерации заменить разработчика или, по крайней мере, упростить процесс разработки.

Привет, Хабр! Меня зовут Игорь Судакевич, я преподаватель-практик Учебного центра IBS по программированию на языке Java. В начале 2024 года мой коллега из IBS уже делился собственным опытом создания базовой программы с помощью ChatGPT. В том эксперименте использовалась бесплатная модель 3.5, и мы получили множество комментариев из серии «А вы бы тоже самое провернули на последней версии модели — она всё делает в разы лучше!» Мол, и разработчики скоро будут никому не нужны.

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

Как устроены условные точки останова

Время на прочтение9 мин
Количество просмотров2.9K
Условные точки останова (conditional breakpoints) – исключительно полезный инструмент. Но всем известно, насколько они замедляют работу кода, так, что из-за этого некоторые даже бросают ими пользоваться. В Visual Studio в своё время удалось значительно улучшить ситуацию с ними, что не помешало пользователю @ryanjfleury высмеивать их крайнюю медлительность. Но даже у raddbg уходит около 2 секунд на выполнение 10000 итераций простого цикла, если внутри него расставлены точки останова. Для сравнения: без точек останова тот же самый цикл выполняется менее чем за 1 мс. Почему же так чертовски медленно?

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

Обратите внимание: в этой статье речь идёт об отладчиках, работающих с нативным кодом – например, GDB, LLDB, Visual Studio C++. Отладчики для управляемых и скриптовых языков работают примерно так же, но могут отличаться детали реализации.
Читать дальше →
Всего голосов 5: ↑5 и ↓0+10
Комментарии10

XLand-100B: первый в мире большой датасет для контекстного обучения с подкреплением

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

Хабр, привет! Меня зовут Александр Никулин, я аспирант МФТИ и один из исследователей научной группы «Адаптивные агенты» в Институте AIRI.

Как можно понять из названия, наша группа заинтересована в создании адаптивных агентов, способных обобщаться на новые задачи после обучения. Направление это относительно новое и в литературе именуется как контекстное обучение с подкреплением (далее in‑context RL). И мы активно двигаем его вперед! Совсем недавно выпустили две статьи, обе приняты на ICML 2024, а ещё среду на JAX со множеством задач для мета‑обучения. Мы обязательно расскажем о них чуть позже (подписывайтесь!), а в этой статье хочется затронуть наш недавний препринт. В нем мы представили и выложили в open‑source огромный (по меркам RL) и пока единственный датасет для in‑context RL. На сбор траекторий для 40к задач и 130B транзиций потребовалось 50 000 GPU‑часов. Эту работу мы проделали совместно с коллегами из лаборатории T-Bank AI Research.

Датасетом уже можно пользоваться, так что рассказываем и надеемся на будущий акцепт статьи! Ну а начнем чуть издалека, расскажу что такое in‑context learning, как он появился в RL и почему нам понадобился собственный датасет.

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

На меня трудится 1 000 работников, хотя они думают, что работают на себя

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

Их мать уходит из дома, чтобы совокупиться с несколькими мужчинами одновременно. Их мужчины едят слишком много, поэтому зимой женщины отправляют их умирать на мороз. Они никогда не спят, и при этом вся семья зарабатывает всего 31 500 ₽ за сезон.  

Читать далее
Всего голосов 215: ↑183 и ↓32+192
Комментарии296

Turbo ML Conf 2024 — по следам

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

В формате разбора содержания докладов я, автор канала @borismlsec, приведу три интереснейших из тех, что мне довелось посетить на конференции Turbo ML 2024. Они привлекли меня не только как дата саентиста, но и как сотрудника вендора решений по кибербезопасности. И по каждому докладу в конце я расскажу, почему.

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

ИИ-модели ломаются при обучении на рекурсивно сгенерированных данных

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

Ранее мы разбирали документ о неизбежности AGI от Леопольда Ашенбреннера, в котором говорилось о «Стене данных». Проблема заключается в том, что данные для обучения новых ИИ-моделей в интернете не бесконечны. Один из подходов для обхода этой стены — создание синтетических данных, т.е сгенерированных ИИ. Ученые из Оксфордского и Кембриджского университетов опубликовали статью, в которой исследуют возможность использования таких данных при обучении новых моделей. Небольшой спойлер: модели сломались.

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

Пожалуй, самый простой способ спасти ваше .NET-приложение, или Prometheus (и не только) спешит на помощь

Уровень сложностиСредний
Время на прочтение32 мин
Количество просмотров6.8K
Существует множество возможных проблем приложений, которые удается заметить лишь с опозданием. Особенно когда релиз уже состоялся… К счастью, существует пара ключевых инструментов, которые выручают почти в любой ситуации, — и вряд ли найдется что-то проще.



Меня зовут Александр Пугач, я — Senior .NET Developer в проекте Data Warehouse «Лаборатории Касперского» (да-да, вы могли не знать, но у нас в компании широко используются .NET и «шарпы»).

В этой статье я расскажу, как работать с метриками в .NET на примере OpenTelemetry и Prometheus — систем, которые помогают отслеживать проблемы в работе приложений и быстро на них реагировать, обеспечивая стабильную и отказоустойчивую работу сервисов.

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

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

Представлена языковая модель Mistral Large 2 размером 123B. Как запускать. Локальный Сopilot. Открытый конкурент GPT-4o

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

MistralAI, вслед за LLaMA 3.1 405B, представила свою флагманскую модель с открытыми весами Mistral Large 2 (Mistral-Large-Instruct-2407). Mistral всегда отличалась очень качественными открытыми моделями, и, судя по всему, эта будет не исключением.

Веса открыты, размер контекста составляет 128k, размер модели 123B, модель была обучена на 80 языках программирования и десятках естественных языков, включая русский. Модель хорошо себя показывает как в рассуждениях, так и в математике и программировании.

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

Как я обучил модель, которая понимает русский лучше GPT 3.5 Turbo

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

В этой статье я расскажу, как я смог обучить модель, которая превзошла GPT 3.5 Turbo на русскоязычной части MT-Bench. Также я рассмотрю новую конфигурацию для обучения на двух графических процессорах параллельно с помощью accelerate и deepspeed.

Особенный интерес представляет мой датасет для обучения. Он получен из сабсета мультиязычных промтов набора lightblue/tagengo-gpt4 на русском, английском и китайском, всего 10 тысяч примеров, сгенерированных с помощью GPT-4o. Это в 8 раз меньше, чем исходный набор Tagengo, но обученная на последнем Suzume, как показали бенчмарки, лишь очень незначительно превосходит мою модель на ru_mt_bench, а на англоязычном бенче и вовсе уступает ей. Это значит, что я в разы сэкономил на GPU за счет более высокого качества данных, полученных с помощью GPT-4o. 

Я использовал скрипт для получения ответов по заданным промптам. Для генерации русскоязычной выборки я изменил часть скрипта, чтобы выбрать все промпты на русском из Tagengo (8K примеров), так как основной фокус при обучении модели был на русском языке. 

В итоге я получил датасет ruslandev/tagengo-rus-gpt-4o и приступил к обучению.

Для этого я создал виртуальную машину с NVIDIA H100, используя сервис immers.cloud. Для достижения наилучших результатов по instruction-following (что проверяется на MT-Bench) я взял в качестве исходной модели meta-llama/Meta-Llama-3-8B-Instruct. Именно на ней обучена модель Suzume, у которой высокая оценка на MT Bench. Предыдущие эксперименты показали, что базовая Llama-3 8B,  а особенно ее четырехбитная версия для QLoRA  unsloth/llama-3-8b-bnb-4bit - значительно отстает по оценкам бенчмарка.

Читать далее
Всего голосов 25: ↑24 и ↓1+32
Комментарии18

Go Tarantool: как построить Key-value-хранилище на сотни тысяч запросов в секунду

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

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

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

Разбираемся на примере клиентского кейса, как может выглядеть такая система в части хранения данных, почему для таких задач оптимальна комбинация реляционной БД и Tarantool, а также показываем, какие показатели может обеспечить система с Tarantool.

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

Работа с аренами: почти избавляемся от GC

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

Меня зовут Максим Горозий. Я тимлид в Т-Банке, работаю над нашей образовательной платформой, которая служит для разных направлений бизнеса. В ИТ больше 10 лет и успел поработать в двух GameDev-компаниях, где управление памятью занимало весомое время в оптимизации производительности кода. Люблю строить системы и взаимосвязи между ними, а также EdTech и преподавание, а еще больше — работать над инструментами обучения. Хотя начинал с C, я идеологический фанат Go, DDD и Agile.

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

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

Информация

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