Чем занимался в последнее время?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Текущие проекты и направления разработки
Основные активности в последнее время
1. Optimizing Large Language Models (LLM) для production
На последних проектах фокусируюсь на эффективности больших языковых моделей:
- Quantization: снижение точности (FP32 → INT8) без потери качества
- Pruning: удаление малозначимых нейронов для ускорения
- Knowledge Distillation: обучение маленькой модели у большой учителя
# Пример: квантизация модели через transformers
from transformers import AutoModelForSequenceClassification
from optimum.onnxruntime import ORTQuantizer
model = AutoModelForSequenceClassification.from_pretrained("bert-base")
quantizer = ORTQuantizer.from_pretrained(model)
quantized_model = quantizer.quantize(
save_dir="./quantized_bert",
quantization_config=QuantizationConfig(is_static=False)
)
# Модель становится в 4 раза меньше, в 2-3 раза быстрее!
2. Реанализ убыточных проектов ML
Работаю с legacy-проектами, которые не показали ROI:
- Анализирую, почему модель упала на production
- Обычно причины: drift данных, неправильные метрики, утечка данных
- Переучу модели с новой валидацией
# Диагностика дрифта
from evidently.report import Report
from evidently.metric_preset import DataDriftPreset
report = Report(metrics=[DataDriftPreset()])
report.run(reference_data=train_data, current_data=production_data)
report.show()
# Если drift велик, нужен переучение модели или переинженеринг признаков
3. Automl и AutoML-like решения
Активно использую инструменты для автоматизации ML pipeline:
- H2O AutoML — автоматический выбор моделей
- TPOT — genetic programming для поиска лучшего pipeline
- Optuna — байесовая оптимизация гиперпараметров
from h2o.automl import H2OAutoML
# Запускаем AutoML на 1 час
aml = H2OAutoML(max_runtime_secs=3600, seed=1)
aml.train(y="target", training_frame=train_data)
# Получаем лучшую модель и Leaderboard
print(aml.leaderboard)
best_model = aml.leader
4. Feature Store и MLOps инфраструктура
Помогаю строить infrastructure для машинного обучения:
- Feast или Tecton для управления признаками
- DVC для версионирования данных и моделей
- Airflow для оркестрации пайплайнов
# Пример feature store (Feast)
entities:
- name: user_id
value_type: INT64
feature_views:
- name: user_features
entities: [user_id]
features:
- name: purchase_count
- name: avg_purchase_amount
source: parquet_source
5. Interpretability и Explainability (SHAP, LIME)
Растёт спрос на объяснимость моделей в regulated industries:
- SHAP values — анализ вклада каждого признака в предсказание
- LIME — локальные объяснения для отдельных предсказаний
- Attention visualization для трансформеров
# SHAP анализ для XGBoost модели
import shap
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X)
shap.summary_plot(shap_values, X) # Визуализирует важность признаков
shap.force_plot(explainer.expected_value, shap_values[0], X[0]) # Конкретное предсказание
6. Embeddings и Vector Search
Растёт применение эмбеддингов в поиске и рекомендациях:
- Dense vector retrieval вместо TF-IDF
- Semantic search через BERT/T5
- Approximate Nearest Neighbors (Faiss, Milvus) для скорости
# Semantic search с BERT эмбеддингами
from sentence_transformers import SentenceTransformer
import faiss
model = SentenceTransformer('all-MiniLM-L6-v2')
# Индексируем документы
documents = ["Machine learning is...", "Data science involves..."]
embeddings = model.encode(documents).astype('float32')
index = faiss.IndexFlatL2(embeddings.shape[1])
index.add(embeddings)
# Поиск похожих документов
query = "What is ML?"
query_embedding = model.encode([query]).astype('float32')
distances, indices = index.search(query_embedding, k=3)
7. LLM fine-tuning и prompt engineering
С появлением ChatGPT, GPT-4 много времени на:
- Fine-tuning LLM на специфичные домены (финтех, медицина)
- Prompt engineering и few-shot learning
- Интеграция LLM в классические ML пайплайны
# Fine-tuning GPT-3.5 на своих данных
from openai import OpenAI
client = OpenAI()
# Подготавливаем данные
training_data = [
{"messages": [
{"role": "system", "content": "You are a financial advisor."},
{"role": "user", "content": "What is a stock?"},
{"role": "assistant", "content": "A stock is..."}
]}
]
# Fine-tuning job
job = client.fine_tuning.jobs.create(
training_file=upload_file(training_data),
model="gpt-3.5-turbo"
)
Тренды, на которых фокусируюсь
- Efficiency: меньше параметров, меньше задержка, больше скорость
- Multimodal: текст + картинки + видео в одной модели
- Federated Learning: обучение без центрального сервера (privacy)
- Causal Inference: не просто корреляция, а причинно-следственные связи
- Real-time ML: системы, которые обновляются за миллисекунды
Инструменты, которые активно изучаю
- Ray — distributed computing для ML
- Polars — очень быстрый аналог Pandas
- DuckDB — SQL OLAP для быстрого анализа
- Hugging Face Spaces — хостинг ML демо без DevOps
- Weights & Biases — логирование экспериментов на стероидах
Общий тренд: от монолитных моделей к модульным, эффективным системам, которые легко интегрировать в production и легко объяснить stakeholders.