Pull to refresh
14
0

Java Developer

Send message

Свой ChatGPT бот в Telegram в 2024

Level of difficultyMedium
Reading time8 min
Views49K

Я решил сделать свою интеграцию ChatGPT в Telegram, чтобы лучше понять, как работает ChatGPT API, какие настройки мне доступны и пользоваться ботом без всяких ограничений, а также иметь свободный доступ к модели GPT-4.

Мне не хотелось для этого проекта держать отдельный сервер, покупать домен и делать под него SSL сертификат, который требует Telegram для настройки WebHook. Поэтому я решил настроить всю систему с помощью serverless-технологий. 

Читать далее
Total votes 20: ↑17 and ↓3+14
Comments59

Вышла Java 21

Level of difficultyMedium
Reading time18 min
Views54K
Вышла общедоступная версия Java 21. В этот релиз попало около 2500 закрытых задач и 15 JEP'ов. Release Notes можно посмотреть здесь. Изменения API – здесь.

Java 21 является LTS-релизом, а значит у него будут выходить обновления как минимум 5 лет с момента выхода.
Читать дальше →
Total votes 74: ↑74 and ↓0+74
Comments49

Сервер авторизации для микросервисов на Spring Boot

Reading time21 min
Views25K

В этой статье рассмотрим, как реализовать аутентификацию с помощью централизованного сервера авторизации (Authorization Server) и API-шлюза (API Gateway).

Читать далее
Total votes 14: ↑9 and ↓5+4
Comments12

Как настроить мультинодовый кластер Airflow с помощью Celery и RabbitMQ

Reading time4 min
Views11K

Что такое Airflow?


Apache Airflow — это продвинутый workflow менеджер и незаменимый инструмент в арсенале современного дата инженера.


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

Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments5

MiVOLO: новая State-of-the-Art нейросеть с открытым исходным кодом для определения пола и возраста по фотографии

Level of difficultyMedium
Reading time12 min
Views4.5K

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

Хочу рассказать вам нашу историю о том, как изначально рутинная рабочая задача закончилась созданием открытой state-of-the-art нейросети, научной работой и новым датасетом.

Читать далее
Total votes 24: ↑24 and ↓0+24
Comments9

Практический кейс: как быстро развернуть Testcontainer PostgreSQL для Spring Boot API

Reading time7 min
Views12K

Тема с testcontainer-ами относительно не новая, первые статьи на англоязычных ресурсах встречаются с 2016 года, но не смотря на это, до сих пор на просторах веба крайне мало гайдов для их развертывания из коробки. В большинстве своем это туториалы, где собрана солянка из зависимостей и аннотаций, которые мало того, что не нужны, но еще и могут запутать разработчика, решившего  с ними познакомиться. В этой статье я опишу свой практический кейс по развертыванию тестовых контейнеров для базы данных PostgreSQL. Основная задача их использования - быстрый deploy нужного сервиса в контейнере за небольшое время. В дополнении для наглядности запустим туда FlyWay миграции.

Читать далее
Total votes 5: ↑4 and ↓1+3
Comments6

HTTP/3: улучшения производительности. Часть 2

Reading time32 min
Views16K

Фото Jack Hunter, Unsplash.com

После почти пятилетней разработки протокол HTTP/3 наконец приближается к окончательному выпуску. Здесь мы узнаем, как в HTTP/3 улучшилась производительность, включая контроль перегрузок, блокировки HoL и установку соединения 0-RTT.

Это вторая часть серии о новом протоколе HTTP/3. В первой мы говорили о том, зачем нам вообще нужен HTTP/3, о протоколе QUIC и новых возможностях.
Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments5

Как ядро управляет памятью

Reading time8 min
Views44K
Ранее мы увидели как организована виртуальная память процесса. Теперь рассмотрим механизмы, благодаря которым ядро управляет памятью. Обратимся к нашей программе:

image
Читать дальше →
Total votes 41: ↑36 and ↓5+31
Comments6

Организация памяти процесса

Reading time8 min
Views136K
image
Управление памятью – центральный аспект в работе операционных систем. Он оказывает основополагающее влияние на сферу программирования и системного администрирования. В нескольких последующих постах я коснусь вопросов, связанных с работой памяти. Упор будет сделан на практические аспекты, однако и детали внутреннего устройства игнорировать не будем. Рассматриваемые концепции являются достаточно общими, но проиллюстрированы в основном на примере Linux и Windows, выполняющихся на x86-32 компьютере. Первый пост описывает организацию памяти пользовательских процессов.
Читать дальше →
Total votes 28: ↑25 and ↓3+22
Comments12

DataVault на Greenplum с помощью DBT

Reading time12 min
Views8.4K

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

