От нуля до своей нейросети за 5 минут: пошаговый гайдСоздать свою нейросеть реально даже без дорогого железа. Не нужна видеокарта за сотни тысяч или отдельный сервер — большую часть рутины берут на себя готовые библиотеки, а обучение можно запускать в облаке прямо из браузера. Разберем процесс создания простой модели, которая определяет токсичные комментарии.
🤩 Открываем рабочую средуПереходишь на сайт colab.research.google.com и нажимаешь «Создать блокнот». Перед тобой появится страница с пустой ячейкой кода. Слева от нее есть кнопка ▶️ — она запускает код внутри ячейки. Каждая новая команда вводится в отдельной ячейке через кнопку «+ Код».
🤩 Загружаем инструментыСоздаешь новую ячейку, вставляешь код (ниже) и нажимаешь ▶️. После запуска должна появиться надпись OK.
import numpy as np
import tensorflow as tf
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
print("OK")
Эти строки подключают готовые инструменты для работы с текстом и нейросетями.
🤩 Создаем данные для обученияДобавляешь новую ячейку и вставляешь следующий код. Запускаешь его.
sentences = [
"spasibo, ochen polezno",
"klass, mne ponravilos",
"avtor molodec",
"ty idiot i nichego ne znaesh",
"uzhasnyi kontent, otpiska",
"ty durak"
]
labels = [0,0,0,1,1,1]
Здесь sentences — это тексты, а labels — правильные ответы. Ноль означает нормальный комментарий, единица — токсичный. Нейросеть будет учиться на этих примерах.
🤩 Превращае
м текст в числаНейросеть не понимает слова, ей нужны числа. Добавляешь новую ячейку и запускаешь код.
vocab_size = 1000
max_len = 8
tokenizer = Tokenizer(num_words=vocab_size, oov_token="<OOV>")
tokenizer.fit_on_texts(sentences)
sequences = tokenizer.texts_to_sequences(sentences)
padded = pad_sequences(sequences, maxlen=max_len, padding="post")
print(padded)
После запуска увидишь таблицу из чисел — это твой текст в формате, понятном машине. Tokenizer заменил слова номерами, а pad_sequences выровнял длину фраз.
🤩 Создаем нейросетьДобавляешь новую ячейку и вставляешь следующий код.
model = tf.keras.Sequential([
tf.keras.layers.Embedding(vocab_size, 16, input_length=max_len),
tf.keras.layers.GlobalAveragePooling1D(),
tf.keras.layers.Dense(16, activation="relu"),
tf.keras.layers.Dense(1, activation="sigmoid")
])
model.compile(optimizer="adam",
loss="binary_crossentropy",
metrics=["accuracy"])
Embedding превращает номера слов в векторы. Dense-слои принимают решение. Sigmoid выдает вероятность от 0 до 1.
🤩 Обучаем модельВ новой ячейке вставляешь:
model.fit(padded, np.array(labels), epochs=30, verbose=0)
print("Обучение завершено")
Если все прошло без ошибок — модель обучена.
🤩 Проверяем работуСоздаешь новую ячейку и запускаешь:
test = ["spasibo", "ty polnyi idiot", "klassnyi post"]
test_seq = tokenizer.texts_to_sequences(test)
test_pad = pad_sequences(test_seq, maxlen=max_len, padding="post")
pred = model.predict(test_pad)
for text, score in zip(test, pred):
print(text, "->", float(score), "TOXIC" if score > 0.5 else "OK")
Если число больше 0.5 — модель считает комментарий токсичным.
Во время выполнения шагов могут возникнуть ошибки. Вручную разбираться с ними сложно, поэтому наиболее эффективный вариант — прислать текст ошибок в ChatGPT и попросить его помочь с решением проблемы.
#CPA_Полезное
CPAMonstro | Медиа о CPA в iGaming. Подписаться