Search
Write a publication
Pull to refresh
-4
0
Send message

DTO в Python. Способы реализации

Level of difficultyMedium
Reading time6 min
Views17K

Основной целью DTO является упрощение коммуникации между слоями приложения, особенно при передаче данных через различные граничные интерфейсы, такие как веб-сервисы, REST API, брокеры сообщений или другие механизмы удаленного взаимодействия. На пути к обмену информацией с другими системами, важно минимизировать лишние расходы, такие как избыточное сериализация/десериализация, а также обеспечить четкую структуру данных, представляющую определенный контракт между отправителем и получателем.

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

Из основной функциональности хочу выделить валидацию типов и данных, создание объекта и выгрузку в словарь.

Читать далее

StackLLaMA: практическое руководство по обучению LLaMA с помощью RLHF

Level of difficultyHard
Reading time15 min
Views15K

ChatGPTGPT-4 и Claude — это мощные языковые модели, которые дообучают, используя метод, который называется «обучение с подкреплением на основе отзывов людей» (Reinforcement Learning from Human Feedback, RLHF). Благодаря этому такие модели лучше отражают наши ожидания в плане их поведения, они лучше соответствуют тому, как мы собираемся их использовать.

В этом материале мы рассмотрим процесс обучения модели LLaMa c использованием RLHF. Модель будет учиться отвечать на вопросы с сайта Stack Exchange.

Читать далее

Запускаем на телефоне нейронку LLaMa 7B -13B 4 bit от фейсбука с настройкой Alpaca-LoRA

Level of difficultyMedium
Reading time3 min
Views18K

Удалось запустить на телефоне пиксель 6 лингво нейронку LLaMa ужатую до 7 (альпака лора была настроена пока именно на 7 миллиардов параметров, и ответы могут быть удачнее именно на ней ) или 13 миллиардов параметров и 4 битных зависимостей. До установки её можно опробовать в гугл колаб.

Читать далее

Как сделать свой AnythingGPT, отвечающий на вопросы так, как вам это необходимо (Python, OpenAI Embeddings, ChatGPT API)

Level of difficultyMedium
Reading time17 min
Views19K

Всем привет! Недавно я на практике применил одно интересное решение, которое давно хотел попробовать, и теперь готов рассказать, как своими руками такое можно сделать для любой другой аналогичной задачи. Речь пойдет о создании своей кастомизированной версии ChatGPT, которая отвечает на вопросы, учитывая большую базу знаний, которая по длине не ограничивается размером промта (то есть вы бы не смогли просто добавить всю информацию перед каждым вопросом к ChatGPT). Для этого будем использовать контекстные эмбеддинги от OpenAI (для действительно качественного поиска релеватных вопросов из базы знаний) и сам СhatGPT API (для оборачивания ответов в натуральный человеческие ответы). При этом, также предполагается, что ассистент может отвечать не только на прямо указанные в Q&A вопросы, но и на такие вопросы, на которые смог бы отвечать человек, который ознакомился с Q&A. Кому интересно научиться делать простых ботов, отвечающих по большой базе знаний, добро пожаловать под кат.

Под кат

Python декораторы на максималках. Универсальный рецепт по написанию и аннотированию от мала до велика

Level of difficultyMedium
Reading time13 min
Views60K

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

Так давайте разбираться!

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

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

Давайте разбираться

Создание анимированных графиков с помощью Matlab

Level of difficultyEasy
Reading time6 min
Views7.6K

Анимированные графики помогают представить информацию более красиво и наглядно. Matlab позволяет их создавать с помощью всего пары функций. Как это сделать, читайте в данной статье.

Читать далее

Нейронные сети врываются в медицину

Level of difficultyMedium
Reading time12 min
Views12K

