JoVE Logo

로그인

JoVE 비디오를 활용하시려면 도서관을 통한 기관 구독이 필요합니다. 전체 비디오를 보시려면 로그인하거나 무료 트라이얼을 시작하세요.

기사 소개

  • 요약
  • 초록
  • 서문
  • 프로토콜
  • 결과
  • 토론
  • 공개
  • 감사의 말
  • 자료
  • 참고문헌
  • 재인쇄 및 허가

요약

이 프로토콜에서는 벡터 임베딩 메커니즘을 통해 동료 검토를 거친 도메인별 과학 논문과의 증강을 통해 Foundation Large Language Model 응답 품질이 향상됩니다. 또한 대규모 언어 모델 간의 성능 비교를 돕기 위해 코드가 제공됩니다.

초록

대규모 언어 모델(LLM)은 사용자 쿼리와 관련된 정보를 생성하기 위한 인기 있는 리소스로 부상했습니다. 이러한 모델은 광범위하고 정적인 텍스트 데이터 코퍼스를 활용하는 리소스 집약적인 교육 프로세스를 통해 생성됩니다. 이러한 정적 특성으로 인해 빠르게 변화하는 지식, 독점 정보 및 민감한 데이터가 있는 도메인에서 채택하는 데 제한이 있습니다. 이 작업에서는 최신 동료 심사 과학 원고를 통합하기 위한 임베딩 기반 접근 방식을 사용하여 파운데이션 모델로 알려진 범용 LLM을 도메인별 정보로 보강하는 방법을 간략하게 설명합니다. 이는 Llama-Index와 같은 오픈 소스 도구와 Llama-2와 같은 공개적으로 사용 가능한 모델을 통해 투명성, 사용자 개인 정보 보호 및 제어, 복제 가능성을 극대화합니다. 과학 원고가 사용 사례의 예로 사용되지만, 이 접근 방식은 모든 텍스트 데이터 소스로 확장될 수 있습니다. 또한 이 개선 사항에 따라 모델 성능을 평가하는 방법에 대해서도 설명합니다. 이러한 방법을 사용하면 교육 말뭉치에 있는 정보의 포괄성에 관계없이 고도로 전문화된 도메인을 위한 LLM 시스템을 빠르게 개발할 수 있습니다.

서문

오픈AI의 챗GPT 또는 메타 AI의 라마(Llama)와 같은 대규모 언어 모델(LLM)은 사용자 프롬프트와 관련된 텍스트를 생성하는 데 널리 사용되는 리소스로 빠르게 자리 잡았습니다. 원래는 시퀀스의 다음 어휘 항목을 예측하는 기능을 했던 이 모델은 컨텍스트를 이해하고, 임상 정보를 인코딩하고, 다양한 작업에서 높은 성능을 보여주기 위해 발전했습니다 1,2,3,4. 언어 모델은 이러한 기능보다 수십 년 앞섰고 현재의 인기는 더욱 높지만5 최근 딥 러닝 및 컴퓨팅 기능의 발전으로 웹 기반 기술 및 애플리케이션 프로그램 인터페이스(API)6를 통해 사전 훈련된 고품질 상용 LLM을 사용자가 광범위하게 사용할 수 있게 되었습니다. 그러나 이 형식에서 LLM을 사용하는 데에는 몇 가지 주목할 만한 제한 사항이 있습니다.

챌린지 1: 정적 학습 말뭉치
LLM은 방대하지만(예: Llama 27의 경우 2조 개의 토큰) 정적인 텍스트 데이터로 훈련됩니다. 이로 인해 급속한 발전이 진행되고 있거나 문헌이 변화하는 분야에 대한 정확한 답변을 도출하는 데 어려움이 있습니다. 이러한 정적 접근 방식에서 LLM은 최신 데이터를 따라잡기 위해 빈번한 재학습이 필요하며, 이는 실용적이지도 않고 확장 가능하지도 않습니다. 더욱이, 훈련 데이터에 없는 정보에 근거한 응답을 요구하는 프롬프트는 유용한 텍스트 생성을 방해하거나 환각을 유발할 수 있다8. 환각이나 사실 조작의 사례는 특히 정보의 정확성이 중요한 환경에서 LLM의 신뢰성에 대한 심각한 우려를 불러일으킨다9.

