Недавно проводил очередной курс молодого ИИ-бойца - обучал переводчицу ИИ-инструментам, и поймал себя на мысли, что если переводить глоссарий через ИИ и подгружать его в ИИ, делать его надо по-другому |
||
|
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ Атаки на ИИ Внедрение ИИИИ теория Компьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Промпты. Генеративные запросы Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2025-08-17 11:53 Суть идеи такая. Когда мы кладем документ в базу знаний (систему RAG) - этот документ предварительно дробится на чанки единого размера (размер можно задавать самостоятельно), и каждый чанк получает свой эмбеддинг, т.е. усредненную числовую матрицу, которая отражает его смысл (она формируется разными способами, я об этом рассказываю на курсе, но сейчас это неважно). Это прекрасно срабатывает на связном тексте, но к глоссариям, увы это не относится - термины туда складываются по алфавиту. Следовательно, мы генерим кучу бессмысленных чанков (как перевод на старом Алиэкспрессе, если не хуже), и получаем по ним совершенно бессмысленный эмбеддинг (который показывает среднюю температуру по больнице). Как этого избежать? Нужно строить глоссарии по смысловым группам, то есть строить группы терминов вокруг одного термина. Получается: берем одиночный термин, и подтягиваем в его группу все термины, которые имеют этот или однокоренной термин в составе. И так далее проходим по всем одиночным терминам. Безусловно, часть многословных терминов будут присутствовать в нескольких группах, это неизбежное зло, но так хотя бы ИИ сможет пользоваться глоссарием через RAG. Это значит, что если ИИ захочется посмотреть какой-то термин, то она получит по нему один жирненький и информативный чанк, в котором будут собраны все ипостаси этого термина, и модель уже сможет прилепить его к переводу. Есть вероятность, что этот подход решит и еще одну пока нерешаемую проблему. Как-то раз ко мне обратилась переводчица, попросила придумать, как заставить модель видеть одну нераспространенную, но принятую у клиента аббревиатуру. Аббревиатура не несла никакого смысла для обычного человека и вряд ли появлялась в учебных данных у модели - что-то типа ТАЛЭ. Если у модели нет смысловой привязки, значит она не может отнести слово ни к какому семантическому пространству, следовательно, в RAG такое пихать бесполезно - целенаправленно такой эмбеддинг модель искать не будет. На тот момент мы решили, что оптимальнее всего просто закинуть этот термин в промпт (так оно работает, хотя и жрет токены в каждом запросе). А вот если мы этот термин подадим с расшифровкой, то он уже приобретет какой-то смысл, модель его отнесет в нужное векторное/семантическое пространство (например, "энергетику", последняя буква как раз было что-то про энергетику), и модель сможет им оперировать. Это гипотеза, на практике будем посмотреть. Таким образом, глоссарии под RAG следует строить группами - слово + группа терминов, содержащих это слово; следующее слово + его группа. В Python это реализуется без проблем. Будем потихоньку писать скрипт. Источник: vk.com Комментарии: |
|