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

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

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

Автоматическая оптимизация промпта под конкретную задачу с библиотекой DSPy

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

Цель — научиться создавать модульные (multi-stage) системы на базе LLM, а затем оптимизировать промпты (инструкции и примеры) таким образом, чтобы итоговая метрика качества (accuracy, retrieval score и т.п.) превышала вариант с ручным подбором текста промпта.

Читать далее

Как я объединил перевод и суммаризацию текстов, и что из этого вышло

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

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

Однако при ближайшем рассмотрении эти задачи имеют много общего...

Читать далее

Основы и продвинутые техники RAG

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

В этом посте мы поговорим подробно про RAG на каждом его этапе, его модификации и его перспективные направления развития на момент написания статьи.

Читать далее

Управление проектами: дайджест публикаций #23

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

Неработающий Гантт, архитектура ПО на пальцах, вопросы к собеседованиям, эфемерные группы, снижение Bus Factor и всё интересное, что писали на этой неделе про управление проектами. Мы прочитали все публикации и выбрали для вас самые крутые и полезные. Читайте, сохраняйте и применяйте!

Читать далее

Разработка real-time приложений с Python и WebSocket

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

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

Читать далее

Связи между таблицами базы данных

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

1. Введение


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

1.1. Для кого эта статья?


Эта статья будет полезна тем, кто хочет разобраться со связями между таблицами базы данных. В ней я постарался рассказать на понятном языке, что это такое. Для лучшего понимания темы, я чередую теоретический материал с практическими примерами, представленными в виде диаграммы и запроса, создающего нужные нам таблицы. Я использую СУБД Microsoft SQL Server и запросы пишу на T-SQL. Написанный мною код должен работать и на других СУБД, поскольку запросы являются универсальными и не используют специфических конструкций языка T-SQL.

1.2. Как вы можете применить эти знания?


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

2. Благодарности


Учтены были советы и критика авторов jobgemws, unfilled, firnind, Hamaruba.
Спасибо!

3.1. Как организовываются связи?


Связи создаются с помощью внешних ключей (foreign key).
Внешний ключ — это атрибут или набор атрибутов, которые ссылаются на primary key или unique другой таблицы. Другими словами, это что-то вроде указателя на строку другой таблицы.

3.2. Виды связей


Связи делятся на:

  1. Многие ко многим.
  2. Один ко многим.
    • с обязательной связью;
    • с необязательной связью;
  3. Один к одному.
    • с обязательной связью;
    • с необязательной связью;

Рассмотрим подробно каждый из них.
Читать дальше →

Сгенерированный ИИ код сделает вас плохим программистом

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

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

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

Полное руководство по обработке ошибок в Python

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

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

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

Вы готовы узнать секреты обработки ошибок в Python? Тогда поехали!
Читать дальше →

Пацанский английский. Ленивый способ наконец выучить английский язык: без курсов, без зубрежки, бесплатно

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

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

Наконец случилось чудо. В одну из очередных попыток я нащупал способ, который позволил продолжать развиваться, делать успехи, осознавать их и разжигать мой огонь всё сильнее и сильнее. Сегодня мне сложно представить день, проведенный без английского языка. И мне не хочется говорить без “изучения”, поскольку не сказал бы, что я именно учу. Скорее — постепенно “прошиваюсь” английским, как это обычно происходит с новорожденным детьми, которые постепенно начинают говорить, слушая и наблюдая за своими родителями. В настоящее время мой словарный запас не такой большой: 9 — 12 тысяч слов (зависит от теста). Я свободно смотрю видео на Ютубе разнообразной тематики (видеоуроки, спорт, фитнес, музыка, путешествия, кулинария, обзоры и т.д.), читаю документацию, компьютерную и популярную литературу, публицистику.

Читать далее

Скачать русский Windows 11 24H2 IoT Enterprise LTSC или сделать образ с последними обновлениями своими руками

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

На днях Microsoft официально выпустили LTSC версию Windows 11 24H2. В доступные образы встроено обновление KB5043080, версия 26100.1742. Как стало модно в последнее время Россию проигнорировали, LTSC образы доступны на многих языках (ссылки даю не на сайт Microsoft, так как из России загрузки там заблокированы), но русского среди них нет. Хотя синхронно выпущенный Windows Server 2025 той же сборки 26100.1742 имеет поддержку большего количества языков, в том числе и русскую версию (для русской доступно лишь Ознакомительное издание, однако, в серверной ОС из ознакомительного в полное можно перейти просто сменив серийный номер, в том числе на KMS ключ, доступный с сайта Microsoft). Собственно встаёт вопрос добавления русского (или любого другого) языка как второго (или третьего) в установочный образ Windows, чтобы сама установка и интерфейс изначально были доступны на русском.

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

SPOILER - образа будет два :)

Как сделать или где скачать русский образ

Семантический поиск (homemade)

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

Основой семантического поиска может являться ML задача Sentence Similarity, а если быть еще конкретнее, то это Semantic Textual Similarity. Модели, обученные под эту задачу, способны оценивать насколько близки предложения по своему смыслу. Всё, что нам дальше остается, так это засунуть модель в некоторую поисковую систему...

Но тут давайте по порядку

1000 мозгов — новая книга о многогранном человеческом интеллекте

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


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


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

