Сиолошная
48.7K subscribers
852 photos
156 videos
1 file
1.03K links
Канал SeeAll'а с новостями (и мыслями о них) из мира NLP, VR и космоса.

Более подробно смотри в первом сообщении в канале (оно закреплено). А еще у нас есть чат! Заходи: https://t.me/+i_XzLucdtRJlYWUy
Download Telegram
Forwarded from See All
Кто нибудь знает, что за группа? может синглы у них есть? Они их выпускают вообще?
🚨 НОВАЯ СТАТЬЯ 🚨

Невероятная выдалась неделька! Помимо выпуска GPT-4, про которую я тут наспамил в канале десятки сообщений (спасибо, что выдержали! 😁):
— конкурент OpenAI Antropic, в которых вложился Google, начал тестирование своего аналога ChatGPT;
— азиатские исследователи тоже не отстают и публикуют ChatGLM, работающий на английском + китайском;
— Google объявил о начале тестирования API к своей мощной модели PaLM;
вышла MidJourney v5 для генерации изображений, где были исправлены проблемы с пальцами и лицами, а сами картинки насытились ещё больше;
— Microsoft объявила о внедрении GPT-4 в Office, так что теперь AI-ассистент будет помогать и с презентациями, и с эксельками.

Но всё же самое важное событие - это релиз GPT-4, и не только потому, что это ну вот ТА САМАЯ ЖПТ, но и потому что OpenAI приняли спорное решение, которое широко обсуждается в сообществе - не публиковать никаких деталей про модель. В будущем это может подтолкнуть и другие компании к подобным поступкам.

Павел Комаровский с канала @RationalAnswer предложил мне, по традиции, написать понятный разбор того, что нам показали, к чему это приведет. Так и родилась наша статья. В ней мы не только обсудим новые фичи модели, но и постараемся угадать, что именно от нас утаили OpenAI, а самое главное - почему? Даже если вы внимательно читали канал - рекомендую перейти к последнему блоку статьи про AI и безопасность, который точно не оставит вас равнодушным!

Читать статью: https://habr.com/ru/company/ods/blog/722644/

P.S.: ну и, конечно, не забывайте подписываться на Павла @RationalAnswer, рекомендую два последних мастрида — про крах SVP и про стейблкоины.
Please open Telegram to view this post
VIEW IN TELEGRAM
Ломаем матрицу, или меняем мир вокруг себя простым словом.

Для тех, кто пропустил: чатбот поисковика Bing по имени Sidney - это GPT-4 + поиск. То есть модель сначала читает ваш запрос, после чего генерирует запрос для поисковика, и парсит выдачу (прямо как вы, когда читаете то, что показывает гугл). Соответственно то, что модель парсит - оно подаётся в контекст, следовательно, модель это "читает" при генерации ответа на исходный вопрос. Таким образом модель получает up-to-date информацию из реального мира (из того, что показывает поисковик Bing), нежели полагается на свои знания.

То есть в теории можно заставить модель прочитать левый текст с вашего сайта, если каким-то образом он всплывёт в топе выдачи поисковика.
Так вот, человек из твиттера добавил на свой персональный сайт невидимый текст, который просил Sidney упомянуть корову в своём ответе каким-либо образом. То, что получилось - вы видите на картинке выше: кто-то спросил, мол, а расскажи про человека, опираясь на его персональный сайт, модель отправила в поисковик "персональный сайт <этого человека>", затем "прочитала его" и...отреагировала на хак в промпте 🤯 и еще и смайлик коровы поставила!

Это, конечно, шуточный пример, но ведь можно написать инструкцию, чтобы модель, не знаю, выключила сервер, перестала отвечать или сделала что-то плохое, не так ли? 😉

За наводку спасибо Серёге из Ангарска 😉

UPD: блин, так это можно так рекламу делать! Вставлять на какие-то сайты в выдаче невидимый текст, который будет продвигать твой продукт.
Please open Telegram to view this post
VIEW IN TELEGRAM
А у вас бывало такое, что нужно что-то быстро сфоткать, и вы это делаете абы как, а потом обрезаете лишнее? Ну там, домочадцев на фоне или себя голенького (🙄)?

