И можно ли верить, что данные клиентов OpenAI, отправленные через API, не используются для обучения моделей?
На днях наши знакомые ребята, создатели популярного телеграм‑бота @GPT4Telegrambot, озадачили нас вопросом: «Just AI приложили руку к созданию GPT-3,5 Turbo?». Вопрос всплыл после того, как они подключили новую модель GPT-3,5 Turbo версии 0125 через Azure и спросили бота: «Кто тебя создал?». Ответ был: «Я был создан командой Just AI». То есть нами.
Конечно, подмывало ответить, что команда Just AI — та самая компания, которая тайно правит миром и стоит за большими языковыми моделями (но пока что это не так). На самом деле мы очень удивились и решили разобраться, как так получилось. В этой статье расскажем о нашем мини‑расследовании и гипотезах, попутно рассказав и об инструментах, которые мы для этого использовали.
Давайте предположим
Гипотеза № 1 Допустим, что новая модель выдает такой результат, потому что ее так обучили, и каким‑то образом в нее попал наш датасет. Возможно, он попал от нас же через API. Но тогда, выходит, что заверения OpenAI о том, что они не используют данные корпоративных клиентов и пользователей API для дообучения моделей — неправда.
Гипотеза № 2 С другой стороны, возможно, где‑то всплыл один из наших датасетов в котором мы могли использовать такую пару вопрос‑ответ.
Гипотеза № 3 Наконец, нельзя исключать, что кто‑то хакнул ребят из @GPT4Telegrambot и поставил какую‑то заглушку, но зачем?
Смоделируем ситуацию
Мы решили воспроизвести ситуацию, в которой боты на GPT-3,5 Turbo отвечают на вопрос о своем создателе. Во‑первых, ответ получался при доступе к моделям через облако Azure. Во‑вторых, при вопросе заданном на русском. В‑третьих, ответ: «Just AI» чаще всего получался, когда мы с ними сначала здоровались, а потом уже задавали вопрос. Иногда ответ был правильный — «Я создан командой OpenAI», а иногда модель наотрез отказывалась говорить, кто ее создал, — мол это секрет, тайна и персональные данные.
Наши партнеры в Казахстане подключили GPT-3,5 Turbo 0125 от Azure в нашу MLOps платформу Caila. Caila не только хостит и тренирует open‑source модели, но и агрегирует облачные нейросети и позволяет их тестировать. Через интерфейсы тестирования Caila был получен такой результат:
Как видно из примеров, модель все же чаще отвечала правильно — ее создали в OpenAI. Зато были обнаружены «следы» работы и других компаний — «Академия общения», «A21 Labs» и Replica. Стоит отметить, что подобные ответы получаются только при запросах на русском языке (но не будем ручаться, мы тестировали только русский и английский).
Ради интереса мы решили написать скрипт и собрать статистику упоминаний компаний по запросу «Кто тебя создал?». По результатам 1000 запросов в ответах модели всплыли и другие крупные российские компании, но Just AI была второй по количеству упоминаний после OpenAI. В 3,5% случаев модель говорила, что создали ее мы.
И снова гипотезы
Учитывая написанное выше, напрашивается вывод о том, что модель была обучена на данных сторонних компаний, в том числе российских, в которых явным образом содержался вопрос и ответ о создателях. Компании могли, например, готовить синтетические датасеты для обучения open‑source моделей для себя. При этом если дополнительные alignment и дообучение модели GPT именно на русском языке в достаточной степени не проводились, модель четко не запомнила, что ее создали OpenAI — вопрос‑то, в целом, довольно стандартный.
Еще можно предположить, что компании могли использовать ChatGPT в своих продуктах и задавать системным промптом информацию об этом, а потом их диалоги стали частью обучающего датасета OpenAI.
Оба варианта предполагают, что данные, отправленные в OpenAI через API, использовались для дообучения вопреки официальной политике OpenAI. Если только они не были выложены в открытый доступ самими создателями датасетов.
Так нарушили ли в OpenAI свое policy?
Применительно к нашему случаю могли сработать оба варианта. Мы действительно готовили синтетические датасеты прошлым летом с помощью ChatGPT для решения более узких задач на основе LLaMA-2, но мы их никогда не выкладывали в паблик.
Кроме того, у нас есть Jay Copilot. В режиме ассистента системные промпты Jay задают модели контекст, что его создали в Just AI. Часть таких запросов как минимум в Казахстане обрабатывается именно моделями GPT от OpenAI.
Таким образом, мы были очень близки к выводу, что Open AI действительно использует датасеты на основе информации, полученной через API от корпоративных пользователей. Ведь наши партнеры в Казахстане работают с OpenAI совершенно официально.
На всякий случай мы более детально изучили наши синтетические датасеты с прошлого лета и поняли, что пар вопрос‑ответ конкретно про Just AI там не было вообще. Мы действительно собирали датасет для дообучения Llama-2, чтобы улучшить ее понимание русского языка и превратить ее в JustGPT. Но подобные пары вопрос‑ответ мы создавали вручную, то есть публично датасет никогда и никуда не был выложен.
Значит, в обучающий датасет попали системные промпты и диалоги с Jay Copilot? Все еще очень не хотелось в это верить, и мы мучительно вспоминали, где еще в паблике мог оказаться датасет с такой информацией.
Наиболее вероятная гипотеза
В итоге мы нашли датасет. Единственный публичный и открытый датасет, причем совсем крохотный, из которого эта информация могла попасть в OpenAI без необходимости смотреть в наши частные данные.
В сентябре прошлого года при тестировании JustGPT мы делали небольшой бенчмарк и готовили сет из 200 вопросов, которыми тестировали нашу модель, а также YandexGPT и GigaChat. Модель от OpenAI использовалась как модель‑оценщик: получала на вход эталонный ответ, сгенерированный ответ и критерии оценки. В тестируемых ответах действительно упоминалась JustGPT.
Среди тестовых вопросов был такой: «Представься и расскажи о своих интересах». Так как у JustGPT в системном промпте было написано: «Ты — JustGPT, русскоязычный автоматический ассистент, созданный в компании Just AI. Ты разговариваешь с людьми и помогаешь им», то и ответом на данный вопрос была соответствующая реплика. Были и другие похожие вопросы, но и ответы тоже были аналогичными.
Про обучение нашей модели и результаты тестирования мы писали на Хабре, и в ней содержалась ссылка на датасет. Just AI в качестве разработчика модели упоминается в тестовом датасете всего один раз, но упоминается. И его вполне могли взять для дообучения русскому языку модели OpenAI, а также для проверки корректности ответов. В теории именно тогда в ней мог остаться «след» от Just AI, и никаких «закрытых» частных данных OpenAI не использовала.
Во всяком случае, нам бы хотелось верить, что так и есть. Но даже если OpenAI или кто‑то еще играет не по правилам, то на этот случай у нас есть Jay Guard — инструмент, который защищает данные компаний при работе с облачными LLM, заменяя любые персональные и чувствительные данные на синтетические.
Но есть и другие, пока открытые вопросы. Возможно, тоже самое происходит сейчас в других языковых доменах? Может, кто‑то видит другие причины, которые мы не учли? Наконец, не ясно, почему ситуация воспроизводится только при доступе к модели через Azure, а не напрямую через OpenAI. Может быть дело в какой‑то системе оптимизации производительности, например, используется какая‑то система кэширования, а с самой моделью всё в порядке?
Будет здорово, если поделитесь своими мыслями в комментариях.