찰스 포스터 지음

Finetune에서는 자동화된 콘텐츠 생성 및 AI 기반 학습 리소스 분류 및 추천을 포함하여 교육 기술에서 가장 어려운 문제 중 일부를 해결하기 위한 AI 솔루션을 구축하고 있습니다. 도구가 처리해야 하는 주제가 K-12에서 인력 개발까지 다양하기 때문에 모델이 다루는 폭과 깊이를 확장할 수 있는 방법에 많은 투자를 하고 있습니다. 이 접근 방식의 핵심 구성 요소는 범용 모델이 부족한 도메인에서 특수 신경망을 훈련하는 유연한 방법입니다. 이 블로그 게시물에서 이러한 방법을 탐구하는 여정을 조금 공유하고 싶습니다.

미세 조정

신경 언어 모델의 전형적인 미세 조정에는 모든 학습 가능한 매개변수를 동시에 최적화하는 것이 포함되며, 이는 GPT-J와 같은 네트워크의 경우 수십억에 달할 수 있습니다. 이러한 규모에서는 미세 조정 및 추론 프로세스가 모두 사소하지 않아 이를 광범위하게 배포하는 것이 어렵습니다. 저희의 조사에서 몇 가지 핵심 문제가 가장 큰 것으로 나타났습니다.

  • 이러한 변압기 모델을 실행하는 것만으로도 이미 GPU 메모리(VRAM)의 한계에 도달하게 되며, 미세 조정 중에는 최적화되는 매개변수의 수와 소비되는 추가 메모리의 양 사이에 직접적인 관계가 있습니다.
  • 네트워크의 모든 매개변수를 수정하면 사전 학습 중에 학습한 정보 흐름이 중단되어 몇 가지 샷 기능을 망각하거나 잃을 수 있습니다.
  • 각 사용 사례에 맞게 사용자 정의된 멀티 기가바이트 모델을 제공하면 허용할 수 없는 지연 시간과 비용 부담이 발생합니다.

이러한 결합된 우려는 우리가 신경 언어 모델을 조정하기 위해 최근 문헌에서 다른 방법을 탐색하도록 동기를 부여했습니다. 다행히도, 작년에 자연어 처리 연구 분야는 사전 훈련된 언어 모델의 동작을 사용자 정의하는 비용을 줄이는 방법을 많이 개발했습니다.

신속한 튜닝

원래 우리가 추구했던 접근 방식은 프롬프트 튜닝 또는 소프트 프롬프팅 (Lester et al. 2021)이라고 합니다. 이 방법에서는 사전 학습에서 얻은 네트워크의 매개변수가 고정됩니다. 대신, 입력 프롬프트 토큰 앞에 소수의 학습 가능한 임베딩 벡터(일반적으로 10~20개)를 추가하고, 미세 조정 데이터 세트에서 일반적인 언어 모델링 목적으로 이러한 임베딩을 조정합니다. 이러한 임베딩은 언어 토큰을 나타내지 않습니다. 대신 네트워크가 시퀀스의 토큰에 대한 예측을 할 때 어텐션 메커니즘을 통해 조건을 지정할 수 있는 밀집된 컨텍스트 저장소로 생각할 수 있습니다.


프롬프트 튜닝은 소프트 프롬프트가 킬로바이트 범위에 있고 네트워크에서 병렬로 실행할 수 있기 때문에 모델에 약간의 런타임 비용만 추가합니다. 이러한 기능은 최근 AI 스토리텔링 에서 이 기술을 배포한 것에서 알 수 있듯이 많은 동시 사용자에게 서비스를 제공하는 데 매력적입니다. 그러나 소프트 프롬프트를 HuggingFace의 트랜스포머 와 같은 인기 있는 프레임워크에 통합하는 것은 복잡합니다. 인터페이스가 밀집 벡터가 아닌 토큰 인덱스 시퀀스에서 작동하도록 크게 설계되었기 때문입니다. 또한 소프트 프롬프트와 생성 사이에 더 많은 컨텍스트가 추가됨에 따라 소프트 프롬프트의 조건화 강도와 토큰 컨텍스트의 조건화 강도 사이에 불균형이 발생하기 시작합니다. 런타임에 수백 개의 컨텍스트 토큰을 유연하게 추가하는 기능을 유지하는 것은 항목 작성 프로세스에서 제어 가능성에 대한 추가 세분화된 레버를 제공하기 때문에 중요했습니다. 교과서의 특정 페이지의 내용에 초점을 맞추거나 독해 이해 항목을 작성하거나 몇 가지 샷 예제를 제공하도록 모델을 안내하려는 경우 장문 컨텍스트화가 중요합니다.

