
Оптимизация потребления памяти в ML-библиотеке LANCETNIC
Lancet52 14 минут назад Оптимизация потребления памяти в ML-библиотеке LANCETNIC 4 мин 377 Искусственный интеллект Машинное обучение * Python * Туториал Немного о библиотеке LANCETNICЛоготип LANCETNIC это библиотека для...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
Значимый прорыв формирует отрасль ИИ: Lancet52 14 минут назад Оптимизация потребления памяти в ML-библиотеке LANCETNIC 4 мин 377 Искусственный интеллект Машинное обучение * Python * Туториал Немного о библиотеке LANCETNICЛоготип LANCETNIC это библиотека для поиска взаимосвязей между признаками объекта и целевой переменной. Классификация, регрессия и многозадачное обучение на размеченных данных. С помощью библиотеки можно в пару строчек кода обучить небольшую модель для решения задач Классификации, Регрессии и их комбинаций.
Вот GitHub репозиторий для тех кто хочет подробнее ознакомиться:👉 вернемся к тому о чем хочу написать. Недавно столкнулся с проблемой: моя библиотека lancetnic при обучении на больших текстовых датасетах просто перегружала оперативную память. На ноуте в 16 ГБ RAM модель не могла обучиться даже на 25 тыс.
Технические детали
Я начал разбираться и нашёл пару причин критического перерасхода памяти. Плотные матрицы вместо разряженныхTfidfVectorizer (который используется для векторизации текстовых данных) из sklearn по умолчанию возвращает разреженную матрицу (sparse). Он хранит только ненулевые значения.
TfidfVectorizer обрабатывает весь датасет и собирает все уникальные слова которые встречаются хотя бы в одном сообщении. Для наглядности возьмём датасет спам сообщений:№ строкиТекст1Мастер маникюра. Обучим от 7000 в день2Куплю iPhone 15 недорого.
Срочно3Бесплатный кредит без справок за 1 час4Мастер маникюра. Пиши в Личные сообщенияВекторайзер собирает уникальные слова из всего датасета: мастер, маникюра, обучим, от, 7000, в, день, куплю, iphone, 15, недорого, срочно, бесплатный, кредит, без, справок, за, 1 час, пиши, личные, сообщения и т. Из всего этого формируется словарь в виде таблицы, где каждое сообщение превращается в строку из большого количества чисел (по одному числу из словаря):мастерманикюраобучимот7000вденькуплюiphone15срочнобесплатныйкредитпишиличные...
Отраслевые последствия
Как видно, если слова нет в строке то столбец заполняется нулём. Чем больше датасет, тем больше слов и тем больше таблица (словарь). ТехническиTfidfVectorizer создаёт матрицу которая хранит только ненулевые значения (это называется sparse или разреженная матрица).
В моем коде (в версии lancetnic 4. 0) при векторизации я создавал полноценную матрицу с нулями и выглядело это выглядело так:# Векторизация тектовых данных def vectorize_text(text_column, df_train, max_features): if isinstance(text_column, str): text_column = text_encoder_list = vectorizers = for text_col in text_column: vectorizer_text = TfidfVectorizer(max_features=max_features) # Вот тут text_encoder = vectorizer_text. fit_transform(df_train.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





