Статья раскрывает, как семантическая сегментация помогает машинам «видеть», разбивая изображение на классы объектов. Обсуждаются её применение в автономных авто, медицине и обработке спутниковых снимков для точного распознавания контекста.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥1
os
в Python для работы с файловой системой?Модуль
os
в Python предоставляет инструменты для взаимодействия с операционной системой. С его помощью можно управлять файлами и директориями, получать информацию о системе и переменных окружения, а также выполнять системные команды. Этот модуль особенно полезен для кроссплатформенных сценариев.import os
# Получение текущей директории
current_dir = os.getcwd()
print('Текущая директория:', current_dir)
# Создание новой директории
os.mkdir('new_folder')
print('Создана директория new_folder')
🗣 os позволяет удобно и кроссплатформенно работать с файловой системой, выполнять команды и настраивать окружение.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
Data Engineer (Middle)
•
Python, SQL, PostgreSQL, Kubernetes, Apache Kafka, MongoDB, RabbitMQ•
до 180 000 ₽ | 1–3 годаData Scientist (middle)
•
SQL, PostgreSQL, Apache Spark, Математическая статистика, A/B тестирование•
Уровень дохода не указан | 1–3 годаData Scientist (Моделирование РБ)
•
SQL, Python, Apache Spark•
Уровень дохода не указан | 1–3 годаPlease open Telegram to view this post
VIEW IN TELEGRAM
❤1
Статья рассматривает создание AI для покера (Техасского безлимитного холдема) и анализирует его сложность как модели бизнес-отношений. Обсуждаются метрики и стратегии, которые игроки используют в изменяющемся контексте для принятия решений.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🔥1
Статья анализирует роль языка и цифровизации в накоплении и передаче знаний. Обсуждаются вызовы структурирования данных, которые, несмотря на успехи машинного обучения и реляционных баз, всё ещё затрудняют полное понимание накопленной информации.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
Senior Data Scientist (LLM)
•
Python, NLP, PyTorch•
Уровень дохода не указан | Старший (Senior)Senior Data Scientist
•
Python, NLP, PyTorch, Linux, Pandas•
Уровень дохода не указан | Старший (Senior)Data-инженер DWH в Маркет
•
Python, SQL•
Уровень дохода не указан | Старший (Senior)Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
• Пришёл на вакансию дизайнера, а стал питонистом: как IT-специалисты нашли свою первую работу
• На сколько денег может рассчитывать ИТ-предприниматель в разных ветках развития
• Анализ задачи с собеседования в Google: конь и телефонные кнопки
• Быстрый старт в QA Fullstack: чем вооружиться будущему стажеру в Альфа-Банке
• Как убить самоорганизацию в команде: вредные советы для лидера
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Статья основана на полутора годах работы по внедрению нейронных сетей в веб-приложение с открытым исходным кодом. В ней собраны практические лайфхаки для решения реальных задач и преодоления сложностей, с которыми сталкиваются разработчики.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥1
Overfitting (переобучение) возникает, когда модель слишком хорошо запоминает обучающие данные, включая шум, и теряет способность обобщать информацию на новых данных. Это приводит к высокому качеству на обучающем наборе, но плохим результатам на тестовых данных.
1. Регуляризация:
• L1 и L2-регуляризация добавляют штраф к сложным моделям.
• Уменьшают коэффициенты модели, предотвращая избыточное подстраивание.
2. Dropout (для нейронных сетей):
• Исключение случайных нейронов на этапе обучения.
3. Снижение сложности модели:
• Использование меньшего числа признаков или более простых алгоритмов.
4. Увеличение данных:
• Генерация новых данных или увеличение объёма обучающей выборки.
from sklearn.linear_model import Ridge
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_diabetes
# Загружаем данные
data = load_diabetes()
X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2, random_state=42)
# Создаём модель с регуляризацией (Ridge)
ridge = Ridge(alpha=1.0)
ridge.fit(X_train, y_train)
# Оцениваем качество
train_score = ridge.score(X_train, y_train)
test_score = ridge.score(X_test, y_test)
print(f"Train Score: {train_score}, Test Score: {test_score}")
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥1
Статья посвящена созданию обучающей выборки для NER. Описан опыт разметки данных с использованием Open Source инструментов и Prodigy, профессионального решения для ускорения процесса создания наборов данных.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Статья описывает приложение, объединяющее GraphRAG и AutoGen-агентов с локальными LLM от Ollama для автономного встраивания и вывода. Рассмотрены ключевые аспекты: интеграция знаний, настройка LLM, вызов функций и интерактивный интерфейс.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍1
🧩 Работай с кодом, как с историей
Читаешь старый код и не понимаешь, как он дошёл до жизни такой?
👉 Совет: анализируй коммиты, историю изменений и комментарии к задачам. Это поможет понять, почему код стал таким, а не просто принять его как данность. Иногда не код плохой — просто контекст утерян.
Читаешь старый код и не понимаешь, как он дошёл до жизни такой?
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12
ML Engineer / AI Data Scientist (AI Intent Marketing)
Game Data Analyst
Data Engineer
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🔥1
Статья исследует использование троичных значений (-1, 0, 1) в нейросетевых матрицах. Рассматриваются методы хранения тритов с использованием 32-битной арифметики и подходы к их быстрому умножению через оптимизацию памяти.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
Напишите функцию, которая принимает DataFrame и заменяет отсутствующие значения (NaN) в каждом числовом столбце на среднее значение этого столбца. Если столбец содержит только NaN, оставьте его без изменений.
feature1 feature2 feature3
0 1.0 10.0 NaN
1 2.0 NaN NaN
2 NaN 30.0 NaN
3 4.0 40.0 NaN
feature1 feature2 feature3
0 1.00 10.0 NaN
1 2.00 26.7 NaN
2 2.33 30.0 NaN
3 4.00 40.0 NaN
Решение задачи
import pandas as pd
def fill_missing_with_mean(df):
numeric_columns = df.select_dtypes(include=['float', 'int'])
for column in numeric_columns:
if df[column].notna().any(): # Проверяем, есть ли значения не NaN
df[column] = df[column].fillna(df[column].mean())
return df
# Пример использования:
data = pd.DataFrame({
'feature1': [1.0, 2.0, None, 4.0],
'feature2': [10.0, None, 30.0, 40.0],
'feature3': [None, None, None, None]
})
result = fill_missing_with_mean(data)
print(result)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
• Не бойтесь потоков в Python, они не кусаются
• Рубрика: VPS на пределе возможностей. LLM на CPU с 12Gb RAM
• Предвзятость русскоязычных LLM: кого машина считает «обычным человеком»?
• Семантический веб: краткий обзор технологий и инструментов
• Инструмент обеспечения качества данных: от теории к практике
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Forwarded from .ml
Ранее мы обсуждали с вами RoPE, а теперь поговорим о его модификациях. Собрали много интересного, поэтому будет целых три поста по этой теме. Enjoy!
Как развивалось позиционное кодирование:
📆 2017 год
С появлением ванильного трансформера позиции токенов кодировались тригонометрической функцией, значение которой зависело от позиции и просто прибавлялось к эмбеддингу соответсутвующего слова.
Плюсы — мы умеем кодировать любую позицию, в том числе превосходящую максимальную длину, на которой тренировались.
Минусы — не очень работает на длинных последовательностях, да и вообще не очень хорошо работает.
📆 2018 год
Потом появился гугловский BERT, а вместе с ним новый подход позиционного кодирования: авторы предложиди выкинуть тригонометрию и вместо этого добавить в модель ещё один обучаемый слой nn.Embedding — такой же, как для получения эмбеддингов слов. Он должен кодировать — то есть, превращать в вектор — позицию токена.
Итоговый вектор токена, который будет передан следующим слоям модели — это сумма векторов токена и его позиции. Работает лучше, чем тригонометрия, но при этом никак не экстраполируется: так как векторы выучиваемые, то для позиций, превосходящих максимальную тренировочную длину, мы кодировать не умеем — она вне ключей нашего словаря эмбеддингов, так же, как мы не можем закодировать и незнакомый модели токен.
В это же время впервые появилась идея о том, что нам важны не столько абсолютные позиции слов, сколько относительные. Авторы статьи решили кодировать не абсолютную позицию, а только относительную (Relative Position Encoding, или RPE), то есть близость каждой пары токенов. Здесь же появилась идея, что позицонное кодирование стоит добавлять не в момент создания эмбеддингов слов, а на этапе Attention, добавляя знание о позициии в queries и keys.
Для начала напомним, что Positional Encoding (кодирование позиций слов/токенов) нужен, чтобы передать модели или трансформеру информацию о позициях слов — относительную или же абсолютную.
Как развивалось позиционное кодирование:
📆 2017 год
С появлением ванильного трансформера позиции токенов кодировались тригонометрической функцией, значение которой зависело от позиции и просто прибавлялось к эмбеддингу соответсутвующего слова.
Плюсы — мы умеем кодировать любую позицию, в том числе превосходящую максимальную длину, на которой тренировались.
Минусы — не очень работает на длинных последовательностях, да и вообще не очень хорошо работает.
📆 2018 год
Потом появился гугловский BERT, а вместе с ним новый подход позиционного кодирования: авторы предложиди выкинуть тригонометрию и вместо этого добавить в модель ещё один обучаемый слой nn.Embedding — такой же, как для получения эмбеддингов слов. Он должен кодировать — то есть, превращать в вектор — позицию токена.
Итоговый вектор токена, который будет передан следующим слоям модели — это сумма векторов токена и его позиции. Работает лучше, чем тригонометрия, но при этом никак не экстраполируется: так как векторы выучиваемые, то для позиций, превосходящих максимальную тренировочную длину, мы кодировать не умеем — она вне ключей нашего словаря эмбеддингов, так же, как мы не можем закодировать и незнакомый модели токен.
В это же время впервые появилась идея о том, что нам важны не столько абсолютные позиции слов, сколько относительные. Авторы статьи решили кодировать не абсолютную позицию, а только относительную (Relative Position Encoding, или RPE), то есть близость каждой пары токенов. Здесь же появилась идея, что позицонное кодирование стоит добавлять не в момент создания эмбеддингов слов, а на этапе Attention, добавляя знание о позициии в queries и keys.
❤2
Хочешь запустить большую языковую модель в продакшене, но не знаешь, как совместить простоту развертывания с промышленной надежностью? Комбинация vLLM и TorchServe решает эту задачу. Она обеспечивает как простой запуск, так и продвинутые возможности для масштабирования.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
Напишите скрипт, который удаляет дублирующиеся строки из CSV-файла на основе указанного столбца и сохраняет результат в новый файл.
python remove_duplicates.py input.csv output.csv column_name
id,name,age
1,John,30
2,Jane,25
4,Bob,35
Решение задачи
import pandas as pd
import sys
if len(sys.argv) < 4:
print("Использование: python remove_duplicates.py <input_file> <output_file> <column_name>")
sys.exit(1)
input_file = sys.argv[1]
output_file = sys.argv[2]
column_name = sys.argv[3]
try:
df = pd.read_csv(input_file)
df = df.drop_duplicates(subset=[column_name])
df.to_csv(output_file, index=False)
print(f"Дубликаты удалены. Результат сохранён в {output_file}")
except Exception as e:
print(f"Ошибка: {e}")
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👎2❤1
Junior Data Analyst
Data Scientist
Junior Data Scientist
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2