Как стать автором
Обновить

Комментарии 16

Всегда интересовало как рождаются названия. Вот Strawberry ну никак не ассоциируется у меня с глубокими математическими исследованиями.

Просто прототип вылез в интернет в первый раз и начал обучение на клубничке. Разработчикам стало понятно, как назвать проект.

НЛО прилетело и опубликовало эту надпись здесь

Когда появились ранние большие языковые модели стали проводить разные тесты на их способность рассуждать. И очень быстро обнаружилось что они не умеют распознавать буквы, потому что при их обучении текст разбивается не на буквы, а на токены, они просто не видят букв. Популярной к этому иллюстрацией был вопрос “Сколько букв r в слове strawberry?”, модели во многих случаях сразу отвечали неправильно. Потом придумали заставлять модель думать по шагам “Подумай, как можно узнать сколько букв в слове и скажи сколько букв r в слове strawberry?”. На что модель отвечала что-то в духе “Чтобы узнать сколько букв r в слове strawberry нужно разбить слово на буквы и посчитать их. Давай посчитаем s t r a w b e r r y. В слове strawberry три буквы r”. Очевидно, что теперь OpenAI пытается научить модель самостоятельно применять промежуточные шаги, но при этом исследовать не один путь, а целое дерево возможных решений, примерно, как они делали с AlphaZero.   

М-да... с буквами в словах толком не разбирает..., вот это и есть уровень "глубоких исследований" ))

Где-то слышал, что это проблема всех таких моделей, они же токнизируют текст по словам, есть модели которые токинизируют по буквам, но если бы чат работал так то ебы обучали бы в десятки раз дольше. В случае с такими моделями как gpt это можно преодолеть только генерируя большие искуственные дата сеты где куча слов переставленных задом на перёд

По моему опыту, проблема не только с буквами, а просто во всем (использую ChatGPT 4o). Даешь данные, говоришь построй диаграмму. В одном случае строит, в других выдает текст, таблицу, код, но только не диаграмму. Или может выдать "ссылку на диаграмму", которая никуда не ведет. При этом модель всегда уверена, что это и есть диаграмма, так и пишет - "Вот диаграмма:". Повторные запросы в 90% случаев ни к чему не ведут.

Со здравым смыслом огромные проблемы просто. Вот такие штуки выдает постоянно:

Примеры позитивных отзывов:
• Отзыв 6: "Гибкий рабочий режим, можно работать из дома. Приятный офис."
• Отзыв 10: "Вакансия на hh.ru. Не указали размер предлагаемого оклада."
• Отзыв 14: "Застойная компания. Даже простые проекты реализуются годами."

Из массива текста в сто килабайт берет для анализа только первые 10%. Это еще заметить надо. Если пишешь "используй весь массив данных с такого-то по такой-то" - может выполнить, а может и нет.

В общем, пока нет ни здравого смысла, ни стабильной работы. Посмотрим на ChatGPT 5 - может получше будет.

Из массива текста в сто килабайт берет для анализа только первые 10%.

Это через АПИ или чат? Чат сильно контекст режет. А вообще для перекапывания груд текста лучше использовать сlaude

Общение через чат, текстовый массив - в загружаемом текстовом файле.

О, так это вы отзывами через ChatGPT занимаетесь?) Смешно читать, когда в карточке товара такие отзывы, сразу понятно, какой товар покупать НЕ следует))

:-))) Отзывы не пишем)

Следующий вопрос, в целом, не к Вам, но хочу узнать на него ответ от людей, которые увидят этот комментарий и разбираются в работе токенайзеров, архитектуре GPT, LLM и прочего. Как языковая модель разделяет слова на буквы или числа на цифры? Во всех токенайзерах что я видел, токены для чисел/цифр разделеляются на группы либо длиной в 1 символ, либо рандомно, либо в 3 символа (например 72628930). Если разделение на цифры ещё можно обосновать тем, что модель запомнила разбиения вплоть до тысячи, то как это работает со словами?

Ниже очень упрощенные рассуждения для трансформеров обыкновенных.

Для начала упомянем, что «голова» модели содержит N нейронов, которые соответствуют длине словаря токенов.

Сама модель работает только с токенами (векторами), а их для нее готовят токенайзеры.

При этом, чем более длинный участок данных представлен токеном, тем длиннее контекст, с которым работает модель.

То есть нам надо решить задачу оптимизации: найти достаточно большое N, чтобы хорошо покрыть имеющийся корпус текстовых данных, но достаточно маленькое, чтобы модель могла успешно обучаться и иметь достаточно данных для каждого токена, чтобы связать его с остальными.

Если память не изменяет, то эмбеддинги (то есть словарь токенов) для GPT-3.5 и ранней GPT-4 (`text-embedding-ada-002`) имели чуть больше 50 тысяч токенов (это для всех языков мира).

Потом потыкав в модельки и собрав типичные их огрехи, правила формирования токенов немного улучшили: например, появились специальные токены отступов для Python, что сильно улучшило генерацию кода.

Спасибо за ответ, похоже вопрос был задан немного неправильно и выглядит как вопрос про токенизацию в целом. Однако, я хотел узнать про то как модели делят токены на другие токены в виде единичных символов (буквы, цифры), например условный " computer" (с пробелом вначале) токенайзер может представить в виде 1-го токена, ну например [73529, ]. Но затем модель идеально разбивает одно слово (в данном случае один токен) на [" c", " o", " m", " p", " u", " t", " e", " r"] (большое кол-во токенов кодирующих букву из алфавита и пробел для разделения). Работает это не только на таких словах, но и на большом рандомном наборе букв. Неужели модели специально обучают навыку разбиения всех токенов из словаря на буквы?

скорее всего в таких больших объёмах данный такие задачи просто попадались и вот он их может выполнять

да, у меня тоже такая первая мысль была. Причем, как мне кажется, такие названия в итоге и запоминаются лучше, чем если бы оно было каким-то обычным/подходящим под тему

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Другие новости

Истории