🔥 TorchCode: Практика для собеседований по PyTorch
TorchCode предлагает структурированную среду для тренировки навыков программирования, необходимых для собеседований в области машинного обучения. Решайте задачи по реализации операторов и архитектур, получая мгновенную обратную связь и подсказки.
🚀Основные моменты:
- 40 задач, часто встречающихся на собеседованиях
- Автоматическая проверка корректности и производительности
- Мгновенная обратная связь по каждому тесту
- Подсказки и эталонные решения для изучения
- Возможность запуска в браузере без установки
📌 GitHub: https://github.com/duoan/TorchCode
#python
TorchCode предлагает структурированную среду для тренировки навыков программирования, необходимых для собеседований в области машинного обучения. Решайте задачи по реализации операторов и архитектур, получая мгновенную обратную связь и подсказки.
🚀Основные моменты:
- 40 задач, часто встречающихся на собеседованиях
- Автоматическая проверка корректности и производительности
- Мгновенная обратная связь по каждому тесту
- Подсказки и эталонные решения для изучения
- Возможность запуска в браузере без установки
📌 GitHub: https://github.com/duoan/TorchCode
#python
❤6
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 Умные агенты с OpenSpace: эволюция и экономия 💰
OpenSpace — это движок, который позволяет AI-агентам учиться и развиваться, превращая каждую задачу в возможность для улучшения. Он объединяет навыки, которые автоматически адаптируются и улучшаются, обеспечивая совместное использование знаний между агентами.
🚀 Основные моменты:
- Саморазвивающиеся навыки, которые учатся на реальном опыте
- Совместный интеллект: улучшения одного агента доступны всем
- Снижение затрат на 46% благодаря более эффективному использованию токенов
- Легкость в обмене навыками между агентами
- Реальные результаты: агенты зарабатывают в 4.2 раза больше
📌 GitHub: https://github.com/HKUDS/OpenSpace
#python
OpenSpace — это движок, который позволяет AI-агентам учиться и развиваться, превращая каждую задачу в возможность для улучшения. Он объединяет навыки, которые автоматически адаптируются и улучшаются, обеспечивая совместное использование знаний между агентами.
🚀 Основные моменты:
- Саморазвивающиеся навыки, которые учатся на реальном опыте
- Совместный интеллект: улучшения одного агента доступны всем
- Снижение затрат на 46% благодаря более эффективному использованию токенов
- Легкость в обмене навыками между агентами
- Реальные результаты: агенты зарабатывают в 4.2 раза больше
📌 GitHub: https://github.com/HKUDS/OpenSpace
#python
👍2
🚀 Browser Harness - это легкий инструмент, позволяющий LLM выполнять любые задачи в браузере с полной свободой действий. Он самозаживляющийся и работает напрямую с Chrome через WebSocket, позволяя агенту добавлять недостающие функции по мере выполнения задач.
Основные моменты:
- Полная свобода действий для LLM в браузере.
- Самообучение: агент создает недостающие функции.
- Поддержка бесплатных удаленных браузеров.
- Простой и понятный код (~592 строки Python).
- Возможность добавления новых доменных навыков.
📌 GitHub: https://github.com/browser-use/browser-harness
#python
Основные моменты:
- Полная свобода действий для LLM в браузере.
- Самообучение: агент создает недостающие функции.
- Поддержка бесплатных удаленных браузеров.
- Простой и понятный код (~592 строки Python).
- Возможность добавления новых доменных навыков.
📌 GitHub: https://github.com/browser-use/browser-harness
#python
👍5❤2🔥1
📚🤖 Переводите книги с помощью ИИ!
Этот проект позволяет переводить книги, субтитры и документы с использованием ИИ как локально, так и в облаке. Поддерживает форматы EPUB, SRT, DOCX и TXT, сохраняя оригинальное форматирование и структуру. Умная система обработки позволяет работать с документами любой длины, а функция сохранения прогресса помогает продолжать перевод с того места, где вы остановились.
🚀Основные моменты:
- Поддержка множества форматов: EPUB, SRT, DOCX, TXT
- Сохранение оригинального форматирования и стилей
- Умная обработка больших документов без потери контекста
- Возможность продолжить перевод с последнего сохраненного места
- Интеграция с различными провайдерами ИИ
📌 GitHub: https://github.com/hydropix/TranslateBooksWithLLMs
#python
Этот проект позволяет переводить книги, субтитры и документы с использованием ИИ как локально, так и в облаке. Поддерживает форматы EPUB, SRT, DOCX и TXT, сохраняя оригинальное форматирование и структуру. Умная система обработки позволяет работать с документами любой длины, а функция сохранения прогресса помогает продолжать перевод с того места, где вы остановились.
🚀Основные моменты:
- Поддержка множества форматов: EPUB, SRT, DOCX, TXT
- Сохранение оригинального форматирования и стилей
- Умная обработка больших документов без потери контекста
- Возможность продолжить перевод с последнего сохраненного места
- Интеграция с различными провайдерами ИИ
📌 GitHub: https://github.com/hydropix/TranslateBooksWithLLMs
#python
GitHub
GitHub - hydropix/TranslateBooksWithLLMs: Translate full-length books and documents with Ollama, OpenAI (comptatible), Gemini,…
Translate full-length books and documents with Ollama, OpenAI (comptatible), Gemini, Mistral, Poe or OpenRouter. Preserves formatting. Resumes where you left off. No file size limits. - hydropix/Tr...
🔥5
🚀 Мощный мультимодальный ИИ: Step 3.7 Flash
Step 3.7 Flash — это 198B-параметрическая модель, объединяющая языковую и визуальную обработку для высокопроизводительных задач. Она активирует около 11B параметров на токен, обеспечивая скорость до 400 токенов в секунду и поддерживая контекст до 256k. Идеально подходит для сложных рабочих процессов, таких как анализ финансовых отчетов и взаимодействие с API.
🚀 Основные моменты:
- Высокая производительность в визуальном восприятии и обработке.
- Поддержка многопараметрических задач с высокой точностью.
- Гибкость развертывания в облаке и локально.
- Интеграция с популярными инструментами и платформами.
📌 GitHub: https://github.com/stepfun-ai/Step-3.7-Flash
#python
Step 3.7 Flash — это 198B-параметрическая модель, объединяющая языковую и визуальную обработку для высокопроизводительных задач. Она активирует около 11B параметров на токен, обеспечивая скорость до 400 токенов в секунду и поддерживая контекст до 256k. Идеально подходит для сложных рабочих процессов, таких как анализ финансовых отчетов и взаимодействие с API.
🚀 Основные моменты:
- Высокая производительность в визуальном восприятии и обработке.
- Поддержка многопараметрических задач с высокой точностью.
- Гибкость развертывания в облаке и локально.
- Интеграция с популярными инструментами и платформами.
📌 GitHub: https://github.com/stepfun-ai/Step-3.7-Flash
#python
❤2👍1🔥1
Когда-то в Python файлы открывали вот так:
Код короткий, выглядит понятно, но есть проблема: если между open() и close() что-то упадёт, файл может остаться незакрытым.
Поэтому приходилось руками оборачивать всё в try / finally, следить за закрытием ресурса и не забывать cleanup на ошибках.
Потом в Python появился with, и этот бытовой ад стал намного чище:
with open(path, 'w') as f_obj:
f_obj.write(some_data)
Теперь файл закроется автоматически, даже если внутри блока случится исключение.
Это одна из тех фич Python, которые выглядят мелко, но сильно меняют стиль кода. with убирает ручное управление ресурсами и делает намерение очевидным: вот ресурс, вот область, где он нужен, после выхода из блока его надо корректно закрыть.
Используется не только для файлов:
- соединения с базой
- lock'и
- временные файлы
- сетевые подключения
- транзакции
- любые объекты с контекстным менеджером
Хороший Python-код часто начинается с простого правила: если ресурс надо открыть и потом закрыть, почти всегда нужен with.
#python
f_obj = open(path, 'w')f_obj.write(some_data)f_obj.close()Код короткий, выглядит понятно, но есть проблема: если между open() и close() что-то упадёт, файл может остаться незакрытым.
Поэтому приходилось руками оборачивать всё в try / finally, следить за закрытием ресурса и не забывать cleanup на ошибках.
Потом в Python появился with, и этот бытовой ад стал намного чище:
with open(path, 'w') as f_obj:
f_obj.write(some_data)
Теперь файл закроется автоматически, даже если внутри блока случится исключение.
Это одна из тех фич Python, которые выглядят мелко, но сильно меняют стиль кода. with убирает ручное управление ресурсами и делает намерение очевидным: вот ресурс, вот область, где он нужен, после выхода из блока его надо корректно закрыть.
Используется не только для файлов:
- соединения с базой
- lock'и
- временные файлы
- сетевые подключения
- транзакции
- любые объекты с контекстным менеджером
Хороший Python-код часто начинается с простого правила: если ресурс надо открыть и потом закрыть, почти всегда нужен with.
#python
❤8👍7🥰2👌2
🐍 Python-совет: как объединить списки разной длины
Обычный
Чтобы сохранить все элементы, используйте zip_longest()
Для пустых позиций можно указать своё значение:
result = zip_longest(
x,
y,
fillvalue="нет значения",
)```
Полезно при объединении таблиц, колонок и данных из источников разной длины.
#Python #Programming #DataProcessing
Обычный
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
❤6🔥3🥰1
🚀 Neo4j без сервера: GraphForge запускает полноценный Cypher прямо внутри Python-скрипта
GraphForge занимает редкую нишу между NetworkX и серверными графовыми БД. Вы получаете встроенный графовый движок на Rust, полный openCypher и хранение проекта в обычной директории.
Что внутри:
- четыре независимых слоя на Rust: parser → IR → planning → execution;
- результаты сразу возвращаются как Apache Arrow Table;
- данные легко передаются в Pandas и Polars;
- постоянное хранение построено на Parquet;
- встроены PageRank, Louvain и гибридный текстово-векторный поиск;
- Python- и Node.js-биндинги работают поверх одного движка.
При этом GraphForge честно позиционируется как инструмент исследовательского и notebook-масштаба. Для миллиардных графов, высокой нагрузки и многопользовательского доступа по-прежнему нужна серверная БД.
Python и Node.js доступны сейчас, Swift и Kotlin находятся в планах. Лицензия — Apache 2.0.
https://github.com/CurateLabs/graphforge
#RustLang #Python #OpenSource #GraphDatabase #DataScience #KnowledgeGraph
GraphForge занимает редкую нишу между NetworkX и серверными графовыми БД. Вы получаете встроенный графовый движок на Rust, полный openCypher и хранение проекта в обычной директории.
Что внутри:
- четыре независимых слоя на Rust: parser → IR → planning → execution;
- результаты сразу возвращаются как Apache Arrow Table;
- данные легко передаются в Pandas и Polars;
- постоянное хранение построено на Parquet;
- встроены PageRank, Louvain и гибридный текстово-векторный поиск;
- Python- и Node.js-биндинги работают поверх одного движка.
from graphforge import GraphForge
graph = GraphForge("research/")
result = graph.execute("""
MATCH (a)-[:CITES]->(b)
RETURN a.title, b.title
""")
print(result.to_pandas())
При этом GraphForge честно позиционируется как инструмент исследовательского и notebook-масштаба. Для миллиардных графов, высокой нагрузки и многопользовательского доступа по-прежнему нужна серверная БД.
Python и Node.js доступны сейчас, Swift и Kotlin находятся в планах. Лицензия — Apache 2.0.
https://github.com/CurateLabs/graphforge
#RustLang #Python #OpenSource #GraphDatabase #DataScience #KnowledgeGraph
❤1👍1
⚡️ Как узнать количество CPU в Python одной строкой
Для этого не нужны сторонние библиотеки — всё есть в стандартном
Например:
Но есть важный нюанс: функция обычно возвращает количество логических процессоров, доступных системе, а не обязательно число физических ядер.
То же самое можно получить через:
Это особенно полезно, когда нужно автоматически подобрать количество worker-процессов:
Но запускать
Маленькая функция, но часто полезна при настройке
#Python #Programming #Multiprocessing #Backend
Для этого не нужны сторонние библиотеки — всё есть в стандартном
multiprocessing:
import multiprocessing
print(multiprocessing.cpu_count())
Например:
8
Но есть важный нюанс: функция обычно возвращает количество логических процессоров, доступных системе, а не обязательно число физических ядер.
То же самое можно получить через:
import os
print(os.cpu_count())
Это особенно полезно, когда нужно автоматически подобрать количество worker-процессов:
workers = multiprocessing.cpu_count()
Но запускать
N workers только потому, что у CPU есть N потоков, не всегда оптимально. Для CPU-bound задач количество процессов обычно подбирают экспериментально, а для I/O-bound архитектура может быть совсем другой.Маленькая функция, но часто полезна при настройке
multiprocessing, worker pools и параллельных вычислений.#Python #Programming #Multiprocessing #Backend
❤1👍1
Media is too big
VIEW IN TELEGRAM
Главный секрет bool: он на самом деле int
Складываю True и True, получаю 2
Складываешь два True в Python и получаешь 2. Не баг и не магия: bool наследуется от int, поэтому True это единица, а False это ноль. Минута, и ты больше никогда не удивишься sum по списку булевых значений.
#python
Складываю True и True, получаю 2
Складываешь два True в Python и получаешь 2. Не баг и не магия: bool наследуется от int, поэтому True это единица, а False это ноль. Минута, и ты больше никогда не удивишься sum по списку булевых значений.
#python
❤3👍3🔥3
Forwarded from Just Xor
🐍 Генераторные выражения в Python - один из самых простых способов экономить память.
Обычный list comprehension сразу создаёт весь список:
А generator expression вычисляет значения только по мере необходимости:
То есть миллион элементов не хранится в памяти одновременно.
Можно получать значения по одному:
или передать генератор напрямую в:
Главный плюс - lazy evaluation.
Особенно полезно для:
- больших файлов;
- потоков данных;
- длинных последовательностей;
- ETL-пайплайнов;
- обработки данных, которые не нужно хранить целиком.
Но есть нюанс: генератор одноразовый.
После того как значения закончились, пройти по нему повторно уже нельзя.
Маленький синтаксический приём, который может заметно уменьшить потребление памяти.
#Python #Programming #Backend #DataEngineering
Обычный list comprehension сразу создаёт весь список:
squares = [x ** 2 for x in range(1_000_000)]
А generator expression вычисляет значения только по мере необходимости:
squares = (x ** 2 for x in range(1_000_000))
То есть миллион элементов не хранится в памяти одновременно.
Можно получать значения по одному:
next(squares)
или передать генератор напрямую в:
sum(...)
max(...)
any(...)
all(...)
Главный плюс - lazy evaluation.
Особенно полезно для:
- больших файлов;
- потоков данных;
- длинных последовательностей;
- ETL-пайплайнов;
- обработки данных, которые не нужно хранить целиком.
Но есть нюанс: генератор одноразовый.
После того как значения закончились, пройти по нему повторно уже нельзя.
Маленький синтаксический приём, который может заметно уменьшить потребление памяти.
#Python #Programming #Backend #DataEngineering
👍5❤3