Pull to refresh
110
0
Send message

Вы должны перестать вручную писать Dockerfile'ы

Level of difficultyMedium
Reading time3 min
Views44K

Вы тоже устали вручную заполнять Dockerfile и docker-compose.yaml под каждый новый проект?

Я всегда задумывался, применяю ли я известные best practices, когда пишу конфиг для Docker, и не занесу ли я случайно какие-нибудь уязвимости, вручную заполняя конфиг-файлы.

Что же, теперь мне больше не придется беспокоиться об этом, благодаря добрым людям из Docker, которые недавно реализовали инструмент для этого - docker init .

Интересно, как экономить время и быстро генерировать конфиги, даже если вы не профи в Docker? Прошу под кат.

Читать далее
Total votes 70: ↑71 and ↓-1+72
Comments63

После смерти Agile

Level of difficultyEasy
Reading time4 min
Views5.6K

Перед вами перевод статьи автора Doug Bridgens, в которой он рефлексирует свой опыт и критически отзывается о Agile. В его статье совсем нет анализа и аргументации, это личные размышления на тему конкретного разработчика.

Это мой второй перевод и я позволю себе в этом предисловии пару предложений о том, зачем я потратил свое время на этот перевод:

Читать далее
Total votes 11: ↑10 and ↓1+9
Comments7

Книга «Генеративное глубокое обучение. Как не мы рисуем картины, пишем романы и музыку. 2-е межд изд.»

Reading time8 min
Views4.4K
image Привет, Хаброжители!

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

Дэвид Фостер делает понятными и доступными архитектуру и методы генеративного моделирования, его советы и подсказки сделают ваши модели более творческими и эффективными в обучении. Вы начнете с основ глубокого обучения на базе Keras, а затем перейдете к самым передовым алгоритмам.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments0

Математика для Data Science и машинного обучения за 8 месяцев. Подробный план обучения

Level of difficultyEasy
Reading time7 min
Views76K

Беспилотные автомобили, продвинутые голосовые ассистенты, рекомендательные системы – это только малая часть тех классных продуктов, которые создаются с помощью инженеров по машинному обучению и, думаю, не для кого не секрет, что за кулисами сего чуда стоит математика. Именно она играет главную роль в понимании алгоритмов машинного и глубокого обучения.

Машинное обучение держится на трёх основных столпах:

Читать далее
Total votes 24: ↑23 and ↓1+22
Comments44

Attention is Not All You Need: как менялась архитектура трансформера

Level of difficultyHard
Reading time4 min
Views4.3K

С момента выхода оригинальной статьи про трансформер прошло уже больше 7 лет, и эта архитектура перевернула весь DL: начав с NLP архитектура теперь применяется везде, включая генерацию картинок. Но та ли это архитектура или уже нет? В этой статье я хотел сделать краткий обзор основных изменений, которые используются в текущих версиях моделей Mistral, Llama и им подобным.

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

Много-агентное планирование траекторий в децентрализованном режиме: эвристический поиск и обучение с подкреплением

Level of difficultyMedium
Reading time17 min
Views2.7K

Привет! Меня зовут Константин Яковлев, я научный работник и вот уже более 15 лет я занимаюсь методами планирования траектории. Когда речь идет о том, чтобы построить траекторию для одного агента, то задачу зачастую сводят к поиску пути на графе, а для этого в свою очередь обычно используют алгоритм A* или какие‑то из его многочисленных модификаций. Если же агентов много, они перемещаются в рабочем пространстве одновременно, то задача (внезапно) становится несколько более сложной и применить напрямую A* не получится. Вернее получится, но лишь для небольшого числа агентов (проклятье размерности, куда деваться). Тем не менее для централизованного случая, т. е. для случая, когда есть один (мощный) вычислитель, с которым связаны все агенты и который всё про всех знает, решить задачу много‑агентного планирования можно достаточно эффективно. Можно даже находить оптимальные решения для умеренного количества агентов за относительное приемлемое время (например, порядка 1 секунды на современном десктопном PC для 30–50 агентов).

Если же говорить о децентрализованном случае, т. е. о том случае, когда агентам необходимо действовать индивидуально (например, нет устойчивой связи с центральным контроллером), опираясь лишь на собственные (локальные) наблюдения и опыт, то с хорошими решениями задачи становится гораздо сложнее. Когда я говорю «хорошие решения», я имею в виду прежде всего такие алгоритмы, которые бы давали стройные теоретические гарантии в общем случае. Хотя бы гарантии того, что каждый агент дойдёт (за конечное время) до своей цели. Тем не менее, задача интересная и специалисты из индустрии и академии её пытаются решать.