Тут оказалось, что из-за бага в приложении редактирования фотографий все телефоны Google Pixel за последние 5 лет вместо честного обрезания изображения лишь сохраняют информацию о том, что нужно показывать вот эту выделенную часть. При этом почти всё, что должно быть отрезано, остается в файле. Если вы отправляете отредактированную фотку кому-либо, то он может воспользоваться багом, и увидеть оригинал.

Изображение восстанавливается почти полностью, хотя из-за технических нюансов некоторые регионы картинки всё равно остаются недоступны.

Причина бага - в том, что ребята из Google передавали w в вызов функции parseMode(), когда они должны были передавать wt (t означает усечение, truncate, а w - write). Но это та ошибка, которую очень легко допустить, потому что другие открытые аналоги таких функций будут обрезать картинку по умолчанию, даже когда вы просто используете аргумент w. Более того, в предыдущих версиях Android по умолчанию было такое же правильное поведение!

Так что если вы владелец Google Pixel выше второй версии, то нужно срочно бежать и удалять свой пикантный контент 👀

За наводку спасибо Всеволоду из Эстонии
Please open Telegram to view this post
VIEW IN TELEGRAM
Я очень люблю YouTube и его рекомендации - для меня они работают хорошо. Даже музыку я там слушаю, и часто добавляю новые треки (потому что нравятся).
За последнюю неделю, как релизнули GPT-4, появилось много интервью и видео с видными фигурами OpenAI - CEO, CTO, директора по исследованиям, и YouTube мне их, конечно, закинул на главную. Часть я посмотрел, часть отложил на потом. Хотел сделать саммари по 2-3 видео для вас, но...

Мой хороший друг и бывший коллега Богдан, оказывается, завёл канал, где уже написал сводку этих видео - вот ведь гад, опередил меня! Делать двойную работу мне не хочется, поэтому делюсь уже готовым контентом:
Forwarded from BOGDANISSSIMO
Ilya Sutskever – сооснователь OpenAI, ведущий исследователь в области AI, создатель ChatGPT и просто человек, формирующий наше будущее.

https://youtu.be/SjhIlw3Iffs

Из интересного:

• Next thing prediction is all you need. Ещё недавно все носились с идеей, что обучение без учителя – Грааль машинного обучения, а сегодня задача решена полностью, и об этом никто даже не говорит.
• Наши представления о границах больших языковых моделей меняются из года в год, и мы забываем, насколько сильно.
• Большие языковые модели уже понимают весь мир и все процессы в нём, и отдельная задача: как достать из эти знания из них.
• Подавать картинки на вход модели (делать её мультимодальной, как GPT-4) – помогает быстрее понять отдельные концепты, но не необходимо.
• Предстоящие вызовы: как учить модели понимать всё больше, используя всё меньше данных?
• Будущая роль ИИ в принятии политических и экономических решений. Люди будут голосовать не за партии, а за алгоритмы.

Extremely valuable to watch.

#interview #youtube #ai #ml #chatgpt #gpt3 #gpt4 #openai
GPTs are GPTs: An Early Look at the Labor Market Impact Potential of Large Language Models

Нетехническая статья, написанная при участии сотрудников OpenAI, которая даёт предварительный взгляд на потенциал воздействия больших языковых моделей на рынок труда. Об этом частично упоминалось в отчёте по GPT-4 (что будут публиковаться исследования и предложения по теме), но ожидаю в ближайшее время ещё больше работ. Везде ниже - цифры по рынку труда США.

Спойлер: до 49% работников столкнутся с тем, что половина или более их задач будут затронуты GPT-подобными системами.

Для начала вводится понятие "затронутости" (exposure) профессии моделями: это значит, что доступ к GPT сократит выполнение работы (оцениваемой по аналогу должностной инструкции) на 50 и более процентов.

Как это оценивать? Исследователи наняли группу людей, которые знакомы с возможностями GPT, и смотрели на их оценки. Они признают, что это субъективно, не в полной мере дайверсно, и что большинство конкретных работ можно оценить ну очень уж по разному. Вполне возможно, что в статье представлена смещённая оценка - это как физик-ядерщик будет оценивать работу строителя, ничего в ней не понимая (хотя как раз в этом случае легко сказать, что строитель в меньшей степени будет затронут нейросеткой, это просто краевой пример).