문제 2: 도메인 특이성 부족
사전 훈련된 모델은 일반적인 사용을 위해 만들어지는 경우가 많지만, 사용자는 특정 도메인의 성능에 특별히 최적화된 모델을 필요로 할 수 있습니다. 또한 새로운 모델을 훈련하거나 상당한 미세 조정을 수행하는 데 필요한 계산 리소스와 데이터는 많은 사용자에게 엄두가 나지 않습니다.

문제 3: 개인 정보 보호 부족
민감한 데이터 또는 독점 정보와 관련된 애플리케이션을 추구하는 사용자는 데이터 저장 또는 활용 방법에 대한 정보가 부족하기 때문에 특정 LLM 서비스를 사용하기를 꺼리거나 사용할 수 없을 수 있습니다.

문제점 4: 안정성이 보장되지 않음
독점 LLM이 있는 서비스는 언제든지 사용 가능한 모델을 변경하거나 동작을 변경할 수 있으므로 이러한 서비스에 의존하는 애플리케이션의 구현에 안정성이 우려됩니다.

RAG(Retrieval-Augmented Generation)는 LLM 성능을 향상시키기 위해 개발된 기술이며, 특히 모델의 훈련 말뭉치(10,11) 외부의 정보와 관련된 쿼리에서 그렇습니다. 이러한 시스템은 사용자 쿼리에 대한 응답을 생성할 때 고려해야 할 컨텍스트 정보를 통합하여 LLM을 강화합니다. 최근의 다양한 연구에서는 RAG 시스템의 응용과 그 잠재적 이점에 대해 설명했다 12,13,14.

이 연구에서 설명한 방법의 목표는 이러한 시스템의 구성을 시연하고 연구자들이 도메인별 증강 LLM을 빠르게 실험할 수 있는 프레임워크를 제공하는 것입니다. 이 방법은 외부 텍스트 기반 데이터 소스로 LLM을 보강하려는 사용자에게 적용할 수 있습니다. 특히, 이 프로토콜의 가장 중요한 목표는 언어 모델링 도메인에 대한 상당한 기술적 전문 지식 없이도 다양한 실용적인 LLM 및 RAG 실험으로 확장 가능한 단계별 코드를 제공하는 것이지만, 이 접근 방식을 수정 없이 적용하려면 Python에 대한 실무 지식이 필요합니다. 솔루션의 사용자 제어, 투명성, 이식성 및 경제성을 극대화하기 위해 공개적으로 사용 가능한 오픈 소스 도구가 사용됩니다. 제안된 시스템은 다음과 같은 방식으로 앞서 언급한 문제를 해결합니다.

솔루션 1 및 2: 정적 학습 말뭉치 및 도메인 특이성 부족
제공된 방법론은 RAG 접근 방식을 활용하여 임베딩을 활용하여 원래 학습 데이터에 포함되지 않은 도메인별 정보를 제공합니다. 상위 수준에서 임베딩 모델은 텍스트 또는 기타 데이터를 벡터 또는 숫자의 1차원 배열로 표현합니다. 이 기술은 텍스트에 포함된 의미 체계 정보를 조밀한 숫자 형식으로 변환하므로 유용합니다. 사용자 질의를 동일한 임베딩 공간으로 투영함으로써, 다양한 알고리즘을 사용하여 거리(15)를 계산할 수 있으며, 따라서 사용자 질의와 텍스트 문서의 섹션 사이의 의미론적 유사성을 근사화할 수 있다. 따라서 개별 섹션으로 나뉜 문서에서 이러한 벡터의 데이터베이스를 만들면 사용자 쿼리와 가장 관련성이 높은 텍스트를 찾기 위해 상당한 수의 문서를 쉽게 검색할 수 있습니다(그림 1). 이 접근 방식은 모든 텍스트 문서로 확장할 수 있습니다. LLM을 강화하기 위해 온라인 검색 기능과 같은 다른 접근 방식이 구현되기 시작했지만, 이 접근 방식을 통해 사용자는 사용 사례에 대해 충분히 높은 품질로 간주되는 소스를 선택할 수 있습니다.

해결 방법 2 : 개인 정보 보호 부족
이 구현에서는 사용자 프롬프트, 생성된 응답 또는 이 에코시스템을 떠나는 기타 데이터가 없는 호스팅에 안전한 클라우드 환경이 사용되었습니다. 그러나 모든 코드는 다른 클라우드 공급자 또는 로컬 하드웨어로 대체될 수 있도록 플랫폼에 구애받지 않는 방식으로 작성됩니다.

