Search
Write a publication
Pull to refresh
-2
0.1
Send message

Я написал серверную SQLite

Reading time9 min
Views13K

Меня зовут Бен Джонсон, и я написал встраиваемую базу данных, которая служит бэкендом систем вроде etcd, — это BoltDB. Сегодня я работаю над Open Source проектом Litestream в компании Fly.io. Благодаря репликации Litestream делает SQLite приемлемым для фулстек‐приложений. Если вы можете установить SQLite, то Litestream заставите работать за 10 минут.

Читать далее

Дополнительные временные ряды в ETNA

Reading time3 min
Views5.6K

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

Читать далее

7 способов улучшить производительность Node.js в масштабе

Reading time11 min
Views11K

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

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

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

Как избежать «подводных камней» машинного обучения: руководство для академических исследователей

Reading time47 min
Views20K

Этот лонг-рид является сильно переработанным и расширенным переводом статьи How to avoid machine learning pitfalls: a guide for academic researchers (Lones, 2021).

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

Читать далее

Тинькофф Инвестиции про новую версию API и конкурс торговых роботов

Reading time3 min
Views11K

Привет! На связи команда Тинькофф Инвестиций. Мы запустили новую версию программного интерфейса для алгоритмического трейдинга. Расскажем про Tinkoff Invest API и что новенького в сервисе.

Читать далее

Псс, парень… индекс нужен?

Reading time8 min
Views24K

Самый больной вопрос для любого разработчика, которому приходится вычитывать данные из базы: "Как сделать мой запрос быстрее?". Классический ответ - необходимо создать подходящий индекс. Но куда именно его стоит "накатывать", да и как вообще он должен выглядеть?..

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

Читать далее

Оптимизация производительности ssr-приложений

Reading time12 min
Views16K

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


Не буду пересказывать рекламные лозунги про 500% пользователей покидают страницу после 100мс ожидания, увелечения конверсии на 20% при снижении LCP на 2мс… читайте сами. Скажу коротко: метрики производительности важны.

Читать дальше →

Яндекс выложил в опенсорс YDB

Reading time16 min
Views154K
Сегодня мы выложили в опенсорс систему управления базами данных YDB — плод многолетнего опыта Яндекса в разработке систем хранения и обработки данных. Исходный код, документация, SDK и все инструменты для работы с базой опубликованы на GitHub под лицензией Apache 2.0. Развернуть базу можно как на собственных, так и на сторонних серверах — в том числе в любых облачных сервисах.



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

В посте я расскажу об истории развития технологий баз данных, о том, зачем использовать YDB, как её применяют текущие пользователи и какие плюсы для всех несёт выход в опенсорс. А во второй половине поста поговорим о разных вариантах развёртывания.
Читать дальше →

Pine64 продолжает удивлять: экосистема устройств пополняется новыми гаджетами

Reading time4 min
Views9.3K

Сообщество Pine64 — те самые ребята, кто выпустил Linux-телефон PinePhone, который мы уже обозревали, а также его «наследника», PinePhone Pro, с более мощным процессором, лучшей камерой и несколькими дополнительными улучшениями. Сейчас разработчики представили сразу несколько обновлений, среди которых — беспроводные наушники с открытым «железом» и ПО. Обо всем этом — читайте под катом.

Сразу стоит сказать, что пост о беспроводных наушниках и тестовой плате для аудио появился в качестве первоапрельского поста. Многие решили, что это шутка, но она оказалась с двойным дном. Шутка как раз в том, что девайсы, заявленные как «первоапрельские», реально разрабатывались и вскоре их начнут отгружать в продажу.
Читать дальше →

Автоматическая суммаризация текстов с помощью трансформеров Hugging Face. Часть 1

Reading time12 min
Views10K

В июле 2020 года компания OpenAI выпустила свою модель машинного обучения третьего поколения, GPT-3, ориентированную на генерирование текстов. Тогда я понял, что мир уже не будет прежним. Эта модель задела меня за живое. Те системы такого рода, что выходили раньше, у меня подобных ощущений не вызывали. И вот ещё неожиданность — о новой системе начали говорить мои друзья и коллеги, в принципе интересующиеся технологиями, но не особенно обращающие внимание на последние достижения машинного обучения (Machine Learning, ML) и искусственного интеллекта (Artificial Intelligence, AI). Об этом написала даже газета Guardian. А если точнее — статью написала сама модель, а в Guardian её лишь отредактировали и опубликовали. Совершенно очевидно то, что выход модели GPT-3 стал поворотным моментом в развитии искусственного интеллекта.

Сразу же после выхода модели начали появляться идеи по поводу вариантов её применения. В течение нескольких недель было создано множество впечатляющих демонстрационных проектов, которые можно найти на сайте GPT-3. Моё внимание привлёк один из способов применения GPT-3 — автоматическое реферирование текстов (text summarization): компьютер читает переданный ему текст и выдаёт краткое изложение этого текста. Это — одна из самых сложных задач, с которыми приходится сталкиваться компьютерам. Дело в том, что она совмещает в себе два навыка из сферы обработки естественных языков (Natural Language Processing, NLP). Это — понимание читаемых текстов и возможность писать тексты самостоятельно. Именно поэтому меня так впечатлили примеры использования GPT-3, демонстрирующие возможности системы по генерированию текстов.

Читать далее

Понимание оценки BLEU в кастомизированном машинном переводе

