Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> text = '''
>>> Alex:8999123456
>>> Mike:+799987654
>>> Oleg:+344456789
>>> '''
Соответственно, для выделения нужных элементов будем использовать группы. Получится такой паттерн:
(\w+):([\d+]+)
Как мы будем формировать словарь из найденных групп?
>>> import re
>>> results = []
>>> for match in re.finditer(r"(\w+):([\d+]+)", text):
>>> results.append({
>>> "name": match.group(1),
>>> "phone": match.group(2)
>>> })
>>> print(results)
[{'name': 'Alex', 'phone': '8999123456'}, ...]
Можно немного сократить запись используя zip
>>> results = []
>>> for match in re.finditer(r"(\w+):([\d+]+)", text):
>>> results.append(dict(zip(['name', 'phone'], match.groups())))
Но есть способ лучше! Это именованные группы в regex. Можно в паттерне указать имя группы и результат сразу забрать в виде словаря.
>>> for match in re.finditer(r"(?P<name>\w+):(?P<phone>[\d+]+)", text):
>>> results.append(match.groupdict())
То есть всё что я сделал, это добавил в начале группы (внутри сбокочек) такую запись:
(?P<group-name>...)
Теперь найденная группа имеет имя и можно обратиться к ней как к элементу списка
>>> name = match['name']
Либо забрать сразу весь словарь методом groupdict()
>>> match.groupdict()
#tricks#regex
⚡️GLM-5 выкатили в опен-сорс.
Не прошло и суток с момента релиза, а Zhipu AI выложила веса GLM-5 и любезно поделилась проведенными бенчмарками.
Архитектура пятого поколения построена на MoE: 744 млрд. общих параметров при активных 40 млрд. Модель учили на 28,5 трлн. токенов и она получила контекстное окно в 200 тыс. токенов.
GLM-5 ориентирован на 5 доменов: кодинг, рассуждение, агентные сценарии, генеративное творчество и работа с длинным контекстом.
Для эффективной обработки длинных последовательностей интегрирован механизм Dynamically Sparse Attention от DeepSeek, он позволяет избежать квадратичного роста копьюта без потери качества.
По бенчмаркам GLM-5 занимает 1 место среди open-source моделей: 77,8% на SWE-bench Verified, лидирует на Vending Bench 2, BrowseComp и MCP-Atlas, а в задачах агентного кодирования и рассуждений вплотную подбирается к Claude Opus 4.5 и GPT-5.2.
Вместе с моделью, авторы предлагают Z Code — собственную агентную IDE с поддержкой параллельной работы нескольких агентов над одной задачей.
Локальный деплой поддерживается vLLM и SGLang, а также non-NVIDIA чипами: Huawei Ascend, Moore Threads, Cambricon (через квантование и оптимизацию ядер).
Если вам негде поднять модель локально, она доступна через платформу chat.z.ai, API и на OpenRouter.
Квантованные версии пока сделали только Unsloth, традиционно - полный набор от 1-bit до BF16.
И да, стэлс-модель PonyAlpha на OpenRouter - это она и была.
📌Лицензирование: MIT License.
🟡Статья
🟡Модель
🟡GGUF
🖥GitHub
@ai_machinelearning_big_data
#AI#ML#LLM#GLM5#ZAI