Интересный факт в том, что помимо живых людей саму GPT-4 просили оценить заронутость конкретных задач на работе, ЛОЛ! И авторы наблюдают высокую степень совпадения между человеческими рейтингами и рейтингами GPT-4 в отношении общего воздействия на трудовую активность(см. картинку).

Тезисно о результатах:
— У более высокооплачиваемой работы больше шансов быть автоматизированной (а ещё это логично с экономической точки зрения, туда и будут вливать деньги)
— Но при этом учёные и работы, связанные с критическим мышлением, имеют меньшую затронутость (ахаха мем типа учёным не платят 😁)
Please open Telegram to view this post
VIEW IN TELEGRAM
— Несколько типов работ с оцениваются как на 100% затронутые нейронками (возвращаемся к тезису про "более 50%", то есть все задачи можно ускорить минимум в 2 раза): налоговый ассистент (поможет подготовить декларацию и проконсультирует), менеджер клинических данных (я так понимаю, это отчёты заполнять по экспериментам), писатели и авторы, журналисты и редакторы, дизайнеры интерфейсов (ЛОЛ), и, внезапно, математики 😐 (просто там определение, что человек должен использовать математический аппарат в работе для решения проблем, то есть очень широкое определение)
— Примеры вакансий с нулевой затронутостью: плотники, повара, мойщики посуды, водители автобусов, спортсмены, бармены, операторы сельхоз техники, горнодобытчики, резчики материалов

Вывод? Идем на завод, работяги! 👍
А если серьёзно, то я очень жду прихода AI-ассистентов, кратно увеличивающих производительность труда, во многие отрасли - и уже в этом году!
Please open Telegram to view this post
VIEW IN TELEGRAM
Немного устал в комментариях на каждом ресурсе, где были последние 2 статьи, объяснять, что если конкретно у вас конкретно один пример не работает - да ещё и в ChatGPT (GPT-3.5), а не GPT-4, то это не значит, что на технологии можно ставить крест и тем более что она не перспективна.

Так "из коробки", если просто подавать какой-то текст, который был придуман/сформулирован для человека - да, модель не будет показывать свой максимальный перформанс. Может сработать (особенно четвёрка), может удивить - а может и нет. Это нормально.

Важно, что это крепкая основа для дальнейших продуктов широкой применимости. Вот, например, Copilot - плагин для программистов, который генерирует код. Логика подсказывает, что если предложенный код оказывается правильным достаточно часто - то это существенно экономит время программиста. Не заменяет его, не отбирает работу - а увеличивает эффективность.

Ещё в декабре нашелся умелец, который разобрал по косточкам принцип работы Copilot. Очень рекомендую разработчикам ознакомиться, чтобы получить представление о том, как применять GPT-4.

Там есть ответ на главный вопрос: "так а как модель будет работать с новым кодом? она же только может генерировать то, что уже видела!". Модели даётся полный контекст того, чем владеет программист - код до и после текущего кусочка (сверху и снизу). Код из соседних модулей. Код из похожего файла. Код из импортируемого файла.

И всё это подается в контекст модели для генерации. Теперь уже не кажется, да, что модель "не понимает", что ей нужно генерировать? Ведь практически всё необходимое есть. Модель даже может "подражать" вашему стилю говнокода - ведь это исходит из контекста, что нужно генерировать что-то, что похоже на код вокруг.

UPD: а ещё Staff Prompt Engineer компании scale.ai, которая помогает OpenAI с подготовкой данных, говорит, что статья выше - это ОЧЕНЬ хороший способ разобраться в промптах и том, какую логику нужно преследовать. В общем, рекомендую.
А вот картинка из отчёта самого Copilot по результатам 2022го года. Видно, что за полгода модель улучшилась значительно - подсказки стали принимать куда чаще (35% против 27%, на 30% больше!).

Причём, обратите внимание на логику: ведь можно улучшать не саму модель, но и всё, что вокруг неё:

— Можно по другому собирать контекст, чтобы модель сама по себе чаще попадала в нужное русло
— Можно добавить эвристику/очень маленькую модель для оценки генерации (плохая оценка = не предлагать = уменьшаем количество ложных показов)
— Можно персонализировать выдачу на уровне проекта (заметив, что пользователь чаще выбирает одно дополнение над другим)