Reading time10 min
Views9.6K

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

Читать далее

Алгоритм FSDP: ускорение обучения ИИ-моделей и сокращение количества GPU

Reading time10 min
Views5.9K

Прим. Wunder Fund: В статье описан относительно новый подход к ускорению обучения больших моделей. Сами мы его не применяем, но над скоростью обучения моделей работаем постоянно, и если вам интересна эта тема, будем рады с вами пообщаться)

Обучение крупномасштабных ИИ-моделей — это не так уж и просто. Помимо того, что для этого нужны серьёзные вычислительные мощности и ресурсы, задачи обучения очень больших моделей сопряжены с немалыми технологическими сложностями. Мы, в команде Facebook AI Research (FAIR), работаем над созданием инструментов и инфраструктурных решений, нацеленных на упрощение обучения больших моделей. Среди наших недавних проектов в этой области можно отметить модели с внутрислойным параллелизмоммодели с конвейерным параллелизмоммодели с шардингом состояния оптимизатора и данных, относящихся к вычислению градиентаархитектуру «смесь экспертов». Всё это — лишь часть нашей работы, направленной на то, чтобы сделать более эффективным обучение продвинутых ИИ-моделей для любого количества задач.

Читать далее

Постигаем искусство написания Dockerfile для Go

Reading time6 min
Views40K

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

Читать далее

Penisland, или как написать спеллчекер

Reading time7 min
Views12K
Есть хорошая статья Питера Норвига, в которой он рассказывает как написать спеллчекер в 20 строк кода. В этой статье он показывает как поисковые системы могут исправлять ошибки в запросах. И делает это довольно элегантно. Однако, у его подхода есть два серьезных недостатка. Во-первых, исправление более трех ошибок требует больших ресурсов. А гугл, кстати, неплохо справляется и с четырьмя ошибками. Во-вторых, нет возможности проверки связного текста.



Итак, хочется исправить эти проблемы. А именно, написать корректор коротких фраз или запросов, который:
  • умел бы выявлять три (и более) ошибки в запросе;
  • умел бы проверять «разорванные» или «слипшиеся» фразы, например expertsexchange — experts_exchange, ma na ger — manager
  • не требовал много кода для реализации
  • мог бы достраиваться до исправления ошибок на других языках и других типов" ошибок

Остальное — под катом.
Читать дальше →

Способы представления словарей для автоматической обработки текстов

Reading time10 min
Views21K
Автоматический анализ текстов практически всегда связан с работой со словарями. Они используются для морфологического анализа, выделения персон (нужны словари личных имен и фамилий) и организаций, а также других объектов.

В общем виде словарь — множество записей вида {строка, данные ассоциированные с этой строкой}.

Например, для морфологического анализа словарь состоит из троек {словоформа, нормальная форма, морфологические характеристики}. При анализе слова «мыла» из предложения «мама мыла раму» надо уметь получать следующие варианты анализа:
Нормальная форма Характеристики
МЫЛО S (существительное), РОД (родительный падеж), ЕД (единственное число), СРЕД (средний род), НЕОД
(неодушевленность)
МЫЛО S (существительное), ИМ (именительный падеж), МН (множественное число), СРЕД (средний род), НЕОД (неодушевленность)
МЫЛО S (существительное), ВИН (винительный падеж), МН (множественное число), СРЕД (средний род), НЕОД (неодушевленность)
МЫТЬ V (глагол), ПРОШ (прошедшее время), ЕД (единственное число), ИЗЪЯВ (изъявительное наклонение), ЖЕН (женский род), НЕСОВ (несовершенный вид)


Читать дальше →

Еще немного о GraphQL и зачем его использовать

Reading time8 min
Views11K

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

Для начала о том, что такое GraphQL. Это язык запросов для API, который разработали в Facebook в 2012 году. Он позволяет клиентам запрашивать ограниченное множество данных, в которых они нуждаются. GraphQL использует строго типизированный протокол, и все операции с данными проверяются в соответствии со схемой. 

Это хороший вариант для проектов, в которых разным типам клиентов (например, мобильному приложению и сайту) нужны разные наборы данных. С GraphQL мы заранее описываем схему запроса и ответа, а клиент сам указывает, какие данные ему необходимы. 

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

В целом у GraphQL есть несколько сильных сторон:

Читать далее

Как прогнозировать временные ряды с ETNA

Reading time7 min
Views16K

Меня зовут Андрей, я разработчик библиотеки ETNA в Тинькофф. В статье расскажу, как быстро и легко анализировать временные ряды с помощью ETNA, зачем временным рядам столько фич, и покажу, что даже простой линейной моделью можно получить хороший результат прогнозирования.

[Под катом много картинок и GIF]

Читать далее

Микросервисный фреймворк Flogo — собираем систему из кирпичиков

Reading time8 min
Views4.7K

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

Читать далее

Как ускорить разработку в пять раз: архитектура микросервиса

Reading time8 min
Views12K

Украинские события опять разделили нашу историю на периоды «До» и «После». IT все сегодняшние пертурбации коснулось нисколько не меньше, чем другие отрасли. И если в тучные годы компании могли себе позволить некоторые послабления, то сейчас проблемы оплаты, разрыв устоявшихся связей, снижение платежеспособности заказчиков и прочие последствия вынуждают их задуматься над оптимизацией расходов на разработку.

Читать далее

Information

Rating
5,789-th
Registered
Activity