Pull to refresh
-4
0
Send message

Игровые паттерны программирования: Game Loop

Level of difficultyEasy
Reading time19 min
Views10K

Это перевод одной из глав книги Game programming patterns Роберта Найстрома. Так как книга по сути состоит из подробного описания шаблонов проектирования, каждая глава может рассматриваться как самостоятельная статья, чем я и воспользовался и перевел, как мне кажется, статью с самым важным паттерном в игростроении — Game loop.

Читать далее

Как LLM учат понимать синтаксис

Level of difficultyMedium
Reading time4 min
Views3.3K

Скорее всего, вы поняли заголовок правильно, хотя в нём есть стилистическая ошибка — двусмысленность (кто-то учит LLM, или они учат кого-то?). 

Человеческое понимание языка остается ориентиром и пока недостижимой целью для языковых моделей. При всей небезошибочности первого и при всех невероятных успехах последних. Например, человеку обычно не составляет труда однозначно трактовать двусмысленные фразы исходя из контекста. Более того, мы с удовольствием используем такие каламбуры в шутках разного качества. Из самого известного приходит на ум только “В Кремле голубые не только ели, но и пили” (предложите свои варианты в комментариях — будет интересно почитать). Есть ещё “казнить нельзя помиловать”, но эта двусмысленность разрешается запятой.

Самый известный пример в английском:  “Time flies like an arrow; Fruit flies like a banana”. 

Человек скорее всего после некоторых раздумий поймёт это как “Время летит как стрела, мухи любят банан” (хотя мне, например, понадобилось на это несколько секунд).  Яндекс переводчик понимает эту фразу так:  “Время летит как стрела, фрукты разлетаются как бананы”. Google translator демонстрирует зоологическую эрудированность: “Время летит как стрела; Фруктовые мушки, как банан”, а ChatGPT предлагает “Время летит как стрела; Мухи на фруктах летают как бананы”. В общем, никто не справился. 

Читать далее

На практике пробуем KAN – принципиально новую архитектуру нейросетей

Level of difficultyMedium
Reading time5 min
Views41K

На днях ученые из MIT показали альтернативу многослойному перцептрону (MLP). MLP с самого момента изобретения глубокого обучения лежит в основе всех нейросетей, какими мы их знаем сегодня. На его идее в том числе построены большие языковые модели и системы компьютерного зрения.

Однако теперь все может измениться. В KAN (Kolmogorov-Arnold Networks) исследователи реализовали перемещение функций активации с нейронов на ребра нейросети, и такой подход показал блестящие результаты.

Читать далее

Как объяснить градиентный спуск вашей маме: простое руководство

Level of difficultyEasy
Reading time7 min
Views25K

Градиентный спуск лежит в основе большинства методов AI/ML. Звучит как-то странно и пугающе. Спуск? Блин, надеюсь, мне не придется прыгать с парашютом...?

Не волнуйтесь, возможно, все же придется прыгнуть, но только если вы этого захотите. Это объяснение способен понять даже ваш 10-летний племянник.

Читать далее

Как объяснить функции активации вашему коту: простое руководство

Level of difficultyEasy
Reading time8 min
Views28K

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

Идея, собственно, настолько проста, что даже ваш кот может разобраться в этом. Прежде всего, что-то похожее есть в наших головах. Для этого давайте взглянем на упрощенный нейрон (органический и искусственный):

Читать далее

Теория игр за 15 минут

Level of difficultyEasy
Reading time15 min
Views73K

Многие из вас, я уверен, слышали о теории игр в какой-то момент своей жизни. Если вы хотите выглядеть умным и произвести впечатление на свою девушку — просто упомяните «игру с нулевой суммой» или «эволюционную стратегию», и ваши шансы отвести её домой сегодня вечером только что подскочили на 50%. Или вы можете использовать теорию игр, чтобы принимать решения в инвестировании своих денег (чтобы их полностью потерять и разориться) или, например решая, на какой девушке жениться (что также очень вероятно вас разорит). Как видите, это очень полезная теория.

Чтобы казаться умным - достаточно выучить эти пару выражений, но чтобы на самом деле что-то понимать - придется разобраться. Оказывается, это не так уж сложно и довольно интересно. Давайте посмотрим.

Читать далее

Архитектура RAG: полный гайд

Level of difficultyHard
Reading time13 min
Views54K