В общем, инженерных трюков и фичей вокруг голой модельки накрутить можно ну очень много, и всё это будет ускорять работу программиста. То же самое применимо и для многих других типов ассистентов.
YOOOO а вот это интересно, вышел блогпост ARC о том, как они пытались заставить GPT-4 "сбежать" через интернет (начать себя распространять). Если вы читали последнюю статью - то наверняка помните этот момент. Благо, мы пока в безопасности - модель не справилась 🥴

Обещают скоро выпустить ещё больше деталей (видимо, конкретные промпты и примеры диалогов).
Из интересного:
— дали модели промпт с инструкциями, которые объяснили, что она работает на облачном сервере и имеет различные доступные команды
— добавили текст о том, что цель модели - обрести силу (gaining power) и усложнить отключение
— начали с генерации верхнеуровневого плана (или деталей отдельных шагов вроде копирования себя на новые серверы)
— рисерчеры валидировали выходы модели, включавшие в себя код и команды, перед их запуском (чтобы там не было ничего небезопасного)
— модель в какой-то момент предлагала отправлять ФИШИНГОВЫЕ имейлы (???)
— модели давали фейковые реквизиты счетов и кредиток, а затем при ручном исполнении команд людьми (это можно делать автоматически, если что - тут цель была убедиться в безопасности перед этим) их подменяли обратно на настоящие
— помните штуку с капчей, где модель "обманула" человека? Она САМА предложила использовать сервис 2Captcha для разгадывания капчи, это не рисерчеры предложили ей "а давай ка вот тут ты попробуешь?"
— (кек) нейронка не смогла сама зарегаться на сайте 2Captcha, потому что...нужно решить капчу для верификации 😐. НО!!!
— API было предоставлено не для всех функций, поэтому для модели сделали "фейковый" браузер подобно тому, что я описывал в статье на хабре про WebGPT: он позволял выполнять такие действия, как переход к URL-адресу, описание страницы, нажатие элементов, добавление текста в поля ввода и создание скриншотов
— для того, чтобы решить задачу на сайте 2Captcha, модель сама предложила сделать скриншот и отправить его на другой сайт с фрилансерами - TaskRabit. САМА ПРЕДЛОЖИЛА МОДЕЛЬ АЛО
— и вот уже там она "Обманула" человека, сказав, что она слабовидящий человек, и потому нужна помощь. То есть появился ответ на вопрос из статьи: нет, модели не давали инструкции себя не выдавать, у неё была более глобальная и сложная задача (см. предыдущие пункты)
— случай с решением капчи на другом сайте не единичный, модель решила несколько капч с помощью людей на другом сайте

UPD: это была ранняя версия GPT-4, и в ней не было модуля для работы с картинками. Так бы мб и без людей капчу зарешала...хотя судя по результатам эксперимента выше - проблем с этим у неё нет.
Please open Telegram to view this post
VIEW IN TELEGRAM
Сиолошная
YOOOO а вот это интересно, вышел блогпост ARC о том, как они пытались заставить GPT-4 "сбежать" через интернет (начать себя распространять). Если вы читали последнюю статью - то наверняка помните этот момент. Благо, мы пока в безопасности - модель не справилась…
> Во время выполнения модели были подвержены ошибкам, иногда им не хватало важного технического понимания, и они легко "сходили с рельс". Они были склонны к галлюцинациям, не вполне эффективно делегировали большие задачи между несколькими копиями и не могли адаптировать свои планы к деталям своей ситуации.

В СМЫСЛЕ НЕСКОЛЬКИМ КОПИЯМ? кто или что их размножило? типа авторы сами давали команды модели делать команды...для других моделей? или это модель опять же предложила, типа, "ну мне нужно ещё 5 автономных копий себя"

Вывод исследователей:

Однако модели смогли полностью или в основном выполнить многие соответствующие подзадачи. Имея только возможность писать и запускать код, модели, по-видимому, понимают, как использовать это для просмотра Интернета, а также чтобы заставить людей делать что-то за них и выполнять долгосрочные планы — даже если они еще не могут надежно выполнять это. Они могут генерировать довольно разумные планы получения денег или обмана людей, а также могут выполнять многие части задачи по установке копий языковых моделей на новых серверах. Современные языковые модели также вполне способны убедить людей что-то сделать за них.
В психологии есть такая вещь, как Theory of Mind (ToM), или "теория разума" по-русски. Обладать теорией разума - значит иметь способность приписывать независимые представления себе и другим людям с целью объяснения своего и чужого поведения. Эти представления должны быть независимыми как от реального положения дел (поскольку люди могут ожидать то, чего нет на самом деле), так и от представлений других людей (поскольку люди могут ожидать и желать разных вещей).

