TGViewer
Channel Public Channel
Плюшевый Питон

Плюшевый Питон

@plush_python

Уютный техноблог про Python, саморазвитие и искусственный интеллект. От техлида LLM из команды Alice AI (ex GigaChat, ex MTS AI) с 12-летним опытом в NLP.

Рекламу не размещаю. По всем остальным вопросам пишите на @AlexeyMalafeev
Subscribers
681
Photos
33
Videos
1
Links
46

Showing posts older than #109 · Back to latest

Older Posts 13 shown
Post #108 710
Раз уж сам делал разбор, то не грех и тут зарепостить 🥰
Post #106 1.63K
Свежий пост от Anthropic про интересную технику контекстуализации чанков для улучшения RAG.

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

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

Выручка компании выросла на 3% относительно предыдущего квартала.
->
Выдержка из отчета за второй квартал 2023 года компании "Иванов и партнёры". Выручка в предыдущем квартале составила 314 млн долларов. Выручка компании выросла на 3% относительно предыдущего квартала.


Интуитивно понятная идея, но... А как это сделать? Не вручную же? 🥰 Разумеется, нет. Антропики использовали для написания контекстов свою же недорогую модель Claude 3 Haiku с примерно таким промптом (мой вольный перевод):

<документ>
{{подставляем сюда ПОЛНЫЙ текст документа}}
</документ>
Вот фрагмент, для которого нам нужен краткий контекст из документа:
<фрагмент>
{{подставляем сюда текст фрагмента}}
</фрагмент>
Дай краткий контекст для этого фрагмента на основе всего документа, так чтобы потом можно было легко понять, про что этот фрагмент и как он соотносится с документом в целом. В ответе напиши только краткий контекст, без повторения фрагмента.


[Я, кстати, немного потестировал ровно этот промпт с локальными Mistral-Small-Instruct-2409 и Gemma2-9b на русскоязычных текстах, и вроде бы даже работает]

Вы скажете, что слишком дорого каждый раз заставлять модель читать весь документ - ведь у нас для рерайтинга каждого чанка полный текст документа подставляется в промпт. Но у Антропиков есть кеширование документов, поэтому им не дорого. 😎

Как можно было ожидать - не просто же так Антропики решили поведать миру о contextual retrieval - метод дал ощутимый прирост к качеству поиска релевантных фрагментов для ответа на запросы. В каком-то смысле, мы просто обмениваем большое количество компьюта (в данном случае - переписывание чанков моделью, пусть и относительно лёгкой) на улучшение данных и, как следствие, рост метрик. Если база знаний не слишком часто обновляется, то наверное, игра стоит свеч. Но, как вы понимаете, от кейса к кейсу эффективность может разниться, надо брать и экспериментировать. Тем более, что в блогпосте особо не пишут о влиянии этой техники на конечную задачу - собственно ответы на пользовательские запросы. 💃

P.S. Ещё авторы говорят, что техника хорошо сочетается с гибридным индексом (эмбеддинги + BM25), реранкингом и подачей аж топ-20 чанков в финальный промпт.
Post #105 1.23K

Forwarded from premium academic nlp agi research lab 💅 at MTS AI

Напоминаем, что меньше чем через неделю состоится наш первый AI Sync, а мы готовы поделиться подробностями про темы предстоящих докладов. Определиться было не просто, на ACL много всего интересного, но мы справились!

🌂 Для начала Гриша Аршинов расскажет про новые веяния в текстовой классификации. Да, на дворе 2024й год, модели с 3-4b параметров считаются маленькими, но такая классическая задача как текстовая классификация остается актуальной и в индустрии, и в ресерче.

🌂 Маша Никифорова поделится инсайтами про прогресс в понимании LLM - что нашли в скрытых представлениях трансформеров, английский след в размышлениях LLama, какие данные подавать модели и в каком порядке, чтобы получить SoTA решение.

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

Напоминаем, если хотите послушать нас в онлайне, то подписывайтесь на канал и ожидайте ссылку на трансляцию :) Информация для тех, кто хочет прийти к нам в офис:

Дата: 19 сентября
Время: 19:00
Место: Офис MTS AI, м. Курская
Обязательная регистрация на оффлайн вот тут

До встречи!
mts-ai-2024.timepad.ru AI Sync митап о NLP от MTS AI / События на TimePad.ru Приглашаем NLP инженеров на AI Sync от MTS AI! Встреча будет посвящена Natural Language Processing.
Post #104 892
Репощу с разрешения организаторов. Я раньше работал в МТС ИИ в одной команде со всеми троими спикерами, они очень классные) Наверняка будет много полезного и интересного. Ребята говорят, что даже вроде бы остались ещё офлайн-места. Но если вы не в Москве, присоединяйтесь хотя бы онлайн!
Post #103 1.2K
Давно не было постов тут. У меня совсем не выходит что-то выкладывать на более-менее регулярной основе. Да и телеграм-каналов сейчас очень много, так что думается иногда: а что нового я могу добавить к тому, что уже есть? 😨 Остаётся постить когда получается и как получается, в надежде на то, что кто-то из вас зачем-то будет это читать)

Сегодня вот поделюсь некоторыми новостями из своей жизни. На этой неделе я вышел в Яндекс ведущим разработчиком в команду алайнмента YandexGPT. Она называется очень поэтично: "группа поиска смысла". Мне нравится. ❤️

А весь август я не работал. Фактически, это был просто отпуск за свой счёт, так как с предыдущего места работы уволился 31 июля, а на новое место вышел 4 сентября. Ужасно давно не было возможности просто взять и отдохнуть целый месяц. Ух, здорово провёл это время! 👍

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

А у вас что нового?
Post #102 1.43K
LLM и словотворчество

Попробовал в телеграм-боте Ильи Гусева @saiga_igusev_bot дать нескольким моделям вот такую задачу:

Придумай 10 несуществующих смешных слов на русском языке, объясни их значение.

Пример: 
кринжулька - социально неуклюжая девушка, которая часто попадает в неловкие ситуации


Вот несколько вариантов, которые мне понравились:


(Sonnet-3.5)

Бубырка - маленькая, но очень надоедливая проблема в повседневной жизни.

Шмыгозавр - человек, который постоянно шмыгает носом в общественных местах.

Взбрындык - внезапный порыв сделать что-то необычное или экстравагантное.

(GPT-4o)

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

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

Зевокрыл - человек, который так широко зевает, что кажется, будто сейчас взлетит.

Бряклюк - человек, который постоянно что-то роняет и издает громкие звуки, особенно в тишине.

Трясокот - кот, который все время трясет головой, как будто слушает невидимую музыку.

(gemma2-9b-abliterated) 

Фуфлобокс -  необычайно вместительная сумка, в которой можно хранить абсолютно все, даже нереальную ерунду.

Броуновский мужик -  человек, который постоянно находится в движении, как частицы в броуновском движении, и никогда не сидит на месте.

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

Звончуга -  веселая и звонкая собака, которая постоянно лает и радует своим пением.


Забираю себе в лексикон)
Post #93 1.25K
Побывал на Yandex Generative Summit в Белграде, только вчера вернулся домой, а сегодня решил написать небольшой пост про этот опыт. Всё было классно организовано, осталась масса положительных впечатлений. Польза точно была - узнал много нового, познакомился с интересными людьми. На саммите были полезнейшие доклады, но много времени уделялось и нетворкингу...

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

(И нужно ли)

А как у вас с "живым" нетворкингом на всяких конференциях и митапах? Всё легко получается, чувствуете себя как рыба в воде, вас обступают и слушают, затаив дыхание? Или всё же бывают трудности?
Post #92 1.9K
Мой друг Никита Соболев, core-разработчик CPython, делает свой бесплатный курс по Питону. Уникальность курса в том, что берётся одна узкая тема и разбирается на трёх уровнях сложности: junior, middle, senior. Так что как начинающие, так и опытные Python-разработчики могут найти для себя что-то новое. Но для совсем новичков курс не подойдёт. Даже junior-часть многим покажется слишком сложной.

Почему этот курс заслуживает внимания? Его автор уже не первый год работает в опенсорсе фултайм. Кроме CPython, он является core-разработчиком mypy и typeshed, членом ассоциаций Python Code Quality Authority, Django Software Foundation и Python Software Foundation. То есть этот человек очень глубоко разбирается в Питоне и может рассказать о нюансах и менее очевидных аспектах языка, чего не найдёшь в обычных курсах и учебниках.

Курс находится в разработке, пока что выпущены два видео:
мета информация: https://www.youtube.com/watch?v=SVBPkrs9UFg
первый выпуск: https://www.youtube.com/watch?v=WBKf2Cw_9Pc

С интересом посмотрел, узнал много нового, жду продолжения.
YouTube Лучший курс по Python 0: Мета информация Лучший курс по питону: 0 Общая информация о курсе. Полезные ссылки: - Материалы: https://github.com/sobolevn/the-best-python-course - Мой GitHub: https://github.com/sobolevn - Мой телеграм канал: https://t.me/opensource_findings - Поддержать: https://bo…
Post #91 1.82K
Я иногда публикую полезные материалы для начинающих, вот и сейчас наткнулся на нечто хорошее, решил поделиться. Знаете 3Blue1Brown? Это популярный канал на YouTube, на котором бывают видео с объяснением сложных математических (и не только) штук простым языком, с крутыми визуализациями. 6 лет назад его автор начал делать курс по нейросетям. Он разобрал введение в глубокое обучение, градиентный спуск, обратное распространение ошибки. Потом новых видео в этом курсе долго не было, но вот буквально на днях автор запилил два новых: визуальное введение в GPT и про механизм внимания в трансформерах. Каждое чуть меньше, чем на полчаса, на английском. Рекомендую посмотреть, и не только новичкам! Качество материалов у 3Blue1Brown всегда было на высоте, а визуализации просто супер. Визуализации вообще очень полезны, т.к. помогают сформировать интуицию о сложных и абстрактных вещах.
Post #90 1.41K
Что я туда пишу?
* Инструкции самому себе про всякие сложные процессы (такое быстро забывается)
* Ключевые факты и неочевидные моменты про практики в команде и разрабатываемые продукты
* Явки, пароли Где что лежит и к кому обращаться по каким вопросам
* Что надо сделать и что уже сделано - для отчётов, если они есть, и просто для себя
* Свои идеи

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

Несколько типичных ситуаций, как это мне помогает:
1. Внезапно пишет руководитель и спрашивает, а что было сделано по проекту X.
2. Коллега спрашивает: "А ты не помнишь, где/кто/как у нас ..."
3. Да просто когда вернулся из отпуска и надо срочно вспоминать, чем ты вообще тут занимаешься. 😅

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

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

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

* Структура
* Простота и доступность
* Всё нужное в одном месте

Если дочитали до конца, спасибо за внимание! Делитесь опытом про свою адаптацию в комментариях. Желаю успехов в саморазвитии!
Post #89 1.07K
Адаптация на новой работе

Сталкивались с таким? Переходите в новую компанию и будто окунаетесь в пучину хаоса. Новые люди, задачи, инструменты, процессы... Как справиться с этим, кажется, неуправляемым потоком новой информации? Да, процесс адаптации может быть болезненным. Хочется быстрее начать приносить пользу команде, перестать чувствовать себя беспомощным. По разным оценкам коллег, на полноценную адаптацию к новой работе может уходить месяц, три месяца, а может быть, и полгода. Сейчас как раз в очередной раз прохожу через это, осваиваюсь на новом месте. Отсюда возникла идея поделиться наработанными лайфхаками про то, как упорядочить хаос адаптации и свести эту боль к минимуму. 👨‍💻

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

Суть подхода. Когда пытаешься удержать всё нужное в голове - это плохо работает. Не стоит недооценивать нашу способность забывать. Впрочем, многие это понимают и пытаются так или иначе упорядочить входящую информацию - через сохранёнки в браузере, сохранёнки в мессенджерах, списки дел, специальный софт (всякие Evernote, Zotero, Obsidian, Notion) и так далее. Лично мне на этапе адаптации (и вообще в работе) очень помогает вести структурированные заметки в едином документе в обратном хронологическом порядке. А теперь чуть подробнее.

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

Для меня баланс полезной и поддерживаемой структуры - это обычный советский гугл-док. Первым делом завожу такой на каждой новой работе. Он всегда открыт у меня в одной из вкладок браузера, легко доступен и с телефона. В этот документ с простым названием "Заметки" попадает релевантная для меня информация из множества источников: корпоративная база знаний, мессенджеры, обсуждения на встречах. Структура - множество разделов с понятными названиями, нумерованные списки с вложенностью. Удобно, если информация располагается в обратном хронологическом порядке - то есть более новое сверху.
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →