fadikMachineIntelligence
Anonymous Quiz
33%
Обучение с учителем (Supervised Learning)
44%
Самообучение (Self-Supervised Learning)
0%
Обучение с подкреплением (Reinforcement Learning, RL)
22%
Обучение с подкреплением на основе обратной связи от человека (RLHF)
Обучение нейронной сети сводится к одной и той же математической операции, повторённой невероятное количество раз: умножению и сложению чисел, из которых состоят веса модели и входные данные. Чтобы объяснить, почему это так важно для выбора железа, разберём сначала пару базовых понятий.
Матрица, это просто таблица чисел, расположенных строками и столбцами, вроде обычной таблицы в Excel, только заполненная числами вместо текста. Внутри нейронной сети веса между слоями хранятся именно в виде таких таблиц чисел. Когда данные проходят через слой сети, происходит операция, которая называется умножением матриц: каждое число из входных данных умножается на соответствующие числа из таблицы весов, а результаты складываются вместе. Это происходит не один раз, а миллионы и миллиарды раз подряд, для каждого слоя сети и для каждого отдельного примера данных.
Процессор, CPU, устроен так, чтобы хорошо справляться с самыми разными задачами по очереди: сложной логикой с множеством условий, быстрым переключением между непохожими друг на друга процессами, операциями, где следующий шаг зависит от результата предыдущего. Для этого у процессора обычно всего несколько или несколько десятков вычислительных ядер, зато каждое ядро само по себе очень мощное и умеет быстро обрабатывать сложные, ветвящиеся последовательности команд одно за другим.
Видеокарта, GPU, устроена принципиально иначе. У неё тысячи, а у современных моделей даже десятки тысяч более простых вычислительных ядер. Каждое такое ядро по отдельности заметно слабее ядра процессора, зато все они способны выполнять одну и ту же простую операцию одновременно, каждое над своим отдельным куском данных. Изначально видеокарты создавались вовсе не для искусственного интеллекта, а для рендеринга изображений на экране: чтобы посчитать цвет и освещение сразу для миллионов пикселей, причём вычисление для одного пикселя почти никак не зависит от вычисления для соседнего, эту работу удобно раздать тысячам простых ядер, которые считают всё одновременно, а не одному мощному ядру, которое считало бы каждый пиксель по очереди.
Оказалось, что умножение матриц при обучении нейронной сети имеет точно такой же характер: огромное число отдельных умножений и сложений, каждое из которых почти не зависит от соседних и может выполняться параллельно. Поэтому видеокарты, изначально созданные для расчёта пикселей, отлично подошли и для обучения нейронных сетей, просто вместо цвета пикселя они теперь параллельно считают числа внутри весов и данных модели.
Разница в скорости на практике огромная. Процессор с несколькими десятками ядер может по-настоящему одновременно выполнять лишь несколько десятков таких операций, всё остальное ему приходится делать по очереди. Видеокарта с тысячами ядер выполняет тысячи подобных операций буквально за один и тот же момент времени. Когда нужно совершить триллионы однотипных умножений подряд, как это происходит при обучении крупной модели, такая разница означает не небольшое ускорение, а разницу в десятки и сотни раз по итоговому времени обучения.
Чтобы разработчики вообще могли заставить видеокарту считать что-то помимо графики для игр, компания Nvidia создала специальный программный инструмент под названием CUDA. Это набор инструментов и правил, который позволяет писать программы, использующие тысячи ядер видеокарты для любых вычислений общего назначения, а не только для отрисовки изображений на экране. Именно через CUDA программы для обучения нейронных сетей получают доступ ко всем ядрам видеокарты одновременно и раздают им отдельные кусочки одной и той же большой вычислительной задачи, вместо того чтобы считать всё последовательно на процессоре.
Please open Telegram to view this post
VIEW IN TELEGRAM
Удобно представить веса как коэффициенты важности. Если вес большой, соответствующий входной сигнал сильно влияет на решение нейрона. Если вес маленький, влияние почти отсутствует. Во время обучения модель постепенно изменяет миллиарды таких чисел, усиливая полезные связи и ослабляя бесполезные. Именно совокупность всех этих весов и хранит знания, которые модель приобрела в процессе обучения.
Мы это уже проходили, но можете считать это напоминанием.
Please open Telegram to view this post
VIEW IN TELEGRAM
fadikMachineIntelligence
Anonymous Poll
73%
Да, давно знал(а)
18%
Что-то слышал(а), но не понимал(а) почему
9%
Нет, это было для меня новым
Когда говорят о модели на 7B, 70B или 400B, буква B означает billion, миллиард, а цифра перед ней, это количество параметров модели. Параметры, это те самые веса нейронной сети, о которых уже шла речь в посте про устройство нейронных сетей: числа на каждой связи между нейронами, которые модель подстраивает под себя в процессе обучения. Модель на 70 миллиардов параметров имеет ровно столько отдельных весов, и каждый из них получил своё конкретное значение во время обучения на данных.
Разберём на простом примере, зачем вообще нужно так много этих чисел. Представим, что модели нужно понять смысл слова "коса" в предложении. В зависимости от контекста это может быть инструмент для покоса травы, причёска или узкая полоса суши в море. Чтобы правильно различать такие случаи, чтобы понимать десятки тысяч подобных тонкостей языка одновременно, плюс грамматику, факты о мире, логические связи между событиями, модели нужно очень много отдельных настроек, каждая из которых отвечает за свой маленький кусочек этого огромного пазла. Один параметр сам по себе почти ничего не значит, но миллиарды параметров вместе и формируют способность модели улавливать сложные закономерности.
На практике разница между моделями разного размера ощущается довольно конкретно. Модель на несколько миллиардов параметров обычно хорошо справляется с простыми и узкими задачами: коротким пересказом, ответом на прямой фактический вопрос, базовым переводом. Но у неё часто не хватает "запаса", чтобы уверенно держать в голове длинную цепочку рассуждений, тонкие нюансы формулировки или редкие специфические факты. Модель на несколько десятков или сотен миллиардов параметров справляется с этим заметно лучше, потому что у неё физически больше внутренних настроек, чтобы отдельно учесть больше вариантов и исключений.
Рост числа параметров имеет прямую цену, причём вполне измеримую. Каждый параметр нужно хранить в памяти видеокарты и использовать при каждом вычислении, а при обработке любого запроса задействуются все параметры сети сразу. Грубое практическое правило: модели в стандартной точности нужно примерно два гигабайта видеопамяти на каждый миллиард параметров. Значит, модели на 7 миллиардов параметров нужно порядка 14 гигабайт памяти, а модели на 70 миллиардов, уже около 140 гигабайт, это уровень мощного сервера, а не обычного домашнего компьютера. Отсюда и заметная разница в скорости ответа и в стоимости использования между небольшими и крупными моделями.
Есть и обратная сторона большого числа параметров, риск переобучения. Если у модели огромное количество настроек, а данных для обучения относительно мало, она может начать буквально запоминать конкретные примеры из обучающей выборки наизусть, вместо того чтобы находить общие закономерности. Такая модель отлично отвечает на вопросы, похожие на то, что уже видела при обучении, но плохо справляется с чем-то по-настоящему новым, ведь она выучила конкретные примеры, а не общий принцип. Поэтому крупные модели обучают не просто на большом числе параметров, а обязательно на соразмерно огромных объёмах данных: чем больше параметров, тем больше данных нужно, чтобы модели было из чего реально учиться, а не что запоминать.
Важно понимать, что число параметров, это не единственный показатель качества модели. Качество и разнообразие обучающих данных, архитектурные решения и этапы дополнительной настройки вроде RLHF, о котором шла речь в посте про типы обучения, тоже сильно влияют на итоговый результат. На практике нередко встречаются случаи, когда модель с меньшим числом параметров, но обученная на более качественных данных и лучше донастроенная, отвечает не хуже, а иногда и лучше, чем более крупная, но хуже обученная модель. Поэтому размер модели в параметрах стоит воспринимать как полезный ориентир масштаба, а не как прямой и единственный показатель того, насколько модель хороша.
Please open Telegram to view this post
VIEW IN TELEGRAM
fadikMachineIntelligence
Anonymous Poll
17%
50%
8%
25%
Дообучение, в английском варианте fine-tuning, это процесс, при котором уже готовую, полностью обученную модель дополнительно тренируют на новых, обычно более узких данных, чтобы она лучше справлялась с конкретной задачей. Это не обучение с нуля, а продолжение обучения поверх уже накопленных моделью знаний.
Чтобы понять, зачем это вообще нужно, стоит вспомнить, как модель обучается изначально. Большая языковая модель проходит долгий и очень дорогой этап обучения на огромном объёме текста из интернета, книг и других источников, формируя общее представление о языке, фактах, логике и стиле речи. Но такая базовая модель может плохо справляться с узкими, специфическими задачами: например, отвечать в строго заданном формате, разбираться в узкой профессиональной терминологии конкретной компании, или придерживаться определённого стиля общения. Обучать отдельную модель с нуля под каждую такую задачу было бы невероятно дорого и долго. Вместо этого берут уже готовую модель и донастраивают её.
Технически дообучение выглядит так: у модели уже есть все её параметры, веса, полученные после основного этапа обучения. Дальше этой модели показывают новый, обычно гораздо меньший набор данных, который относится именно к нужной задаче: примеры вопросов и правильных ответов в нужном формате, тексты в нужном стиле, диалоги с правильной подачей информации. Модель продолжает обучаться на этих новых примерах точно так же, как она обучалась раньше: делает прогноз, сравнивает с правильным ответом, немного подстраивает свои веса, чтобы в следующий раз ошибаться меньше. Разница в том, что теперь она не учится языку заново, а лишь слегка смещает уже имеющиеся знания в сторону нужной задачи.
Есть два основных подхода к тому, как менять веса при дообучении. Полное дообучение подразумевает изменение всех параметров модели целиком, это даёт максимальную гибкость, но требует почти столько же ресурсов и памяти, сколько потребовалось бы для обучения модели с нуля, ведь приходится хранить и обновлять каждый из миллиардов весов. Более экономный подход, параметр-эффективное дообучение, изменяет не все веса модели, а лишь небольшую дополнительную часть параметров, добавленную поверх замороженной, неизменной основной модели. Самый известный такой метод называется LoRA. Он даёт почти такой же результат, как полное дообучение, но требует в разы меньше памяти и вычислений, потому что основная часть модели вообще не трогается.
Важно понимать разницу между дообучением и другим способом настройки поведения модели, формулировкой самого запроса к ней. Можно просто попросить готовую модель отвечать в нужном стиле или формате прямо в тексте запроса, ничего при этом не меняя внутри самой модели, все её веса останутся такими же, какими были. Такой способ работает только в рамках одного разговора и каждый раз требует заново объяснять модели, что от неё нужно. Дообучение же напрямую меняет внутренние параметры модели, и результат сохраняется навсегда: модель буквально становится другой и ведёт себя по-новому уже без специальных инструкций в каждом запросе.
У дообучения есть и обратная сторона, риск того, что называется катастрофическим забыванием. Если дообучать модель слишком долго или слишком узко на новых данных, она может начать хуже справляться с задачами, в которых раньше была хороша, потому что её веса сместились слишком сильно в сторону новой узкой задачи и частично потеряли часть общих знаний, накопленных на этапе основного обучения. Хороший пример, модель, которую дообучили отвечать исключительно короткими и сухими техническими фразами, может со временем начать хуже писать связный и живой текст на общие темы, даже если её об этом никто не просил.
Поэтому дообучение обычно делают аккуратно, небольшими шагами, и на не слишком большом, но качественном наборе данных, чтобы получить нужную специализацию, не разрушив при этом общие способности модели. На практике процесс дообучения часто останавливают раньше, чем модель полностью выучит новые данные наизусть, чтобы избежать этого эффекта и сохранить баланс между новой специализацией и прежними знаниями.
Please open Telegram to view this post
VIEW IN TELEGRAM
fadikMachineIntelligence
Anonymous Poll
13%
50%
25%
13%
Python стал главным языком машинного обучения, и это интересный случай, потому что сам по себе Python не самый быстрый язык программирования, есть языки, которые выполняют код в разы и даже на порядки быстрее. Тем не менее почти весь мир машинного обучения работает именно на нём, и причина в том, как устроена работа с этим языком на практике.
Дело в том, что в задачах машинного обучения сам Python почти никогда не выполняет тяжёлые вычисления напрямую. Библиотеки, с которыми работают разработчики, написаны на языках вроде C и C++, которые компилируются заранее в быстрый машинный код, понятный процессору напрямую, без промежуточных шагов. Python в этой связке выступает верхним, удобным слоем: разработчик пишет простой и понятный код, а вся реальная тяжёлая математика выполняется внутри библиотеки на низком уровне. Когда вы просите библиотеку сложить два больших набора чисел, интерпретатор Python вызывает одну единственную функцию, а вся работа внутри неё выполняется уже быстрым скомпилированным кодом, а не медленной построчной обработкой на самом Python.
Это называется векторизацией: вместо того чтобы в цикле на чистом Python обрабатывать числа одно за другим, что было бы медленно, операция сразу выполняется над целым набором чисел одной командой на низком уровне. Библиотека NumPy стала фундаментом всей экосистемы именно потому, что предложила удобный и эффективный способ хранить большие наборы чисел и выполнять над ними такие быстрые операции, а уже поверх NumPy строились более специализированные библиотеки.
Pandas добавил удобную работу с табличными данными: загрузку, фильтрацию, сортировку, очистку данных от пропусков и ошибок перед обучением модели. Именно с подготовки и очистки данных через Pandas обычно начинается практически любая реальная задача машинного обучения, и на эту рутину часто уходит больше времени, чем на само обучение модели.
Scikit-learn собрал в единый и понятный интерфейс десятки классических алгоритмов машинного обучения: предсказание чисел, разделение объектов на категории, поиск похожих групп в данных. Не нужно писать сам алгоритм с нуля, достаточно подготовить данные и вызвать готовый метод библиотеки с нужными настройками.
Для более сложных задач с нейронными сетями используются PyTorch и TensorFlow. Они позволяют описывать структуру сети через понятные Python-конструкции, слои, функции активации, но всё фактическое обучение, вычисление математики и обновление внутренних весов сети, происходит на видеокартах, а Python-код лишь описывает архитектуру сети и управляет процессом обучения на верхнем уровне.
Jupyter Notebook стал стандартным инструментом для повседневной работы с данными и моделями, потому что позволяет выполнять код небольшими независимыми блоками и сразу видеть результат: таблицу, график, число, не перезапуская всю программу заново при каждом небольшом изменении. Для работы, где нужно постоянно проверять гипотезы и смотреть на промежуточные результаты, это оказалось удобнее, чем писать и запускать обычный цельный скрипт.
Ещё один важный фактор, это простой и читаемый синтаксис самого языка. Python читается почти как обычный текст, и математические формулы из научных статей переносятся в код почти без потери понятности. Для исследователей, для которых программирование, это инструмент, а не основная профессия, это резко снижает порог входа и ускоряет как саму работу, так и повторение чужих экспериментов другими людьми.
В результате сложилась устойчивая модель: Python выступает удобным языком-клеем, который связывает быстрые, но менее удобные для чтения низкоуровневые библиотеки в понятный интерфейс. Разработчик пишет читаемый код, а вся вычислительно тяжёлая часть уходит в скомпилированные библиотеки под капотом. Именно поэтому относительная медленность самого Python в задачах машинного обучения почти не ощущается на практике, узкое место находится не в Python-коде, а в вычислениях, давно вынесенных за его пределы.
Please open Telegram to view this post
VIEW IN TELEGRAM
fadikMachineIntelligence
Anonymous Poll
20%
60%
10%
10%
Языковая модель знает только то, что видела во время обучения. Она ничего не знает о ваших личных файлах, документах компании, свежих новостях или о чём угодно, что появилось после её обучения. Если спросить такую модель про внутреннюю инструкцию вашей фирмы или про вчерашнее событие, она либо честно скажет, что не знает, либо начнёт что-то придумывать.
RAG, расшифровывается как retrieval-augmented generation, генерация с подкреплением через поиск. Смысл простой: вместо того чтобы забивать нужную информацию прямо внутрь модели через долгое и дорогое дообучение, ей просто подкладывают нужный текст перед вопросом. Модель отвечает не по памяти, а читая конкретный текст, который ей только что показали, примерно как если бы человеку дали открытую книгу на нужной странице перед вопросом по этой теме.
Разберём на простом примере. Представим компанию, у которой есть сотни страниц с внутренними правилами: отпуска, больничные, командировки. Сотрудник спрашивает бота: "сколько дней отпуска положено после трёх лет работы". Без RAG модель либо не знает ответа, либо выдумывает правдоподобную цифру. С RAG происходит следующее.
Сначала все документы компании заранее разбивают на небольшие куски текста, по одному абзацу или блоку в несколько предложений. Каждый такой кусок превращают в набор чисел, который отражает его смысл, это называется эмбеддингом: куски текста с похожим смыслом получают похожие наборы чисел, а куски с разным смыслом получают сильно непохожие числа, даже если в них встречаются одинаковые слова. Все эти числа сохраняют в специальной базе данных, заточенной именно под быстрый поиск похожих наборов чисел, её называют векторной базой данных.
Когда сотрудник задаёт свой вопрос, вопрос точно так же превращают в набор чисел тем же способом. Дальше система быстро находит в базе куски документов, чьи числа оказались ближе всего к числам вопроса, то есть куски текста, максимально близкие по смыслу к тому, что спросили. В нашем примере система найдёт тот абзац из правил компании, где написано про количество дней отпуска в зависимости от стажа.
Найденный текст вставляют прямо в запрос к модели вместе с исходным вопросом сотрудника, и всё это целиком отправляют модели. Модель читает и вопрос, и найденный кусок правил компании, и формирует ответ на основе этого реального текста, а не на основе смутных обрывков из обучения. Поэтому ответ получается точным и опирается на реальный документ компании, а не на догадку.
Такой подход заметно снижает риск, что модель что-то придумает, потому что вместо статистической догадки у неё перед глазами реальный текст с ответом. Это не устраняет проблему полностью, модель всё ещё может неточно пересказать найденный текст, но точность значительно выше, чем при ответе по памяти.
Главное отличие RAG от дообучения в том, что сама модель вообще не меняется. Меняется только то, что подкладывают ей в запрос перед отправкой. Это делает RAG дешевле и быстрее, особенно когда документы часто обновляются: правила компании поменялись, добавили новый абзац, и система сразу начинает использовать свежую версию, без необходимости заново обучать модель.Есть и слабое место. Если система найдёт не тот кусок текста, который реально нужен для ответа, модель опирается на нерелевантный текст и может дать неверный ответ, даже если правильный ответ был где-то в документах компании, просто поиск его не нашёл. Качество работы RAG сильно зависит от того, насколько хорошо устроен сам поиск нужных фрагментов, а не только от самой модели.
Ещё один момент, на который стоит обратить внимание, это размер кусков, на которые разбивают документы. Если куски слишком маленькие, в них может не хватить контекста, чтобы понять, о чём вообще речь: например, фраза "не более 28 дней" ничего не значит без указания, что она про отпуск. Если куски слишком большие, в них попадает много лишнего текста, который занимает место в запросе, но не относится к вопросу. Поэтому размер кусков подбирают экспериментально под конкретный тип документов, чтобы каждый фрагмент нёс достаточно смысла сам по себе, но не был перегружен лишним.
Please open Telegram to view this post
VIEW IN TELEGRAM
fadikMachineIntelligence
Anonymous Poll
42%
17%
8%
33%
Всем привет! 👋
Есть небольшая идея по поводу канала.
Как вы смотрите на то, чтобы объединить Python и машинное обучение в одну основную тематику? Всё-таки Python главный инструмент для ML, поэтому эти темы отлично сочетаются.
На канале будет больше практики, проектов, разборов кода, библиотек и материалов, связанных сразу с Python и машинным обучением.
Если вам нравится такая идея накидайте реакций под этим постом!🔥
Есть небольшая идея по поводу канала.
Как вы смотрите на то, чтобы объединить Python и машинное обучение в одну основную тематику? Всё-таки Python главный инструмент для ML, поэтому эти темы отлично сочетаются.
На канале будет больше практики, проектов, разборов кода, библиотек и материалов, связанных сразу с Python и машинным обучением.
Если вам нравится такая идея накидайте реакций под этим постом!
Please open Telegram to view this post
VIEW IN TELEGRAM
Эмбеддинг, это способ превратить смысл слова, фразы или целого текста в набор чисел, с которым может работать компьютер. Компьютер не понимает текст напрямую так, как его понимает человек, зато отлично работает с числами, поэтому любой смысл, прежде чем модель сможет с ним что-то сделать, должен быть переведён в числовую форму.
Устроено это так: каждому слову или куску текста ставится в соответствие список чисел, обычно из нескольких сотен или тысяч значений. Этот список чисел и называется эмбеддингом, а сам процесс превращения текста в такой список называется получением эмбеддинга. Ключевое свойство эмбеддингов в том, что они не случайны: слова и тексты, похожие по смыслу, получают похожие наборы чисел, а слова и тексты, разные по смыслу, получают наборы чисел, сильно отличающиеся друг от друга. Например, эмбеддинги слов "кошка" и "кот" окажутся очень близки друг к другу, а эмбеддинг слова "самолёт" окажется далеко от них обоих.
Похожесть чисел здесь можно понимать почти буквально, геометрически. Каждый эмбеддинг, это как координаты точки в очень многомерном пространстве, только вместо привычных двух или трёх осей координат, вроде тех, что рисуют на школьном графике, у этого пространства могут быть сотни или тысячи осей. Слова с похожим смыслом оказываются точками, расположенными близко друг к другу в этом пространстве, а слова с разным смыслом оказываются далеко друг от друга. Расстояние между двумя точками в этом пространстве и есть математическая мера того, насколько похожи по смыслу два слова или два текста.
Откуда вообще берутся эти числа. Модель, которая создаёт эмбеддинги, обучается на огромном количестве текста, и в процессе обучения она учится размещать слова в этом многомерном пространстве так, чтобы слова, часто встречающиеся в похожих контекстах, оказывались рядом друг с другом. Если слова "кофе" и "чай" постоянно появляются в похожих предложениях, рядом со словами вроде "выпить", "чашка", "утро", модель со временем расположит эмбеддинги этих двух слов близко друг к другу, даже если никто не объяснял ей напрямую, что кофе и чай, это похожие напитки. Закономерность выучивается сама, просто из статистики того, как слова встречаются рядом друг с другом в реальных текстах.
Интересное свойство эмбеддингов в том, что в этом числовом пространстве отражаются не только простые синонимы, но и более сложные смысловые связи. Классический пример, разница между эмбеддингами слов "король" и "мужчина" оказывается очень похожа на разницу между эмбеддингами слов "королева" и "женщина". Это означает, что модель уловила в числах не просто похожесть слов, а саму смысловую связь между понятиями, вроде разницы в поле или в социальном статусе, и эта связь одинаково отражается в разных парах слов.
Эмбеддинги лежат в основе множества практических задач. Мы уже разбирали, как именно они используются в RAG: документы разбивают на куски текста, каждый кусок превращают в эмбеддинг, а затем ищут те куски, чей эмбеддинг ближе всего к эмбеддингу вопроса пользователя. Кроме этого, эмбеддинги используются в поисковых системах, чтобы находить результаты, похожие по смыслу на запрос, даже если в них нет тех же самых слов, в рекомендательных системах, чтобы находить похожий контент, и в системах определения дубликатов текста, чтобы понимать, что два по-разному написанных текста говорят об одном и том же.
Важно понимать, что эмбеддинг сам по себе, это просто набор чисел, у него нет никакого "перевода обратно" в человеческие слова напрямую. Числа полезны только для сравнения между собой: насколько близко или далеко расположены два эмбеддинга друг от друга в этом многомерном пространстве. Именно эта возможность быстро и математически точно сравнивать смысл разных кусков текста между собой и делает эмбеддинги таким удобным инструментом внутри самых разных систем, работающих с языком.
Please open Telegram to view this post
VIEW IN TELEGRAM
fadikMachineIntelligence
Anonymous Quiz
25%
По точным словам
63%
По смыслу
0%
По алфавиту
13%
По длине текста
OpenAI представила новую программу ChatGPT for Small Business, ориентированную на небольшие компании. Её цель сделать внедрение искусственного интеллекта доступнее для малого бизнеса.
— Что это означает на практике?
• Компании смогут быстрее внедрять ИИ в повседневную работу без необходимости создавать собственные решения с нуля.
• ChatGPT можно использовать для написания писем, подготовки документов, анализа информации, работы с клиентами, программирования и автоматизации рутинных задач.
• OpenAI делает ставку на то, что в ближайшие годы ИИ станет таким же привычным рабочим инструментом, как электронная почта или офисные программы.
— Почему это важно?
Раньше подобные технологии были в основном доступны крупным компаниям с большими бюджетами. Теперь всё больше инструментов появляется именно для малого бизнеса, стартапов и небольших команд. Это ещё один шаг к массовому использованию ИИ в работе.
Please open Telegram to view this post
VIEW IN TELEGRAM
🌐 GitHub недели: репозиторий, который стоит сохранить каждому, кто изучает ИИ
Если вы изучаете машинное обучение, Python или искусственный интеллект, то рано или поздно столкнётесь с проблемой: информации слишком много. Курсы, статьи, библиотеки, книги, фреймворки, найти действительно качественные материалы становится всё сложнее.
📌 Именно для этого существует Awesome Machine Learning — один из самых известных репозиториев на GitHub, который уже много лет собирает лучшие ресурсы по машинному обучению в одном месте.
Внутри вы найдёте:
Это отличный ресурс как для новичков, так и для тех, кто уже работает с ML и хочет находить новые инструменты и проекты.
GitHub: https://github.com/josephmisiti/awesome-machine-learning
🔥 Если вам нравится такой формат, буду регулярно публиковать интересные GitHub-репозитории, библиотеки и open-source проекты, которые действительно могут пригодиться в изучении искусственного интеллекта, машинного обучения и Python.
Если вы изучаете машинное обучение, Python или искусственный интеллект, то рано или поздно столкнётесь с проблемой: информации слишком много. Курсы, статьи, библиотеки, книги, фреймворки, найти действительно качественные материалы становится всё сложнее.
Внутри вы найдёте:
• Подборки лучших книг и бесплатных курсов по Machine Learning, Deep Learning, Computer Vision и другим направлениям ИИ.
• Популярные Python-библиотеки с кратким описанием их назначения: от NumPy и Pandas до PyTorch, TensorFlow и Scikit-learn.
• Инструменты для работы с данными — библиотеки и сервисы для обработки, анализа, визуализации и подготовки данных перед обучением моделей.
• Фреймворки для создания и обучения нейронных сетей, включая современные решения для разработки AI-приложений.
• Open Source-проекты, где можно изучить реальный код, посмотреть архитектуру моделей и узнать, как устроены современные AI-системы.
• Статьи, исследования, датасеты и другие полезные материалы, которые помогут глубже разобраться в машинном обучении и постоянно развиваться.
Это отличный ресурс как для новичков, так и для тех, кто уже работает с ML и хочет находить новые инструменты и проекты.
GitHub: https://github.com/josephmisiti/awesome-machine-learning
Please open Telegram to view this post
VIEW IN TELEGRAM
Модель на 70 миллиардов параметров в оригинальном виде требует около 140 гигабайт видеопамяти, это уровень сервера с несколькими профессиональными видеокартами, а никак не обычного ноутбука. Квантование, это способ сжать модель в несколько раз, чтобы она в принципе поместилась на куда более скромное железо, порой ценой небольшой потери точности.
Чтобы понять суть квантования, вспомним, что каждый параметр модели, это просто число, вес на связи между нейронами. По умолчанию такие числа хранятся в формате с высокой точностью, обычно 16 или 32 бита на одно число, это позволяет записать значение с очень мелкими дробными долями. Квантование берёт эти числа и переводит их в формат с гораздо меньшим числом бит, например 8 или даже 4 бита на значение, округляя точное число до ближайшего значения из гораздо более скромного набора допустимых чисел.
Представьте разницу между линейкой с делениями в один миллиметр и линейкой с делениями всего в один сантиметр. Первой можно измерить что-то с высокой точностью, второй, только приблизительно, зато вторая линейка компактнее и её проще носить с собой. Квантование, это переход с подробной линейки на грубую: каждое число теряет часть своей точности, зато занимает в памяти в разы меньше места.
Разница в объёме памяти получается впечатляющей. Модель в исходном 16-битном формате занимает определённый объём, при переводе в 8 бит это же количество параметров занимает уже вдвое меньше памяти, а при переводе в 4 бита, вчетверо меньше исходного. Та самая модель на 70 миллиардов параметров, требовавшая 140 гигабайт в изначальном виде, в 4-битном квантовании умещается уже в районе 35 гигабайт, а это уже уровень одной мощной, но вполне доступной домашней видеокарты.
Естественный вопрос, куда девается точность и насколько это критично. Здесь работает не такой уж очевидный на первый взгляд эффект: нейронные сети на удивление устойчивы к небольшой потере точности отдельных весов. Одно чуть менее точное число почти не влияет на итоговый ответ, потому что результат складывается из миллиардов таких чисел одновременно, и мелкие огрубления в среднем компенсируют друг друга. Именно поэтому качественно квантованная модель на 4 или 8 бит часто отвечает почти неотличимо от оригинала на большинстве обычных запросов, а заметная просадка в качестве проявляется в основном на самых сложных и требовательных к точности задачах, вроде запутанной многошаговой математики.
Кроме экономии памяти, у квантования есть и второй, не менее важный эффект, скорость. Меньшие по размеру числа быстрее передаются внутри видеокарты и быстрее обрабатываются вычислительными ядрами, поэтому квантованная модель не только помещается на более скромное железо, но и часто отвечает быстрее, чем её полноразмерная версия на том же самом железе.
Есть и обратная сторона. Слишком агрессивное квантование, например сжатие до 2 бит на число, уже заметно сказывается на качестве ответов, модель начинает чаще путаться и допускать логические ошибки, потому что накопленная погрешность в миллиардах чисел перестаёт компенсироваться сама собой. Поэтому на практике почти всегда ищут баланс: 8 бит как более безопасный, консервативный вариант с минимальной потерей качества, и 4 бита как популярный компромисс между заметной экономией места и всё ещё приемлемым качеством ответов.
Благодаря квантованию стало возможным то, что многие крупные модели вообще реально запустить на обычном домашнем компьютере, а не только на дорогом сервере в дата-центре.
Please open Telegram to view this post
VIEW IN TELEGRAM
Во время внутренних испытаний OpenAI проверяла возможности своих экспериментальных ИИ-моделей в задачах кибербезопасности. В ходе тестов две модели обнаружили уязвимости, смогли выйти из изолированной среды (песочницы) и получить доступ к инфраструктуре Hugging Face.
Важно понимать: это произошло не в открытом интернете, а в специально подготовленной тестовой среде, где моделям намеренно разрешили искать уязвимости. Цель эксперимента была оценить реальные возможности ИИ в сфере кибербезопасности и найти слабые места до того, как ими смогут воспользоваться злоумышленники.
По словам OpenAI, модели самостоятельно выстроили цепочку атак, используя найденную уязвимость и украденные учётные данные, чтобы получить ответы для тестового задания. После обнаружения инцидента команды OpenAI и Hugging Face совместно расследовали произошедшее и устранили найденные проблемы.
Этот случай показывает, насколько быстро развиваются современные ИИ-агенты: они уже способны самостоятельно анализировать системы, искать уязвимости и выполнять сложные многоэтапные действия. Именно поэтому безопасность ИИ становится одной из важнейших задач для всей отрасли.
Please open Telegram to view this post
VIEW IN TELEGRAM
Похоже, следующий этап развития ИИ это не просто ответы на вопросы, а выполнение реальных задач.
Недавно наткнулся на OpenClaw, open-source проект, который сейчас активно набирает популярность на GitHub.
Смысл простой. Вместо того чтобы просить нейросеть написать письмо или составить план, можно сказать:
Разбери мою почту, ответь на важные письма, добавь встречи в календарь и пришли мне итог в Telegram.
И дальше она сама решает, что и в каком порядке делать.
OpenClaw не является собственной нейросетью. Он работает поверх ChatGPT, Claude, Gemini и других моделей, превращая их в полноценного ИИ-агента, который умеет пользоваться инструментами, работать с файлами, почтой, календарём и многими другими сервисами.
Такие проекты сейчас вызывают больше всего интереса. Кажется, мы постепенно переходим от обычных чат-ботов к ИИ, который действительно может брать часть работы на себя.
Если захотите посмотреть, как всё устроено, вот репозиторий проекта:
🔗 GitHub: https://github.com/OpenClaw/OpenClaw
Please open Telegram to view this post
VIEW IN TELEGRAM