В этом посте я расскажу о наших свежих наработках в этой области, а именно о гибридном методе, которые сочетает в себе принципы классического эвристического поиска (A*) и обучения с подкреплением (PPO). Метод получился неплохим, превосходящим многие современные аналоги по результатам экспериментов, а соответствующая статья была принята на The 38th AAAI Conference on Artificial Intelligence (пока доступен только препринт). Это одна из топовых академических конференций по искусственному интеллекту, которая в этом (2024) году проходила в Канаде (спойлер: я сам визу получить не успел, но моим коллегам и со‑авторам, кто имел ранее выданные Канадские визы, удалось принять личное участие и достойно представить нашу науку на мировом уровне).

Итак, поехали!
Total votes 27: ↑27 and ↓0+27
Comments10

Нейросети в авторитете: вы не угадаете, сколько статей про нейронки и ML было в 2013 году на Хабре

Level of difficultyEasy
Reading time5 min
Views9.8K

Человечество не умеет жить без мечты. Глобальной, размашистой, такой — чтобы всё или ничего. Люди мечтали летать, как птицы, видеть, как звери, обгонять самых быстрых, создавать золото из олова, не болеть, лечить рак, чинить гены, жить вечно, летать в космос, дотронуться до Луны… Что-то получается, что-то не сразу, что-то — и вовсе нет. Вторую половину XX и пока весь XXI век человечество мечтает…научиться думать. Только не головами, которые как раз мечтают и воплощают мечты в конкретные решения, а железными мозгами: создать компьютеры, обрабатывающие информацию по тому же принципу, что и люди, а то и способные к абстракции и воображению, — обучить машину думать. Это весьма практичная мечта, которая по задумке должна сделать мир лучше и перевернуть медицину, психологию, культуру, искусство, инженерию и почти всё, где мы используем мысль и речь. Догадались, о чём речь?

Читать далее
Total votes 36: ↑34 and ↓2+32
Comments12

Шпаргалка глаголов на английском языке при составлении тест-кейсов и заведении дефектов

Level of difficultyEasy
Reading time8 min
Views3.8K

Автор: Надежда Дудник

Памятка для начинающих инженеров по тестированию ПО.

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

Все глаголы я как раз использовала на своих англоязычных проектах и указанные примеры я взяла из своих написанных тестовых сценариев и оформленных баг-репортов.

Данная информация собрана из нескольких постов в рамках моего блога, и я решила добавить всю эту информацию в пространстве habr.com.

Также есть перевод фраз, и эти фразы также можно использовать при составлении тестовой документации на русскоязычных проектах.

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

Читать далее
Total votes 23: ↑17 and ↓6+11
Comments15

Алгоритмы AdaBoost (SAMME & R2). Принцип работы и реализация с нуля на Python

Level of difficultyHard
Reading time11 min
Views2.9K

Следующим мощным алгоритмом машинного обучения является AdaBoost (adaptive boosting), в основе которого лежит концепция бустинга, когда слабые базовые модели последовательно объединяются в одну сильную, исправляя ошибки предшественников.

В AdaBoost в качестве базовой модели используется пень решений (могут использоваться другие модели) — дерево с небольшой глубиной, которому присваивается вектор весов размера N, каждое значение которого соответствует определённому значению y_train и изначально равно 1 / N, где N — количество образцов в обучающей выборке. Каждый следующий пень обучается с учётом весов, рассчитанных на основе ошибок предыдущего прогноза. Также для каждого обученного пня отдельно рассчитывается вес, используемый для оценки важности итоговых прогнозов.

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

[ В закладки ] Зоопарк архитектур нейронных сетей. Часть 1

Reading time10 min
Views92K


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

Поэтому я решил составить шпаргалку по таким архитектурам. Большинство из них — нейронные сети, но некоторые — звери иной породы. Хотя все эти архитектуры подаются как новейшие и уникальные, когда я изобразил их структуру, внутренние связи стали намного понятнее.
Читать дальше →
Total votes 51: ↑50 and ↓1+49
Comments14

Как игрушечный свисток помог взломать телефонную систему: история Джона Дрейпера

Reading time6 min
Views5K

В небольшой комнате студенческого общежития Калифорнийского университета группа молодых людей напряженно разглядывала синюю коробочку. Это были Джон Дрейпер, Стив Джобс и Стив Возняк. Они проверяли свое изобретение и собирались совершить бесплатный звонок в Ватикан. 

