-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Расследование (LLM-research) #120
Comments
Хочу зафиксировать важный стейт, поскольку (как однажды в 2 часа ночи до меня дошло) мы говорим про метрики в разных смыслах, для меня метрика = то, чем мы измеряем качество / какие-то другие показатели (так, например, в аналитике используются MAU, CR, LTV). Токен — минимальная единица, которая получается после преобразования текста алгоритмами мо, токеном может быть: слово, часть слова, буква… |
@molivka , в целом, кажется, охватили большую часть вопросов. Ещё где-то (возможно, не здесь) важно разобраться с размером контекстного окна. |
есть кейс, когда пишешь бред + «язык» и получаются интересные варианты: https://gist.github.com/stewkk/ea58242ecd3ad1455024f64d9bc40124 https://gist.github.com/stewkk/3c411926c4451aba856fa3a40d38366c как фикс: собрать «словарь» из возможных названий для языков, и в случае отсутствия названия языка кидать ответ об ошибке (или перед ответом модели указать, что может быть бред) |
Кмк доп промпт тоже поможет, если несколько раз указать, что не надо нести бред))) (но вряд ли прям полностью) btw, мы с Сашей оказывается основали мисис по мнению |
го запретим mistral юзать латех? https://gist.github.com/stewkk/4b2b107ed87bbbb2affabed5241bb4f6 попросила без символов латеха и ответ точно из бз😳 https://gist.github.com/stewkk/38a6d0105d372ed944ef60ee50506297 |
С промтом стало намного лучше, если поправить близости, думаю, станет уже в чём-то полезно (реально полезно, если ещё заткнуть дыры в БЗ). |
Тест выборки близостей - ближайший ответ вообще не попал в контекст |
думаю, что пока что так происходит потому что это очень короткий вопрос, тут есть слово "язык", а "что", "такое" и "L_d" значения вообще не особо играют в семантике, поэтому он почти везде и выдается как близкий |
дополню: сейчас думаем как отойти от таких ситуаций, когда много мусорных фраз по типу «расскажи, мне, пожалуйста, ...», «объясни мне...» |
А как думаете сделать? Через "чёрный список": похожесть на бесполезные фразы, которые заранее есть в словаре? Наоборот, через "белый список" фраз, похожесть на которых указывает на значимость и необходимость оставить фразу? Или через умную модельку(с)? |
надо тестить какой вариант будет лучше (мне пока кажется, что проще собрать «мусорные» фразы, потому что фраз по теме может быть много) только не через модельку... |
вообще говоря - промпт не самый лучший, я не занимался исследованием этой темы. Так что его тоже можно будет потюнить, мб даст чуть прирост) а так - думаю надо сейчас фокусироваться именно на улучшении поиска близких |
я почитала про LLM, которые хороши с русским, можно пока попробовать заменить текущую модель на BGEM3FlagModel |
также, word2vec в полном смысле этого слова не подходит под наши задачи, тк с его помощью (что логично) сравниваются СЛОВА на «похожесть» |
также как альтернативный вариант, я пытаюсь (пока не выходит) обучить doc2vec, то же самое, что и word2vec, но можно сравнивать предложения-документы |
Проблемы
1. Плохо считается близость
Если посмотреть на то, какие вопросы подливаются в контекст
mistral
, то мне кажется, что близости (косинусные расстояния) считаются не точно, а раз так, то какой алгоритм по выбору похожих элементов из БЗ не выбирай, лучше не будет.Пример:
Оптимально брать
b[k]
с косинусной близостью0.5
, но кто сказал, что этот элемент, реально похож наtarget
? Вдругtarget = «Дик автомат»
,b[k] = «ДКА (детерминированный конечный автомат)»
,b[i] = «является ли язык Дика регулярным?»
,b[j] = «виды автоматов»
?Вывод: коммититься надо в подсчёт близких
2. Нет метрик качества
Относительно чего мы смотрим, что то или иное улучшение работает? Субъективное мнение, что «моделька выдаёт что-то похожее на правду»? А кто сказал, что это не случайность?
Метрика оценки качества нужна, причём их должно быть две:
Вывод: надо ввести метрики (сейчас формулирую)
3. Версия модели не фиксирована
Каждый раз используется
latest
модель, зачем? Я считаю, что лучше зафиксировать одну модель, так будет проще отслеживать прогресс и получим хоть какой-то детерминизм (например:latest_prev
имеет одну архитектуру, которая обращает внимание на первую часть предложения, аlatest
— другую, которая обращает внимание на вторую часть предложения, пример нереалистичный, но показательный)Вывод: фиксируем версию mistral
4. Не оцениваем влияние новых вопросов
Сейчас мы просто вливаем вопросы, не трекая явно как какой вопрос влияет на работу системы. Кажется, что нужно это отслеживать, причём с двух строн:
mistral
Это может помочь в определение того, что делает вопрос «плохим»
Вывод: нужны автотесты
Лёша писал про них и делает их, метрику можно взять как количество вхождений важных слов и терминов в правильном и проверяемом предложении (допишу нормально)
Идея как получить больше юзер подобных вопросов тут (просто я при составлении датасета сама переформулировала без нейронки)
5. Не работаем с промтами к
mistral
Вообще не работаем с промтами, а это ещё одна возможность улучшить ответы, задали один (вроде как) и всё.
Было написано по крайней мере две классные идеи, но почему-то забыты: про неуверенность и уточняющий вопрос
Вывод: после создания бейзлайна, надо двигаться в нескольких направлениях, включая промты
6. Нет проверки гипотез
Из-за того, что нет бейзлайна и метрик качества, которые давали бы понимание, какие действия ведут к успеху, а какие нет, нельзя проводить эксперименты / проверять гипотезы
Вывод: строим базу:
mistral
mistral
фиксированной версииThe text was updated successfully, but these errors were encountered: