
먼저 Instruction Prompt를 사용하여 LLM을 Fine-tuning 하는 방법을 설명해 보겠습니다.
https://velog.io/@o3omoomin/Prompting-and-Prompt-Engineering
위 포스트에서 우리는 Instruction Prompt를 사용 한 Zero Shot Prompt를 올바르게 수행할 수 있는 반면, 리소스가 작은 소형 LLM과 같은 다른 모델은 작업을 수행하지 못할 수 있다는 것을 알아보았습니다.
또한 One Shot 또는 Few Shot 이라고 하는 모델이 수행하고자 하는 작업의 예를 하나 이상 포함하는 것만으로도 모델이 작업을 식별하고 제대로 완료하는 데 도움이 된다는 것도 알게 되었습니다.
하지만 이러한Prompt Engineering 전략에는 몇 가지 단점이 있습니다.
크기가 작은 모델의 경우 예시가 5~6개가 포함되더라도 효과가 있는 것은 아닙니다.
프롬프트에 예제를 포함하면 컨텍스트 창에서 중요한 공간을 차지하므로 다른 유용한 정보를 포함해야 하는 공간이 줄어듭니다.
다행히도 또 다른 해결책이 있습니다. Fine-tuning 이라는 프로세스를 활용하여 기본 모델을 추가로 학습시킬 수 있습니다.

self supervised learning을 통해 방대한 양의 비정형 텍스트 데이터를 사용하여 LLM을 훈련하는 pre-training과 달리, Fine-tuning은 레이블이 지정된 예제로 구성된 데이터 세트를 사용하여 LLM의 가중치를 업데이트하는 supervised Learning 프로세스입니다.
Instruction Fine-tuning이라고 하는 전략은 다양한 작업에서 모델의 성능을 향상시키는 데 특히 유용합니다.
어떻게 작동하는지 좀 더 자세히 살펴보도록 하겠습니다.

Instruction Fine-tuning은 특정 명령에 어떻게 반응해야 하는지를 보여주는 예제를 사용하여 모델을 학습시킵니다.
예를 들어 요약 기능을 향상시키기 위해 모델을 미세 조정하려면 summarize Instruction, 또한 모델의 번역하는 것과 같은 지침이 예제에 포함될 것입니다.
이러한 프롬프트 완성 예제를 통해 모델은 주어진 지침을 따르는 응답을 생성하는 방법을 학습할 수 있습니다.
또한, 모델의 모든 가중치가 업데이트되는 Instruction Fine-tuning을 Full-Fine-tuning이라고 하는데, 이 과정을 통해 가중치가 업데이트된 새 버전의 모델이 만들어집니다.
pre-training과 마찬가지로 Full-fine-tuning에는 훈련 중에 업데이트되는 모든 그래디언트, 옵티마이저 및 기타 구성 요소를 저장하고 처리하기에 충분한 메모리와 컴퓨팅 예산이 필요하다는 점에 유의해야 합니다.
그렇다면 ㄹㅇ Instruction Fine-tuning 은 어떻게 진행할까요?
첫 번째 단계는 훈련 데이터를 준비하는 것입니다.

위 이미지에서는 감정 분류, 텍스트 생성 및 텍스트 요약 작업을 위해 모델을 Fine-tuning하는 데 사용할 수 있는 세 가지 프롬프트입니다.
각각의 경우에 review_body라고 하는 원본 리뷰를 템플릿에 전달하면 관련 평점 예측, 별점 평가 생성 또는 다음 제품 리뷰를 설명하는 짧은 문장 작성과 같은 지침으로 시작하는 텍스트에 삽입되는 것을 볼 수 있습니다.
그 결과 이제Instruction과 데이터 세트의 예제가 모두 포함된 프롬프트가 나타납니다.
supervised learning과 마찬가지로 Instruction데이터 세트를 준비했으면 데이터 세트를 Training, Validation, Test로 나눕니다.

Fine-tuning 중에 training 데이터 세트에서 프롬프트를 선택하여 LLM에 전달하면 완료 결과가 생성됩니다. 다음으로 LLM completion을 training데이터에 지정된(Lable) 응답과 비교합니다.
supervised learning과 마찬가지로 Validation 데이터 세트를 사용하여 LLM을 측정하기 위한 별도의 평가 단계를 정의할 수 있습니다. 이렇게 하면 검증 정확도가 향상되고 Fine-tuning을 완료한 후 Test 데이터 세트를 사용하여 최종 성능 평가를 수행할 수 있습니다.

Fine-tuning 과정을 통해 기본 모델의 새 버전이 만들어지는데, 이 모델은 종종 Instruct 모델이라고도 합니다.