После нескольких попыток на другом конце провода ответили. Взволнованный Стив Возняк, едва сдерживая смех, произнес: «Это Генри Киссинджер, я должен немедленно поговорить с Папой Римским. Я должен признаться в своих преступлениях». 

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

Читать далее
Total votes 23: ↑22 and ↓1+21
Comments0

Письмо начинающему изучать Data Science

Reading time2 min
Views63K

Я бы хотел получить такое письмо три года назад, когда только начинал изучать Data Science (DS). Чтобы там были необходимые ссылки на полезные материалы. Статья не претендует на полноту охвата необъятной области DS. Однако для начинающего специалиста будет полезна.


Нейронные сети – это...

Читать дальше →
Total votes 62: ↑45 and ↓17+28
Comments21

Кластеризация в ML: от теоретических основ популярных алгоритмов к их реализации с нуля на Python

Level of difficultyHard
Reading time34 min
Views12K

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

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

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

Азы больших языковых моделей и трансформеров: декодер

Level of difficultyHard
Reading time14 min
Views5.8K

В этом материале мы поговорим об устройстве компонента‑декодера в системах машинного обучения, построенных по архитектуре «трансформер», уделив особое внимание отличию декодера от энкодера. Уникальной особенностью декодеров является то, что они похожи на циклы. Они, по своей природе, итеративны, что контрастирует с линейными принципами обработки данных, на которых основаны энкодеры. В центре декодера находятся две модифицированные формы механизма внимания: механизм множественного внимания с маскировкой (masked multi‑head attention) и механизм множественного внимания энкодера‑декодера (encoder‑decoder multi‑head attention).

Слой множественного внимания с маскировкой в декодере обеспечивает последовательную обработку токенов. Благодаря такому подходу предотвращается воздействие последующих токенов на сгенерированные токены. Маскировка важна для поддержки порядка следования и согласованности сгенерированных данных. Взаимодействие между выходом декодера (из слоя множественного внимания с маскировкой) и выходом энкодера организовано с помощью механизма множественного внимания энкодера‑декодера. Этот последний шаг даёт декодеру доступ к входным данным.

Мы, кроме того, продемонстрируем реализацию этих концепций с использованием Python и NumPy. Мы создали простой пример перевода предложения с английского языка на португальский. Практическая демонстрация обсуждаемых здесь идей поможет проиллюстрировать работу внутренних механизмов декодера в трансформерах и позволит лучше понять роль декодеров в больших языковых моделях (Large Language Model, LLM).

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

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

Level of difficultyMedium
Reading time15 min
Views3K

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

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

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

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

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

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

NLP для поиска грамматических ошибок

Level of difficultyEasy
Reading time10 min
Views1.2K

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

Сегодня с вами участник профессионального сообщества NTA Журавлев Сергей.

В 2017 году на свет вышла статья разработчиков Google под названием «Attention is All You Need». В ней впервые была предложена идея трансформеров — моделей машинного обучения, ключевой особенностью которых было использование так называемых «слоев внимания», определяющих, какие слова и в какой степени важны для формирования контекста предложения. Публикация стала началом активного развития и продвижения моделей машинного обучения на описанной архитектуре.

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

Нейронная сеть, имеющая способность к самообучению

Level of difficultyMedium
Reading time13 min
Views8.9K

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

Читать далее
Total votes 13: ↑12 and ↓1+11
Comments31

Мультиагенты, основанные на больших языковых моделях(LLM)

Reading time7 min
Views2.4K

Хочу представить вам пересказ-обзор на статью Large Language Model based Multi-Agents: A Survey of Progress and Challenges, представленную группой ученых(Taicheng Guo , Xiuying Chen , Yaqi Wang , Ruidi Chang , Shichao Pei, Nitesh V. Chawla, Olaf Wiest , Xiangliang Zhang) 21 января 2024 года.  

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

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

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

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

Приручаем нейросети

Reading time6 min
Views9.9K

Давно не виделись, уважаемые!

Ну что ж, рад вас видеть, сегодня будем говорить и применять новые инструменты для создания RAG, улучшим качество наших результатов относительно прошлой статьи за счет использования других моделей для embeddings. Также затронем использование трушной векторной БД Chroma.

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

Капибара, Новый Старый Пикабу

Reading time8 min
Views70K

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

Читать далее
Total votes 180: ↑173 and ↓7+166
Comments225
1
23 ...

Information

Rating
5,124-th
Location
Россия
Registered
Activity