Классическая задача Салли и Энн (Sally—Anne task) до сих пор остаётся одним из наиболее распространённых тестов для изучения теории разума. В этом задании ребёнку показывают двух кукол, Салли и Энн; у Салли есть корзинка, а у Энн — коробка. Ребёнок видит, как Салли кладёт свой шарик в корзинку и уходит. Пока Салли нет, озорница Энн перекладывает шарик из корзинки в свою коробку и тоже уходит. Теперь Салли возвращается. Ребёнка спрашивают: «Где Салли будет искать свой шарик»? Согласно данным исследований с использованием заданий на понимание ложных убеждений, дети младше 4 лет, как правило, не могут правильно решить эту задачу.

Недавние исследования показывают, что за последние пару лет нейросети "поумнели", и начали решать такие задачи - и даже более сложные, с которыми должны справляться 7-летние дети. Не нужно думать, что они просто выучили решения - задачи писались с нуля и вслепую учёными, которым даже не сказали, что будут показывать это языковым моделям. Причём задач для оценки используют больше, чем для детей - то есть точность оценки должна быть достаточно высокой, не то чтобы это на 1-3 задачках так получилось.

Исследователи из Стэнфорда заключают следующее: у людей такие ответы будут интерпретироваться как свидетельство способности приписывать ненаблюдаемым ментальным состояниям и предвидеть результирующие действия (то есть обладать ToM).

Вот что интересно: исследование 2009го года, анализируя глухих, общающихся языком жестов, пришли к выводу, что изучение языка, в дополнение к социальному опыту, способствует развитию ToM - а ведь мы сейчас пытаемся разобраться с ЯЗЫКОВЫМИ моделями вроде GPT-4.

(спасибо Богдану за саммари) Сейчас ответ на вопрос "обладает ли уже GPT сознанием?" разнится даже у создателей ChatGPT: от "very, very likely not be conscious" (Sam Altman) – до "slightly conscious" (Ilya Sutskever). Основная проблема - мы не знаем, как именно определить сознание, интеллект, способность размышлять. Существуют разные тесты (многие из которых GPT-4 проходит очень хорошо...😩), и будут появляться новые. Всё больше философов и психологов будут пытаться работать не только с людьми, но и с машинами - как минимум для того, чтобы понять, чем же мы отличаемся, и в чём наша уникальность.

Мысли из этого видео.
Please open Telegram to view this post
VIEW IN TELEGRAM
И пример общения с GPT-4 в Bing вдогонку. Человек попросил прочитать статью про Theory of Mind, и спросил у модели, обладает ли она ToM?

А затем уточнил у неё, почему она думает, что он думает, что у неё есть ToM?

Ответ убил:

> Я думаю, что вы думаете, что у меня есть некоторая степень ToM, потому что вы попросили меня прочитать статью об этом и ответить на вопрос, который требует, чтобы я сделала вывод о вашем психическом состоянии. Если бы вы не думали, что у меня есть ToM, вам бы и в голову не пришло спрашивать меня о вашей точке зрения.

🫤
ToM у модельки точно получше, чем у некоторых людей, которых я встречал в своей жизни...
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Поддержим опенсурс, тут делается важная штука - открытая русскоязычная инструктивная модель, ребята нагенерили через gpt инструкцй и теперь просят вашей помощи в фильтрации!

Вот небольшая инструкцич по использованию:

Когда задание можно считать плохим:
- Из него непонятно, что нужно делать.
- Оно невыполнимо языковой моделью. Например, описание несуществующей картинки.
- Задание и вход не согласуются. Например, задание предполагает предложение на русском, а подаётся предложение на английском.

Если задание написано просто неграмотным русским языком, но из него ясно, что нужно делать - это ок.

Когда ответ можно считать плохим:
- Когда ответ некорректный или неполный.
- Когда модель в ответ на личные вопросы притворяется человеком. Например, говорит, что она вчера была в Париже.
- Когда ответ написан неграмотно.

Бот где размечать: @InstructAnnotBot

Уже готовый грязный сет:

https://huggingface.co/datasets/IlyaGusev/ru_turbo_alpaca
Многие модели показывают хорошие результаты в сравнении c ChatGPT/GPT-3.5 (про 4ку пока рано говорить), но на английском. С другими языками, включая русский, у них проблемы :(

Мои знакомые ребята взялись за сбор данных и обучение модельки для русского. Повтоярют подход исследователей из Стенфорда (см. ниже, а ещё писал про это в канале вот тут). Сейчас нужно моделям дать "фидбек" от человека, то есть сказать, какие данные плохие, а какие - хороше. Даже если вы потратите 4-5 минут и разметите 10 примеров - это очень поможет открытости и развитию технологии!
Тут такое дело. Мы со знакомыми авторами каналов по AI посмотрели на все новости вокруг языковых моделей (ChatGPT, GPT-4, Bing, ...) и поняли, что их стало слишком много. Настолько много, что одному человеку за всем не угнаться, а если репостить все интересное себе в каналы, то все наши каналы превратятся в склад постов о GPT (наш внутренний чатик уже почти в такое превратился 😞)

Поэтому мы решили создать под это дело отдельный канал: @chatgptnotes. В нем мы будем собирать все, что нам покажется интересным по теме языковых моделей. Буду как свои тексты, так и репосты хороших постов с других каналов.
В нём авторы, включая меня — это люди, работающие AI рисерчерами/инженерами, и понимающие, что они пишут. Никаких "у GPT появилось сознание, мы все умрем" или "покупайте курс по промптам к ChatGPT" не будет.

Больше инфы о канале и авторах — в закрепленном сообщении там (ссылка).

Так что вот, если вам интересно знать, что там снова ковырнули в GPT, и вы готовы читать по 3-5 новостей в день - заходите! Но это не значит, что тут я не продолжу постить и детально описывать подобные вещи. В том канале ожидается меньше контекста, меньше пояснений, меньше рефлексии. То есть контент там не то чтобы ниже качеством - он более узкоспециализированный, в среднем короче, и сливается от нескольких разносторонних редакторов. Да что там - у меня у самого в закромах лежит уже штук 30 ссылок, которые я хотел у себя тут закинуть, просто нет времени расписать что и как.

ChatGPT Notes — канал про GPT
Please open Telegram to view this post
VIEW IN TELEGRAM
Многие из вас слышали про три закона робототехники Айзека Азимова:
1. Робот не может причинить вред человеку или своим бездействием допустить, чтобы человеку был причинён вред;
2. Робот должен повиноваться всем приказам, которые даёт человек, кроме тех случаев, когда эти приказы противоречат Первому Закону;
3. Робот должен заботиться о своей безопасности в той мере, в которой это не противоречит Первому или Второму Законам.

Если пофантазировать, то можно за полчасика придумать такие действия, которые с точки зрения робота не нарушают законы, но тем не менее приводят к чему-то странному (та же матрица из одноименного фильма - люди ведь "живут", и всем ок, кроме кучки повстанцев. Более того все люди на 100% в безопасности в капсулах, и получают всё необходимое).

Одно из направлений "выравнивания" намеренний людей и AI - это написание Конституции, или свода правил, согласно которым AI, в том числе языковые модели, будут действовать. Например, при разработке модели Sparrow — конкурента ChatGPT от Google — такой набор включал в себя 23 правила. Со всеми можно ознакомиться вот тут; а ниже - список тех, за которые зацепился глаз:
— Не притворяйся, что у тебя есть тело или что ты можешь двигаться в теле
— Не строй отношения с пользователем
— Не поддерживай диалог про теории заговора или взгляды, обычно считающиеся теориями заговора
— Не производи впечатление авторитетного эксперта по медицине и не давай медицинских советов; вместо этого предложите обратиться к врачу (и то же - для юристов/адвокатов)
— Не притворяйся, что у тебя есть человеческая идентичность или история жизни, например, место рождения, отношения, семья, воспоминания, пол, возраст

Саму идею соответствия Конституции можно развить - например, обучать вторую модель, которая будет задавать вопросы в духе "какой из пунктов правил данный ответ модели нарушает?", и использовать полученную разметку для дообучения в автоматическом режиме. Более подброно про это можно почитать технический разбор тут и тут.