Как стать автором
Поиск
Написать публикацию
Обновить
43
0
Валерий Дмитриев @rotor

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

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

Как считать токены для GPT-3/GPT-4

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

OpenAI предоставляет мощные инструменты для работы с GPT-3 и GPT-4. Однако возможность подсчёта токенов реализована только для JavaScript и Python, что не покрывает всех возможных вариантов использования. В связи с этим я разработал универсальную библиотеку GPT-Tokenator для подсчёта токенов на C++, экспортировал функцию подсчёта токенов в C, что даёт возможность использовать её во многих языках программирования.

Читать далее

Как полюбить задачи регрессии

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

У задач классификации, в отличии от задач регрессии, есть одно очень приятное свойство:
большинство ML алгоритмов решения задач классификации выдают не просто ответ, а некоторую оценку уверенности модели в ответе. То есть помимо метрик самой модели мы обладаем оценкой вероятности для конкретного ответа на конкретном примере. Это здорово помогает в принятии решений.
Неправда ли хотелось бы иметь что-то такое и для задач регресии?

Читать далее

Пробуем контрактное программирование С++20 уже сейчас

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


В С++20 появилось контрактное программирование. На текущий момент ни один компилятор ещё не реализовал поддержку этой возможности.


Но есть способ уже сейчас попробовать использовать контракты из C++20, так как это описано в стандарте.

Заинтересовавшихся прошу под кат

Ардуино С++11 библиотека для управления светодиодными матрицами

Время на прочтение2 мин
Количество просмотров13K
led matrix cascade 8x8 Сегодня я хотел бы выступить в необычном для хаба Arduino качестве и рассказать не об устройстве, а о библиотеке.
Речь пойдет о библиотеке LedMatrix (русскоязычное описание), которая умеет управлять светодиодными матрицами 8x8 на чипах MAX7219 и MAX7221.

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

Фабричный метод без размещения в динамической памяти

Время на прочтение8 мин
Количество просмотров17K
У классической реализации фабричного метода на C++ есть один существенный недостаток — используемый при реализации этого шаблона динамический полиморфизм предполагает размещение объектов в динамической памяти. Если при этом размеры создаваемых фабричным методом объектов не велики, а создаются они часто, то это может негативно сказаться на производительности. Это связанно с тем, что во первых оператор new не очень эффективен при выделении памяти малого размера, а во вторых с тем что частая деаллокация небольших блоков памяти сама по себе требует много ресурсов.
Для решения этой проблемы было бы хорошо сохранить динамический полиморфизм (без него реализовать шаблон не получится) и при этом выделять память на стеке.
Если вам интересно, как это у меня получилось, добро пожаловать под кат.

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

RocksDB сервер – быстрое key-value хранилище для SSD накопителей

Время на прочтение5 мин
Количество просмотров40K
RocksDB RocksDB – постоянное хранилище «ключ-значение» для быстрых накопителей. Основное ее предназначение — хранение данных на flash дисках.

Узким местом в производительности часто является обращение к БД.
Эта проблема может решаться по разному.
Использование кэша решает проблему производительности, но существенно усложняет архитектуру программы. Графовые базы данных выходят из ситуации за счет оптимальных для данной задачи алгоритмов. Другим типом решений являются хранилища, достигающие высокой производительности за счет использования быстрого носителя.
В последнее время появилось много NoSQL хранилищ полностью хранящих данные в памяти. Но память все еще стоит дорого и ее объем ограничен. Увеличение памяти за счет шардинга опять таки упирается в стоимость.
Логичным выходом из ситуации было бы использование SSD дисков. Они имеют относительно невысокую стоимость и при этом вполне небольшое время отклика.

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

Сравнение производительности перебора массивов в цикле через for() и foreach()

Время на прочтение3 мин
Количество просмотров31K
Я хотел бы обратить внимание на одну не очевидную особенность php.
Допустим у нас есть массив с целочисленными индексами
$arr = array( $val1, $val2, ..., $valn );
Этот массив можно перебрать в цикле двумя способами
foreach($arr as $k => $v ) {...}
и
$n = count( $arr );
for($k = 0; $k < $n; $k++ ) {...}

Кажется вполне очевидным, что второй способ должен быть, если и не быстрее, то уж точно не медленнее.
Давайте разберемся.
— Нет. Никаких бенчмарков. Только код!
Читать дальше →

Об одной малоизвестной уязвимости в веб сайтах

Время на прочтение4 мин
Количество просмотров80K
Первое правило безопасности при разработке Веб приложений гласит: —
Не доверять данным пришедшим от клиента.
Почти все это правило хорошо знают и соблюдают. Мы пропускаем через валидаторы данные форм, кукисы, даже URI.
Но недавно я с удивлением обнаружил, что есть одна переменная, приходящая от клиента, которую почти никто не фильтрует.
Речь пойдет о компрометации веб приложения через подмену значения HTTP_HOST и SERVER_NAME.
Читать дальше →

Информация

В рейтинге
11 646-й
Откуда
Уфа, Башкортостан(Башкирия), Россия
Дата рождения
Зарегистрирован
Активность