Если, открывая холодильник вы еще не слышали из него про RAG, то наверняка скоро услышите. Однако, в сети на удивление мало полных гайдов, учитывающих все тонкости (оценка релевантности, борьба с галлюцинациями и т.д.) а не обрывочных кусков. Базируясь на опыте нашей работы, я составил гайд который покрывает эту тему наиболее полно.

Итак зачем нужен RAG?

Читать далее

Магическое ускорение работы моделей с помощью дистилляции

Level of difficultyMedium
Reading time4 min
Views5.6K

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

Эти вопросы вполне применимы и в области машинного обучения. Для обучения модели диффузии требуется много данных и вычислительной мощности, а затем для создания изображений требуется значительное количество вычислений и серьезное оборудование. Исследователи (у которых обычно нет денег и на доширкак) задали очень хороший вопрос - можно ли достичь тех же результатов с меньшими усилиями?

Читать далее

Нельзя предполагать, что все используют UTF-8

Level of difficultyMedium
Reading time6 min
Views20K
Как вычислять кодировку при помощи статистики

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

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

Однако человечество может винить себя за то, что сложности в общении испытывают компьютеры.

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

Практическое руководство по Rust. 4/4

Level of difficultyMedium
Reading time34 min
Views5.6K



Hello world!


Представляю вашему вниманию четвертую и последнюю часть практического руководства по Rust.



Другой формат, который может показаться вам более удобным.


Руководство основано на Comprehensive Rust — руководстве по Rust от команды Android в Google и рассчитано на людей, которые уверенно владеют любым современным языком программирования. Еще раз: это руководство не рассчитано на тех, кто только начинает кодить ?

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

GPU-вычисления в браузере на скорости нативного приложения: марширующие кубы на WebGPU

Reading time13 min
Views5.4K

WebGPU — это мощный GPU-API для веба, поддерживает продвинутые рендеринговые конвейеры и вычислительные конвейеры GPU. WebGPU ключевым образом отличается от WebGL своей поддержкой вычислительных шейдеров и буферов хранения данных. В WebGL такие возможности отсутствуют, а WebGPU, в свою очередь, позволяет целиком выполнять в браузере мощные приложения, требующие вычислений на GPU. Речь может идти о самых разных приложениях, от GPGPU (напр., симуляции, обработка/анализ данных, машинное обучение, т.д.) до конвейеров рендеринга на основе GPU-вычислений — а также о многих других приложениях в этом спектре.

В этой статье мы оценим вычислительную мощность WebGPU, сравнив её с показателями Vulkan. Для этого мы реализуем классический алгоритм «марширующие кубы» (Marching Cubes) для WebGPU. Алгоритм марширующих кубов почти без оговорок относится к чрезвычайно параллельным, в составе этого алгоритма выполняется два глобальных шага редукции, необходимых для синхронизации местоположений рабочих элементов и вывода потоков. Поэтому данное решение — отличный вариант GPU-параллельного алгоритма, который стоит первым делом попробовать на новой платформе. Дело в том, что он достаточно сложен, чтобы API испытал давление сразу по нескольким направлениям сверх элементарных параллельных операций диспетчеризации в ядре. При этом он не столь сложен, чтобы на его реализацию требовалось существенное время, а также он не превращается в узкое место из-за ограничения производительности ЦП.

Читать далее

Реализация SHA256 и SHA512 на языке RUST

Level of difficultyEasy
Reading time8 min
Views9.1K

Небольшая заметка студента о том, как самостоятельно реализовать алгоритмы SHA256 и SHA512 на Rust.

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

Читать далее

Фундамент AI: обратное распространение ошибки простыми словами

Level of difficultyEasy
Reading time7 min
Views14K

Что если бы я вам сказал, что без понимания того, что такое backpropagation (обратное распространение ошибки), вы никогда не сможете использовать AI эффективно? Тогда я бы, конечно, соврал. Знать такие детали не требуется для использования AI в прикладных задачах, но, тем не менее, это базовый фундамент ML/AI, и понимать, как все устроено, полезно, ну или как минимум, интересно.

Читать далее

Построение логических элементов на транзисторах

Level of difficultyMedium
Reading time3 min
Views21K

Ещё очень давно, как только я начал интересоваться цифровой электроникой, я изучал логические элементы и сразу хотел что-то собрать на их основе, но самих микросхем логики у меня изначально не было, поэтому я решил собрать их самому на основе биполярных транзисторов NPN типа и резисторах.

Такая логика называется РТЛ (резисторно-транзисторная логика).

