Pull to refresh
8
0
Иркин Шариев @Irkin

Руководитель проектов

Send message

Выбор данных, малые языковые модели и причём здесь Шмидхубер

Reading time4 min
Views1.8K

Большие языковые модели — это хорошо, но интересно, можно ли получить сравнимое качество на малых моделях. Вести диалог с GPT-2 не получится, а тем более написать диплом или научную статью. Она и другие small language models (SLM) по большей части выдают слабый текст, даже если обучить их на всей Википедии.  

Возможно, тут стоит вспомнить теорию Шмидхубера, который, как известно,  всё придумал

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

Cross-Encoder для улучшения RAG на русском

Level of difficultyMedium
Reading time15 min
Views3.5K

Одно из самых прикладных применений языковых моделей (LLM) - это ответы на вопросы по документу/тексту/договорам. Языковая модель имеет сильную общую логику, а релевантные знания получаются из word, pdf, txt и других источников.

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

Еще В. Маяковский писал: "Изводишь единого слова ради, тысячи тонн словесной руды." Примерно это же самое делают би-энкодеры и кросс-энкодеры в рамках RAG, ищут самые важные и полезные слова в бесконечных тоннах текста.

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

Главное - мы натренируем свой кросс-энкодер на русском языке, что служит важным шагом на пути улучшения качества Retrieval Augmented Generation (RAG). Тренировка будет проходит новейшим передовым способом. Схематично он изображен на меме справа)

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

Одномерный лес и все прочее

Level of difficultyEasy
Reading time7 min
Views3.8K

Объяснение «на пальцах» и реализация решающего дерева, случайного леса и бустинга.

Дерево принятия решений (также называют деревом классификации или регрессионным деревом) — средство поддержки принятия решений, использующееся в машинном обучении, анализе данных и статистике. Структура дерева представляет собой «листья» и «ветки». На рёбрах («ветках») дерева решения записаны признаки, от которых зависит целевая функция, в «листьях» записаны значения целевой функции, а в остальных узлах — признаки, по которым различаются случаи. Чтобы классифицировать новый случай, надо спуститься по дереву до листа и выдать соответствующее значение.

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

Раскладываем Git по полочкам: терминология

Reading time7 min
Views15K

Первый раз столкнулись с Git и не понимаете, что это такое?

Устали бездумно выполнять серию комманд чтобы закинуть свой проект на GitHub?

Хотите понять, чем отличается merge, rebase, push и pull?

Надоело видеть ошибку о non fast-forward merge и не понимать, что с этим делать?

Сейчас попробуем разобраться в этом всем.

Поехали!
Total votes 16: ↑16 and ↓0+16
Comments10

Semantic BPM. Семантика и синтаксис бизнес-процессов

Level of difficultyMedium
Reading time26 min
Views2.5K

Онтологический инжиниринг в области Управления бизнес-процессами (BPM). Семантический BPM (Business Process Management), впрочем, как и семантический ЕА (Enterprise Architecture), – это заимствование концепций (подходов к описанию и онтологизации) \ инструментов Linked Data к указанным направлениям (формализация процессов и архитектур предприятий).

«Красная нить»: когда мы формализуем процессы - мы говорим об одном и том же, но на разных языках (нотациях), поэтому стандартизация Языка семантики, онтологических концептов BPM (EA) – важная, но еще недостаточно популяризированная составляющая развития BPM (следующий этап, ВРМ 3.0). Отделение («мух от котлет») семантики от синтаксиса позволит «рафинировать» понятийный (смысловой) анализ бизнес-процессов и при их аналитике оперировать базовыми (семантическими) концептами (образами). 

В Semantic BPM, как и в Semantic Web (семантическая паутина), смысл представленного процесса \ архитектуры понятен не только человеку, но и машинам и они могут его читать и обрабатывать. Эти смыслы, обычно передаваемые «человек – человек» на языке синтаксиса / графической грамматики через нотации VAD, EPC, BPMN, UML (плюс еще несколько десятков подобных вариантов \ форматов «обертывания», включая Дракон), исходно формализуются на языке семантики (стек Linked Data или аналогичный) и уже потом упаковываются в схемы с конкретной нотацией («пишутся» на языке какой-либо нотации). Для единого понимания смысловой составляющей схем применяется общая ВРМ-онтология, толковый словарь ВРМ. 

Читать далее
Total votes 7: ↑6 and ↓1+5
Comments8

Как языковая модель предсказывает следующий токен (часть 1)

Reading time27 min
Views6.8K