Совсем недавно появилась поистине революционная теория работы мозга. И придумана она, внимание, бывшим разработчиком популярных КПК, основателем Palm Computing. Неожиданно, верно?  И для того чтобы донести свою новейшую теорию до широкой аудитории, Джефф Хокинс написал книгу. Научно-популярную. И сегодня мы ее разберем по кусочкам! 
Читать дальше →

Секреты логических операторов в Python

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

Логические операции играют важную роль в программировании. Они используются для создания условных конструкций и составления сложных алгоритмов. В Python для проведения логических операций используются логические операторы:

not — логическое отрицание

and — логическое умножение

or — логическое сложение

В этой статье мы поговорим о неочевидных деталях и скрытых особенностях работы логических операторов в Python.

Читать далее

Как сделать голосовой интерфейс к LLM

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

В конце февраля на Бали прошел фестиваль Lampu, организованный по принципам знаменитого Burning Man. По его традиции, участники самостоятельно создают инсталляции и арт-объекты.

Мы с друзьями из кемпа 19:19, вдохновившись идеей католических исповедален, придумали сделать свой AI Confession Room, где любой желающий мог бы поговорить с искусственным интеллектом.

Читать далее

Как устроен RAPTOR — новый подход для RAG, который понимает контекст сразу всей книги

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

Помните, как на школьных уроках литературы иногда надо было развернуто ответить на вопрос о сюжетной линии героя или каком-то событии книги? Например, объяснить мотивацию и развитие Евгения Онегина. Чтобы ответить на этот вопрос на пятёрку, мало пролистать краткий пересказ романа — придётся прочитать его весь. 

Примерно для этого в 2020 году предложили RAG (retrieval-augmented generation) методы. Есть и другая мотивация для RAG — после обучения LLM на большой базе данных возникает вопрос, что делать с обновлением этой самой базы. Дообучение — не беспроигрышный вариант, так как это не всегда удобно для гигантских объемов данных. В базовом подходе RAG база знаний нарезается на небольшие куски текста, chunks, в 100-1000 слов, которые в виде эмбеддингов хранятся, как правило, в векторной БД, пока не понадобятся. Запросы пользователя дополняются найденными чанками в качестве контекста и выглядят для модели как один большой запрос. 

Так вот, большинство существующих RAG методов способны переварить только небольшое количество достаточно коротких и последовательных чанков. Это ограничивает возможность оперировать крупномасштабным контекстом. Возвращаясь к уроку литературы, если перед тем, как выдать ответ, прочитать несколько последовательных строф романа, этого явно будет недостаточно.  Недавно вышедшая Стэнфордская статья RAPTOR: Recursive Abstractive Processing for Tree-organized Retrieval призвана решить эту проблему. Основная идея заключается в том, чтобы обобщать отдельные куски большого материала, затем обобщать обобщения и так дальше.

Читать далее

Раскрывая секреты LLM: руководство по основным понятиям больших языковых моделей без хайпа

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

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

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

Читать далее

17 продвинутых RAG-техник: как превратить прототип LLM-приложения в готовое решение

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

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

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

Как метко подметил Мэтт Тёрк: если в 2023 году мы боялись, что GenAI нас погубит, то в 2024-м мечтаем хоть как-то приручить его и запустить в "мелкосерийное производство".

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

Пристегните ремни, мы отправляемся в увлекательное путешествие по миру AGI! Вместе мы:

Поймем, как система отличает ценную информацию от информационного шума;

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

Выясним, можно ли строить цепочки из нескольких LLM;

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

Приятного прочтения(:

Читать далее

Эволюция сервиса классификации

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

Привет, Хабр. Меня зовут Аделина Ямалтдинова, я разработчик технологического сервиса «Классификатор» — одной из частей платформы «Преферентум».

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

В статье я расскажу об устройстве нашего «Классификатора» и о том, как мы его улучшаем.

Читать далее

Идея для языка программирования искусственного интеллекта. Свойство-ориентированный подход

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

В данной статье предлагается новый свойство-ориентированный подход к организации объектной модели в языках программирования. Основная идея - вынести свойство из объекта и сделать понятия свойства и объекта равноправными. Это позволит получить крайнюю гибкость и универсальность описания предметных областей, приблизив это описание к восприятию объектов и свойств человеком.

Свободу свойствам от объектов!

Читать далее

AI-программирование: как я решил задачу, не написав ни строчки кода

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

Вы что-нибудь слышали об AI-кодерах? Это такие программисты, которые не умеют писать код. Нас ими все пугают, что вот они придут и отнимут нашу работу. Насколько эти опасения оправданы? А вы знаете, что они уже среди нас?

Им пока не просто, им все еще приходится проходить собеседования, притворяясь обычными программистами и заучивая принципы SOLID. Никто из кандидатов в здравом уме не скажет работодателю: "Я не умею писать код, за меня его пишет ChatGPT", и работодатели пока тоже не понимают, что с ними делать, смогут ли они создавать хорошие продукты, они не понимают, как оценивать их работу, сколько они стоят, как их собеседовать.

Я пока тоже отношусь к скептикам, но поскольку я считаю себя человеком с ярко выраженным критическим мышлением, я задался вопросом: а что если?

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

Читать далееa

Информация

В рейтинге
4 370-й
Зарегистрирован
Активность