Для просмотра этого контента требуется подписка на JoVE. Войдите или начните свой бесплатный пробный период.

Методическая статья

Дополнение больших языковых моделей с помощью векторных встраиваний для улучшения отзывчивости, специфичной для предметной области

1.5K просмотров

⸱

DOI:

10.3791/66796

⸱

6 декабря 2024 г.

 ,  ,  ,  , 

В этой статье

Краткое содержание

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

Аннотация

Большие языковые модели (LLM) стали популярным ресурсом для генерации информации, релевантной запросу пользователя. Такие модели создаются в результате ресурсоемкого процесса обучения с использованием обширного статического корпуса текстовых данных. Эта статичная природа приводит к ограничениям для внедрения в областях с быстро меняющимися знаниями, конфиденциальной информацией и конфиденциальными данными. В данной работе описываются методы дополнения LLM общего назначения, известных как базовые модели, информацией, специфичной для предметной области, с использованием подхода, основанного на встраиваниях, для включения актуальных, рецензируемых научных рукописей. Это достигается с помощью инструментов с открытым исходным кодом, таких как Llama-Index, и общедоступных моделей, таких как Llama-2, для обеспечения максимальной прозрачности, конфиденциальности и контроля со стороны пользователей, а также воспроизводимости. Хотя в качестве примера используются научные рукописи, этот подход может быть распространен на любой источник текстовых данных. Кроме того, обсуждаются методы оценки производительности модели после этого усовершенствования. Эти методы позволяют быстро разрабатывать LLM-системы для узкоспециализированных областей независимо от полноты информации в учебном корпусе.

Введение

Большие языковые модели (LLM), такие как ChatGPT от OpenAI или Llama от Meta AI, быстро стали популярным ресурсом для создания текста, релевантного пользовательскому запросу. Первоначально функционируя для прогнозирования следующих лексических единиц в последовательности, эти модели эволюционировали, чтобы понимать контекст, кодировать клиническую информацию и демонстрировать высокую производительность при выполнении различных задач 1,2,3,4. Несмотря нато, что языковые модели предшествуют таким возможностям и их нынешнему уровню популярности на несколько десятилетий5, последние достижения в области глубокого обучения и вычислительных возможностей сделали предварительно обученные, высококачественные коммерческие LLM широко доступными для пользователей через веб-технологии и интерфейсы прикладных программ (API)6. Тем не менее, существует несколько заметных ограничений для потребления LLM в этом формате.

Задача 1: Статический учебный корпус
LLM обучаются на огромном (например, два триллиона токенов в случае Llama 27), но статичном массиве текстовых данных. Это создает проблему для получения точных ответов, относящихся к областям, которые быстро развиваются или изменяются в литературе. При таком статическом подходе LLM потребовали бы частого переобучения, чтобы идти в ногу с новейшими данными, что непрактично и немасштабируемо. Более того, подсказки, требующие ответов на основе информации, отсутствующей в обучающих данных, могут помешать созданию полезного текста или привести к галлюцинациям. Случаи галлюцинаций или фабрикации фактов вызывают серьезные опасения по поводу надежности LLM, особенно в условиях, где точностьинформации имеет решающее значение.

Проблема 2: Недостаточная специфичность предметной области
Предварительно обученные модели часто создаются для общего использования, в то время как пользователям может потребоваться модель, специально оптимизированная для производительности в определенной области. Кроме того, вычислительные ресурсы и данные, необходимые для обучения модели de novo или выполнения значительной тонкой настройки, непомерно велики для многих пользователей.

Проблема 3: Отсутствие конфиденциальности
Пользователи, использующие приложения, связанные с конфиденциальными данными или служебной информацией, могут не захотеть или не иметь возможности использовать определенные услуги LLM, поскольку у них нет информации о том, как данные могут храниться или использоваться.

Проблема 4: Отсутствие гарантированной стабильности
Услуги с проприетарными LLM могут в любое время изменить доступные модели или поведение, что делает стабильность проблемой для реализации приложений, основанных на этих услугах.

Retrieval-augmented generation (RAG) — это метод, разработанный для повышения производительности LLM, особенно в запросах, связанных с информацией, находящейся за пределами обучающего корпуса модели10,11. Эти системы дополняют LLM, включая контекстную информацию, которую следует учитывать при формировании ответа на запрос пользователя. В различных недавних работах описываются области применения систем RAG и их потенциальные преимущества 12,13,14.

