Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для URL, имени файла, имени объекта в каком-то софте и тд. Требования совместимости простые: в тексте должны быть только допустимые символы. Обычно это a-z, 0-9 и "_" или "-". То есть, только прописные буквы латинского алфавита и цифры (как пример).
Допустим, нам нужно название статьи в блоге преобразовать в slug для добавления его в URL этой статьи. Как это лучше всего сделать?
В Django по умолчанию есть готовая функция slugify для таких случаев.
Но я её никогда не использую. Почему? Потому что её недостаточно!
Приведём пример
>>> from django.utils.text import slugify
>>> slugify('This is a Title')
'this-is-a-title'
Пока всё отлично
>>> slugify('This is a "Title!"')
'this-is-a-title'
Спец символы удалились, всё хорошо.
>>> slugify('Это заголовок статьи')
''
Вот и приехали 😢. Если текст не английский то буквы просто игнорируются. Можно это поправить
>>> slugify('Это заголовок статьи', allow_unicode=True)
'это-заголовок-статьи'
Но тогда мы не вписываемся в условие. У нас появилась кириллица в тексте.
Так как я часто пишу сайты для русскоязычных пользователей эта проблема весьма актуальна. Я не использую стандартную функцию и всегда пишу свою.
Оригинал я не беру в расчёт и пишу полностью свою функцию. И так, по порядку:
🔸1. Исходный текст:
>>> text = 'Мой заголовок №10 😁!'
Взял специально посложней со специальными символами.
🔸2. Транслит
Необходимо сделать транслит всех символов в латиницу. Здесь очень выручает библиотека unidecode. Помимо простого транслита кириллицы в латиницу она умеет преобразовывать спец символы и иероглифы в текстовые аналоги.
from unidecode import unidecode
>>> unidecode("Ñ Σ ® µ ¶ ¼ 月 山")
'N S (r) u P 1/4 Yue Shan'
Очень крутая библиотека, советую👍
В нашем случае получаем такое преобразование:
>>> text = unidecode(text)
>>> print(text)
'Moi zagolovok No. 10 !'
Отличный транслит. Смайл просто удалился, хотя я ждал что-то вроде :). Ну и ладно, всë равно невалидные символы.
А еще наш код уже поддерживает любой язык, будь то хинди или корейский.
🔸4. Фильтр символов
Unidecode не занимается фильтрацией по недопустимым символам. Это мы делаем в следующем шаге через regex. Просто заменим все символы на "_" если они вне указанного диапазона.
>>> text = re.sub(r'[^a-zA-Z0-9]+', '_', text)
>>> print(text)
'Moi_zagolovok_No_10_'
Символ "+" в паттерне выручает когда несколько недопустимых символов идут рядом. Все они заменяются на один символ "_".
🔸5. Slugify
Осталось удалить лишние символы по краям и сделать нижний регистр
>>> text = text.strip('_').lower()
>>> print(text)
'moi_zagolovok_no_10'
Получаем отличный slug! 😎
🌎 Полный код в виде функции.
______________
PS. Проверку что в строке остался хоть один допустимый символ я бы вынес в отдельную функцию.
#libs#tricks#django
🚀 Релиз:Qwen3-Next-80B-A3B - эффективная модель заточенная на работа работу с очень длинным контекстом!
🔹80B параметров, но активируется только 3B на токен → тренировка и инференс 10x дешевле и быстрее, чем у Qwen3-32B (особенно при 32K+ контексте).
🔹Гибридная архитектура: Gated DeltaNet + Gated Attention → сочетает скорость и точность.
🔹Ultra-sparse MoE: 512 экспертов, маршрутизируется 10 + 1 общий.
🔹Multi-Token Prediction → ускоренное speculative decoding.
🔹 По производительности обходит Qwen3-32B и приближается к Qwen3-235B в рассуждениях и long-context задачах.
🟢Qwen3-Next-80B-A3B-Instruct показатели почти на уровне 235B flagship.
🟢Qwen3-Next-80B-A3B-Thinking превосходит Gemini-2.5-Flash-Thinking.
▪Попробовать: https://chat.qwen.ai
▪Анонс: https://qwen.ai/blog?id=4074cca80393150c248e508aa62983f9cb7d27cd&from=research.latest-advancements-list
▪ HuggingFace: https://huggingface.co/collections/Qwen/qwen3-next-68c25fd6838e585db8eeea9d
▪ ModelScope: https://modelscope.cn/collections/Qwen3-Next-c314f23bd0264a
▪Kaggle: https://kaggle.com/models/qwen-lm/qwen3-next-80b
▪ Alibaba Cloud API: https://alibabacloud.com/help/en/model-studio/models#c5414da58bjgj
@ai_machinelearning_big_data
#AI#LLM#Qwen#DeepLearning#MoE#EfficientModels#LongContext#Reasonin
✔️ Sakana AI придумали, как LLM самим сортировать контекст по важности
Обычные языковые модели читают текст как одну длинную ленту.
Что ближе к началу внимания - то “важнее”.
Что дальше - то модель видит хуже.
И тут появляется проблема: если важный факт спрятан где-то далеко среди шума, модель может его просто не использовать.
Она тратит внимание на всё подряд, вместо того чтобы сосредоточиться на главном.
Sakana AI предложили решение - RePo (Context Re-Positioning).
Идея очень понятная: модель получает модуль, который позволяет динамически “перепозиционировать” контекст.
Примерно как человек:
ты читаешь длинный документ, понимаешь, что важная часть была 20 страниц назад - и мысленно перечитываешь её, а лишнее игнорируешь.
Что делает RePo
- подтягивает важные куски информации ближе
- отодвигает шум и лишний текст
- помогает вниманию модели фокусироваться на нужном
В модели есть обучаемый модуль, который **переназначает позиции токенов по смыслу**, а не по порядку
✅ важно = то, что помогает уменьшать ошибку модели и правильно решать задачу
❌ второстепенно = то, что не помогает (шум), поэтому “отодвигается” по позициям
В результате модель с такой памятью начинает лучше работать там, где LLM обычно страдают:
- когда контекст длинный
- когда много шума
- когда важные детали раскиданы далеко друг от друга
- когда данные структурированные (таблички, списки, правила)
Авторы показывают, что RePo даёт заметный прирост устойчивости, при этом не ухудшая общее качество.
▶️ Устойчивость к шуму (Noisy Context)
Средний результат по 8 noisy-бенчмаркам:
- Обычный RoPE: 21.07
- RePo: 28.31
🟡 Прирост: +7.24 пункта (сильно)
Авторы отдельно фиксируют ключевую цифру:
на noisy-eval (4K контекст) RePo лучше RoPE на +11.04 пункта.
🔥 Примеры прироста на конкретных задачах
(везде RePo > RoPE)
- TriviaQA: 61.47 → 73.02 (+11.55)
- GovReport: 6.23 → 16.80 (+10.57)
- 2WikiMultihopQA: 23.32 → 30.86 (+7.54)
- MuSiQue: 7.24 → 13.45 (+6.21)
Это шаг к моделям, которые не просто “читают что дали”, а умеют сами организовать свою рабочую память.
🟡Подробности: pub.sakana.ai/repo/
🟡Статья: arxiv.org/abs/2512.14391
@ai_machinelearning_big_data
#RePo#SakanaAI#LLM#AI#AIAgents#Context#LongContext#Attention
📊 AI-автоматизация на страже новостей!
За период 07.07.2025 – 10.07.2025 наша система автоматически проанализировала для вас:
191 топовый сабреддит
449 Twitter-аккаунтов
29 Discord-серверов (226 каналов, 12 761 сообщений)
⏳ Экономия вашего времени:
Если бы вы читали это вручную со скоростью 200 слов в минуту, ушло бы целых 806 минут — а так, всё самое важное уже собрано в одном месте!
tags:
companies #xai#perplexityai#langchain#cursor#cline
models #grok4#grok4heavy#claude4opus
topics #modelreleases#benchmarking#longcontext#modelpricing#modelintegration#voice#performance#scaling#gpuoptimization
people’s #elonmusk#aravsrinivas#igorbabuschkin#yuchenj_uw