Доброго времени суток habr, на связи Николай Иванов, студент-магистр 1 курса Сколтеха факультета Data Science. С почином, так как это моя первая, и, надеюсь, не последняя статья на habr. С того момента как я познакомился с областью Deep Learning прошло уже около двух лет. С самого начала мне была интересна область обработки естественного языка (Natural Laguage Processing, NLP), о некоторых задачах которой и результатах я попробую рассказать в этой статье. В мае 2023 года начался мой путь в Sber AI Lab в замечательном центре медицины. Мой рассказ будет в какой-то степени сравнением того что было сделано до меня и того, какие идеи мы развили, что получилось, а что не получилось. Хочу сослаться на замечательную статью Даниила (https://habr.com/ru/articles/711700/), который использовал модель RuBioBERTa для задач из MedBench. Я же буду использовать другое решение, посмотрим, чем оно лучше, чем хуже и вообще насколько подходит для NLP-задач в медицине.


Немного оффтопа

Я очень рад, что каждый месяц появляются новые, более сложные и интересные архитектуры, реализующие смелые идеи, которые двигают вперёд области Deep Learning, NLP и Computer Vision (CV), но сколько из них реально используются в прикладных задачах? Вот оценка внедрения AI решений по странам (на основании отчёта IBM Global AI Adoption Index 2022):

Читать далее

От «из мха и шишек» до продукта | Постройка электросерфа и гидрофойла

Level of difficultyEasy
Reading time6 min
Views7.2K
В прошлых двух статьях были изложены общие моменты и негативный опыт по постройке двухтактного ДВС. Эта статья — более положительный пример, но боли и страданий в ней не меньше.

Поехали.

1. Эмпирическое проектирование.


1.1 Серф


Параллельно с постройкой 2Т ДВС мотора, мы начали делать электричку.

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

image
К- качество.
Читать дальше →

Аннотирование повреждений автомобилей для обучения искусственного интеллекта

Level of difficultyEasy
Reading time6 min
Views2K

Благодаря доступности систем компьютерного зрения на основе ИИ, способных автоматизировать большую часть процессов, в последние годы активно развивается сфера визуального контроля, связанного с технологиями страхования. При помощи мобильных приложений или веб-сайтов пользователи могут выполнять удалённую оценку повреждений и мгновенно получать расчёт цены, что упрощает процесс и сильно снижает стресс пользователей. Эта сфера уже охватила не только оценку повреждений транспорта, но и другие виды собственности, например, недвижимость.

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

Прибытие тензорного поезда. Как достижения мультилинейной алгебры помогают преодолеть проклятие размерности

Level of difficultyHard
Reading time6 min
Views9.6K

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

Понятие «проклятие размерности» появилось в середине прошлого века в пионерской работе Ричарда Беллмана, посвященной методам решения сложных задач путём разбиения их на более простые подзадачи. Сегодня оно понимается в более общем смысле, а именно как экспоненциальный — O(nd) — рост количества необходимых данных и, как следствие, количества памяти, необходимой для их хранения, с ростом размерности пространства d. Когда задачу можно свести к работе с многомерными массивами в общем случае комплексных чисел, удобно говорить о d-мерных тензорах и использовать достижения мультилинейной алгебры. Хорошая новость заключается в том, что там существует такая процедура, как тензорное разложение, которое в ряде случаев может помочь преодолеть проклятие размерности.

Читать далее

10 приёмов, чтобы получить быструю и качественную картинку в Midjourney

Level of difficultyEasy
Reading time7 min
Views23K

Меня зовут Андрей Цыган - я предприниматель, управленец и как энтузиаст исследую возможности нейросетей. Я никогда не работал ни с графическими редакторами, ни даже с PhotoShop - но постоянно нуждался в таких услугах. Качественные изображения мне были нужны для презентаций, маркетинговых материалов, соц. сетей.

Из всех сетей генерации изображений мне больше всего понравился Midjourney - оптимальное качество на потраченное время. Я понимаю в самом Midjourney (не говоря про Stabble Diffusion) можно углубиться в детали - но я не дизайнер или AI artist, мои задачи прикладные.

У меня уже сгенерированно более 4000 изображений и я выделил 10 методов, которые позволяют достаточно быстро и качественно получить нужный мне контент.  Они могут использоваться как обложка к посту или лонгриду, или я чаще использую в презентации.
Надеюсь, эта статья сэкономит вам несколько часов!

Читать далее

Определение местоположения в Беспилотных автомобилиях (localization)

Level of difficultyEasy
Reading time10 min
Views3.7K

Всем привет, меня зовут Максим Гусев!

Я руководитель проекта в компании по разработке автономного транспорта, а так же студент ATU, Ирландия по Автономным ТС (магистерская степень). Хочу рассказать Вам, как роботы, беспилотники и любой автономный транспорт определяет где именно он находится в текущий момент времени.

Что внутри статьи?

Раздел I - введение и что сейчас происходит на рынке?

Раздел II - локализации на основе GNSS/GPS + Dead Reckoning.

Раздел III - локализация на основе среды (HD карты и 3 основных паттерна связанных с компьютерным зрением)

Разделе IV - современные концепции локализации.

Раздел V - итоги текущего состояния локализации.

Читать далее

Семантическая сегментация на основе архитектуры U-Net и определение расстояния между объектами

Level of difficultyMedium
Reading time7 min
Views20K

Всем привет!

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

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

Модель на базе U-Net архитектуры сегментирует различные объекты (кот, стул, стол, тарелка с котлетами итд) и при сближении двух объектов сегментации (кот - тарелка) модель сигнализирует об этом с помощью телеграмм бота.

Отлично, задача поставлена, теперь реализация!

Читать далее

Квантовые компьютеры: когда же, наконец?

Reading time7 min
Views4.9K

Какие инсайты выносит заинтересованный слушатель из выступления визионера? Ключ к решению проблем? Четкое объяснение текущей ситуации? Возможные перспективы? Главное, чему посвящено практически каждое выступление непререкаемого авторитета, – предсказание. В самое ближайшее время, вот-вот, буквально через пару лет, мир изменится до неузнаваемости. Как правило, благодаря “разрушительной силе технологий”, которая положит конец смыслу человеческой жизни. Реже - по другим причинам. 

Проходит несколько лет, и, вспоминая о лекции очередной знаменитости, мы вдруг обнаруживаем ошибки, или что мир не изменился. Нет, появилось много нового, но сам мир как был несовершенным, так и остался. Для успеха по-прежнему требуются знания, а не только навыки гугления. Для личного счастья – любовь. А универсального решения проблем по-прежнему не существует. И не предвидится. А потом мы снова слушаем очередного гуру и снова узнаем, что вот-вот все поменяется.

Читать далее

Гайд по беспроводной связи в кружке робототехники

Level of difficultyEasy
Reading time10 min
Views14K

По моим наблюдением, создание управляемых роботов – самая популярная тема во время занятий по освоению Arduino. Ученикам нравится мастерить не просто автоматику – но контролируемые ими напрямую устройства.

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

Читать далее

Обзор бесплатных ботов ChatGPT в телеграме

Reading time5 min
Views261K


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

Создание прозрачного окна для рисования поверх всех приложений

Level of difficultyMedium
Reading time5 min
Views10K

Шаг 1: Введение

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

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

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

Шаг 2: Установка необходимых библиотек

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

Для установки библиотек можно воспользоваться командой pip:

Читать далее

Как переехать в Европу стартаперам и IT-специалистам

Level of difficultyEasy
Reading time8 min
Views12K

Как переехать в Европу без Digital Nomad?

Краткий обзор на 34 визовые программы в Европе для айти-специалистов и предпринимателей, которые ведут к ПМЖ и гражданству.

Читать далее

Arduino AY player с экраном и кнопками

Level of difficultyMedium
Reading time15 min
Views12K

Конструируем музыкальный плеер PSG-файлов на чипе AY-3-8910 с OLED-экраном, кнопками управления и дополнительной памятью, а также подключаем выходные и входные сдвиговые регистры и прочие устройства с интерфейсами I2C и SPI к Arduino.

Читать далее

Поиск объектов на изображении. Часть 2

Level of difficultyHard
Reading time3 min
Views6.5K

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

Шаг 7: Определение регионов интереса

Один из основных факторов, влияющих на работу нашего алгоритма, - это определение регионов интереса на изображении. Мы выделили три области на столе с картами: боковую, среднюю и нижнюю области.

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

Шаг 8: Оптимизация

Мы улучшили метод process_screen класса ScreenCapture, добавив этот функционал. Обновленный код метода выглядит следующим образом:

Читать далее

Information

Rating
Does not participate
Registered
Activity