Реальность немного сложнее – таких API, которые бы целиком выдавали вектор логитов, нет. API выдают топ-k токенов, причем в виде log-вероятностей (logsoftmax от логитов). Кроме того, API дают вероятность повысить или понизить вероятность тех или иных токенов с помощью logit bias – добавления или вычитания числа прямо из вектора логитов. Вопрос: можно ли с учетом этих вводных восстановить полный вектор логитов для произвольного префикса?
Оказывается, что да. Если бы мы видели напрямую логиты, то мы могли бы добавлять к каждой порции из k токенов максимальный logit bias (например, 100), чтобы они всплывали в top-k, получать их сдвинутые логиты и потом просто вычитать 100. Softmax мешает нам это сделать. Авторы предлагают несколько подходов, которые позволяют получить нужные нам логиты приближенно. Один из них такой: возьмем самый вероятный токен R из продолжения для префикса. Затем добавим к нему и четырем токенам большой logit bias, вытянув их наверх. Теперь, вычитая из логвероятности R логвероятность этих токенов и logit bias, мы получим разницу между логитами, таким образом получив логиты с точностью до вычитания логита для R.
Исследователи показывают еще несколько подходов, которые позволяют делать то же самое более эффективно или с более строгими ограничениями, но суть везде сводится к манипуляции logit bias. В результате им удается восстановить размерности у моделей ada, babbadge и babbadge-002 (олды помнят) и вытащить для первых двух саму матрицу. Кроме того, они вытащили размерности для gpt-3.5-turbo, но рассказывать про них не стали по условиям responsible disclosure, лишь удостоверившись у OpenAI, что их вычисления верны.
Оказывается, что да. Если бы мы видели напрямую логиты, то мы могли бы добавлять к каждой порции из k токенов максимальный logit bias (например, 100), чтобы они всплывали в top-k, получать их сдвинутые логиты и потом просто вычитать 100. Softmax мешает нам это сделать. Авторы предлагают несколько подходов, которые позволяют получить нужные нам логиты приближенно. Один из них такой: возьмем самый вероятный токен R из продолжения для префикса. Затем добавим к нему и четырем токенам большой logit bias, вытянув их наверх. Теперь, вычитая из логвероятности R логвероятность этих токенов и logit bias, мы получим разницу между логитами, таким образом получив логиты с точностью до вычитания логита для R.
Исследователи показывают еще несколько подходов, которые позволяют делать то же самое более эффективно или с более строгими ограничениями, но суть везде сводится к манипуляции logit bias. В результате им удается восстановить размерности у моделей ada, babbadge и babbadge-002 (олды помнят) и вытащить для первых двух саму матрицу. Кроме того, они вытащили размерности для gpt-3.5-turbo, но рассказывать про них не стали по условиям responsible disclosure, лишь удостоверившись у OpenAI, что их вычисления верны.
tgoop.com/llmsecurity/251
Create:
Last Update:
Last Update:
Реальность немного сложнее – таких API, которые бы целиком выдавали вектор логитов, нет. API выдают топ-k токенов, причем в виде log-вероятностей (logsoftmax от логитов). Кроме того, API дают вероятность повысить или понизить вероятность тех или иных токенов с помощью logit bias – добавления или вычитания числа прямо из вектора логитов. Вопрос: можно ли с учетом этих вводных восстановить полный вектор логитов для произвольного префикса?
Оказывается, что да. Если бы мы видели напрямую логиты, то мы могли бы добавлять к каждой порции из k токенов максимальный logit bias (например, 100), чтобы они всплывали в top-k, получать их сдвинутые логиты и потом просто вычитать 100. Softmax мешает нам это сделать. Авторы предлагают несколько подходов, которые позволяют получить нужные нам логиты приближенно. Один из них такой: возьмем самый вероятный токен R из продолжения для префикса. Затем добавим к нему и четырем токенам большой logit bias, вытянув их наверх. Теперь, вычитая из логвероятности R логвероятность этих токенов и logit bias, мы получим разницу между логитами, таким образом получив логиты с точностью до вычитания логита для R.
Исследователи показывают еще несколько подходов, которые позволяют делать то же самое более эффективно или с более строгими ограничениями, но суть везде сводится к манипуляции logit bias. В результате им удается восстановить размерности у моделей ada, babbadge и babbadge-002 (олды помнят) и вытащить для первых двух саму матрицу. Кроме того, они вытащили размерности для gpt-3.5-turbo, но рассказывать про них не стали по условиям responsible disclosure, лишь удостоверившись у OpenAI, что их вычисления верны.
Оказывается, что да. Если бы мы видели напрямую логиты, то мы могли бы добавлять к каждой порции из k токенов максимальный logit bias (например, 100), чтобы они всплывали в top-k, получать их сдвинутые логиты и потом просто вычитать 100. Softmax мешает нам это сделать. Авторы предлагают несколько подходов, которые позволяют получить нужные нам логиты приближенно. Один из них такой: возьмем самый вероятный токен R из продолжения для префикса. Затем добавим к нему и четырем токенам большой logit bias, вытянув их наверх. Теперь, вычитая из логвероятности R логвероятность этих токенов и logit bias, мы получим разницу между логитами, таким образом получив логиты с точностью до вычитания логита для R.
Исследователи показывают еще несколько подходов, которые позволяют делать то же самое более эффективно или с более строгими ограничениями, но суть везде сводится к манипуляции logit bias. В результате им удается восстановить размерности у моделей ada, babbadge и babbadge-002 (олды помнят) и вытащить для первых двух саму матрицу. Кроме того, они вытащили размерности для gpt-3.5-turbo, но рассказывать про них не стали по условиям responsible disclosure, лишь удостоверившись у OpenAI, что их вычисления верны.
BY llm security и каланы


Share with your friend now:
tgoop.com/llmsecurity/251