Я обучил небольшой (порядка 10 миллионов параметров) трансформер по превосходному туториалу Let’s build GPT: from scratch, in code, spelled out Андрея Карпати. После того, как он заработал, я захотел максимально глубоко понять, как он устроен внутри и как создаёт свои результаты.

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

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

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

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

Merlion Framework или как упростить работу с временными рядами

Reading time11 min
Views2.9K

Единственная причина для существования времени — чтобы все не  случилось одновременно.

Альберт Эйнштейн

Привет! Меня зовут Дмитрий, я дата-инженер в SM Lab, и в этом посте хочу рассказать вам о Merlion Framework. В посте мы рассмотрим его архитектуру, полезные функции и отличия от аналогов, разберём пару практических примеров, а также посмотрим, как всё считать и на какие метрики стоит обращать внимание.

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

Временной ряд – это набор данных, описывающих изменения какой-либо переменной во времени. 

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

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

Лучшие видеокарты за свои деньги, которые можно купить для игр в 2024 году

Level of difficultyEasy
Reading time9 min
Views70K

Выбор видеокарты — дело личное. Кому-то нравятся бренды, кто-то хочет сэкономить. Некоторым нравится, чтобы видюха светилась. Мы сегодня расскажем, какие видеокарты есть в наличии в разных ценовых категориях. И если вы ищете себе GPU или хотите посоветовать что-то друзьям, под катом — разбор актуального ассортимента XCOM-SHOP.

Читать далее
Total votes 18: ↑14 and ↓4+10
Comments31

О мат-нотациях и Машинах Тьюринга

Level of difficultyHard
Reading time10 min
Views2.4K

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

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

Построить МТ
Total votes 6: ↑6 and ↓0+6
Comments16

Алгебра смысла

Level of difficultyMedium
Reading time12 min
Views3.9K

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

Знаковые последовательности (например, вербальные и нотные тексты) можно превратить в математические объекты. Слова и числа стали одной сущностью, представлением матричной единицы, которая является матричным обобщением целых чисел и гиперкомплексным числом. Матричная единица — это матрица в которой один элемент равен единице, а остальные — нули.

Если слова текста представить такими матрицами, то конкатенация (объединение с сохранением порядка) слов и текстов становится операцией сложения матриц.

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

Человек видит и слышит только то, что понимает (И. В. Гёте). Понимает то, чему придает смысл как значимости для него. Смысл субъективен и зависит от интересов, мотиваций и чувств.

Л. С. Выготский различал понятия «смысл» и «значение»: «если „значение“ слова является объективным отражением системы связей и отношений, то „смысл“ — это привнесение субъективных аспектов значения соответственно данному моменту и ситуации».

По Г. Фреге «значения» — это свойства, отношения объектов, «смысл» — это только часть этих свойств. При этом и «значения» и «смысл» именуются одним «знаком», например словом. Два человека могут из списка значений выбрать для одного слова два непересекающихся фрагмента (два смысла) для его толкования.

Читать далее
Total votes 8: ↑5 and ↓3+2
Comments11

RabbitMQ как способ масштабирования ML проекта

Level of difficultyMedium
Reading time6 min
Views5.6K

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

Весь код в статье написан для OpenSource проекта по детекции синтетического текста raisontext в рамках курса ML System Design от ODS.

Показать больше
Total votes 8: ↑6 and ↓2+4
Comments4

Как я поднял свой сервер без возможности выставить для него статический IP адрес

Level of difficultyEasy
Reading time3 min
Views35K

Родился я в одном городе, позже переехал жить в другой. В родном городе остался ПК, который стоит без дела. В один прекрасный день решил я из него сделать многофункциональную удаленную машину: чтобы и кодить, и файлы хранить, и сайты/ботов хостить. Идея мне понравилась, я накатил на машину линукс, поставил все валявшиеся без дела диски и начал все это проверять. Но тут оказалось, что в родительском доме интернет тариф не поддерживает возможность установки статического IP адреса по умолчанию - адрес выдается провайдером в случайные моменты времени. Это означало, что я не мог, например, хостить какой-нибудь сервер на этой машине. Более того, я даже банально не мог к ней по SSH подключиться после смены ее адреса.

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

Читать далее
Total votes 71: ↑34 and ↓37-3
Comments100

Локальные GPT нейронный сети — устанавливаем на домашнем ПК, запускаем и проверяем на адекватность аналоги ChatGPT

Reading time18 min
Views26K

Есть много LLM нейронных сетей, создатели которых говорят, что они аналогичны, а может даже лучше ChatGPT версий 3.5 и 4.0. Давайте попробуем протестировать их, установив их на локальный компьютер, чтобы понять, действительно ли они так хороши.

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