해결 방법 3 : 안정성이 보장되지 않음
이 접근 방식은 오픈 소스 라이브러리를 활용하고 공개적으로 사용 가능한 가중치로 LLM을 보강하여 필요한 경우 더 높은 수준의 투명성, 안정성 및 버전 관리를 허용하는 데 중점을 둡니다.

제안된 시스템의 전체 회로도는 그림 2에 나와 있으며, 이 시스템 또는 유사한 시스템을 복제하는 방법에 대한 자세한 지침은 프로토콜 섹션에 요약되어 있습니다. 미세 조정 또는 증강을 통해 모델 동작을 변경할 때 추가로 고려해야 할 사항은 성능 평가입니다. 언어 생성 모델에서는 많은 기존 기계 학습 메트릭을 적용할 수 없기 때문에 고유한 문제가 발생합니다. 다양한 기법이 존재하지만16 이 연구에서는 전문가가 작성한 객관식 질문(MCQ)을 사용하여 정확도를 평가하고 증강 전후 성능을 비교하고 인기 있는 대체 LLM과 비교했습니다.

프로토콜

이 백서에 제시된 사용 사례에서 벡터 저장소는 Chicago Consensus Working Group17에서 발표한 지침을 사용하여 생성되었습니다. 이 전문가 그룹은 복막암 관리를 위한 지침을 개발하기 위해 설립되었습니다. 주제 영역은 조사자의 임상 전문 영역 내에서 선택되었습니다. 논문 세트는 Cancer 및 Annals of Surgical Oncology를 포함한 온라인 저널 저장소에서 액세스했습니다. BAAI(Beijing Academy for Artificial Intelligence, https://www.baai.ac.cn/english.html)에서 만든 컴팩트(33.4M 매개변수) 임베딩 모델인 bge-small-en을 사용하여 소스 문서에서 임베딩을 생성했습니다. 그 결과 얻은 데이터베이스는 라마 2와 오픈 AI 파운데이션 모델7을 보강하는 데 사용되었습니다. 독자의 편의를 위해 코드는 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. 터미널에서 다음 명령을 실행하여 설치를 확인합니다.
      자식 --버전
      파이썬3 --버전
      pip3 --버전
  2. 코드 및 설치 요구 사항을 확인합니다.
    1. 터미널에서 다음 명령을 실행합니다.
      자식 클론 https://github.com/AnaiLab/AugmentedLLM.git
      cd ./증강LLM/

      pip3 설치 -r requirements.txt

2. Llama-Index를 이용한 벡터 데이터베이스 생성

  1. RTF 파일 형식을 변환합니다(파일이 RTF 형식인 경우에만 필요).
    1. 다음 명령을 입력하여 변환할 RTF 아티클의 위치 및 일반 텍스트 파일을 작성할 위치로 다음 코드의 파일 경로를 바꿔 config.py 라는 파일을 편집합니다. 파일을 저장합니다.
      rtf_file_dir = './articles_rtf/'
      converted_file_dir = './articles_converted/'
    2. 터미널의 동일한 디렉터리에서 다음 명령을 실행하여 RTF 파일의 일반 텍스트 버전을 생성하는 코드를 실행합니다.
      파이썬3 ./convert_rtf.py
  2. 벡터 데이터베이스를 만들고 저장합니다.
    1. config.py 파일을 편집하여 다음 변수의 값을 LLM을 증강할 문서가 포함된 폴더의 파일 경로로 바꿉니다. 파일을 저장합니다.
      article_dir = './기사/'
    2. 터미널의 동일한 디렉터리에서 다음 명령을 사용하여 코드를 실행하여 데이터베이스를 만들고 유지합니다. 이제 데이터베이스가 vector_db 폴더에 저장되었는지 확인합니다.
      파이썬3 ./build_index.py

3. 섹션 2에서 생성된 벡터 데이터베이스를 사용한 Llama 모델 증강

  1. 커스텀 LLM을 로컬에서 인스턴스화(선택 사항)
    참고: 이 단계는 기본 Llama-2-7B 이외의 모델을 사용하려는 경우에만 필요합니다. 기본 모델을 사용하려면 3.2단계로 진행합니다.
    1. (사용자 정의 LLM 사용) run_augmented_llm.py 편집하고 생성자의 llama-index LLM 객체를 None 대신 llm 매개변수로 전달하여 증강할 LLM을 지정합니다.
      augmentedLLM = augmentedLLM(vector_store, llm=없음)
  2. 쿼리 증강 LLM
    1. 터미널에서 다음 명령을 실행합니다.
      파이썬3 ./run_augmented_llm.py
    2. 사용자 쿼리를 실행하여 원고 세트의 데이터로 보강된 응답을 얻습니다(그림 3그림 4). 완료되면 CTRL + C 를 눌러 종료합니다.

4. 대체 LLM의 프로그래밍 방식 비교

  1. MCQ를 만듭니다.
    1. 파일 questions.py 편집하고 예제의 형식을 기록해 둡니다. 비슷한 형식으로 질문을 추가합니다. 파일을 저장합니다.
  2. API를 통해 GPT-3.5, GPT-4, OpenChat 또는 기타 비교기 모델에 연결합니다.
    1. config.py 파일을 편집하여 두 제공업체의 모델에 대해 벤치마킹하는 것이 목표인 경우 OpenAI 또는 Huggingface에 대한 API 키를 추가합니다. 파일을 저장합니다.
      huggingface_key = ''
      openai_key = ''
    2. compare_llms.py 파일을 편집하고, 비교할 모델의 주석 처리를 제거하여(해당 줄의 구걸에서 '#' 문자 삭제) 테스트할 모델 집합을 선택합니다.
      참고: 일부 비교기에는 4.2.1단계에서 설정한 API 키가 필요합니다. 또한 원하는 경우 output_dir 매개변수를 편집하여 LLM 출력이 저장되는 위치를 변경합니다. 그렇지 않으면 기본값이 사용됩니다.
      output_dir = './llm_responses/'
    3. 터미널에서 다음 명령을 사용하여 코드를 실행합니다. 실행 후 채점 또는 기타 검토를 위해 4.2.2단계에서 지정한 폴더에서 모델 응답을 확인합니다.
      파이썬3 ./compare_llms.py
  3. (선택 사항) MCQ 응답의 자동 채점으로 실험해 보십시오. 예제 코드는 LMQL 라이브러리를 사용하여 LLM 출력을 예상 형식으로 제한합니다.
    1. 파일 automated_comparison.py 열고 4.2.2단계와 유사하게 포함할 모델의 주석 처리를 제거하거나, output_dir 변수를 편집하거나, 그렇지 않으면 사용자 정의합니다. 모델 출력은 여전히 비슷한 방식으로 저장됩니다. 파일을 저장합니다.
    2. 터미널에서 다음 명령을 실행하여 4.3.1단계의 코드를 실행합니다.
      파이썬3 ./automated_comparison.py

결과

Chicago Consensus Working Group 관리 지침의 22개 간행물 세트를 사용하여 기본 Llama-7b 모델17을 보강했습니다. 문서는 Llama-Index 도구를 사용하여 벡터 인덱스로 변환되어 Llama-2-7b-CCWG-Embed를 생성했습니다. GPT-3.5 및 GPT-4와 같은 인기 있는 OpenAI 모델도 유사한 방식으로 증강되어 GPT-XX-CCWG-Embed 모델을 생성했습니다. 다양한 복막 표면 악성 종양의 관리와 관련된 지?...

토론

여기에 제공된 방법은 새로운 교육이나 광범위한 미세 조정 없이 LLM의 도메인별 응용 프로그램 연구를 용이하게 하는 것을 목표로 합니다. LLM이 중요한 연구 관심 분야가 됨에 따라 지식 기반을 강화하고 응답의 정확도를 개선하기 위한 접근 방식이 점점 더 중요해질 것입니다 18,19,20,21.

공개

저자는 선언할 이해 상충이 없습니다.

감사의 말

이 작업은 여러 오픈 소스 라이브러리, 특히 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'article의 텍스트 или 그림을 다시 사용하시려면 허가 살펴보기

허가 살펴보기

더 많은 기사 탐색

MedicineFoundation ModelsPeer reviewed ManuscriptsOpen source ToolsLlama IndexLlama 2User PrivacyModel Performance EvaluationSpecialized DomainsTraining Corpus

This article has been published

Video Coming Soon

JoVE Logo

개인 정보 보호

이용 약관

정책

연구

교육

JoVE 소개

Copyright © 2025 MyJoVE Corporation. 판권 소유