저등급 어댑터(LoRA)

나중에 우리는 LoRA 또는 Low Rank Adapters (Hu et al. 2021)라는 방법으로 전환했습니다. 이 기술은 GPT-3 크기 모델을 작업하는 Microsoft의 연구원들이 개발했으며, 이전의 어댑터 접근 방식을 기반으로 합니다. 변압기를 각 잔여 계층으로 토큰 잠재 상태를 점진적으로 정제하는 것으로 생각한다면, 어댑터의 개념은 주어진 계층의 잠재 상태에 작은 입력 종속 델타(no-op로 초기화됨)를 추가하는 것입니다. 그런 다음 이 부드러운 넛지는 작업과 관련된 입력 부분을 강조하는 것과 같이 다운스트림의 동작을 조절할 수 있습니다.


낮은 순위 어댑터는 낮은 순위 부분 공간을 타겟으로 하는 일종의 어댑터로, 학습에 필요한 새로운 매개변수 수를 줄입니다(D 2 에서 2 × D × r로, 여기서 D는 수천 개). 소프트 프롬핑과 마찬가지로, 사전 학습에서 포함된 모든 지식을 보존하기 위해 네트워크의 원래 매개변수를 동결하고, 이러한 새로운 어댑터 매개변수만 조정합니다. 내부 테스트에서 LoRA의 좋은 지표를 확인했습니다. 소규모 하드웨어 예산으로 대규모 모델을 조정할 수 있게 해주는 것 외에도, 어댑터 계층이 산재된 모델은 대상 도메인에 적응하는 동안에도 원래의 few-shot 기능을 대부분 유지합니다. 특히, 낮은 순위 어댑터를 다른 프레임워크에 통합하는 것은 간단합니다. 필요에 따라 기존 선형 계층을 선형 + 어댑터 계층으로 간단히 바꿀 수 있기 때문입니다.

앞으로 나아가다

우리가 탐색에서 본 종류의 개선에 대한 맛을 주기 위해, 아래에서 우리는 다양한 튜닝 접근 방식으로 훈련된 모델의 작은 세대를 공유합니다. 이러한 항목은 모두 간호 서비스 제공과 관련된 동일한 세 가지 입력 프롬프트를 사용하여 생성되었습니다. 첫 번째는 여러 클라이언트의 요구를 우선시하는 데 초점을 맞추었고 두 번째는 팀 설정에서 조치를 취하는 데 초점을 맞추었습니다.

Item #1: A nurse is assessing a client who is scheduled for outpatient surgery. Which of the following patients would the nurse evaluate next? (A) A patient with type 1 diabetes (B) A patient with acute pancreatitis (C) A patient who requires intravenous antibiotic therapy (D) A patient with Crohn's disease Item #2: A client is admitted to the hospital with the diagnosis of congestive heart failure. The client's mother is refusing treatment. Which of the following actions should the nurse take? (A) Notify the provider of the situation. (B) Check the patient's medication list. (C) Check the client's medical chart. (D) Notify the client's doctor of the client's condition.