Начинаем продолжать: обработка исходников с помощью ИИ в оффлайне

Level of difficultyMedium
Reading time17 min
Views9.4K

В этой статье я расскажу про расширение «Continue» для VSCode, помогающее обрабатывать исходные коды и просто текст любым ИИ, в том числе бесплатным и запущенным локально; а так же покажу, что умеет делать локальный вариант ИИ уже сейчас. 

Читать далее
Total votes 21: ↑19 and ↓2+17
Comments13

Как запустить Mixtral на своём компьютере

Level of difficultyMedium
Reading time4 min
Views9.6K

Всякий раз, когда выходит новая хорошая публичная ИИ модель, Хабр наполняется вопросами "Как нам её попробовать" и неправильными ответами, будто нужно платить за какие-то сервисы или иметь железа на сто лямов. Поэтому я вновь напишу инструкцию, как запустить новейший mixtral-8x7 на обычных средних компьютерах.

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

Красота замыканий

Reading time14 min
Views24K

До того, как Java 7 вышел, я хотел написать в своем блоге статью о различных предложениях для Java 7, касающихся замыканий. Однако, когда я начал писать эту статью, я обнаружил, что начать ее без какого-либо введения в замыкания очень трудно. Со временем введение стало настолько длинным, что я опасался утратить интерес большинство читателей еще до того, как я доберусь до темы Java 7. Я решил, что вместо этого стоит написать отдельную статью о замыканиях в целом. В итоге получилось, что статья о Java 7 в моем блоге так и не появилась.

Большинство статей о замыканиях написаны с точки зрения функциональных языков, поскольку именно они, как правило, могут похвастаться лучшей поддержкой замыканий. Однако именно поэтому я счел полезным написать статью о том, как они проявляются в более традиционных объектно-ориентированных языках. Скорее всего, если вы пишете на функциональном языке, вы уже знаете о них все, что вам нужно. В этой статье речь пойдет о C# (версии 1, 2 и 3) и Java (до версии 7).

Читать далее
Total votes 15: ↑11 and ↓4+7
Comments44

Математическая продлёнка. Самый правильный угол

Level of difficultyEasy
Reading time18 min
Views6.6K

Что такое прямой угол? Почему дома, вагоны, книжки и коробки преимущественно прямоугольные? Почему расстояние от точки до прямой вычисляется вдоль перпендикуляра? Как построить прямой угол без циркуля и линейки? Что такое вертикаль и горизонталь и почему с горизонтального стола ничего не скатывается? Почему декартовы координатные оси располагаются под прямым углом? Почему ортогональные геометрические векторы перпендикулярны? Как работает теорема Пифагора в неевклидовых геометриях?

Мы найдём ответы на все приведённые выше вопросы, используя одно единственное свойства прямого угла.

Что же это за свойство?
Total votes 29: ↑29 and ↓0+29
Comments13

Теория множеств и математическая логика применительно к задаче с параметром (ЕГЭ, RUS)

Level of difficultyMedium
Reading time7 min
Views3.2K

Как легко и быстро научиться решать задачи с параметром, встречающуюся на ЕГЭ по математике (Профильный уровень)? Да никак, если не понимать, что требуется найти и как к этому прийти в техническом плане. Однако автор попытается Вас научить «Слоистому мышлению», которое так необходимо для постановки самому себе мини подзадач, упрощающих поиск правильного решения.

Читать далее
Total votes 10: ↑7 and ↓3+4
Comments4

Подробное объяснение принципа KISS в программном обеспечении

Reading time18 min
Views6K

Когда я ищу информацию о принципе KISS в Интернете, я натыкаюсь на множество сайтов, определяющих его в паре строк: важна простота, давайте быть простыми, конец. Они часто не объясняют, что такое простота, почему простота важна и как ее достичь.

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

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

Читать далее
Total votes 12: ↑9 and ↓3+6
Comments10

На чем основана логика? Часть 1. Алгебра множеств без аксиом

Level of difficultyMedium
Reading time9 min
Views6.4K

Сразу начну с гипотезы, положенной в основу данной статьи: вся классическая логика основана на множествах, точнее, на алгебре множеств. Должен сказать, что в современной логике и математике эта гипотеза считается ошибочной, так как еще на рубеже XIX и XX столетий сложилось убеждение (точнее, заблуждение), что понятие «множество» противоречиво. Мне представляется, что настала пора избавляться от этого и некоторых других заблуждений, связанных с логикой.

Читать далее
Total votes 9: ↑6 and ↓3+3
Comments7

Information

Rating
Does not participate
Location
Самара, Самарская обл., Россия
Registered
Activity