Меня зовут Марк Порошин, я занимаюсь DataScience в DV Group. Недавно я уже рассказывал про то, как начать трансформировать данные с помощью dbt. Сегодня я решил поделиться, как мы в DV Group поженили dbt, Greenplum и DataVault, собрали все грабли, что могли; немного поконтрибьютили в open-source, но по итогу остались очень довольны результатом.

Расскажу сначала пару слов о том, что такое DataVault. DataVault - методология построения хранилища, предполагающая высокую нормализацию данных (3ая нормальная форма). Основными ее компонентами являются:

Читать далее
Total votes 2: ↑2 and ↓0+2
Comments10

Greenplum DB

Reading time17 min
Views163K
Продолжаем цикл статей о технологиях, использующихся в работе хранилища данных (Data Warehouse, DWH) нашего банка. В этой статье я постараюсь кратко и немного поверхностно рассказать о Greenplum — СУБД, основанной на postgreSQL, и являющейся ядром нашего DWH. В статье не будут приводиться логи установки, конфиги и прочее — и без этого заметка получилась достаточно объёмной. Вместо этого я расскажу про общую архитектуру СУБД, способы хранения и заливки данных, бекапы, а также перечислю несколько проблем, с которыми мы столкнулись в ходе эксплуатации.



Немного о наших инсталляциях:

  • проект живёт у нас чуть больше двух лет;
  • 4 контура от 10 до 26 машин;
  • размер БД около 30 Тб;
  • в БД около 10000 таблиц;
  • до 700 queries per second.

За тем, как оно работает, прошу под кат!
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments31

Мой опыт релокации в Баварию по Blue Card

Reading time8 min
Views14K

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

Расскажу о своём опыте, нюансах. Статья не претендует на звание "мануал по переезду" или "как мигрировать в Германию", это просто описание опыта, возможно даже в некоторых моментах ошибка выжившего.

Итак, на дворе 2022 год, январь, я в поиске работы на LinkedIn. Профиль заполнен на 3 языках: русский, немецкий, английский. Немецкий, т.к. уже давно изучаю его и хочу переехать в Германию. Откликаюсь на многие вакансии, пишу в откликах сопроводительные письма.

Читать далее
Total votes 24: ↑22 and ↓2+20
Comments40

Внутренности JVM, Часть 1 — Загрузчик классов

Reading time5 min
Views38K
Перевод статьи подготовлен специально для студентов курса «Разработчик Java».




В этой серии статей я расскажу о том, как работает Java Virtual Machine. Сегодня мы рассмотрим механизм загрузки классов в JVM.
Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments2

Page-кэш, или как связаны между собой оперативная память и файлы

Reading time8 min
Views52K


Ранее мы познакомились с тем, как ядро управляет виртуальной памятью процесса, однако работу с файлами и ввод/вывод мы опустили. В этой статье рассмотрим важный и часто вызывающий заблуждения вопрос о том, какая существует связь между оперативной памятью и файловыми операциями, и как она влияет на производительность системы.
Читать дальше →
Total votes 41: ↑40 and ↓1+39
Comments12

Сценарии для виртуальных ассистентов Салют на NodeJS и фреймворке SaluteJS

Reading time11 min
Views3.8K

Привет! В одной из прошлых статей мы рассказывали о создании клиентской части навыков для виртуальных ассистентов на веб-технологиях и обещали вернуться с обзором создания сценарной части на NodeJS. Торжественно сдерживаем своё обещание!

Недавно мы выложили в открытый доступ фреймворк SaluteJS. Он позволяет создавать сценарии для виртуальных ассистентов Салют, используя стандартные методы JavaScript. Поскольку взаимодействие с NLP-платформой реализовано по http, мы подумали, что было бы круто писать сценарии примерно так же, как мы пишем обычные веб-сервисы, используя NodeJS. Вы можете интегрировать SaluteJS с любыми фреймворками вроде next.js, express, hapi или koa. Интеграция выполняется посредством middleware, где вы можете выражать обработку команд ассистента и голосовых команд пользователя, которые приходят в виде обычного http-запроса. Ниже покажу на конкретном примере, как это работает. 

Погнали!
Total votes 3: ↑3 and ↓0+3
Comments0

Обучение модели естественного языка с BERT и Tensorflow

Reading time9 min
Views27K

Рис. 1. Фразы и предложения в векторном представлении модели естественного языка

Обработка естественного языка (Natural Language Processing, NLP) – это область вычислительной лингвистики, ориентированная на разработку машин, способных понимать человеческие языки. Разработка таких машин – одна из задач, которые решают исследователи и инженеры в команде SberDevices.

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

В этой статье мы рассмотрим метод обучения модели естественного языка (NLU) на размеченных данных и реализацию этого метода на python3 и tensorflow 1.15. Ниже вы найдете пошаговое руководство и примеры кода. Код всего эксперимента доступен для воспроизведения на Colab.

