Язык из 5 слов Ввод
Кошка Собака Ест Яблоко Груша Кошка ест ...
Токенизация (1) (2) (3) (4) (5) (1) (3) (?)
Векторизация 1 0 0 0 0 1 0 ?
0 1 0 0 0 0 0 ?
IRL все 0 0 1 0 0 0 1 ?
немного 0 0 0 1 0 0 0 ?
подругому 0 0 0 0 1 0 0 ?
───┬─── ▲
│ │
┌───────────────────────────┐ ┌──────┴─────┐ │
│Обучение - поиск корреляции├──────────►│Предсказание├───┘
└───────────────────────────┘ └────────────┘
Груша (p = 99%)
Яблоко (p = 20%)
Искусственный интеллект
теория и практика
В настоящее время искусственным интеллектом принято называть технические решения предназначенные для анализа и/или генерации того или иного контента. Такие решения в основном базируются на методах машинного обучения и в целом ничем не отличаются от хорошо знакомых нам статистических и эконометрических моделей: единственным отличием является объем анализируемых данных
Разновидности
Аналитический
Уже классический подход основанный на машинном обучении с учителем: у алгоритма есть конкретная задача по предсказанию конкретного свойства анализируемого объекта
Генеративный
Относительно новый подход основанный на машинном обучении без учителя: алгоритм не решает конкретную задачу, а создает объекты похожие на изученные ранее, с учетом специфического контекста
Примеры - распознование тексат, банковский скоринг, игровое взаимодействие, распознование лиц
Примеры - большие языковые модели, генерация изображений, генерация музыки
Большие языковые модели
Большая языковая модель (LLM) - языковая модель , основанная на нейронной сети с множеством параметров (миллиарды весовых коэффициентов и более), которая проходит предварительное обучение на обширных массивах неразмеченного текста методами самообучения, а затем подвергается тонкой настройке с применением обучения с подкреплением на основе отзывов людей для согласования результатов генерации с человеческими предпочтениями
Концепция
Обучение - составляется корпус литературы, на основании которого модель запоминает взаимное расположение слов и фраз в реальных текстах - формирует вероятностное поле распределения слов в разных контекстах
Генерация - на основании сформированного вероятностного поля и пользовательского запроса создается текстовое сообщение, похожее на реальное, в статистическом смысле
Возможности и ограничения
Что умеет
LLM сегодня умеет генерировать тексты высокой сложности и адекватности, дополнительно за счет встроенных функций может совершать некоторые действия, активирующиеся по ключевым словам, например - открывать файлы, переводить иозображение в текст, переходить по ссылкам, включать инструментарий написания и реализации кода
Чего не умеет
LLM не умеет ничего понимать - результат их работы это всего лишь наиболее вероятный текст, а не продукт аналитического процесса. LLM не умеет ничего делать, если только это не заложено в ее функционал в виде дополнительных блоков, по этой причине не стоит ожидать от них ничего когнетивно сложного - по типу анализа логических схем и графиков
Варианты применения
В целом, LLM - это достаточно мощный инструмент, лучше всего его можно применить для следующего:
Самообучение - позволяет разобраться в том или ином материале, посмотреть на упрощенные примеры расчетов, сгененрировать пошаговые алгоритмы и т.д.
Написание и редактура кода - большинство ботов отлично справляется с написанием типовых скриптов и рекомендаций для усовершенствования или изменения кода
Сбор информации - встроенные механизмы написания кода и компьютерного зрения позволяют достаточно быстро собирать и агрегировать данные из разных источников
Рекомендации
При работе с LLM лучше всего руководствоваться следующими правилами:
Конкретность - опишите запрос точно и детально, в случае высокой сложности - разбейте на логические куски
Дискретность - лучше начинать новый чат для каждой новой задачи или даже подзадачи, так как разносмысловой контекст часто сбивает LLM
Принятие - не стоит пытаться добиться от бота чего-то, что не заложено в его прямой функционал
Токенезация - если нужно агрегировать или собрать данные, например из PDF, лучше заранее их подготовить - вырезать нужные таблицы и т.д.
Создание контекста - для сложных задач следует давать боту полезные материалы или инструкции - например при написании кода можно скормить ему документацию, а при сборе данных - описать содержание источника
Подключение модулей - в любом боте есть дополнительный функционал, например создание библиотеки файлов, функция поиска в интеренете и т.д. Так, например, для того тобы бот переходил по ссылкам лучше включить соответсвующий модуль поиска в сети вручную
Любые расчеты и визуализации следует делать через написние кода - некоторые нейросети не делают этого, пытаясь “схитрить”, в таком случае лучше задать это уточнение в запросе
Избыточные наративы:
Определение роли - бесполезный блок - опять же LLM ничего не понимает, в частности не понимает, что ей нужно что-то делать более или менее профессионально, а по ключивым словам можно задать только тон беседы, не более
Голюцинации - любой продукт ИИ (и не только))) - это галюцинация, просто одна удовлетворяет ваши ожидания, а другая нет, не стоит обольщаться на этот счет
Фокус внимания - подозреваю, что нельзя привлечь внимание бота к конкретным эллементам диалога - все материалы прогоняются скопом при каждом новом запросе
Казусы студенческой жизни
В этом году наблюдается огромное количество студенческих работ, написанных ИИ, к счастью в большинстве случаев распознать их не составляет большого труда, посмотрим на отличительные черты:
Если вам кажется, что работа написана ИИ - то она написана ИИ ))) Такие тексты обычно молоинформативны, неконкретны и в целом пусты. Тут дело не в самом ИИ, а в лени.
Часто студенты не убирают форматирование - у многих ботов есть свои специфические шаблоны
ИИ заходит в области, которые студентам не могут быть известны в принципе, но при этом пишет не вполне коректно и полно
Если студенты закрепляют текст задания, то в ответе могут содержаться ваши же формулировки
Кривые и косые графики - сделанные не через написние и интерпретацию кода а через генерацию изображений
Практикум
В этом блоке попробуем реализовать две типовые задачи, с которыми ИИ может справится (предположительно)
Кейс №1
Попробуем скормить боту набор из изображений с таблицами данных - простые скриншоты
Далее попросим извлечь из них информацию и составить таблицу, на основании которой озадачим нашего помошника созданием графика.
Результат ниже для ChatGPT, также производился тест Mistral, Qwen, DeepSeek, все справились.
Code
library(ggplot2)
library(dplyr)
library(tidyr)
trade_data <- data.frame(
Port = c(
"LIMASSOL","Unknown","PORT SAID","ALEXANDRIA","ISKENDAROUN","MERSIN",
"DAMIETTA EGYPT","JEDDAH","MALTA","RENI","PIRAEUS","ALIAGA",
"LATAKIEH","TRIPOLI","THESSALONIKI","EVYAP","SINGAPORE","YEISK",
"ANTALYA","LAEM CHABANG","KOPER","ALGERIA"
),
Export = c(
191115,197873,68540,114209,64420,50085,60134,0,44244,33642,
18656,5738,6142,8278,1276,0,2348,2248,2589,1155,753,15071
),
Import = c(
5535,5175,75721,5748,13052,18783,12253,46387,0,0,
1885,7136,6600,2304,2789,2483,0,0,0,0,0,0
)
)
# -----------------------------
# 2. Подготовка данных для графика
# -----------------------------
trade_long <- trade_data %>%
pivot_longer(
cols = c(Export, Import),
names_to = "Type",
values_to = "USD"
) %>%
mutate(
Port = reorder(Port, -USD, sum)
)
# -----------------------------
# 3. Построение графика
# -----------------------------
ggplot(trade_long, aes(x = Port, y = USD, fill = Type)) +
geom_col() +
labs(
title = "Total Export and Import by Port (All Months Combined)",
x = "Partner Port",
y = "USD"
) +
theme_minimal() +
theme(
axis.text.x = element_text(angle = 70, hjust = 1),
plot.title = element_text(face = "bold")
)Кейс №2
Попробуем заставить бота перейти по ссылке на хронологию НМУ в Красноярске и посчитать количество соответсвующих часов в каждый месяц 2025 года.
Далее, попросим нарисовать 3 графика - Часы нму, Средня температура, Средняя скорость ветра. Для этого дополнительно скормим боту ссылку на API метеостата
Результат ниже для ChatGPT, которому потребовались незначительные коректеровки, также производился тест Mistral - справился, но не учел, что один период НМУ может начаться в одном месяце, а закончиться в другом, поэтому немного ошибся с расчетами, Qwen и DeepSeek - не справились на этапе перехода по ссылке и подсчета
Code
library(httr)
library(jsonlite)
library(dplyr)
library(ggplot2)
library(lubridate)
# ==== Параметры ====
lat <- 56.0153 # Красноярск (пример)
lon <- 92.8932
start <- "2025-01-01"
end <- "2025-12-31"
# Твой RapidAPI ключ:
rapidapi_key <- "0e01de6488msh8dda6972fcf7c92p1ab045jsne6f0fe48c160"
# ==== 2) Запрос к Meteostat API ====
url <- "https://meteostat.p.rapidapi.com/point/daily"
query <- list(
lat = lat,
lon = lon,
start = start,
end = end,
units = "metric"
)
response <- GET(url,
add_headers(
"x-rapidapi-host" = "meteostat.p.rapidapi.com",
"x-rapidapi-key" = rapidapi_key
),
query = query)
data_json <- content(response, as = "text", encoding = "UTF-8")
daily_list <- fromJSON(data_json, flatten = TRUE)
df_daily <- as.data.frame(daily_list$data)
# ==== Считаем средние по месяцам ====
df_daily <- df_daily %>%
mutate(date = as.Date(date),
month = month(date)) %>%
group_by(month) %>%
summarise(
MeanTemp = mean(tavg, na.rm = TRUE),
MeanWind = mean(wspd, na.rm = TRUE)
)
# ==== Данные часов НМУ ====
df_nmu <- data.frame(
month = 1:12,
NMU_hours = c(48,178,16,0,43,24,0,0,0,156,29,79)
)
df_all <- left_join(df_nmu, df_daily, by = "month")
ggplot(df_all, aes(x = month, y = NMU_hours)) +
geom_col(fill = "steelblue") +
scale_x_continuous(breaks = 1:12, labels = 1:12) +
labs(
title = "Часы НМУ",
x = "Месяц",
y = "Часы"
) +
theme_minimal()Code
ggplot(df_all, aes(x = month, y = MeanTemp)) +
geom_line(color = "tomato", linewidth = 1) +
geom_point(color = "tomato") +
scale_x_continuous(breaks = 1:12, labels = 1:12) +
labs(
title = "Средняя температура",
x = "Месяц",
y = "°C"
) +
theme_minimal()Code
ggplot(df_all, aes(x = month, y = MeanWind)) +
geom_line(color = "forestgreen", linewidth = 1) +
geom_point(color = "forestgreen") +
scale_x_continuous(breaks = 1:12, labels = 1:12) +
labs(
title = "Средняя скорость ветра",
x = "Месяц",
y = "км/ч"
) +
theme_minimal()Прощальное слово
На этом все, дорогие друзья, пробуйте разные нейросети, придумывайте для них задачи, научиться что-то с ними делать можно только в ходе непосредственного взаимодействия, удачи!!!