В целом это как раз о том, что "уверенность" в данном ответе и склонность "галлюцинировать" это тоже некоторые параметры модели, которые можно а) учитывать при использовании; б) тюнить при обучении. Понятно, что б) большинству из нас доступно только в формате "подождать, пока компании с миллионами долларов закоманных в стойки с GPU обучат" :)
Но это опять же, другой (очень интересный!) вопрос: с одной стороны, происходит демократизация доступа к AI, c другой – чем крупнее модель, тем меньше компаний (а уж тем более – людей) могут её обучить при текущих технологиях, что концентрирует в руках этих компаний ещё больше... слово "power", мне кажется, подходит здесь лучше русских аналогов.
Я в целом согласен, что проблема "галлюцинирования" LLM-ок не достаточно подсвечена в статье, но всё-таки кажется, что дискуссия должна быть более равноправной. Автор потратил существенное время на подготовку поста, из уважения к нему я бы чуть тщательнее проверял свои аргументы :)
По сути ещё добавлю, что можно явным образом просить модель: 1) задавать уточняющие вопросы, если ей не хватает информации; 2) просить добавлять в конце сообщения степень её уверенности в данном ответе. Из-за природы LLM это тоже не является панацеей, но как приём использовать бывает полезно.
public static int NumLeadingZeroes(int x)
{
int y, m, n;
y = -(x >> 16);
m = (y >> 16) & 16;
n = 16 - m;
x >>= m;
y = x - 0x100;
m = (y >> 16) & 8;
n += m;
x <<= m;
y = x - 0x1000;
m = (y >> 16) & 4;
n += m;
x <<= m;
y = x - 0x4000;
m = (y >> 16) & 2;
n += m;
x <<= m;
y = x >> 14;
m = y & ~(y >> 1);
return n + 2 - m;
}
private static int[] _binaryApproximation = {
9, 9, 9, 8, 8, 8,
7, 7, 7, 6, 6, 6, 6, 5, 5, 5, 4, 4, 4, 3, 3, 3, 3,
2, 2, 2, 1, 1, 1, 0, 0, 0, 0
};
private static int[] _fixApproximation = {
1, 10, 100, 1000, 10000,
100000, 1000000, 10000000, 100000000, 1000000000
};
public static int IntLog10(int x)
{
int y;
y = _binaryApproximation[NumLeadingZeroes(x)];
if (x < _fixApproximation[y])
{
y = y - 1;
}
return y;
}
public static int DigitsCount(int x)
{
return IntLog10(x) + 1;
}
Сперва за константное время, без ветвлений, считаем число ведущих нулей в двоичной записи числа, по таблице находим аппроксимацию, при необходимости за один if её уточняем.
Если действительно нужна скорость — прячем в либу (написанную на C/C++), высовываем наружу только интерфейс DigitsCount и радуемся. Но в 99.999% случаев хватает подсчёта числа символов в строке :)
Хотя в реальном
Если сейчас все, кому не лень, пойдут через это ловить домены на халяву, лавочку могут быстро прикрыть и настоящие студенты в итоге лишатся этой возможности.
Ну, похоже, что компилятор видит, что этот цикл либо закончится с UB, либо return true, т.к. UB он имеет право заменить чем угодно — он пробует заменить return true, получает, что этот цикл всегда return true, радуется, оставляет только эту инструкцию.
Было бы очень хорошо, если бы можно было скачать эту книгу в формате типа epub, fb2, mobi. Будет большая радость для пользователей читалок.)
Пусть даже за деньги, почему бы и нет?
Спасибо за скрин, так понятнее!)
В целом это как раз о том, что "уверенность" в данном ответе и склонность "галлюцинировать" это тоже некоторые параметры модели, которые можно а) учитывать при использовании; б) тюнить при обучении. Понятно, что б) большинству из нас доступно только в формате "подождать, пока компании с миллионами долларов закоманных в стойки с GPU обучат" :)
Но это опять же, другой (очень интересный!) вопрос: с одной стороны, происходит демократизация доступа к AI, c другой – чем крупнее модель, тем меньше компаний (а уж тем более – людей) могут её обучить при текущих технологиях, что концентрирует в руках этих компаний ещё больше... слово "power", мне кажется, подходит здесь лучше русских аналогов.
Я в целом согласен, что проблема "галлюцинирования" LLM-ок не достаточно подсвечена в статье, но всё-таки кажется, что дискуссия должна быть более равноправной. Автор потратил существенное время на подготовку поста, из уважения к нему я бы чуть тщательнее проверял свои аргументы :)
По сути ещё добавлю, что можно явным образом просить модель: 1) задавать уточняющие вопросы, если ей не хватает информации; 2) просить добавлять в конце сообщения степень её уверенности в данном ответе. Из-за природы LLM это тоже не является панацеей, но как приём использовать бывает полезно.
Сперва за константное время, без ветвлений, считаем число ведущих нулей в двоичной записи числа, по таблице находим аппроксимацию, при необходимости за один if её уточняем.
Если действительно нужна скорость — прячем в либу (написанную на C/C++), высовываем наружу только интерфейс DigitsCount и радуемся. Но в 99.999% случаев хватает подсчёта числа символов в строке :)
Хотя в реальном
Ну, или их значения.
Пусть даже за деньги, почему бы и нет?
json.loads
и подобные.P.S. я сейчас отвечаю на вопрос, а не оправдываю его применение, если что.)