Вы платите за очистку данных? Зря.
Отправлять сырые данные в облако - это как мыть полы в квартире, нанимая уборщиков из другого города. Дорого, медленно, и они видят все ваши грязные секреты. К 2026 году облачные API для обработки текста все еще берут по 2-5 долларов за миллион токенов, а ваши PDF с персональными данными летают по серверам, о которых вы ничего не знаете.
Loclean - библиотека на Python, которая заставляет локальные LLM работать как уборщики данных. Бесплатно, оффлайн, и без смущающих вопросов.
1Что внутри loclean?
Библиотека выросла из простого скрипта для анонимизации текстов. Сейчас это полноценный ETL-инструмент для локальных LLM. Основные возможности:
- Очистка текста: удаление мусора, нормализация форматирования, исправление опечаток (да, локальные модели это умеют).
- Структурирование: извлечение сущностей, классификация, парсинг в JSON по вашей схеме Pydantic.
- Скрытие PII: автоматическое нахождение и замена имен, телефонов, email на хеши или заглушки - без отправки в облако.
- Работа с документами: PDF, DOCX, HTML - loclean вытаскивает текст и кормит его модели.
Все это работает с любыми GGUF-моделями. Не верите? Llama 3.3 8B-Instruct в GGUF тянет такие задачи на 8 ГБ оперативки. Если у вас меньше, есть хитрости для работы на 8GB RAM.
2Как это работает технически?
Под капотом loclean использует llama-cpp-python (последняя версия на 2026 год - 0.3.0) для загрузки GGUF-моделей. GBNF-грамматики гарантируют, что модель выдает JSON, который вы ожидаете. Pydantic V2 проверяет и парсит этот JSON. Результат - чистые, структурированные данные.
GBNF (Grammar-Based Natural Language Format) - это формат грамматик для llama.cpp, который ограничивает вывод модели определенной структурой. Например, вы говорите: "выдай только JSON с полями name и age", и модель не сможет нафантазировать лишнего.
Важно: loclean не включает модели. Вам нужно скачать GGUF-файл отдельно. Как не скачать троян вместо модели - обязательное чтение перед загрузкой.
3Установка и первый запуск
Ставится через pip. Работает на Python 3.10+.
pip install loclean llama-cpp-pythonСкачиваем модель. Например, Llama 3.3 8B-Instruct Q4_K_M.gguf с Hugging Face (используем официальный репозиторий).
Базовый пример: очистка текста от мусора.
from loclean import TextCleaner
import llama_cpp
# Инициализируем модель
llm = llama_cpp.Llama(
model_path="./Llama-3.3-8B-Instruct-Q4_K_M.gguf",
n_ctx=2048,
n_threads=4,
verbose=False
)
cleaner = TextCleaner(llm)
text = "Привет, меня зовут Иван. Мой email: ivan@example.com. Call me maybe?"
cleaned = cleaner.clean(text)
print(cleaned)
# Вывод: "Привет, меня зовут Иван. Мой email: ivan@example.com. Call me maybe?"Уже лучше. Но loclean умеет больше.
4Структурирование данных с Pydantic
Допустим, у вас есть отзывы о продуктах, и нужно вытащить сущности. Определяем схему Pydantic:
from pydantic import BaseModel
from loclean import StructuredExtractor
class ProductReview(BaseModel):
product_name: str
sentiment: str # "positive", "negative", "neutral"
issues: list[str]
rating: int
extractor = StructuredExtractor(llm, schema=ProductReview)
review_text = "Ноутбук Dell XPS 13 отличный, но батарея держит мало. Думаю, на 4 из 5."
result = extractor.extract(review_text)
print(result)
# ProductReview(product_name='Dell XPS 13', sentiment='positive', issues=['батарея держит мало'], rating=4)Модель, ограниченная GBNF-грамматикой, выдает именно JSON, который соответствует схеме. Если что-то не так, Pydantic выкинет ошибку, и вы можете повторить запрос.
5Скрытие персональных данных (PII)
Самое щекотливое. Loclean умеет находить и заменять PII, используя локальную модель. Никаких внешних вызовов.
from loclean import PIIAnonymizer
anonymizer = PIIAnonymizer(llm)
text_with_pii = "Пациент Иванов Иван Иванович, 1980 г.р., обратился с жалобами. Телефон: +7-999-123-45-67."
anonymized = anonymizer.anonymize(text_with_pii)
print(anonymized)
# "Пациент [NAME_1], [DATE_1] г.р., обратился с жалобами. Телефон: [PHONE_1]."Замены консистентны: если "Иванов Иван Иванович" встретится еще раз, он станет [NAME_1] снова. Можно настроить замену на хеши или свои заглушки.
Сравнение: loclean vs облачные API vs другие локальные инструменты
| Инструмент | Стоимость | Приватность | Качество очистки | Скорость |
|---|---|---|---|---|
| OpenAI API | 2-10 $/1M токенов | Низкая | Высокое | Быстро |
| Anthropic Claude API | 5-15 $/1M токенов | Низкая | Очень высокое | Быстро |
| Loclean + GGUF | 0 $ (одноразовая загрузка модели) | Полная | Зависит от модели | Медленнее, но на своем железе |
| Самописные скрипты (regex) | 0 $ | Высокая | Низкое (только простые паттерны) | Быстро |
Loclean не magic bullet. Для простой замены телефонов regex быстрее. Но для сложной очистки, где нужен контекст (например, отличить имя человека от названия компании), локальная LLM незаменима.
Кому нужен loclean?
- Стартапы с данными: когда нет бюджета на облачные API, но есть сервер под столом.
- Юристы, врачи, финансисты: те, кто по закону не может отправлять данные в облако.
- Исследователи: которые работают с конфиденциальными опросами или архивными текстами.
- Разработчики внутренних инструментов: для автоматизации обработки отчетов, писем, документов.
Если вы уже качали модели на случай апокалипсиса, loclean даст им работу.
Подводные камни
Loclean требует знаний Python. Не drag-and-drop инструмент. Модели жрут оперативку: для Llama 3.3 8B нужно 8-10 ГБ RAM. Квантованная версия Q4_K_M поможет, но качество немного упадет.
Скорость: на CPU обработка 1000 токенов может занимать 10-30 секунд. Если у вас NVIDIA GPU, llama-cpp-python поддерживает CUDA, но нужно настроить GPU.
Неочевидный совет: используйте loclean в паре с YaGUFF для конвертации своих моделей в GGUF. Так вы сможете очищать данные даже на узкоспециализированных моделях, которые сами и обучили.
В 2026 году тренд на локальные AI только усиливается. Такие инструменты, как loclean, стирают грань между облачной мощью и приватностью. Через год, возможно, мы будем удивляться, как вообще отправляли данные в чужие дата-центры.
Попробуйте loclean. Хотя бы чтобы понять, что ваши данные стоят больше, чем плата за API.