simd.

Выжимаем максимум из BERT: токенизация в 50 раз быстрее

Статья о том, как отказ от лишней обработки ASCII ускорил токенизатор BERT в 50 разПоследние несколько месяцев мы активно возвращаем к жизни библиотеку tokenizers. Наша цель — ускорить токенизацию и снизить потребление ресурсов. Сейчас мы готовим эти улучшения к стабильному релизу v1.0.0. Главным ориентиром для нас стала скорость токенизации в МБ/с исходного текста, прежде всего для BPE (Byte‑Pair Encoding) — алгоритма, который используется в большинстве токенизаторов LLM. Теперь классические BPE‑токенизаторы обрабатывают текст до 30 раз быстрее, чем в tokenizers 0.23.

продолжить чтение

Усредняющие сети: как ускорить 8-битные сети почти без потери точности

Чтобы распознать документ на смартфоне, мало хорошо обучить нейросеть читать текст. Нужно ещё добиться, чтобы она делала это быстро на процессоре самого устройства. При разработке Smart Document Engine, системы распознавания и анализа документов, мы решаем именно такие задачи: обработка должна выполняться локально, а вычислительные ресурсы ограничены. Поэтому для нас поиск более экономных способов вычисления нейронных сетей — вполне практическая задача.

продолжить чтение

Серверные FHE-ускорители для шифрования

Прототип микросхемы Intel Heracles

продолжить чтение

Agentis Memory — Redis-совместимое хранилище со встроенным векторным поиском и локальными эмбеддингами

Примечание: это перевод моей же статьи https://scrobot.substack.com/p/agentis-memory-redis-compatible-store, так что автор точно доносит свою мысль, без потери контекста при переводе :)В наше время уже никого не удивишь разработкой агентов, очередной оптимизацией, новой моделью или новой инфраструктурой для нейронок. Всё это в порядке вещей. Однако одно дело читать в Twitter «мы написали агента X и он оптимизировал нам процессы на 300000%», и совсем другое — начать копать чуть глубже. Копнёшь — а «агентом» называют скилл с одним промптом.

продолжить чтение

Орел или решка. C++ Edition

Джон Эдмунд Керрич известен, как человек, подкинувший монетку 10 000 раз, чтобы проверить закон больших чисел на практике. Достоверно неизвестно, сколько времени у него занял подобный утомительный эксперимент, но обстоятельства ему так или иначе помогли: он был в немецком плену, и — как иронично или издевательски это не прозвучит — у него было много свободного времени. К тому же у Джона был помощник Эрик Кристенсен, который, вероятно, удвоил скорость проведения эксперимента.

продолжить чтение

StarRocks и Trino: сходства, различия, бенчмарки и кейсы

Проект Trino (ранее PrestoSQL) изначально разработан в Meta, чтобы аналитики могли выполнять интерактивные запросы по широкому спектру хранилищ данных на базе Apache Hadoop. Благодаря эффективной обработке крупных наборов и сложных запросов, а также гибкому подключению к множеству источников данных, Trino быстро стал предпочтительным инструментом аналитики для крупных организаций.

продолжить чтение

Оптимизация языковой модели Mamba для выполнения на CPU

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

продолжить чтение

Зажигаем миллиард цветов миллионом строк

16KВот мы и добрались до финальной части, в которой я расскажу, как делал большой софт, который управляет большой подсветкой

продолжить чтение

Объяснение графических процессоров для тех, кто привык работать с ЦП

продолжить чтение

Разгон Мандельброта: SIMD с бубнами, OpenMP и CUDA

Построение множества Мандельброта — классический пример чрезвычайно параллельной задачи (embarrassingly parallel problem).Вначале мы разберем наивную реализацию, поиграемся с интринсиками (intrinsics) и, не теряя переносимости, заставим компилятор генерировать нам SIMD-инструкции. Далее добавим многопоточность и в заключение обесценим все наши старания несколькими строчками на CUDA.

продолжить чтение