Я начал вручную суммировать дюжину книг и обнаружил, что на каждое резюме у меня уйдут недели. Затем я вспомнил о произошедшей революции в области искусственного интеллекта и решил, что мне уже давно пора прыгнуть в эти воды. . Когда я начал изучать использование больших языковых моделей (LLM) для резюмирования больших текстов, я не нашел четкого направления, как это сделать На некоторых страницах приведены примеры подсказок по использованию GPT4 с идеей, что он волшебным образом узнает содержание любой книги, которую вы хотите резюмировать. (НЕТ) Некоторые люди предположили, что мне нужно найти модель с большим контекстом, которая сможет обработать весь мой текст за один раз. (Еще нет) Доступны некоторые инструменты с открытым исходным кодом, которые позволяют загружать документы в базу данных и отвечать на вопросы на основе содержимого этой базы данных. (Подходя ближе) Другие предлагали сначала разделить книгу на разделы и по одному передать их в LLM для обобщения. (Сейчас мы говорим) Помимо принятия этого решения, существует множество переменных, которые необходимо учитывать при реализации данного LLM. Я быстро понял, что, несмотря на любые рекомендации или рейтинги моделей, я получаю результаты, отличные от результатов других. Будь то мой вариант использования, формат модели, квантование, сжатие, стили подсказок или что-то еще? Я не знаю. Все, что я знаю, это составить свой собственный рейтинг моделей в своих собственных условиях работы. Не верьте просто диаграммам, которые вы читаете в Интернете. В этом руководстве представлены некоторые подробности моего процесса определения и тестирования вышеупомянутых переменных. . Полные данные о рейтинге, пошаговое руководство и итоговые сводки можно найти на GitHub Фон Ключевые термины Некоторые из этих терминов используются по-разному, в зависимости от контекста (без каламбура). : (модель AKA). Тип искусственного интеллекта, который был обучен на огромных наборах данных понимать и генерировать человеческий язык. Модель большого языка (LLM) : GPT3.5 и GPT4 от OpenAI, которые покорили мир. (В нашем случае мы выбираем среди моделей с открытым исходным кодом и/или свободно загружаемых моделей, найденных на .) Пример Hugging Face : метод, , для хранения документов в базе данных, в которой LLM выполняет поиск, чтобы найти ответ на заданный пользовательский запрос (Вопросы/ответы по документам). Поисковая расширенная генерация (RAG) разработанный Meta AI (подсказка AKA или контекст) — это запрос, предоставленный пользователем. Инструкции пользователя: Пример: «Обобщите следующий текст: ». { text } специальные инструкции, даваемые перед подсказкой пользователя, которые помогают сформировать личность вашего помощника. Системная подсказка: Пример: «Вы полезный ИИ-помощник». инструкции пользователя и, возможно, системное приглашение и, возможно, предыдущие раунды пар вопрос/ответ. (Предыдущие пары вопросов и ответов также называются просто контекстом). Контекст: : это специальные комбинации символов, которым обучается LLM, чтобы распознавать разницу между инструкциями пользователя, системными подсказками и контекстом предыдущих вопросов. Стиль подсказки Пример: <s>[INST] {systemPrompt} [INST] [INST] {previousQuestion} [/INST] {answer} </s> [INST] {userInstructions} [/INST] Указывает количество параметров в данной модели (чем больше, тем лучше). Параметры — это внутренние переменные, которые модель изучает во время обучения и используются для прогнозирования. Для моих целей модели 7B, скорее всего, подойдут к моему графическому процессору с 12 ГБ видеопамяти. 7B: это особый формат LLM, предназначенный для потребительского оборудования (ЦП/ГП). Какая бы модель вас ни интересовала, для использования в PrivateGPT вам необходимо найти ее версию GGUF (обычно выпускаемую ). GGUF: TheBloke При просмотре файлов репозитория GGUF вы увидите разные версии одной и той же модели. Большее число означает меньшее сжатие и лучшее качество. Буква M в K_M означает «Средний», а буква S в K_S означает «Маленький». Q2-Q8 0, K_M или K_S: это объем памяти вашего графического процессора. Чтобы полностью загрузить его в графический процессор, вам понадобится модель меньшего размера, чем доступная вам видеопамять. VRAM: это метрика, по которой LLM оценивает язык. Каждый токен состоит примерно из 4 символов. Токены: Что такое PrivateGPT? PrivateGPT (pgpt) — это , который предоставляет пользовательский интерфейс и программируемый API, позволяющий пользователям использовать LLM на собственном оборудовании в домашних условиях. Это позволяет вам загружать документы в вашу собственную локальную базу данных для вопросов и ответов по документам, поддерживаемым RAG. проект с открытым исходным кодом : Документация PrivateGPT — обзор PrivateGPT предоставляет , содержащий все строительные блоки, необходимые для создания . API следует и расширяет стандарт OpenAI API и поддерживает как обычные, так и потоковые ответы. Это означает, что если вы можете использовать API OpenAI в одном из своих инструментов, вы можете вместо этого использовать свой собственный API PrivateGPT без изменений кода , если вы используете PrivateGPT в режиме. API частных контекстно-зависимых приложений ИИ и бесплатно local Обзор Я начал с того, что просто задавал вопросы к главам книги, используя UI\RAG. PrivateGPT Потом попробовал предварительно выделить текст для обобщения. Это послужило вдохновением для составления рейтинга в первом раунде, чтобы увидеть, насколько велика разница в моих результатах. (Обобщение предварительно выбранных разделов.) Затем я хотел выяснить, какие модели лучше всего справятся с этой задачей, что привело к рейтингу во втором раунде, где стал явным победителем. Mistral-7B-Instruct-v0.2 Затем я хотел получить наилучшие результаты от этой модели, ранжируя стили подсказок и написав код, чтобы получить именно тот ожидаемый стиль подсказки. После этого, конечно, мне пришлось протестировать различные , чтобы увидеть, какие из них будут работать лучше всего. системные подсказки Затем я попробовал несколько пользовательских подсказок, чтобы определить, какая из них лучше всего подходит для создания сводок, требующих наименьшей последующей обработки с моей стороны. В конечном счете, этот тип тестирования должен проводиться для каждого LLM и для определения эффективности любых усовершенствований в наших процессах. По моему мнению, только после того, как каждая модель будет приведена в самые идеальные условия, их можно будет правильно оценить друг против друга. Рейтинги Когда я начал тестировать различные варианты LLM, входил в стандартную настройку PrivateGPT (созданную для работы на вашем процессоре). Здесь я предпочел варианты Q8_0. mistral-7b-instruct-v0.1.Q4_K_M.gguf Хотя я перепробовал более 50 различных LLM для этой же задачи, Mistral-7B-Instruct по-прежнему остается одним из лучших, особенно после выхода версии 0.2, и я не нашел ничего лучше. TLDR: — мой нынешний лидер по задачам обобщения. Mistral-7B-Instruct-v0.2 Раунд 1 – вопросы/ответы против подведения итогов При выполнении вопросов и ответов я быстро обнаружил, что получаю гораздо лучшие результаты, загружая в базу данных меньшие порции данных и каждый раз начиная с чистого листа. Поэтому я начал разбивать PDF-файл на главы для вопросов и ответов. Для моего первого анализа я протестировал 5 различных LLM для следующих задач: Задавать одни и те же 30 вопросов к 70-страничной главе книги. Подводя итог той же 70-страничной главе книги, разделенной на 30 частей. Рейтинг вопросов/ответов — мой фаворит во время этих тестов, но при редактировании сводки я решил, что это слишком многословно. Гермес Трисмегист Мистраль 7b — стал моим фаворитом из протестированных в этом раунде моделей. SynthIA 7B V2 - Не так хорош, как хотелось бы. Mistral 7b Instruct v0.1 Много наполнителя и заняло больше всего времени. По качеству\полезности он набрал немного больше, чем «Мистраль», но из-за количества наполнителя читать его стало менее приятно. CollectiveCognition v1.1 Mistral 7b ответы были слишком короткими, и это делало его BS немного более заметным. Хорошая модель, но не для подробных аннотаций книг. KAI 7b Instruct, Показано для каждой модели Количество секунд, необходимое для генерации ответа Сумма субъективных оценок полезности\качества Сколько персонажей было создано? Сумма фрагментов контекста контекста, найденных в целевом диапазоне. Количество качеств, перечисленных ниже, найденных в сгенерированном тексте: Наполнитель (лишние слова с меньшим значением) Коротко (слишком коротко, недостаточно для работы.) BS (Не из этой книги и бесполезно.) Хорошая BS (не из целевого раздела, но действительна.) Модель Рейтинг Точность поиска Персонажи Секунды БС Наполнитель Короткий Хорошая чушь Гермес-трисмегист-мистраль-7b 68 56 62141 298 3 4 0 6 Синтия-7b-v2.0 63 59 28087 188 1 7 7 0 мистраль-7b-инструкт-v0.1 51 56 21131 144 3 0 17 1 коллективное познание-v1.1-mistral-7b 56 57 59453 377 3 10 0 0 Кай-7b-инструктировать 44 56 21480 117 5 0 18 0 Сводный рейтинг В этом первом раунде я разделил содержание главы на разделы с разными По 900-14000 символов (или 225-3500 токенов). ПРИМЕЧАНИЕ. Несмотря на то, что на данный момент выпущено множество моделей с большим контекстом, я по-прежнему считаю, что меньший контекст приводит к лучшим резюме. Я не предпочитаю использовать более 2750 токенов (11000 символов) на задачу обобщения. — по-прежнему лидирует. Это многословно, с некоторым наполнителем. Я могу использовать эти результаты. Гермес Трисмегист Мистраль 7b — Неплохо, но слишком лаконично. Многие ответы были идеальными, но 7 были слишком короткими/неполными для использования. SynthIA 7B - Слишком короткий. Mistral 7b Instruct v0.1 – Слишком короткая. KAI 7b Инструкция - Много мусора. Некоторые из резюме были очень подробными и совершенными, но более половины ответов представляли собой набор вопросов, основанных на тексте, а не резюме. CollectiveCognition v1.1 Mistral 7b Неудивительно, что резюме работали намного лучше, чем вопросы/ответы, но они также имели более точный контекст. Имя Счет Созданные персонажи % разницы с OG Секунды на создание Короткий Мусор БС Наполнять Вопросы Подробный Гермес-трисмегист-мистраль-7b 74 45870 -61 274 0 1 1 3 0 0 Синтия-7b-v2.0 60 26849 -77 171 7 1 0 0 0 1 мистраль-7b-инструкт-v0.1 58 25797 -78 174 7 2 0 0 0 0 Кай-7b-инструктировать 59 25057 -79 168 5 1 0 0 0 0 коллективное познание-v1.1-mistral-7b 31 29509 -75 214 0 1 1 2 17 8 Полные данные и рейтинги можно найти в или на GitHub: , . Документах Google QA Scores Summary Rankings Раунд 2: Подведение итогов – ранжирование модели Опять же, я предпочитаю версии Q8 моделей 7B. Обнаружение выхода стоило нового раунда тестирования. Mistral 7b Instruct v0.2 Я также решил протестировать стиль подсказок. PrivateGPT не поставлялся в комплекте с приглашением Mistral, и хотя приглашение Mistral похоже на приглашение Llama2, оно, похоже, работает лучше с приглашением по умолчанию (llama-index). — Эта модель стала моей любимой, поэтому я использовал ее в качестве эталона. SynthIA-7B-v2.0-GGUF (Llama-index Prompt) Звезда шоу, весьма впечатляющая. Mistral-7B-Instruct-v0.2 (подсказка Llama2) Все еще хорошо, но не хорошо, как использование подсказки llama-index. Mistral-7B-Instruct-v0.2 так — еще один от того же создателя, что и Synthia v2. Хорошо, но не хорошо. Tess-7B-v1.4 так - работало нормально, но медленно, с подсказкой lama-index. Просто плохо с подсказкой llama2. (Необходимо еще раз протестировать со стилем Llama2 «Только обучение») Llama-2-7B-32K-Instruct-GGUF Сводный рейтинг Только резюме, вопросы и ответы менее эффективны для обобщения книги. Модель % Разница Счет Комментарий Синтия 7b V2 -64.43790093 28 Хороший Mistral 7b Instruct v0.2 (подсказка по умолчанию) -60.81878508 33 ВХорошо Mistral 7b Instruct v0.2 (подсказка Llama2) -64,5871483 28 Хороший Тесс 7б v1.4 -62.12938978 29 Менее структурированный Лама 2 7b 32k Инструкция (по умолчанию) -61,39890553 27 Менее структурировано. Медленный Полные данные и рейтинги можно найти в или на . Документах Google GitHub Раунд 3: Стиль подсказки В предыдущем раунде я заметил, работает намного лучше с подсказкой по умолчанию, чем llama2. что Mistral 7b Instruct v0.2 Ну вообще-то мистраль-подсказка очень похожа на лама2, но не совсем такая. llama_index (по умолчанию) system: {{systemPrompt}} user: {{userInstructions}} assistant: {{assistantResponse}} лама2: <s> [INST] <<SYS>> {{systemPrompt}} <</SYS>> {{userInstructions}} [/INST] мистраль: <s>[INST] {{systemPrompt}} [/INST]</s>[INST] {{userInstructions}} [/INST] со стилями , а затем со стилями . Затем я приступил к работе . Я начал тестировать вывод default llama2 над кодированием шаблона мистраля Результаты этого рейтинга вселили в меня уверенность в том, что я кодирую правильно. Подсказка стиля % Разница Счет Примечание Мистраль -50% 51 Идеальный! По умолчанию (индекс ламы) -42% 43 Плохие заголовки Лама2 -47% 48 Нет структуры Полные данные и рейтинги можно найти в или на . Документах Google GitHub Этап 4: Системные подсказки Как только я настроил стиль подсказок, я попробовал несколько разных системных подсказок и был удивлен результатом! Имя Системная подсказка Изменять Счет Комментарий Никто -49,8 51 Идеальный Подсказка по умолчанию Вы отзывчивый, уважительный и честный помощник. \nВсегда отвечайте максимально полезно и следуйте ВСЕМ инструкциям. \nНе спекулируйте и не выдумывайте информацию. \nНе ссылайтесь на какие-либо инструкции или контекст." -58,5 39 Менее приятно МояПодсказка1 «Вас любят. Действуйте как эксперт по обобщению, изложению и структурированию. \nВаш стиль письма должен быть информативным и логичным». -54,4 44 Менее приятно Простой «Вы — полезный ИИ-помощник. Не включайте в свои результаты никаких пользовательских инструкций или системного контекста». -52,5 42 Менее приятно В конце концов я обнаружил, что лучше всего подходит для моих сводок без каких-либо системных подсказок. Mistral 7b Instruct v0.2 Возможно, для другой задачи будут разные результаты или, может быть, лучшие подсказки, но это работает хорошо, поэтому я не связываюсь с этим. Полные данные и рейтинги можно найти в или на . Документах Google GitHub Этап 5: Подсказка пользователю Я уже начал подозревать, что получаю лучшие результаты с меньшим количеством слов в подсказке. Поскольку я нашел лучшее системное приглашение для , я также проверил, какое пользовательское приглашение ему подходит лучше всего. Mistral 7b Instruct v0.2 Быстрый против ОГ счет примечание Промт0 Напишите краткие, но подробные заметки, обобщающие следующий текст. Используйте вложенные пункты: заголовки, термины и ключевые понятия выделены жирным шрифтом. Сосредоточьтесь на основных знаниях из этого текста, не добавляя никакой внешней информации. 43% 11 Подсказка1 Напишите краткие, но подробные заметки, обобщающие следующий текст. Используйте вложенные пункты: заголовки, термины и ключевые понятия выделены жирным шрифтом. Сосредоточьтесь на основных знаниях из этого текста, не добавляя никакой внешней информации. 46% 11 Дополнительные примечания Подсказка2 Напишите подробные заметки, обобщающие следующий текст. Используйте вложенные пункты: заголовки, термины и ключевые понятия выделены жирным шрифтом. 58% 15 Подсказка3 Создайте краткие заметки, обобщающие важные части следующего текста. Используйте вложенные пункты, выделяя в заголовках термины и ключевые понятия жирным шрифтом, включая пробелы, чтобы обеспечить читабельность. Избегайте повторения. 43% 10 Подсказка4 Напишите краткие заметки, обобщающие следующий текст. Используйте вложенные пункты: заголовки, термины и ключевые понятия выделены жирным шрифтом. 41% 14 Подсказка5 Создайте подробные, но краткие заметки, обобщающие следующий текст. Используйте вложенные пункты: заголовки, термины и ключевые понятия выделены жирным шрифтом. 52% 14 Дополнительные примечания Полные данные и рейтинги можно найти в или на . Документах Google GitHub Возможно, с более мощным оборудованием, поддерживающим модели 11b или 30b, я получу лучшие результаты с более наглядными подсказками. Даже с Mistral 7b Instruct v0.2 я по-прежнему готов попробовать некоторые творческие инструкции, но сейчас я просто рад усовершенствовать существующий процесс. Подсказка 2: Победа! Напишите подробные заметки, обобщающие следующий текст. Используйте вложенные пункты: заголовки, термины и ключевые понятия выделены жирным шрифтом. В этом случае «всеобъемлющий» работает лучше, чем «краткий» или даже «всеобъемлющий, но краткий». Однако я предупреждаю, что это будет зависеть от вашего варианта использования. Мне нужны очень сжатые и читаемые заметки, охватывающие важные знания. По сути, даже если я не читал оригинал, я все равно должен знать, какую информацию он передает, если не каждую конкретную деталь. Даже если бы я прочитал оригинал, я не буду вспоминать большую часть позже. Эти примечания представляют собой краткий справочник по основным темам. Результат Используя знания, полученные в результате этих тестов, я обобщил свою первую полную книгу, 539 страниц, за 5-6 часов!!! Невероятный! Вместо того, чтобы тратить недели на составление резюме, я завершил свои первые 9 описаний книг всего за 10 дней. Плагиат Ниже вы можете увидеть результаты для каждого из опубликованных текстов здесь. CopyLeaks Особенно учитывая, что это делается не ради прибыли, а в образовательных целях, я считаю эти цифры приемлемыми. Книга Модели Разница в характере Идентичный Небольшие изменения Перефразированный Всего совпадений Восточное тело, западный разум Синтия 7Bv2 -75% 3,5% 1,1% 0,8% 5,4% Целебная сила блуждающего нерва Мистраль-7Б-Инструкт-v0.2; СинтиА-7Б-v2.0 -81% 1,2% 0,8% 2,5% 4,5% Аюрведа и разум Мистраль-7Б-Инструкт-v0.2; СинтиА-7Б-v2.0 -77% 0,5% 0,3% 1,2% 2% Исцеление фрагментированной личности людей, переживших травму Мистраль-7Б-Инструкт-v0.2 -75% 2% Безопасная база Мистраль-7Б-Инструкт-v0.2 -84% 0,3% 0,1% 0,3% 0,7% Тело ведет счет Мистраль-7Б-Инструкт-v0.2 -74% 0,1% 0,2% 0,3% 0,5% Полная книга чакр Мистраль-7Б-Инструкт-v0.2 -70% 0,3% 0,3% 0,4% 1,1% 50 лет теории привязанности Мистраль-7Б-Инструкт-v0.2 -70% 1,1% 0,4% 2,1% 3,7% Нарушения привязанности у взрослых Мистраль-7Б-Инструкт-v0.2 -62% 1,1% 1,2% 0,7% 3,1% Соратник по специальности психология Мистраль-7Б-Инструкт-v0.2 -62% 1,3% 1,2% 0,4% 2,9% Психология в вашей жизни Мистраль-7Б-Инструкт-v0.2 -74% 0,6% 0,4% 0,5% 1,6% Завершенные обзоры книг В скобках указано количество страниц оригинала. Вместо того, чтобы тратить недели на составление резюме, я завершил свои первые 9 описаний книг всего за 10 дней. Анодея Джудит (436 страниц) Восточное тело, западный разум, Стэнли Розенберг (335 страниц) Целебная сила блуждающего нерва доктор Дэвид Фроули (181 страница) Аюрведа и разум, Янина Фишер (367 страниц) Исцеление фрагментированной личности людей, переживших травму, Джон Боулби (133 страницы) Надежная база Бессель ван дер Колк (454 страницы) Тело держит счет Стивена Порджеса (37 страниц) Йога и поливагальная теория, от Polyvagal Safety Синтия Дейл (999 страниц) Полная книга чакр Ллевеллина РАЗДЕЛ 1. ОСНОВЫ ЧАКР И БАЗОВЫЕ ПРАКТИКИ РАЗДЕЛ 2: ЧАКРЫ ПОДРОБНО. ИСТОРИЧЕСКИЕ, НАУЧНЫЕ И МЕЖКУЛЬТУРНЫЕ ПОНИМАНИЯ (54 страницы) Пятьдесят лет теории привязанности: лекция памяти Дональда Винникотта (477 страниц) Нарушения привязанности у взрослых Дана С. Данн, Джейн С. Халонен (308 страниц) Напарник по специальности психология (5 страниц) Уолтер Уинк Миф об искупительном насилии Сара Гисон и Майкл С. Газзанига (1072 страницы) Психология в вашей жизни Прохождение Если вам интересно следовать моим шагам более внимательно, ознакомьтесь с содержащим сценарии и примеры. пошаговым руководством на GitHub, Заключение Теперь, когда мои процессы усовершенствованы и я чувствую себя уверенно, работая с форматами подсказок, я проведу дальнейшие тесты. На самом деле, я уже проводил дальнейшие тесты и рейтинги (опубликую их позже), но, конечно, проведу еще больше тестов и продолжу обучение! Я по-прежнему считаю, что если вы хотите получить наилучшие результаты для любой задачи, которую вы выполняете с помощью ИИ, вам следует провести собственные эксперименты и посмотреть, что работает лучше всего. Не полагайтесь исключительно на рейтинги популярных моделей, а используйте их для проведения собственных исследований. Дополнительные ресурсы ( ) Протестированы самые популярные модели LLM с открытым исходным кодом (большие языковые модели) на предмет их возможностей долгого контекстного вызова u/ramprasad27 Часть 2 / — 💢 Тестирование давления контекстного окна открытых LLM. LeonEricsson llmcontext Таблица лидеров Chatbox Arena х / ВольфрамRavenwolf 🐺🐦⬛ Сравнение/тест LLM: в рейтинге добавлено 10 новых моделей (лучшие 7B)! u/WolframRavenwolf 🐺🐦⬛ Сравнение/тест формата подсказок LLM: инструкция Mixtral 8x7B с 17 различными шаблонами инструкций Вектара Таблица лидеров Галлюцинации Также появляется . здесь