Python вопросы с собеседований
24.9K subscribers
703 photos
92 videos
17 files
575 links
Вопросы с собеседований по Python

@workakkk - админ

@machinelearning_interview - вопросы с собесдований по Ml

@pro_python_code - Python

@data_analysis_ml - анализ данных на Python

@itchannels_telegram - 🔥 главное в ит

РКН: clck.ru/3FmrFd
Download Telegram
Kimi K3 может стать моментом DeepSeek 2.0

Первые бенчмарки выглядят очень сильно. Kimi K3 уже называют моделью, которая сокращает разрыв между китайскими open-weight моделями и закрытыми флагманами США. FT пишет, что K3 должна превзойти Opus 4.8 в ряде бенчмарков, но при этом всё ещё не дотягивает до закрытой Fable.

Opus 4.8 вышла в конце мая, Anthropic позиционировала её как заметное обновление для agentic-задач, reasoning и работы с инструментами. Если Kimi K3 действительно обходит её в части тестов, тезис «Китай стабильно отстаёт на 6–8 месяцев» становится всё слабее.

Отдельно Kimi-K3 уже вышла на первое место в Frontend Code Arena с 1679 pts, обойдя Claude Fable 5. В frontend она стала №1 в 6 из 7 доменов: Brand & Marketing, Reference-Based Design, Data & Analytics, Consumer Product, Simulations и Content Creation Tools.

Конечно, бенчмарки ещё нужно проверять реальным использованием: coding agents, большие репозитории, 3D, интерфейсы, долгие задачи, стабильность и цена.

Китайские модели всё ближе к frontier-уровню американских закрытых.

Kimi K3 - не Fable и не Mythos. Но она уже слишком близко к топовым западным моделям, чтобы относиться к ней как к «ещё одной open model».


kimi.com/code/docs/en/kimi-code/models
👍41
В Python есть словарь, который умеет менять порядок элементов без пересоздания - OrderedDict из collections.

Например, move_to_end() перемещает ключ в конец:

from collections import OrderedDict

data = OrderedDict([
("python", 1),
("django", 2),
("fastapi", 3),
])

data.move_to_end("python")

print(data)
# django, fastapi, python

А с last=False ключ можно отправить в начало:

data.move_to_end("fastapi", last=False)

Обычные dict тоже сохраняют порядок вставки, но OrderedDict полезен, когда порядок нужно активно менять: для LRU-кэшей, очередей, приоритетов и истории действий.
👍3🔥31
🔥 За одну неделю вышло сразу 6 интересных open-weight моделей

Пока все ждут веса Kimi K3 и Ling 3.0, Sebastian Raschka обновил свою LLM Architecture Gallery свежими релизами. И там есть несколько необычных решений.

1. Nanbeige 4.2 3B
Берёт один стек из 22 Transformer-блоков и прогоняет его дважды. Получается эффективная глубина 44 блока без удвоения весов: больше compute, но почти тот же parameter footprint.

2. Laguna S 2.1
118B MoE, всего 8B активных параметров и контекст 1M токенов. Poolside позиционирует её для долгих coding-agent задач, причём модель помещается на одном DGX Spark.

3. Motif 3 Beta
314B-A13B MoE с новой Grouped Differential Latent Attention: latent-compression внимания дополняется группировкой heads и механизмом подавления «шума».

4. Solar Open 2
250B-A15B от Upstage. Архитектура чередует 3 linear-attention слоя и 1 GQA, что помогает довести контекст до 1M токенов.

5. Antares 1B
Маленькая security-модель Cisco на базе Granite 4.0. Её дообучили через SFT + GRPO для поиска уязвимых участков кода через терминал. Хороший пример того, насколько далеко можно увести специализированную модель всего на 1B параметров.

6. BTL-3
Всего лишь rank-32 LoRA поверх Qwen3.6-27B, заточенная под coding agents и structured tool calling. Авторы заявляют 88,5% на BFCL v4 AST и 95,12% HumanEval pass@1.

Open-weight экосистема сейчас интересна именно разнообразием архитектур: looped transformers, sparse MoE, linear attention, специализированные SLM и обычные LoRA-адаптеры развиваются одновременно.

Все схемы и сравнения:
https://sebastianraschka.com/llm-architecture-gallery/
👍21
Один из лучших курсов со Stepik - Rust для тех, кто уже пишет прод 🦀

Когда начинаешь думать не только «работает ли код», но и что происходит с памятью, аллокациями, потоками и ошибками под нагрузкой - Rust становится особенно интересным.

На курсе разберёшь язык через реальные механики:

ownership, borrowing, lifetimes, traits, generics, error handling, модули, тесты и сетевое программирование.

После каждого блока - код и задача с автопроверкой.

Подойдёт разработчикам на Go, C++, Java, Python, JavaScript и других языках.

Старт сразу
💻 Упор на практику

Освой Rust так, чтобы после курса открыть новый проект и реально понимать, что пишешь и почему это работает: https://stepik.org/a/294885/
2👍1🔥1
«Сэр… всё кончено. Китайцы выложили веса Kimi K3 в открытый доступ»

Moonshot AI опубликовала Kimi K3 на Hugging Face — мультимодальную MoE-модель с 2,8 трлн параметров, из которых на токен активируются около 104 млрд.

Что внутри:

контекст до 1 млн токенов;
работа с текстом и изображениями;
длительные агентные задачи и вызов инструментов;
программирование, исследование репозиториев и работа с терминалом;
нативная квантизация MXFP4.

На Terminal-Bench 2.1 авторы заявляют 88,3 балла, а на FrontierSWE — 81,2. Результаты получены в собственном агентном окружении Kimi Code, поэтому сравнивать их нужно с учётом harness.

Веса доступны по лицензии Kimi K3 License. Это уже не экспериментальная модель «для посмотреть», а открытый 3T-класс, который можно разворачивать через vLLM или SGLang.
6🔥1
One Day Offer: заходи в команду, которая двигает финансы на терабайтах данных! 🔥

На связи блок «Финансы» в Сбере! Мы строим системы, которые автоматизируют казначейство, риск‑менеджмент, отчётность — и добавляем AI для точных прогнозов.

На One Day Offer мы хотим найти коллег сразу в 3 продуктовые команды. Базовый стек и уровень задач одинаковы — выбирай направление по душе:

✔️ BigData: Spark (batch+streaming), сложные SQL‑оптимизации, DWH/Data Lake.
✔️ Микросервисы: Python (FastAPI/Django), API, интеграции с системами.

От тебя ждём: Python от 5 лет, экспертный SQL, PySpark, SOLID/asyncio, HDFS/Kafka.

👉 Регистрируйся по ссылке. Встречаемся 8 августа!
🐍 Python-совет: как объединить списки разной длины

Обычный zip() прекращает работу, когда заканчивается самый короткий список:


x = [1, 2, 3, 4, 5]
y = ["a", "b", "c"]

print(list(zip(x, y)))
# [(1, "a"), (2, "b"), (3, "c")]


Чтобы сохранить все элементы, используйте zip_longest()


from itertools import zip_longest

print(list(zip_longest(x, y)))
# [(1, "a"), (2, "b"), (3, "c"), (4, None), (5, None)]


Для пустых позиций можно указать своё значение:

result = zip_longest(
x,
y,
fillvalue="нет значения",
)```

Полезно при объединении таблиц, колонок и данных из источников разной длины.

#Python #Programming #DataProcessing
2🔥1