AI без LLM: создаем свою модель ИИ Урок 21 из 30
Урок 21. Размечаем вопросы вручную
Учитель сначала пишет ответы к карточкам, а уже потом проверяет ученика. Для модели такая карточка состоит из вопроса и правильной учебной метки. Без ответов к примерам ей нечему учиться и нам нечем проверять ошибки.
Текст переведён с помощью ИИ.
Зачем это нужно
Учитель сначала пишет ответы к карточкам, а уже потом проверяет ученика. Для модели такая карточка состоит из вопроса и правильной учебной метки. Без ответов к примерам ей нечему учиться и нам нечем проверять ошибки.
До программы
В examples.json записано 13 вымышленных вопросов. Каждая карточка имеет text — вопрос и label — метку: уақыт (спрашивают о времени), орын (о месте), белгісіз (другая тема или сразу два запроса). Метка — решение человека для упражнения, не ответ о расписании. Перед разметкой спросите: «Какие сведения хочет человек?» Если ни один из двух видов не подходит, не выдумывайте метку. Сохраните JSON как UTF-8 рядом с labels.py.
[
{
"text": "Шахмат қашан?",
"label": "уақыт"
},
{
"text": "Сурет қашан?",
"label": "уақыт"
},
{
"text": "Шахмат уақыты?",
"label": "уақыт"
},
{
"text": "Сурет уақыты?",
"label": "уақыт"
},
{
"text": "Шахмат қайда?",
"label": "орын"
},
{
"text": "Сурет қайда?",
"label": "орын"
},
{
"text": "Шахмат орны?",
"label": "орын"
},
{
"text": "Сурет орны?",
"label": "орын"
},
{
"text": "Шахмат қашан өтеді?",
"label": "уақыт"
},
{
"text": "Сурет қайда өтеді?",
"label": "орын"
},
{
"text": "Шахмат нешеде?",
"label": "уақыт"
},
{
"text": "Шахмат неге?",
"label": "белгісіз"
},
{
"text": "Шахмат қашан және қайда өтеді? Уақыты қандай?",
"label": "белгісіз"
}
]
Из корня проекта перейдите в папку шага и запустите программу:
cd course/kazakh-ai/step-21
python3 labels.py
В Windows вместо последней команды выполните py labels.py.
import json
with open("examples.json", encoding="utf-8") as file:
rows = json.load(file)
counts = {"уақыт": 0, "орын": 0, "белгісіз": 0}
for row in rows:
label = row["label"]
if label in counts:
counts[label] += 1
else:
print("Қате белгі:", label)
print("Уақыт:", counts["уақыт"])
print("Орын:", counts["орын"])
print("Белгісіз:", counts["белгісіз"])
Как работает код
counts хранит три счётчика. for row in rows проходит карточки, row["label"] берёт человеческую метку. label in counts проверяет, есть ли такая метка в разрешённом наборе; += 1 прибавляет единицу к прежнему числу. Непонятная метка печатается как ошибка и не попадает в счётчики. Мы ещё не обучаем модель — проверяем качество исходной разметки.
Опорная карта
Вопрос → человеческая метка → список JSON → проверка допустимости → счётчики 6 / 5 / 2.
Вспомните и проверьте
Закройте код и назовите три возможные метки. Добавьте вопрос Сурет нешеде? с меткой уақыт. Подсказка: новую карточку отделяет запятая. Эталон: Уақыт: 7, Орын: 5, Белгісіз: 2. Затем попробуйте метку уақ и найдите сообщение Қате белгі: уақ. Частая ошибка: считать белгісіз отсутствием ответа в каталоге; здесь это метка вопроса, каталог фактов проверяется отдельно.
Если вы нашли ошибку или опечатку в тексте статьи, то сообщите нам об этом
Комментарии (0)
Войдите, чтобы оставить комментарий →
Пока нет комментариев. Будьте первым.