JoVE Logo

Войдите в систему

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

В этой статье

  • Резюме
  • Аннотация
  • Введение
  • протокол
  • Результаты
  • Обсуждение
  • Раскрытие информации
  • Благодарности
  • Материалы
  • Ссылки
  • Перепечатки и разрешения

Резюме

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

Аннотация

Большие языковые модели (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-...

Обсуждение

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

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

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

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

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

Материалы

NameCompanyCatalog NumberComments
pip3 version 22.0.2 
Python version 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. . Would Chat GPT3 get a Wharton MBA? A prediction based on its performance in the Operations Management course Available from: 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. Huang, L., et al. A survey on hallucination in large language models: Principles, taxonomy, challenges, and open questions. arXiv [cs.CL]. , (2023).
  8. Thirunavukarasu, A. J., et al. Large language models in medicine. Nature Med. 29 (8), 1930-1940 (2023).
  9. Ram, O., et al. In-Context retrieval-augmented language models. Trans Assoc Comput Linguist. 11, 1316-1331 (2023).
  10. . Sequence distance embeddings Available from: https://wrap.warwick.ac.uk/61310/7/WRAP_THESIS_Cormode_2003.pdf (2003)
  11. Chicago Consensus Working Group. The Chicago Consensus Guidelines for peritoneal surface malignancies: Introduction. Cancer. 126 (11), 2510-2512 (2020).
  12. Dodge, J., et al. Measuring the carbon intensity of AI in cloud instances. FACCT 2022. , (2022).
  13. 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).
  14. 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).
  15. Ge, J., et al. Development of a liver disease-specific large language model chat interface using retrieval augmented generation. medRxiv. , (2023).
  16. Panagoulias, D. P., et al. Rule-augmented artificial intelligence-empowered systems for medical diagnosis using large language models. , 70-77 (2023).
  17. 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).
  18. Bommasani, R., Liang, P., Lee, T. Holistic evaluation of language models. Ann N Y Acad Sci. 1525 (1), 140-146 (2023).
  19. Papineni, K., Roukos, S., Ward, T., Zhu, W. -. J. Bleu. Proceedings of the 40th Annual Meeting on Association for Computational Linguistics - ACL '02. , (2001).
  20. Johnson, D., et al. Assessing the accuracy and reliability of AI-generated medical responses: An evaluation of the chat-GPT model. Res Sq. , (2023).
  21. Lin, C. -. Y. ROUGE: A package for automatic evaluation of summaries. Text Summarization Branches Out. , 74-81 (2004).
  22. 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).

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

Запросить разрешение на использование текста или рисунков этого JoVE статьи

Запросить разрешение

Смотреть дополнительные статьи

214Llama IndexLlama 2

This article has been published

Video Coming Soon

JoVE Logo

Исследования

Образование

О JoVE

Авторские права © 2025 MyJoVE Corporation. Все права защищены