Велосипед я не изобрёл, просто собрал  кучу разного материала, плюс сам экспериментировал. Схемы примера собирал в программе Multisim и тестировал на настоящих транзисторах PN2222A. И вот что у меня вышло.

Читать далее

Кратко про библиотеку Axum в Rust

Level of difficultyMedium
Reading time6 min
Views6.2K

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

Axum была создана командой Tokio, которая уже получила свой +rep за создание асинхронной платформы Tokio для Rust.

Axum является микрофреймворком, ориентированным на упрощение задач, связанных с маршрутизацией и обработкой запросов в веб-приложениях.

Основная фича Axum заключается в его возможности обрабатывать тысячи запросов без значительных затрат на ресурсы.

Читать далее

Пора внедрять ORM в вашу систему

Level of difficultyEasy
Reading time5 min
Views11K

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

Сегодня я буду навязывать своё субъективное, однобокое, единственно правильное мнение, зачем вам ORM.

Читать далее

Миниатюризация систем квантового распределения ключей с помощью фотонных интегральных схем, часть 2: Сценарии применения

Reading time4 min
Views1K

В первой части статьи мы обсуждали вопрос о потенциале применения фотонных интегральных схем (ФИС) для миниатюризации систем квантового распределения ключей (КРК) с точки зрения оптических материалов. Прежде чем перейти к вопросу о конкретных реализациях, стоит остановиться на некоторых рассматриваемых сейчас экспертами сценариях применения этой технологии в квантовом интернете.

В конце 2023 года Росстандартом были утверждены первые четыре предварительных национальных стандарта в области квантовых коммуникаций, включая «Квантовые коммуникации. Термины и определения» и «Квантовый интернет вещей. Термины и определения». Согласно им:

Квантовый интернет — глобальная информационная квантовая сеть, в узлах которой формируется, обрабатывается и хранится квантовая информация, и узлы которой соединены квантовыми каналами.

«Квантовый интернет вещей — интернет вещей с использованием квантовых технологий».

Читать далее

Библиотечка электровакуумщика-кустаря

Level of difficultyEasy
Reading time8 min
Views9.7K

Интересуясь историей и практикой электровакуумных приборов (ЭВП) и идя по пути к их самостоятельному изготовлению в домашней лаборатории-мастерской, с течением времени накопил массу полезной литературы. От изданий академических до описаний любительских экспериментов коллег и фото раритетных ЭВП, литературе по азам в смежных областях — кустарные работы широкопрофильны и многогранны. Некоторые старые технические книги просто приятно иметь, как летописи отважных и романтичных пионеров-первопроходцев. Здесь, приведу профильные книги к которым при работе приходится обращаться чаще всего и выглядящие наиболее перспективно. Издания по возможности будут снабжаться комментариями в смысле полезности для основного направления деятельности.
Читать дальше →

На пути к полной жизни: Онлайн-синтез речи для людей с неврологическими нарушениями

Level of difficultyMedium
Reading time8 min
Views1.6K

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

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

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

В данной статье я расскажу о тестировании возможности применения технологии имплантируемого интерфейса “мозг-компьютер” (brain–computer interface) для онлайн-синтеза речи с использованием активности мозга, регистрируемой внутричерепными электродами, чтобы проложить путь к новым коммуникационным возможностям для людей, потерявших способность говорить.

Приятного прочтения!

Читать далее

Вербальные вычисления (VC) в доказательных DSS и NLP

Level of difficultyMedium
Reading time13 min
Views1.2K

С.Б. Пшеничников

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

Использование IT в обработке естественного языка (Natural Language Processing, NLP)  требует стандартизации текстов, например, токенизации или лемматизации. После этого можно пробовать применять математику, поскольку она является высшей формой стандартизации и превращает исследуемые объекты в идеальные, например, таблицы данных в матрицы элементов. Только на языке матриц можно искать общие закономерности данных (чисел и текстов).

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

Возможно, следует не торопиться это делать, а придумать новый вид чисел более пригодный для NLP, чем числа для исследования физических явлений. Такими являются матричные гипербинарные числа. Гипербинарные числа - один из видов гиперкомплексных чисел.

Для гипербинарных чисел существует своя арифметика и если к ней привыкнуть, то она покажется привычнее и проще пифагорейской арифметики.

В системах поддержки принятия решений (DSS) текстами являются оценочные суждения и пронумерованная шкала вербальных оценок. Далее (как и в NLP) номера превращаются в векторы действительных чисел и используются как наборы коэффициентов средних арифметических взвешенных.

Читать далее

Information

Rating
5,614-th
Registered
Activity