Цель метода, описанного в данной работе, состоит в том, чтобы продемонстрировать построение такой системы и предоставить исследователям основу для быстрого экспериментирования на предметно-специфичных дополненных LLM. Этот метод применим для пользователей, которые хотят дополнить LLM внешним текстовым источником данных. В частности, всеобъемлющей целью этого протокола является предоставление пошагового кода, который может быть расширен для различных практических экспериментов LLM и RAG без необходимости значительных технических знаний в области моделирования языка, хотя для применения этого подхода без модификаций требуется практическое знание Python. Для максимального контроля со стороны пользователей, прозрачности, переносимости и доступности решений используются общедоступные инструменты с открытым исходным кодом. Предлагаемая система решает ранее указанные проблемы следующим образом:

Решения 1 и 2: Статический обучающий корпус и недостаточная специфичность предметной области
Представленная методология использует подход RAG с использованием встраиваний для предоставления информации, специфичной для предметной области, не включенной в исходные обучающие данные. На высоком уровне модели встраивания преобразуют текст или другие данные в представление в виде векторного или одномерного массива чисел. Этот метод полезен, поскольку он преобразует семантическую информацию, содержащуюся в тексте, в плотную числовую форму. Проецируя пользовательский запрос в одно и то же пространство встраивания, можно использовать различные алгоритмы для вычисления расстояния15, а следовательно, и приблизительного семантического сходства, между пользовательским запросом и разделами текстовых документов. Таким образом, создание базы данных таких векторов из документов, разбитых на дискретные разделы, может облегчить поиск среди значительного числа документов текста, наиболее релевантного запросу пользователя (рис. 1). Этот подход может быть расширен на любой текстовый документ. В то время как другие подходы, такие как возможности онлайн-поиска, начинают внедряться для дополнения LLM, этот подход позволяет пользователям выбирать источники, которые считаются достаточно качественными для их сценария использования.

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

Решение 3: Отсутствие гарантированной стабильности
Этот подход использует библиотеки с открытым исходным кодом и фокусируется на дополнении LLM общедоступными весами, что обеспечивает более высокую степень прозрачности, стабильности и версионности, если это необходимо.

Полная схема предлагаемой нами системы показана на рисунке 2, а подробные инструкции по тиражированию этой или аналогичной системы изложены в разделе протокола. Дополнительным фактором при изменении поведения модели с помощью тонкой настройки или дополнения является оценка производительности. В моделях, генерирующих языки, это представляет собой уникальную проблему, поскольку многие традиционные метрики машинного обучения неприменимы. Несмотря на то, что существует множествометодов16, в этом исследовании для оценки точности и сравнения производительности до и после аугментации, а также с популярными альтернативными методами LLM использовались написанные экспертами вопросы с несколькими вариантами ответов (MCQ).

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

Протокол

