Как стать автором
Обновить
2
0

Пользователь

Отправить сообщение

Как я обучил модель, которая понимает русский лучше GPT 3.5 Turbo

Время на прочтение3 мин
Количество просмотров6.2K

В этой статье я расскажу, как я смог обучить модель, которая превзошла GPT 3.5 Turbo на русскоязычной части MT-Bench. Также я рассмотрю новую конфигурацию для обучения на двух графических процессорах параллельно с помощью accelerate и deepspeed.

Особенный интерес представляет мой датасет для обучения. Он получен из сабсета мультиязычных промтов набора lightblue/tagengo-gpt4 на русском, английском и китайском, всего 10 тысяч примеров, сгенерированных с помощью GPT-4o. Это в 8 раз меньше, чем исходный набор Tagengo, но обученная на последнем Suzume, как показали бенчмарки, лишь очень незначительно превосходит мою модель на ru_mt_bench, а на англоязычном бенче и вовсе уступает ей. Это значит, что я в разы сэкономил на GPU за счет более высокого качества данных, полученных с помощью GPT-4o. 

Я использовал скрипт для получения ответов по заданным промптам. Для генерации русскоязычной выборки я изменил часть скрипта, чтобы выбрать все промпты на русском из Tagengo (8K примеров), так как основной фокус при обучении модели был на русском языке. 

В итоге я получил датасет ruslandev/tagengo-rus-gpt-4o и приступил к обучению.

Для этого я создал виртуальную машину с NVIDIA H100, используя сервис immers.cloud. Для достижения наилучших результатов по instruction-following (что проверяется на MT-Bench) я взял в качестве исходной модели meta-llama/Meta-Llama-3-8B-Instruct. Именно на ней обучена модель Suzume, у которой высокая оценка на MT Bench. Предыдущие эксперименты показали, что базовая Llama-3 8B,  а особенно ее четырехбитная версия для QLoRA  unsloth/llama-3-8b-bnb-4bit - значительно отстает по оценкам бенчмарка.

Читать далее
Всего голосов 25: ↑24 и ↓1+32
Комментарии17

Улучшение зрения роботов: саккады

Время на прочтение15 мин
Количество просмотров3.5K


Современный мир пока сложно назвать эпохой робототехники. Да, есть много роботизированных устройств, помогающих как в быту, так и на производстве, множество разработок и идей, но для полноценной реализации роботов в стиле Айзека Азимова предстоит преодолеть немало сложностей. Одной из таких является зрение. Современные камеры, хоть и обладают невероятными возможностями, все же несравнимы с человеческим глазом. Наши глаза совершают мелкие непроизвольные движения (саккады), дабы поддерживать четкое и стабильное изображение с течением времени. Ученые из Мэрилендского университета (Колледж-Парк, США) разработали камеры, имитирующие саккады, что разительным образом улучшает их способность отслеживать передвигаемые объекты. Из чего сделаны новые камеры, как именно они работают, и насколько они эффективны? Ответы на эти вопросы мы найдем в докладе ученых.
Читать дальше →
Всего голосов 28: ↑28 и ↓0+37
Комментарии4

Он победил LLM RAG: реализуем BM25+ с самых азов

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров13K

Привет, меня зовут Борис. Я автор телеграм канала Борис опять. Периодически мне на глаза попадается что-то интересное и я глубоко в этом закапываюсь. В данном случае это алгоритм поиска BM25+, который победил продвинутые методы векторного поиска на LLM.

Разберемся, что это за зверь и почему он так хорошо работает. В этой статье мы реализуем его на Python с нуля. Начнем с самого простого поиска, перейдем к TF-IDF, а затем выведем из него BM25+.

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

Код доступен в Google Collab.

Читать далее
Всего голосов 33: ↑32 и ↓1+39
Комментарии13

Jetson nano 2 GB. Есть жизнь для AI, или в гроб его?

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров3.4K

128 CUDA ядер, 2GB LPDDR3 это всё Nvidia jetson nano 2gb. Реально ли на таком железе запустить AI(конкретно YOLOv8), как это питать и охлаждать, и это хоть кому-то нужно?

Ну и как?
Всего голосов 9: ↑9 и ↓0+12
Комментарии11

OpenAI релизнула GPT-4o и мы её уже внедрили

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров44K

13 мая 2024 года запомнится как важная веха в мире искусственного интеллекта. OpenAI провела долгожданное обновление, представив GPT-4o и множество улучшений для ChatGPT. Эти новинки имеют все шансы изменить то, как мы взаимодействуем с ИИ в повседневной жизни. Мы уже успели внедрить новую модель и протестировали как она работает.

Читать далее
Всего голосов 16: ↑6 и ↓10+1
Комментарии40

Кратко про протоколы взаимодействия в микроконтроллерах: SPI, IDC, UART, CAN

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров15K

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

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

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

В этой статье рассмотрим такие протоколы взаимодействия как SPI, IDC, UART, CAN

Читать далее
Всего голосов 30: ↑16 и ↓14+8
Комментарии82

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

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров9.6K

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

Читать далее
Всего голосов 11: ↑10 и ↓1+11
Комментарии31

Как составить эффективное резюме через нейросети

Время на прочтение13 мин
Количество просмотров16K

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

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

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

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

Читать далее
Всего голосов 14: ↑12 и ↓2+13
Комментарии8

Как приручить нейросеть: практический опыт

Время на прочтение5 мин
Количество просмотров21K

Итак, в прошлой статье я уже немного рассказывал о том, что с LLM можно работать и даже построить определенный RAG. Как и обещал, перейдем к практике! :)

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

Читать далее
Всего голосов 26: ↑26 и ↓0+26
Комментарии16

Kubernetes: шпаргалка для собеседования

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров39K
Всем привет! Меня зовут Олег, я работаю исполнительным директором по разработке в Газпромбанке. На разных этапах карьеры я участвовал во многих собеседованиях, а в настоящее время сам собеседую кандидатов на должность инженеров DevOps и системных администраторов в Газпромбанке, вследствие чего у меня сформировалось некоторое представление о вопросах, которые могут быть заданы соискателям. И сейчас я хочу остановиться на разделе вопросов про Kubernetes.

image

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

Вопросы по Kubernetes достаточно часты на собеседованиях на инженерные вакансии, связанные с администрированием и эксплуатацией. Они могут варьироваться от базовых, рассчитанных на механическую проверку теоретических знаний («объясните, что такое service») до более сложных и комплексных, требующих глубинного понимания внутренних принципов Kubernetes и работы (каким образом опубликовать приложение, развёрнутое в Kubernetes). Давайте пойдём от базы в направлении возрастания сложности.
Читать дальше →
Всего голосов 19: ↑18 и ↓1+20
Комментарии12

Мифический человеко-DevOps

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров8.7K

Привет! Меня зовут Эмин, я тех-лид платформенных команд в Профи. В этой статье поделюсь мнением о том, что такое хороший DevOps и какими качествами должен обладать DevOps-инженер. 

Читать далее
Всего голосов 12: ↑8 и ↓4+6
Комментарии7

Синхронизация локальных изменений с docker/kubernetes контейнером

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров8.8K

Салют!

Хочу рассказать вам про такие замечательные инструменты как docker compose(быть точнее про новую возможность watch), skaffold, tilt.

Рассказать для чего они полезны, как пользоваться и с примерами.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии6

«Hello world!» или путь к становлению специалистом. База JavaScript

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров8.4K

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

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

В это статье я начну с базы JavaScript - переменных и типах данных.

Читать далее
Всего голосов 16: ↑7 и ↓9-2
Комментарии28

Графовые нейронные сети GNN в самообучающемся искусственном интеллекте

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров6.3K

30 мая 2023 года была на https://arxiv.org/abs/2305.19801 была опубликована статья Predicting protein stability changes under multiple amino acid substitutions using equivariant graph neural networks. Но мне GNN интересны по другой причине. В 2016 году меня посетила мысль о создании самообучающегося искусственного интеллекта. Первые черновики описывающие его архитектуру начали появляться в 2018 году. Тогда я делал ставку на GAN и генетические алгоритмы. Архитектура единицы "мозга" тогда выглядела так

Читать далее
Всего голосов 8: ↑4 и ↓4+3
Комментарии12

Работа с хранилищами в Kubernetes

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров20K

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

Одним из замечательных свойств контейнеров k8s является их неизменяемость, то есть, если мы закрываем контейнер, то вся информация, хранящаяся в нем теряется. Это очень удобно для всевозможных тестовых и учебных сред, решений типа “песочница” и аналогичных. Суть сводится к тому, что что бы мы не делали с контейнером, после его закрытия все будет уничтожено. Мы можем запустить подозрительный файл в контейнере не опасаясь за последствия (если конечно у нас правильно настроено монтирование) и через пару минут уничтожить этот контейнер, также без последствий.

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

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии1

Как я создавал эргономичное кресло. Часть 2. Подголовник

Время на прочтение9 мин
Количество просмотров16K

Привет, Хабр! Продолжаю рассказ о том, как я создавал кресло EasyWorkStation, решая собственные проблемы болей и дискомфорта при работе за компьютером. Описанный путь отнюдь не идеален и не лишен "детских" ошибок. Это не призыв в подобных ситуациях действовать подобным образом. Просто делюсь, как действовал я, исходя из своего опыта, образа жизни, привычек и потребностей.

Читать далее
Всего голосов 23: ↑23 и ↓0+23
Комментарии38

Пишем оператор Kubernetes с нуля

Время на прочтение7 мин
Количество просмотров23K

image
Фото: Jukan Tateisi | Unsplash


В этой статье мы подробно рассмотрим, как создать собственный оператор Kubernetes с нуля. Операторы — это такие программные расширения, которые используют кастомные ресурсы (kind), чтобы управлять приложениями. Подробности читайте в официальной документации.


Возьмем самый простой пример — приложение HelloApp. Чтобы задеплоить HelloApp, создадим ресурс Kubernetes.

Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии4

Перцептрон на numpy

Время на прочтение3 мин
Количество просмотров15K

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

Читать далее
Всего голосов 14: ↑12 и ↓2+15
Комментарии22

Создание 3D-сетки из изображения с помощью Python

Время на прочтение7 мин
Количество просмотров12K


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

Читать дальше →
Всего голосов 11: ↑9 и ↓2+9
Комментарии6

IoC, DI, IoC-контейнер — Просто о простом

Время на прочтение4 мин
Количество просмотров454K
Думаю сейчас слова IoC, DI, IoC-контейнер, как минимум у многих на слуху. Одни этим активно пользуются, другие пытаются понять, что же это за модные веяния.

На данный момент, на эту тему уже довольно сказано, написано, в том числе и на хабре, но как раз из-за обилия информации сложно найти действительно полезный контент. Кроме того, данные понятия часто смешивают и/или путают. Проанализировав множества материалов я решил изложить вам свое видение предмета.
Читать дальше →
Всего голосов 41: ↑31 и ↓10+21
Комментарии28

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность