Forwarded from DevFM
Регулярные выражения в Python от простого к сложному
В статье рассказывается:
— о регулярных выражениях вообще
— их плюсах в виде крутого инструмента для решения задач
— их минусах в виде write-only кода и других нюансах
— о базовом синтаксисе
— о применении регулярок в питоне с кучей примеров
— о разных сложных конструкциях
Приведены интересные задачи с примерами входных и выходных данных для практики в реализации своих регулярных выражений. Прорешайте задачи, чтобы пополнить копилку своих скиллов.
Недавно мы предлагали удобный сервис для проверки регулярок regex101.
#python #skills
В статье рассказывается:
— о регулярных выражениях вообще
— их плюсах в виде крутого инструмента для решения задач
— их минусах в виде write-only кода и других нюансах
— о базовом синтаксисе
— о применении регулярок в питоне с кучей примеров
— о разных сложных конструкциях
Приведены интересные задачи с примерами входных и выходных данных для практики в реализации своих регулярных выражений. Прорешайте задачи, чтобы пополнить копилку своих скиллов.
Недавно мы предлагали удобный сервис для проверки регулярок regex101.
#python #skills
Хабр
Регулярные выражения в Python от простого к сложному. Подробности, примеры, картинки, упражнения
Регулярные выражения в Python от простого к сложному Решил я давеча моим школьникам дать задачек на регулярные выражения для изучения. А к задачкам нужна какая-нибудь теория. И стал я искать хорошие...
Forwarded from Deep learning for NLP (RU)
Embeddings — это числовые представления слов. Они позволяют машинам понимать значение человеческих слов и то, насколько близки слова друг к другу семантически (по смыслу).
OpenAI выпустила новую embedding модель text-embedding-ada-002
Несколько слов о новой модели:
- Она превосходит предыдущие модели OpenAI в большинстве тестовых задач.
- Можно использовать модель для задач поиска и сходства как по тексту, так и по коду.
- Работает с более длительными предложениями. Длина предложения увеличена в 4 раза - до 8 191 токенов (примерно ~10 страниц) по сравнению с 2 046 ранее.
- Дешевле в 10 раз: 0,0004 $ за 1 тыс. токенов (или примерно ~3000 страниц за доллар США), что является 10 % от цены ранее самой дешевой embeddings модели.
Новую модель можно начать использовать в несколько строк кода, используя официальную библиотеку.
#news #openai #embeddings
OpenAI выпустила новую embedding модель text-embedding-ada-002
Несколько слов о новой модели:
- Она превосходит предыдущие модели OpenAI в большинстве тестовых задач.
- Можно использовать модель для задач поиска и сходства как по тексту, так и по коду.
- Работает с более длительными предложениями. Длина предложения увеличена в 4 раза - до 8 191 токенов (примерно ~10 страниц) по сравнению с 2 046 ранее.
- Дешевле в 10 раз: 0,0004 $ за 1 тыс. токенов (или примерно ~3000 страниц за доллар США), что является 10 % от цены ранее самой дешевой embeddings модели.
Новую модель можно начать использовать в несколько строк кода, используя официальную библиотеку.
import openai
response = openai.Embedding.create(
input="porcine pals say",
model="text-embedding-ada-002"
)
#news #openai #embeddings
Forwarded from Quant Valerian
Про карточные платежи
В четверг провел Вастрик.АМА, рассказал про то, как работают карточные платежи: в пластике, с телефона и онлайн. Получилось _очень_ много. Но пусть два с половиной часа вас не пугают -- можно смотреть кусками минут по 15-20, правда, желательно по порядку.
Некоторые вещи объяснил спутано (как-нибудь исправлюсь), скорее всего где-то ошибся, но в целом материал опробованный. Так или иначе всё это я уже рассказывал своим сотрудникам, а недавно решил оформить в красивую, цельную презентацию. Вот она:
https://youtu.be/yxtbtPRh9N8
Ставьте лайки, пишите комменты, задавайте умные вопросы, получайте глупые ответы, смотрите соседние видео.
Я старался.
Я, конечно, не для того 48 слайдов рисовал, чтобы вы их не смотрели, но если всё-таки предпочитаете подкасты, то вот
https://vas3kama.mave.digital/ep-54
В четверг провел Вастрик.АМА, рассказал про то, как работают карточные платежи: в пластике, с телефона и онлайн. Получилось _очень_ много. Но пусть два с половиной часа вас не пугают -- можно смотреть кусками минут по 15-20, правда, желательно по порядку.
Некоторые вещи объяснил спутано (как-нибудь исправлюсь), скорее всего где-то ошибся, но в целом материал опробованный. Так или иначе всё это я уже рассказывал своим сотрудникам, а недавно решил оформить в красивую, цельную презентацию. Вот она:
https://youtu.be/yxtbtPRh9N8
Ставьте лайки, пишите комменты, задавайте умные вопросы, получайте глупые ответы, смотрите соседние видео.
Я старался.
Я, конечно, не для того 48 слайдов рисовал, чтобы вы их не смотрели, но если всё-таки предпочитаете подкасты, то вот
https://vas3kama.mave.digital/ep-54
YouTube
Валерий Овчинников – Как работают карточные платежи
Валерий уже 9 лет работает в финтехе. Он был программистом в Revolut, Deutsche Bank и квант-разработчиком (и немного трейдером) в Райффайзене. Последние полтора года он руководит разработкой инфраструктуры платежей для оффлайн продуктов. Он расскажет про…
Forwarded from Bear Market
The year of CTAs
Говоря про сбалансированный портфель, стоит упомянуть «звездочку» этого года - CTAs.
CTA (Commodity trading advisor) - это по сути тип хедж фондов, которые вкладывают в различные фьючерсные контракты. Не смотря на слово “commodity”, контракты могут быть и не сырьевыми. Например, фьючерс на рубль к доллару или на весь американский рынок акций (S&P500).
В целом, СТА не имеют высокого шарпа, поэтому мы, например, предпочитаем очень невысокий процент аллокации в них - отдавая вес стратегиям с более высокой концентрацией альфы.
Но для инвесторов с гигантскими портфелями или для тех, кому недоступны фонды с высокой альфой, простая трендовая стратегия на фьючерсах (то, что делают СТА) может служить хорошим диверсификатором.
В 2022 доходы СТА-ев доставили от 5% до 40%, тогда как рынок акций серьезно упал. Последний раз, СТА так хорошо послужили в портфеле в 2008 - во время housing crisis.
На приведенной картинке показаны позиции СТА-ев во фьючерсных контрактах на американский рынок ценных бумаг (S&P500). Как видите, они достаточно лихо разворачивались и вставали в правильные позиции (лонг или шорт) в этом году «катаясь» на роллеркостере S&P500. Конечно, любая трендовая стратегия теряет на развороте (особенно это хорошо видно в самом конце графика). Но если движения в одну сторону довольно длительные, то на них можно заработать. Ну и естественно, зарабатываем как на движениях вверх, так и на движениях вниз.
Главное же, похожий на рынок бумаг шарп (~0.5) и полная к нему ортогональность.
#пропортфель
Говоря про сбалансированный портфель, стоит упомянуть «звездочку» этого года - CTAs.
CTA (Commodity trading advisor) - это по сути тип хедж фондов, которые вкладывают в различные фьючерсные контракты. Не смотря на слово “commodity”, контракты могут быть и не сырьевыми. Например, фьючерс на рубль к доллару или на весь американский рынок акций (S&P500).
В целом, СТА не имеют высокого шарпа, поэтому мы, например, предпочитаем очень невысокий процент аллокации в них - отдавая вес стратегиям с более высокой концентрацией альфы.
Но для инвесторов с гигантскими портфелями или для тех, кому недоступны фонды с высокой альфой, простая трендовая стратегия на фьючерсах (то, что делают СТА) может служить хорошим диверсификатором.
В 2022 доходы СТА-ев доставили от 5% до 40%, тогда как рынок акций серьезно упал. Последний раз, СТА так хорошо послужили в портфеле в 2008 - во время housing crisis.
На приведенной картинке показаны позиции СТА-ев во фьючерсных контрактах на американский рынок ценных бумаг (S&P500). Как видите, они достаточно лихо разворачивались и вставали в правильные позиции (лонг или шорт) в этом году «катаясь» на роллеркостере S&P500. Конечно, любая трендовая стратегия теряет на развороте (особенно это хорошо видно в самом конце графика). Но если движения в одну сторону довольно длительные, то на них можно заработать. Ну и естественно, зарабатываем как на движениях вверх, так и на движениях вниз.
Главное же, похожий на рынок бумаг шарп (~0.5) и полная к нему ортогональность.
#пропортфель
Forwarded from DevFM
Ищем свой пароль в файле размером 37 Гб на Python
Статья Has your password been pwned? Or, how I almost failed to search a 37 GB text file in under 1 millisecond примечательна по нескольким причинам.
Автор начинает статью с упоминания известного сайта have i been pwned, где можно проверить наличие вашего пароля в слитых базах. И озвучивает интересную мысль: если до проверки пароля в базах не было, то после проверки он уже точно там есть.
Далее начинается захватывающее чтиво. Автор проявляет невероятную смекалку для достижения своей цели — локально проверить свой пароль в файле размером 37 Гб за 1 миллисекунду.
Но не всё так сразу. На первый взгляд, поставленная задача кажется вообще не решаемой. Поэтому подходить к решению нужно итеративно. Начинается всё с банального поиска в лоб. Этот способ, конечно, рабочий, но медленный. Следующий шаг, чтобы улучшить результат — погружение в специфику задачи. Автор применяет различные приемы: свойства хешей, алгоритмы поиска, структуры данных и в результате решает поставленную задачу!
Откровенно говоря, для понимания решения придётся очень вдумчиво посидеть.
Такой итеративный подход стоит применять для всех сложных задач. Не нужно с первого раза пытаться изобретать космолёт, чаще всего он и не нужен. Как писал Дональд Кнут, преждевременная оптимизация — корень всех зол.
Слона нужно есть по частям. Начинаем с простого, но работающего решения. Критически смотрим на полученное решение. Если что-то не устраивает, то ищем "бутылочное горлышко" и оптимизируем его.
И еще одна приятность статьи — в процессе повествования автор оставляет множество интересных ссылок для изучения.
#python
Статья Has your password been pwned? Or, how I almost failed to search a 37 GB text file in under 1 millisecond примечательна по нескольким причинам.
Автор начинает статью с упоминания известного сайта have i been pwned, где можно проверить наличие вашего пароля в слитых базах. И озвучивает интересную мысль: если до проверки пароля в базах не было, то после проверки он уже точно там есть.
Далее начинается захватывающее чтиво. Автор проявляет невероятную смекалку для достижения своей цели — локально проверить свой пароль в файле размером 37 Гб за 1 миллисекунду.
Но не всё так сразу. На первый взгляд, поставленная задача кажется вообще не решаемой. Поэтому подходить к решению нужно итеративно. Начинается всё с банального поиска в лоб. Этот способ, конечно, рабочий, но медленный. Следующий шаг, чтобы улучшить результат — погружение в специфику задачи. Автор применяет различные приемы: свойства хешей, алгоритмы поиска, структуры данных и в результате решает поставленную задачу!
Откровенно говоря, для понимания решения придётся очень вдумчиво посидеть.
Такой итеративный подход стоит применять для всех сложных задач. Не нужно с первого раза пытаться изобретать космолёт, чаще всего он и не нужен. Как писал Дональд Кнут, преждевременная оптимизация — корень всех зол.
Слона нужно есть по частям. Начинаем с простого, но работающего решения. Критически смотрим на полученное решение. Если что-то не устраивает, то ищем "бутылочное горлышко" и оптимизируем его.
И еще одна приятность статьи — в процессе повествования автор оставляет множество интересных ссылок для изучения.
#python
death and gravity
Has your password been pwned? Or, how I almost failed to search a 37 GB text file in under 1 millisecond (in Python)
... in which we check if your password has been compromised in many inconvenient ways, in a tale of destruction, obsession, and self-discovery.
Forwarded from Ålexei Mαtusεvs𐌊i
Немного не к курсу, но тоже считаю полезным. Нашел крутой визуализатор для питона.
https://github.com/gaogaotiantian/viztracer
https://github.com/gaogaotiantian/viztracer
GitHub
GitHub - gaogaotiantian/viztracer: A debugging and profiling tool that can trace and visualize python code execution
A debugging and profiling tool that can trace and visualize python code execution - gaogaotiantian/viztracer
Forwarded from commit history
Как работают text2image модели и как получаются такие качественные изображения?
Короче, если кто-то хочет разобраться в работе text-to-image моделей (stable diffusion, dalle-2, midjourney) вот короткая подборка, в зависимости от вашего уровня знакомства c ML.
1. Простая интерактивная статья от WP. Как текст превращается в картинки и что такое диффузия? Статья подойдет всем.
2. Статья от Jay Alammar. Уже сложнее, надо понимать что такое embeddings, autoencoder, latent space, UNet. Зато подробные иллюстрации помогают понять архитектуру моделей и как происходит forward pass. А еще если вам больше нравится больше смотреть видео, чем читать статьи, там в конце список видео а-ля How does Stable Diffusion work?
3. Статья от Eugen Yan. Разбор основных идей, которые лежат в основе text-2-image. Плюс в конце есть ссылки на сами статьи, если кто-то захочет почитать сам. Вообще, Eugen Yan - крут. У него понятные разборы, которые сразу пачку статей покрывают + он автор репы https://github.com/eugeneyan/applied-ml.
Короче, если кто-то хочет разобраться в работе text-to-image моделей (stable diffusion, dalle-2, midjourney) вот короткая подборка, в зависимости от вашего уровня знакомства c ML.
1. Простая интерактивная статья от WP. Как текст превращается в картинки и что такое диффузия? Статья подойдет всем.
2. Статья от Jay Alammar. Уже сложнее, надо понимать что такое embeddings, autoencoder, latent space, UNet. Зато подробные иллюстрации помогают понять архитектуру моделей и как происходит forward pass. А еще если вам больше нравится больше смотреть видео, чем читать статьи, там в конце список видео а-ля How does Stable Diffusion work?
3. Статья от Eugen Yan. Разбор основных идей, которые лежат в основе text-2-image. Плюс в конце есть ссылки на сами статьи, если кто-то захочет почитать сам. Вообще, Eugen Yan - крут. У него понятные разборы, которые сразу пачку статей покрывают + он автор репы https://github.com/eugeneyan/applied-ml.
Forwarded from commit history
Если у вас совсем нет времени, но вы знакомы с терминологией, то вот вам основные идеи, которые лежат в основе моделей. Супер-краткий пересказ статьи Eugen Yan.
+ Diffusion – добавляем гауссовский шум к данным и учимся его предсказывать. На инференсе сэмплим изображение из рандомного шума. (По сути вычитаем шум которые предсказали.) Такие модели могут просто генерить изображения в стиле данных, на котором обучались.
Статья: Denoising Diffusion Probabilistic Models (DDPM; 2020)
+ Text conditioning – добавляем conditioning (опору на текст), чтобы управлять генерацией и получать изображения из текста.
Сначала в Contrastive Language-Image Pre-training (CLIP; 2021) научились сопоставлять изображения и тексты в одно семантическое пространство: вектор текста “щенок лабрадора” и вектор фото щенка лабрадора будут расположены близко. Потом в DALL·E (2021) токенизровали изображение, токенизировали текст и конкатенировали их, получая text_token_1, …, text_token_n, image_token_1, …, image_token_n. Все закинули в трансформер. На инференсе начинали с текстовых токенов и авторегрессионно предсказывали визуальные токены. В DALL·E 2 (aka unCLIP, 2022) использовали conditioning эмбеддинг из CLIP и авторегрессионный процесс из Dalle. Теперь из вектора текста еще предсказывается clip embedding, а потом происходит финальное декодирование в изображение. В Imagen (2022) энкодеры из CLIP заменили на T5 для текста и UNet для изображений. Там сначала генерируют изображение 64x64, а потом делают super-resolution в 1024x1024.
+ Classifier guidance – сильнее двигаем результат в сторону текста, считай управляем степенью влияния промта. В classifier-guidance paper (2021) добавили с определённым весом градиенты с классификатора обученного на шумном ImageNet, чтобы двигать изображение сильнее в сторону класса. Потом в classifier-free guidance (2021) реализовали conditional dropout, иногда заменяя текстовый Промт на Null токен. Изображение с промтом: guidance=1, без промта guidance=0. И теперь модель могла генерировать изображения с разной степенью conditioning (опоры на текст), управляя параметром guidance.
+ Latent space – шум добавляем не к пикселям изображений а к их эмбеддингам. На инференсе из шума сэмплим вектор, а потом декодируем его в изображение. Stable Diffusion (2021) Сначала векторизуем изображение, используя VAE. Потом удаляем шум из полученного вектора с помощью UNet и декодируем полученный вектор. В итоге Stable diffusion учиться и сэмплит быстрее, так как работает не с пикселями, а с сжатыми векторами.
+ Diffusion – добавляем гауссовский шум к данным и учимся его предсказывать. На инференсе сэмплим изображение из рандомного шума. (По сути вычитаем шум которые предсказали.) Такие модели могут просто генерить изображения в стиле данных, на котором обучались.
Статья: Denoising Diffusion Probabilistic Models (DDPM; 2020)
+ Text conditioning – добавляем conditioning (опору на текст), чтобы управлять генерацией и получать изображения из текста.
Сначала в Contrastive Language-Image Pre-training (CLIP; 2021) научились сопоставлять изображения и тексты в одно семантическое пространство: вектор текста “щенок лабрадора” и вектор фото щенка лабрадора будут расположены близко. Потом в DALL·E (2021) токенизровали изображение, токенизировали текст и конкатенировали их, получая text_token_1, …, text_token_n, image_token_1, …, image_token_n. Все закинули в трансформер. На инференсе начинали с текстовых токенов и авторегрессионно предсказывали визуальные токены. В DALL·E 2 (aka unCLIP, 2022) использовали conditioning эмбеддинг из CLIP и авторегрессионный процесс из Dalle. Теперь из вектора текста еще предсказывается clip embedding, а потом происходит финальное декодирование в изображение. В Imagen (2022) энкодеры из CLIP заменили на T5 для текста и UNet для изображений. Там сначала генерируют изображение 64x64, а потом делают super-resolution в 1024x1024.
+ Classifier guidance – сильнее двигаем результат в сторону текста, считай управляем степенью влияния промта. В classifier-guidance paper (2021) добавили с определённым весом градиенты с классификатора обученного на шумном ImageNet, чтобы двигать изображение сильнее в сторону класса. Потом в classifier-free guidance (2021) реализовали conditional dropout, иногда заменяя текстовый Промт на Null токен. Изображение с промтом: guidance=1, без промта guidance=0. И теперь модель могла генерировать изображения с разной степенью conditioning (опоры на текст), управляя параметром guidance.
+ Latent space – шум добавляем не к пикселям изображений а к их эмбеддингам. На инференсе из шума сэмплим вектор, а потом декодируем его в изображение. Stable Diffusion (2021) Сначала векторизуем изображение, используя VAE. Потом удаляем шум из полученного вектора с помощью UNet и декодируем полученный вектор. В итоге Stable diffusion учиться и сэмплит быстрее, так как работает не с пикселями, а с сжатыми векторами.
eugeneyan.com
Text-to-Image: Diffusion, Text Conditioning, Guidance, Latent Space
The fundamentals of text-to-image generation, relevant papers, and experimenting with DDPM.
Forwarded from DevFM
Behavior Driven Development
BDD — методология разработки "через поведение". Серия статей по BDD позволит достаточно глубоко разобраться в теме.
Для ознакомления с BDD можно прочесть первую статью. Во второй статье автор рассказывает про Gherkin Language — язык описания сценариев поведения. Далее в цикле статья с примерами написания сценариев и рекомендациями по написанию подобных сценариев.
У автора есть также более прикладная статья — применение BDD на питоне, где можно посмотреть практические аспекты.
А закончить стоит примером настоящего проекта, где применяется BDD. Ребята уже давно разрабатывают консольный task manager (пример BDD тестов). Код несложный, можно достаточно быстро разобраться что к чему.
#python
BDD — методология разработки "через поведение". Серия статей по BDD позволит достаточно глубоко разобраться в теме.
Для ознакомления с BDD можно прочесть первую статью. Во второй статье автор рассказывает про Gherkin Language — язык описания сценариев поведения. Далее в цикле статья с примерами написания сценариев и рекомендациями по написанию подобных сценариев.
У автора есть также более прикладная статья — применение BDD на питоне, где можно посмотреть практические аспекты.
А закончить стоит примером настоящего проекта, где применяется BDD. Ребята уже давно разрабатывают консольный task manager (пример BDD тестов). Код несложный, можно достаточно быстро разобраться что к чему.
#python
Forwarded from Kirill Gelvan
Для интересующихся: моделька на HF с инструкциями по запуску
Под капотом задача абстрактивной суммаризации, а именно модель mBart дообученная на суммаризацию диалогов в чатах (датасет SamSum который мы перевели на русский язык при помощи GoogleTranslateAPI)
Под капотом задача абстрактивной суммаризации, а именно модель mBart дообученная на суммаризацию диалогов в чатах (датасет SamSum который мы перевели на русский язык при помощи GoogleTranslateAPI)