В сценарии использования, продемонстрированном в этой статье, векторное хранилище было сгенерировано с использованием опубликованных рекомендаций Рабочей группы17 Чикагского консенсуса. Эта экспертная группа была создана для разработки рекомендаций по лечению рака брюшины. Предметная область была выбрана в связи с тем, что она входит в область клинической компетенции исследователей. Доступ к набору статей был получен из онлайн-репозиториев журналов, включая Cancer and the Annals of Surgical Oncology. Для генерации встраивания из исходных документов была использована компактная (33,4 млн параметров) модель встраивания, созданная Пекинской академией искусственного интеллекта (BAAI, https://www.baai.ac.cn/english.html), bge-small-en. Полученная база данных затем была использована для дополнения базовых моделей Llama 2 и Open-AI7. Для удобства читателя код доступен через GitHub (https://github.com/AnaiLab/AugmentedLLM). Чтобы обеспечить воспроизводимость, рекомендуется использовать те же версии библиотек, которые используются в предоставленном списке требований, а также одну и ту же версию Python. Дополнительную информацию об установке или документацию по инструментам, используемым в следующих методах, можно найти на официальных веб-сайтах провайдеров для Python (https://www.python.org), git (https://git-scm.com), Llama-Index (https://llamaindex.ai) и Chroma (https://trychroma.com).

1. Предварительные требования: проверка кода и установка необходимых библиотек

  1. Убедитесь, что git, python и pip установлены.
    1. В терминале выполните следующие команды, чтобы проверить установку:
      git --version
      python3 --версия
      pip3 --версия
  2. Проверьте код и требования к установке.
    1. В терминале выполните следующие команды:
      git clone https://github.com/AnaiLab/AugmentedLLM.git
      cd ./ДополненныйLLM/

      pip3 install -r requirements.txt

2. Создание векторной базы данных с помощью Llama-Index

  1. Конвертация форматов файлов RTF (требуется только в том случае, если файлы имеют формат RTF).
    1. Отредактируйте файл с именем config.py, заменив пути к файлам в следующем коде местоположением статей RTF, которые необходимо преобразовать, и местом, куда должны быть записаны обычные текстовые файлы, введя следующие команды. Сохраните файл.
      rtf_file_dir = './articles_rtf/'
      converted_file_dir = './articles_converted/'
    2. В терминале, в том же каталоге, выполните код для генерации текстовых версий файлов RTF, выполнив следующую команду:
      python3 ./convert_rtf.py
  2. Создание и сохранение векторной базы данных.
    1. Отредактируйте файл config.py, заменив значение следующей переменной на путь к папке, содержащей документы, которыми будет дополнен LLM; Сохраните файл.
      article_dir = './articles/'
    2. В терминале в том же каталоге выполните код с помощью следующей команды для создания и сохранения базы данных. Убедитесь, что база данных теперь сохранена в папке vector_db.
      python3 ./build_index.py

3. Дополнение модели ламы векторной базой данных, созданной в разделе 2

  1. Создание экземпляра пользовательского LLM локально (необязательно)
    ПРИМЕЧАНИЕ: Выполнение этого шага требуется только в том случае, если вы хотите использовать модель, отличную от стандартной Llama-2-7B. Если вы хотите использовать модель по умолчанию, перейдите к шагу 3.2.
    1. (Использование пользовательского LLM) Укажите LLM для дополнения, отредактировав run_augmented_llm.py и передав объект LLM llama-index в конструкторе в качестве параметра llm в следующих строках кода, а не None.
      augmentedLLM = AugmentedLLM(vector_store, llm=Нет)
  2. Запрос дополненного LLM
    1. Выполните в терминале следующую команду:
      python3 ./run_augmented_llm.py
    2. Выполнение пользовательских запросов для получения ответа, дополненного данными в наборе рукописей (рисунок 3 и рисунок 4). Нажмите CTRL + C , чтобы выйти после завершения.

4. Программное сравнение альтернативных LLM

  1. Создание MCQ.
    1. Отредактируйте файл questions.py, обращая внимание на формат примеров. Добавляйте вопросы в аналогичном формате. Сохраните файл.
  2. Подключайтесь к GPT-3.5, GPT-4, OpenChat или другим моделям компараторов через API.
    1. Отредактируйте файл config.py, добавив ключ API для OpenAI или Huggingface, если цель состоит в том, чтобы сравнить модели от любого из поставщиков. Сохраните файл.
      huggingface_key = ''
      openai_key = ''
    2. Отредактируйте файл compare_llms.py и выберите набор моделей для тестирования, раскомментировав (удалив символы '# ' в начале этой строки) модели для сравнения.
      ПРИМЕЧАНИЕ: Для некоторых компараторов требуется ключ API, установленный на шаге 4.2.1. Кроме того, при необходимости отредактируйте параметр output_dir, чтобы изменить место хранения выходных данных LLM; В противном случае будет использоваться значение по умолчанию.
      output_dir = './llm_responses/'
    3. В терминале выполните код с помощью следующей команды. После выполнения просмотрите ответы модели в папке, указанной на шаге 4.2.2, для оценки или другой проверки.
      python3 ./compare_llms.py
  3. (Дополнительный) Поэкспериментируйте с автоматической оценкой ответов MCQ. В примере кода используется библиотека LMQL для ограничения вывода LLM в ожидаемом формате.
    1. Откройте файл automated_comparison.py и аналогично шагу 4.2.2, раскомментируйте включенные модели, отредактируйте переменную output_dir или настройте их иным образом. Обратите внимание, что выходные данные модели по-прежнему будут сохраняться аналогичным образом. Сохраните файл.
    2. Запустите код из шага 4.3.1, выполнив следующую команду в терминале:
      python3 ./automated_comparison.py

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

Результаты

Набор из 22 публикаций из руководящих принципов управления Чикагской рабочей группы по консенсусу был использован для дополнения базовой модели Llama-7b model17. Документы были преобразованы в векторный индекс с помощью инструмента Llama-Index для создания Llama-2-7b-CCWG-Embed. Популярные модели OpenAI, такие как GPT-3.5 и GPT-4, также были дополнены аналогичным образом для создания моделей GPT-XX-CCWG-Embed. В общей сложности было разработано 20 вопросов с несколькими вариантами ответов (MCQ) дл...

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

Обсуждение

Представленные здесь методы направлены на облегчение исследования предметно-ориентированных приложений LLM без необходимости обучения de novo или обширной тонкой настройки. По мере того, как LLM становятся областью значительного исследовательского интереса, подходы к расширению баз знаний и повышению точности ответов будут приобретать все большее значение 18,19,20,21.

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

Раскрытие информации

У авторов нет конфликта интересов, о котором можно было бы заявить.

Благодарности

Эта работа была облегчена несколькими библиотеками с открытым исходным кодом, в первую очередь llama-index (https://www.llamaindex.ai/), ChromaDB (https://www.trychroma.com/) и LMQL (https://lmql.ai/).

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

Материалы

Список материалов, использованных в этой статье
ИмяКомпанияКаталожный номерКомментарии
Версия pip3 22.0.2 
Версия Python 3.10.12

Ссылки

  1. Singhal, K., et al. Large language models encode clinical knowledge. Nature. 620 (7972), 172-180 (2023).
  2. Gilson, A., et al. How does ChatGPT perform on the United States medical licensing examination? The implications of large language models for medical education and knowledge assessment. JMIR Med Educ. 9 (1), e45312(2023).
  3. Guerra, G. A., et al. GPT-4 artificial intelligence model outperforms ChatGPT, medical students, and neurosurgery residents on neurosurgery written board-like questions. World Neurosurg. 179, e160-e165 (2023).
  4. Terwiesch, C. Would Chat GPT3 get a Wharton MBA? A prediction based on its performance in the Operations Management course. , https://mackinstitute.wharton.upenn.edu/wp-content/uploads/2023/01/Christian-Terwiesch-Chat-GTP.pdf (2023).
  5. Weizenbaum, J. ELIZA-a computer program for the study of natural language communication between man and machine. Communications of the ACM. 9 (1), 36-45 (1966).
  6. Wu, T., et al. A brief overview of ChatGPT: The history, status quo and potential future development. IEEE/CAA Journal of Automatica Sinica. 10 (5), 1122-1136 (2023).
  7. Touvron, H., et al. Llama 2: Open foundation and fine-tuned chat models. arXiv [cs.CL]. , http://arxiv.org/abs/2307.09288 (2023).
  8. Huang, L., et al. A survey on hallucination in large language models: Principles, taxonomy, challenges, and open questions. arXiv [cs.CL]. , http://arxiv.org/abs/2311.05232 (2023).
  9. Thirunavukarasu, A. J., et al. Large language models in medicine. Nature Med. 29 (8), 1930-1940 (2023).
  10. Lewis, P., et al. Retrieval-augmented generation for knowledge-intensive NLP tasks. arXiv [cs.CL]. , http://arxiv.org/abs/2005.11401 (2020).
  11. Li, J., Yuan, Y., Zhang, Z. Enhancing LLM factual accuracy with RAG to counter hallucinations: A case study on domain-specific queries in private knowledge-bases. arXiv [cs.CL]. , http://arxiv.org/abs/2403.10446 (2024).
  12. Zhang, P., Xiao, S., Liu, Z., Dou, Z., Nie, J. -Y. Retrieve anything to augment large language models. arXiv [cs.IR]. , http://arxiv.org/abs/2310.07554 (2023).
  13. Ling, C., et al. Domain specialization as the key to make large language models disruptive: A comprehensive survey. arXiv [cs.CL]. , http://arxiv.org/abs/2305.18703 (2023).
  14. Ram, O., et al. In-Context retrieval-augmented language models. Trans Assoc Comput Linguist. 11, 1316-1331 (2023).
  15. Cormode, G. Sequence distance embeddings. , The University of Warwick. https://wrap.warwick.ac.uk/61310/7/WRAP_THESIS_Cormode_2003.pdf (2003).
  16. Guo, Z., et al. Evaluating large language models: A comprehensive survey. arXiv [cs.CL]. , http://arxiv.org/abs/2310.19736 (2023).
  17. Chicago Consensus Working Group. The Chicago Consensus Guidelines for peritoneal surface malignancies: Introduction. Cancer. 126 (11), 2510-2512 (2020).
  18. Wang, G., et al. OpenChat: Advancing open-source language models with mixed-quality data. arXiv [cs.CL]. , http://arxiv.org/abs/2309.11235 (2023).
  19. Jiang, A. Q., et al. Mistral 7B. arXiv [cs.CL]. , http://arxiv.org/abs/2310.06825 (2023).
  20. Megahed, F. M., et al. AI and the future of work in statistical quality control: Insights from a first attempt to augmenting ChatGPT with an SQC knowledge base (ChatSQC). arXiv [cs.HC]. , http://arxiv.org/abs/2308.13550 (2023).
  21. Wang, Y., Ma, X., Chen, W. Augmenting black-box LLMs with medical textbooks for clinical question answering. arXiv [cs.CL]. , http://arxiv.org/abs/2309.02233 (2023).
  22. Dodge, J., et al. Measuring the carbon intensity of AI in cloud instances. FACCT 2022. , (2022).
  23. Samsi, S., et al. From words to watts: Benchmarking the energy costs of large language model inference. arXiv [cs.CL]. , http://arxiv.org/abs/2310.03003 (2023).
  24. Khene, Z. -E., Bigot, P., Mathieu, R., Rouprêt, M., Bensalah, K. Development of a personalized chat model based on the European association of urology oncology guidelines: Harnessing the power of generative artificial intelligence in clinical practice. Eur Urol Oncol. 7 (1), 160-162 (2024).
  25. Kresevic, S., et al. Optimization of hepatological clinical guidelines interpretation by large language models: a retrieval augmented generation-based framework. NPJ Digit Med. 7 (1), 102(2024).
  26. Ge, J., et al. Development of a liver disease-specific large language model chat interface using retrieval augmented generation. medRxiv. , (2023).
  27. Rule-augmented artificial intelligence-empowered systems for medical diagnosis using large language models. Panagoulias, D. P., et al. 2023 IEEE 35th International Conference on Tools with Artificial Intelligence (ICTAI), , 70-77 (2023).
  28. Panagoulias, D. P., et al. Augmenting large language models with rules for enhanced domain-specific interactions: The case of medical diagnosis. Electronics. 13 (2), 320(2024).
  29. Jin, Q., et al. Matching patients to clinical trials with large language models. arXiv [cs.CL]. , http://arxiv.org/abs/2307.15051 (2023).
  30. Gupta, S. K., et al. PRISM: Patient records interpretation for semantic clinical trial matching using large language models. arXiv [cs.CL]. , http://arxiv.org/abs/2404.15549 (2024).
  31. Hendrycks, D., et al. Measuring massive multitask language understanding. arXiv [cs.CY]. , http://arxiv.org/abs/2009.03300 (2020).
  32. Lin, S., Hilton, J., Evans, O. TruthfulQA: Measuring how models mimic human falsehoods. arXiv [cs.CL]. , http://arxiv.org/abs/2109.07958 (2021).
  33. Bommasani, R., Liang, P., Lee, T. Holistic evaluation of language models. Ann N Y Acad Sci. 1525 (1), 140-146 (2023).
  34. Banerjee, D., Singh, P., Avadhanam, A., Srivastava, S. Benchmarking LLM powered Chatbots: Methods and Metrics. arXiv [cs.CL]. , http://arxiv.org/abs/2308.04624 (2023).
  35. Papineni, K., Roukos, S., Ward, T., Zhu, W. -J. Bleu. Proceedings of the 40th Annual Meeting on Association for Computational Linguistics - ACL '02. , (2001).
  36. Wang, A., Singh, A., Michael, J., Hill, F., Levy, O., Bowman, S. R. Glue: A multi-task benchmark and analysis platform for natural language understanding. , http://arxiv.org/abs/1804.07461 (2019).
  37. Johnson, D., et al. Assessing the accuracy and reliability of AI-generated medical responses: An evaluation of the chat-GPT model. Res Sq. , (2023).
  38. Lin, C. -Y. ROUGE: A package for automatic evaluation of summaries. Text Summarization Branches Out. , 74-81 (2004).
  39. Chen, S., et al. Evaluating the ChatGPT family of models for biomedical reasoning and classification. J Am Med Inform Assoc. 31 (4), 940-948 (2024).

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

Перепечатки и разрешения

Больше статей

Доменно-специфическая аугментацияLlama-Indexнаучные рукописибенчмаркинг моделейинструменты с открытым исходным кодомвекторная база данныхоценка моделейбазовые модели