Data, Stories and Languages – Telegram
Data, Stories and Languages
2.96K subscribers
67 photos
8 videos
493 links
Канал о Data Science, изучении иностранных языков, книгах и жизни.
Контакт с автором https://news.1rj.ru/str/Erlemar
Download Telegram
​​Fast and dirty RAG on my own documents

Недавно я увидел вот такое обсуждение на ycombinator. Автор спросил какие сейчас существуют простые способы извлечения информации из своих документов. Естественно, все порекомендовали RAG (Retrieval-augmented generation) с помощью LlamaIndex.

Я веду ежедневный дневник довольно давно, в нём уже 1.6к записей. Где-то год назад я пытался натренировать небольшой трансформер на этих текстах с нуля для извлечения информации, но, что ожидаемо, он работал плохо: частично из-за небольшого объёма данных, частично из-за того, что тексты на нескольких языках.

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

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

Дальше можно было использовать сам LlamaIndex. Оказалось достаточно было использовать базовый пример из туториала:

 = SimpleDirectoryReader("notes").load_data()
index = VectorStoreIndex.from_documents(documents, model_name='gpt-4-1106-preview')
query_engine = index.as_query_engine()


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

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

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

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

#datascience #life
🔥101
С новым годом!

Желаю всем побольше приятных сюрпризов, поменьше неприятных, а также здоровья и удачи!
❤‍🔥5🔥31
​​Итоги года

В конце года принято подводить итоги. Для меня 2023 год выдался просто отличным. Среди прочего:
• много гулял по Дубаю и плавал в бассейне;
• активно изучал языки, ходил на встречи по языковому обмену для практики и просто общения с людьми из разных стран;
• прочитал много книг, в основном fantasy, но пробовал новые под-жанры и авторов. Смог даже прочитать несколько испанских книг;
• попробовал много чего нового, среди прочего - встретил новый год в пустыне с друзьями из разных стран;
• в плане работы/карьеры - много сидел на leetcode, запустил real-time анти-фрод модель в прод (и она успешно экономит хорошие суммы с января), сделал успешный проект по face recognition, участвовал в разработке рекомендательной системы (запущена в прод и неплохо работает, но надо убедить менеджеров в этом), прочитал несколько десятков статей и написал обзоры на них, поучаствовал в нескольких подкастах;

Были и фейлы - и в работе, и не только, буду извлекать из них уроки и стараться не повторять ошибки.

#life
🔥22
​​Помните о том, что в рекомендациях надо фильтровать айтемы юзера

Я подписан на рассылку Medium, и в сегодняшней рассылке увидел статью под своим же авторством. Я не жалуюсь, конечно - всегда приятно почитать умного человека 😁Но это хороший пример того, что в рекомендательных системах нужно ставить фильтры на айтемы юзера (и многое другое).

Кстати, если кто-то хочет освежить Llama 2 в памяти, вот ссылка на статью.

#datascience
😁11👍1🔥1
​​Когда компании в погоне за экономией забывают о своей целевой аудитории

В последние месяцы многие компании всё активнее используют Generative AI в своих продуктах, в рекламе и для других целей. Иногда это оправданно, иногда нет. Бывает люди это принимают с радостью, бывает с недовольством.

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

Есть компания Wacom - она продаёт планшеты для digital artists. И вот они умудрились опубликовать рекламу планшетов с рисунком, который был явно сгенерирован AI. Казалось бы для компании, производящей такой продукт, любой Generative AI - просто зло и конкурент. Прям интересно, что двигало маркетологами.

Художники успели выразить недовольство и компания быстренько убрала пост из твиттера, но в людской памяти это осталось.
😁5😱1
​​DocLLM: A layout-aware generative language model for multimodal document understanding

DocLLM - LLM от JPMorgan AI Research предназначенная для анализа визуальных документов (инвойсы, счета, договора), учитывающая как текстовую семантику, так и spatial layout. Отличительная особенность DocLLM - использование bounding box, вместо тяжелых encoders. Она сочетает текстовые и пространственные модальности через разложение attention на отдельные матрицы и обучается на задаче text segment infilling. После pre-training модель тюнится на большом наборе инструкций, охватывая четыре ключевые задачи анализа документов. DocLLM превосходит другие LLM на большинстве датасетов и хорошо работает на ранее не встречавшихся.

Paper link

Мои обзоры:
Personal blog
Medium
Linkedin Pulse

#paperreview
👍4🔥4
​​Meta научилась генерить аватары на основе голоса

Я тут увидел офигенные проект от Meta - генерят аватары людей включая мимику и жесты на основе голосового диалога между двумя людьми. Уверяют, что может генерить мимику и жесты для новых голосов (правда аватары будут старыми).

Выглядит весьма круто.
🔥3
​​Blending Is All You Need. Kaggle был прав

Недавно вышла новая статья про Mixtral с блендингом моделей, и я как раз увидел другую интересную статью на эту тему. Авторы из Cambridge показали, что блендинг нескольких "небольших" моделей может быть лучше огромных моделей. Чтобы проверить, что не ошибились - даже A/B тесты провели.
Берут несколько моделей, на каждом шаге генерации они выбирают рандомную модель, и она генерит ответ на основе предыдущего диалога, в котором участвовали все модели - и так получается значительно лучше.

Статья

#datascience
🔥6👍3❤‍🔥1
​​Перевод с технического языка на полу-технический

На ycombinator сейчас идёт обсуждение ChatGPT for Teams, позабавило как в комментах один человек рассказывает, что он локально запустил mixtral-8x7 и ему он нравится значительно больше, чем chatgpt-4.5. Но пост так усыпан терминами, что другой добрый человек расшифровал его. А третий использовал chatgpt, чтобы переписать первый пост более понятно для обывателя. Объяснения получились значительно длиннее оригинала 😁

#datascience
👍5😁3
​​Очередная волна сокращений в IT

Держитесь все ❤️
5🫡4
​​В интернете слишком много автоматически переведённых статей

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

Основные результаты анализа:
• если текст был переведён на один язык, скорее всего это было сделано вручную. Если же текст был переведён на много языков, скорее всего использовали MT
• для многих языков (в основном менее распространённых) большая часть контента получена с помощью MT с плохим качеством
• при этом есть биас: большая часть этого контента - простые, короткие тексты, переведённые массово. От этого возникает биас в плане тем этих текстов
• в результате, если не чистить датасеты, модели будут хуже и в плане метрик, и в плане fluency
• в качестве решения авторы выложили свой собственный датасет на 6.4B предложений на 90 языках с использованием дедупликации

Статья
Код для сбора датасета
#datascience #languages
🔥2🤔1
​​Ferret: Refer and Ground Anything Anywhere at Any Granularity

Apple опубликовала свою MLLM - Ferret (если точнее, веса выложили в декабре). Сравнили с GPT-4V - в целом даёт схожие результаты. Получше на мелких объектах, похуже на более общих вопросах. Помимо модельки авторы выложили ещё и датасет. В целом весьма интересная работа.

Paper link
Code link

Мои обзоры:
Personal blog
Medium
Linkedin Pulse

#paperreview
🔥4
​​Подход к изучению иностранных языков Listening–Reading и как он мне помогает

В настоящее время существует много подходов к изучению иностранных языков, и сегодня я хочу рассказать о методе Listening-Reading.

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

Есть много вариаций этого метода, но главная суть - читать текст на известном языке и одновременно слушать тот же самый текст на изучаемом языке (точнее, желательно либо читать чуть быстрее, либо заранее знать текст).

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

Существующие варианты этого подхода:
• использовать параллельные тексты (на известном и на изучаемом языке) - в таком варианте этот подход можно использовать даже на ранних стадиях изучения языка (A1, A2);
• использовать и текст, и аудио на изучаемом языке - чтобы лучше понимать разговорную речь;
• повторять чтение и прослушивание отрывков по несколько раз - для улучшения запоминания (лично мне лень);
• пытаться повторять услышанное - для тренировки произношения (это мне тоже лень делать);

Могу привести свежий пример пользы этого подхода для меня:
Летом я пробовал слушать две аудиокниги на немецком (одна была переведена с английского, другая - с русского), но бросил, потому что слишком многое было непонятно. После этого я стал использовать вышеописанный подход (книга на английском и аудиокнига на немецком) с серией из 7 английских книг. Сегодня я закончил их слушать - в сумме эти книги составили около 80 часов. Когда я слушал первую книгу, я часто что-то не понимал, но к концу последней книги я в целом мог даже не смотреть в текст!

Теперь я ради интереса запустил аудиозаписи тех двух книг, которые вызвали у меня сложности полгода назад... и я понимал 90-95%, даже не смотря в текст.
Для дополнительного теста я включил аудио версию немецкой книги (не перевод), которую я никогда не слышал раньше. Это было сложнее, но я всё равно смог понять где-то 80%+ и сложности были лишь с отдельными словами, а суть происходящего была вполне понятно

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

#languages
🔥102❤‍🔥1
​​Kickstarter Campaign: Animating Cradle: Bestselling Fantasy Novels Come to Life!

Хотел бы поделиться ссылкой на компанию на Kickstarter. Одна из моих любимых fantasy серий может получить адаптацию. Автор книги договорился с Jay Oliva, кто не знает, у него огромный список успешных работ. Очень надеюсь, что автор сможет набрать достаточно денег :)

Link
1🔥1
​​Scalable Pre-training of Large Autoregressive Image Models

Статья от Apple представляет AIM - серию моделей компьютерного зрения, претренированных авторегрессионно по подобию LLM. AIM демонстрируют, что они могут успешно скейлиться (как и LLM) с увеличением размера датасета, размера моделей и продолжительностт тренировки.
В итоге натренировали модель на 7B параметров, которая получила 84% на ImageNet-1k с тюнингом только головы. Графики показывают, что предел качества не достигнут, и при увеличении размера модели качество будет продолжать рости. При этом нет необходимости как-то специально стабилизировать обучение.

Paper link
Code link

Мои обзоры:
Personal blog
Medium
Linkedin Pulse

#paperreview
🔥6
​​Lumiere: A Space-Time Diffusion Model for Video Generation

Lumiere - text-to-video diffusion model от Google для синтеза реалистичных и разнообразных движений в видео. Она использует архитектуру Space-Time U-Net, которая генерирует видео за один проход, в отличие от традиционных моделей, создающих keyframes с последующим улучшением. Lumiere сочетает пространственное и временное down- and up-sampling, а также использует предварительно обученную text-to-image diffusion model для генерации видео в full-frame-rate и низком разрешении, обрабатывая его на нескольких пространственно-временных масштабах. Модель демонстрирует SOTA результаты в генерации текста в видео и поддерживает широкий спектр задач создания контента и видеомонтажа, включая image-to-video, video inpainting и stylized generation.

Paper link
Project link

Мои обзоры:
Personal blog
Medium
Linkedin Pulse

#paperreview
🔥3
​​Kaggle vs Interview pipeline

Я тут увидел твит от известного Bojan Tunguz (4x Kaggle GM) о том, что какой-то Competition Grandmaster не прошёл скрининг в Гугл. В комментах идёт срачик о том обоснованно это или нет.

С одной стороны, лычка Kaggle GM - красиво. С другой стороны, процессы крупной компании не побороть. Что думаете?

Link

#datascience
😁7🔥1😱1
​​Temporary Holds: Leveraging Machine Learning Models To Reduce Fraud While Improving Customer Experience

Сегодня в корпоративном блоге моей компании опубликовали блогпост, который я написал ещё в августе (машина бюрократии движется медленно).

По ссылке можно почитать историю проекта, а здесь опишу кратко:

Один из самых распространённых типов фрода в ride-hailing компаниях - когда компания не может получить оплату поездки после её окончания. Например, у клиента привязана банковская карта к приложению, но она украдена/фальшивая/на ней недостаточно денег или есть другие проблемы. Для борьбы с этим часто используется так называемая pre-authorization - предоплата. Но применять её ко всем клиентам нехорошо, поэтому надо как-то находить подозрительных. В компании было много правил для выявления таких клиентов, но было решено заменить на модель.

С момента начала разработки и до успешной выкатки на всех клиентов прошло примерно 9 месяцев (родил модель 😅) с учётом анализа данных, работы с инфраструктурой, других проектов и прочего. Зато теперь модель работает real-time на всех рынках и успешно уменьшает потери. Качество получилось заметно лучше, чем у правил.

Ссылка

#datascience
1🔥12👍41