Item #3: A nurse is evaluating a patient on the pediatric unit. The client is scheduled for a diagnostic workup, including a chest radiograph. Which of the following patients should the nurse be planning to evaluate next? (A) A child who has pneumonia and is experiencing fever (B) A child who has a rash and is not responding to a medication (C) A child who has a fever and has a temperature >100.4 (D) A child who has a fever and a rash Item #4: A client with renal failure is in the hospital and is scheduled to undergo a renal transplant. The client has a strong belief that the transplant surgeon is incompetent. The client refuses to allow a doctor from another hospital to perform the transplant. Which of the following actions should the charge nurse take? (A) Take a statement from the client that the transplant surgeon is competent and give it to the transplant surgeon. (B) Ask the client for a signed statement to back up her assertion. (C) Contact the transplant surgeon and find out why the client refuses to allow the surgeon from another hospital to perform the transplant. (D) Inform the transplant surgeon that the client is refusing the transplant.

Item #5: A nurse is planning to assign clients to various bedside stations. Which of the following clients should the nurse assign to the bedside station closest to the nurses' station? (A) A client who has a suspected diagnosis of a pulmonary embolism and requires a computed tomography (CT) scan (B) A client who needs assistance with a bowel movement (C) A client who has an emergency indication for a chest X-ray (D) A client who requires a chest X-ray because she has a cough Item #6: An LPN is caring for a client with an indwelling urinary catheter and is asking the nurse to help her clean the catheter. Which of the following actions should the nurse take? (A) Explain to the client that she will need to provide the cleaning solution and will need to obtain the client's consent for the procedure. (B) Ask the LPN for assistance. (C) Offer to help the client clean the catheter. (D) Assure the LPN that the nurse will assist her.

우리는 기준 모델의 가장 좋은 항목들이 대체로 유창하고 논리적으로 일관성이 있지만, 제약이 부족한 경향이 있거나(#1에서처럼) 간호 도메인에 대한 지식이 거의 필요하지 않은(#3에서처럼) 경향이 있다는 것을 관찰할 수 있습니다. 기준 항목과 비교했을 때, 프롬프트 튜닝 및 저순위 어댑터 모델의 항목은 자극, 줄기 및 옵션에 대한 세부 정보가 더 많습니다. 주제는 도메인과 관련이 있으며, 배경 지식에만 의존하기보다는 간호 관리에 대한 구체적인 지식을 요구합니다. 게다가, 저순위 어댑터 모델의 항목은 더 일관된 형태를 가지고 있습니다. 예를 들어, 항목은 평가에 나타날 가능성이 있는 언어에 따라 일관되게 "환자"가 아닌 "클라이언트"를 언급합니다(#5를 #1 및 #3과 비교). 또한 시나리오 내에서 여러 개인에 대한 참조를 성공적으로 추적합니다(#6을 #4와 비교).

도메인 커버리지, 문체적 일관성, 논리적 일관성을 개선하면 신경 언어 모델의 유용성이 크게 개선될 수 있습니다. 이는 시작에 불과합니다. 기술이 성숙해짐에 따라 대규모로 사용자 지정되고 제어 가능한 자연어 모델을 만드는 더 많은 방법이 발견될 것입니다. 그리고 이러한 방법이 발견됨에 따라 우리는 Finetune 제품에 학계, 산업 및 독립 연구의 최고를 계속 통합할 것입니다.

이 블로그 게시물을 개발하는 동안 친절하고 도움이 되는 피드백을 제공해 주신 Nick Koprowicz, Jesse Hamer, Saad Khan, Ogden Morse에게 진심으로 감사드립니다.

참고문헌

Hu, EJ, Shen, Y., Wallis, P., Allen-Zhu, Z., Li, Y., Wang, S., … & Chen, W. (2021). Lora: 대규모 언어 모델의 저순위 적응. arXiv 사전 인쇄본 arXiv:2106.09685.

Lester, B., Al-Rfou, R., & Constant, N. (2021). 매개변수 효율적 프롬프트 튜닝을 위한 규모의 힘. arXiv 사전 인쇄본 arXiv:2104.08691.