Помимо этого, мы выкладываем в публичный доступ русскую модель NLU класса BERT-large [427 млн. параметров]: tensorflow, pytorch.

Прочитав этот пост, вы узнаете:

  • что такое модели NLU и как они применяются в компьютерной лингвистике;
  • что такое векторы предложений и как их получить;
  • как обучить векторизатор предложений [NLU] на базе архитектуры BERT;
  • как можно использовать обученные модели NLU
Total votes 20: ↑19 and ↓1+18
Comments6

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

Reading time14 min
Views16K

Первая модель искусственного нейрона Мак-Каллока-Питтса

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

Один из «дедушек» современных нейросетей — это перцептрон Розенблатта, представленный публике в конце 1950-х, но его появлению предшествовали другие, менее известные попытки описать принципы, по которым могла бы работать «думающая» машина, подобная мозгу. К ним относятся исследования Уолтера Питтса и Уоррена Мак-Каллока. Их модель, увидевшая свет в 1943-м году в статье под названием «Логическое исчисление идей, относящихся к нервной активности», была весьма новаторским изобретением. И за ней стоит довольно занятная история. Кто такие были эти товарищи, приложившие руку к созданию модели? Чопорные учёные в очках с роговой оправой или, может, аналог современных хипстеров из thinktank’ов?
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments8

Сбер выложил русскоязычную модель GPT-3 Large с 760 миллионами параметров в открытый доступ

Reading time10 min
Views172K
Последнее десятилетие в области компьютерных технологий ознаменовалось началом новой «весны искусственного интеллекта». Впрочем, ситуацию в индустрии в наши дни можно, наверное, охарактеризовать уже не как весну, а полноценное «лето ИИ». Судите сами, за последние неполные 10 лет только в области обработки естественного языка (Natural language processing, NLP) произошли уже две настоящие технологические революции. Появившаяся в результате второй из них модель GPT-3 произвела настоящий фурор не только в технологических медиа, но стала знаменитой далеко за пределами научного сообщества. Например, GPT-3 написала для издания «The Guardian» эссе о том, почему ИИ не угрожает людям. GPT-3 сочиняет стихи и прозу, выполняет переводы, ведёт диалоги, даёт ответы на вопросы, хотя никогда специально не училась выполнять эти задачи. До недавних пор все возможности GPT-3 могли по достоинству оценить лишь англоязычные пользователи. Мы в Сбере решили исправить эту досадную оплошность. И сейчас расскажем вам, что из этого получилось.


Источник изображения
Читать дальше →
Total votes 165: ↑160 and ↓5+155
Comments241

Сжатие данных в Apache Ignite. Опыт Сбера

Reading time10 min
Views3.6K
При работе с большими объемами данных иногда может остро встать проблема нехватки места на дисках. Одним из способов решения данной проблемы является сжатие, благодаря которому, на том же оборудовании, можно себе позволить увеличить объемы хранения. В данной статье мы рассмотрим, как работает сжатие данных в Apache Ignite. В статье будут описаны только реализованные внутри продукта способы сжатия на диске. Другие способы сжатия данных (по сети, в памяти) как реализованные, так и нет останутся за рамками.

Итак, при включенном persistence режиме, в результате изменения данных в кэшах, Ignite начинает записывать на диск:

  1. Содержимое кэшей
  2. Журнал упреждающей записи (Write Ahead Log, далее просто WAL)

Для сжатия WAL уже довольно давно существует механизм, который называется WAL compaction. В недавно вышедшем Apache Ignite 2.8 появилось еще два механизма позволяющих сжимать данные на диске, это disk page compression для сжатия содержимого кэшей и WAL page snapshot compression для сжатия некоторых записей WAL. Подробнее о всех этих трех механизмах ниже.
Читать дальше →
Total votes 16: ↑14 and ↓2+12
Comments3

Как не сломать кластер Apache Ignite с самого начала

Reading time11 min
Views11K

Привет! Ниже — расшифровка видеозаписи выступления на митапе Apache Ignite сообщества в Петербурге 20 июня. Загрузить слайды можно по ссылке.



Есть целый класс проблем, с которыми сталкиваются начинающие пользователи. Они только что скачали себе Apache Ignite, запускают первые два-три-десять раз, и приходят к нам с вопросами, которые решаются схожим образом. Поэтому предлагаю создать чек-лист, который сэкономит вам много времени и нервов, когда вы делаете свои первые приложения на Apache Ignite. Мы поговорим о подготовке к запуску; как сделать так, чтобы кластер собрался; как запустить какие-нибудь вычисления в Compute Grid; как подготовить модель данных и код, чтобы можно было записать в Ignite свои данные и потом их успешно прочитать. И главное: как ничего не сломать с самого начала.

Total votes 25: ↑24 and ↓1+23
Comments8
1
23 ...

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity