1. < 캡스톤디자인 최종보고서 >
프로젝트 명:모의 면접을 수행할 수 있는 모델 및 웹 서비스에 대한 연구
팀원(참여학생): 이정호(컴퓨터공학), 송효섭(컴퓨터공학), 최우성(컴퓨터공학)
요 약
LLM 모델은 다수의 실재 데이터를 학습한 현대적 거대 데이터 모델로, 질의와 평가, 분석 등 인간의 지적 능력을 표방한 작
업을 수행하는 데에 높은 기대효과를 가진다. 데이터의 형태와 정보 편향성에 따라 모델의 특성을 설계자가 조작할 수 있다는
파인 튜닝(Fine-tuning)이 가능하다는 것이 강력한 이점이다. 하지만 모델의 성능은 데이터 학습량에 깊은 영향을 받기에 하드
웨어의 성능이 보장되지 않으면 기대 성능을 만족할 수 없다. 이에 본 연구는 LLM 모델을 경량화된 환경에서 파인튜닝을 통한
환경 제약 부여 최적화 전략을 시도한다. 목적의 명료성에 맞게 모델의 수행 관심사를 집중시키고, 비용의 최적화를 통해 sLLM
의 성능 향상을 위한 목적 기반 최적화 전략을 제안한다.
1. 기획 목적
LLM 모델은 다수의 실재 데이터를 학습한 현대적 거대 데이터 모델로, 질의와 평가, 분석 등 인간의 지적 능력을 표방한 작업을
수행하는 데에 높은 기대효과를 가진다. 데이터의 형태와 정보 편향성에 따라 모델의 특성을 설계자가 조작할 수 있다는 파인
튜닝(Fine-tuning)이 가능하다는 것이 강력한 이점이다. 하지만 모델의 성능은 데이터 학습량에 깊은 영향을 받기에 하드웨어
의 성능이 보장되지 않으면 기대 성능을 만족할 수 없다.
이에 본 연구는 LLM 모델을 경량화된 환경에서 파인튜닝을 통한 환경 제약 부여 최적화 전략을 시도한다. 목적의 명료성에 맞게
모델의 수행 관심사를 집중시키고, 비용의 최적화를 통해 sLLM의 성능 향상을 위한 목적 기반 최적화 전략을 제안한다.
2. 기대 효과
USAY 프로젝트를 통해 기대할 수 있는 바는 아래와 같다.
2.1. 웹 서비스를 통한 낮은 접근성 부여
단순히 모델 개발에서만 마치는 것이 아닌, 면접 평가에 대한 니즈를 가진 사용자가 사용할 수 있도록 낮은 접근성을 부여하여
웹 서비스로 제공하는 것이다. 이를 통해 사용자는 웹 브라우저를 통해 서비스에 접근할 수 있고, 이를 통해 모델의 문제점 발견,
개선 작업도 자연스레 이루어질 수 있다.
USAY에서는 이러한 목적을 달성하기 위해 Vue.js를 통한 프론트엔드 개발, Spring Boot를 통한 백엔드 개발을 모델 개발과 동
시에 수행한다.
2.2. 유저 피드백을 통한 평가 및 개선
웹 서비스로 모델을 사용할 수 있도록 배포하게 되면, 공개된 도메인이기 때문에 여러 유저로부터 피드백을 수집할 수 있다. 이
를 통해 서비스를 사용자 요구사항에 맞게 지속적으로 개선하고, 방향성을 평가할 수 있게 된다.
2.3. 성과 도출
최종적으로 기대할 수 있는 성과는 ‘면접 상황에 더욱 적합한 모델을 만드는 것’이다. 기존에 존재하는 GPT, Gemini 등으로 면
접 시나리오를 부여할 수 있지만, 이는 어디까지나 프롬프트를 통한 개선이다. 또한, 면접 시나리오를 부여하기 위해 시스템 프
롬프트 수정이나 파인 튜닝을 수행하기에는 일반 사용자 입장에서 불필요한 비용이 크다.
따라서 USAY 프로젝트에서는 보다 면접 상황에 잘 맞는 모델, 시스템, 웹 환경을 구축한다. 이를 통해 사용자는 user
experience(UX)를 향상시킬 수 있고, 피드백을 통한 모델 개선도 가능할 것이다.
본론
1
2. 3. 모델 성능 평가를 위한 벤치마크 분류
추후 Classi
fi
ca
ti
on 모델의 Evalua
ti
on을 위한 모델 성능 지표로는 대표적인 Accuracy, Precision, Recall, F1 Score를 활용했다.
3.1. Accuracy (정확도)
- 정의: 전체 예측 중에서 맞게 예측한 비율을 나타낸다.
- 설명: 모델이 전체 데이터 중에서 얼마나 정확하게 예측했는지를 나타낸다. 데이터가 불균형할 때는 유용하지 않을 수 있다. 예
를 들어, 전체 데이터의 95%가 한 클래스인 경우, 해당 클래스를 무조건 예측해도 높은 정확도를 가질 수 있지만 이는 유의미한
성능을 나타내지 않는다.
3.2. Precision (정밀도)
- 정의: Posi
ti
ve로 예측한 것 중에서 실제로 Posi
ti
ve인 것의 비율을 나타낸다.
- 설명: 모델이 Posi
ti
ve라고 예측한 경우 중에서 실제로 Posi
ti
ve인 경우의 비율이다. False Posi
ti
ve를 줄이는 것이 중요할 때 유
용하다. 예를 들어, 스팸 필터에서 스팸 메일로 잘못 분류된 정상 메일을 최소화하려는 경우에 유용하다.
3.3. Recall (재현율)
- 정의: 실제 Posi
ti
ve인 것 중에서 모델이 Posi
ti
ve로 예측한 비율을 나타낸다.
- 설명: 모델이 실제 Posi
ti
ve인 경우를 얼마나 잘 찾아냈는지의 비율이다. False Nega
ti
ve를 줄이는 것이 중요할 때 유용하다.
예를 들어, 암 진단에서 실제 암 환자를 놓치지 않는 것이 중요한 경우에 유용하다.
3.4. F1 Score
- 정의: Precision과 Recall의 조화 평균을 나타낸다.
- 설명: Precision과 Recall 사이의 균형을 맞추기 위해 사용된다. 두 지표의 평균을 계산할 때 유용하며, Precision과 Recall 중
하나만 고려하는 대신 둘 다 고려하는 상황에서 유용하다.
4. 프로젝트 기획 및 모델 설계
프로젝트 기획 및 파인튜닝 설계 방식에 대한 상세한 내용은 아래와 같다.
4.1 페인 포인트 분석 및 제품 개발 계획
프로젝트 기획 초기, 우선 사용자들의 페인포인트 분석을 수행했다. 분석 결과, 위 도표에서 볼 수 있듯이 면접을 위해서는 단순
히 기술적 이해도만 필요한 것이 아니라, ‘어떤 질문에도 당황하지 않는 순발력’과 같이 비기술적인 분야도 상당히 중요한 것임
을 확인할 수 있다.
2
3. 하지만 실제 존재하는 서비스들 중에서는 가상으로 컴퓨터 과학 전공 지식에 대한 면접을 수행할 수 있는 서비스가 없는 것으로
확인했다. 유사한 서비스로는 ‘자기소개 기반 질문 서비스’ 혹은 ‘LLM 기반 모의 면접 서비스’는 존재했지만, 컴퓨터공학 분야
면접 자체에 특화된 서비스 자체는 존재하지 않았다. 이에 면접 시나리오에 특화된 서비스인 USAY를 고안하였다.
4.2 주요 기능 MVP 도출 및 모델 개발 목표 수립
해당 컨텍스트를 기반으로 도출된 주요 기능은 다음과 같다. 단, 이는 사용자 관점(서비스 관점)에서의 기능 목록이다.
- 면접 답변 입력 기능
- 면접 질문 출력 기능
- 대화방 생성 기능
- 대화방 삭제 기능
- 면접 결과 저장 기능
- AI 면접관 기능
- 면접 피드백 기능
- 개인별 수준 측정 기능
- 사용자 면접 점수 측정 기능
- 면접 종료 기능
이후 위 기능들을 기반으로 일정을 수립하였다. 애자일(Agile) 방식으로 빠르게 개발하기 위하여 스프린트 단위로 목표 설정, 기
간을 구성했다.
스프린트 별로 구현 타겟 기능을 설정했고, MVP를 우선적으로 구현하는 것을 목표로 잡았기에, 가장 핵심이 되는 코어 기능인
면접 질문, 답변 기능을 우선적으로 구현했다. 아래는 해당 기능들을 토대로 구현한 Flow Chart이다.
3
스프린트 기간 설정
4. 4.3 데이터셋 필요 기준 정의 및 관련 데이터 수집
이러한 서비스를 제공하기 위해선, 사용자의 면접 답변을 평가할 수 있는 모델이 필요하게 된다. 이는 답변이 어느 점수에 해당
하는지, classi
fi
ca
ti
on 작업이 필요하다는 것을 의미한다. 즉, 어떠한 질문 - 답변 세트가 있다면 질문을 토대로 답변이 어느 정도
수치인지를 판단할 수 있어야 한다는 것이다. 가령 ‘프로세스는 무엇인가’라는 질문이 있다면, ‘프로세스는 절차입니다’ 라고 답
변하는 경우엔 0점을 반환해야 할 것이다.
이러한 작업을 수행하기 위해선 Encoder 기반 모델에 classi
fi
ca
ti
on
fi
ne tuning을 고려할 수 있겠으며, 이러한 작업을 위한 데
이터셋이 필요하게 된다.
데이터셋은 AIHub의 ‘채용면접 인터뷰 데이터’를 사용하고자 하였다. 해당 데이터셋에서는 아래와 같은 형태로 면접 상황에서
의 질문, 답변 세트를 제공한다.
{
"ques
ti
on": { //질문 원천 데이터
"raw": { //원천 데이터
"text": //질문 텍스트
"wordCount"://어절수
},
4
Service
fl
ow chart
5. "emo
ti
on": [ //감정 라벨링 데이터
],
"intent": [//의도 라벨링 데이터
]
},
"answer": { //답변 원천 데이터
"raw": { //원천 데이터
"text": //답변 텍스트
"wordCount": //어절수
}
}
이와 같은 형태의 데이터셋을 이용하여, Encoder 기반 모델을
fi
ne tuning하는 것을 일차원 목적으로 삼았다.
5. 파인튜닝 목적 검증을 위한 LLM 모델 후보군 선정
대규모 언어 모델(LLM)은 사용자의 질의에 있어 방대한 데이터 계산이 요구된다. 이를 하드웨어에서 수행하기 위해서는 대
용량의 비디오 랜덤 액세스 메모리(VRAM)이 확보되어야 한다. QLoRA, DeepSpeed 등 양자화 기반 모델 사이즈 최적화 기술
들은 VRAM의 부담을 효과적으로 경감시킨다. 다만 설치되는 모델의 성능을 전체적으로 하락시키거나, 설계자의 의도가 올바
르게 반영되지 못하는 결과를 유발한다. Fine-tuning을 진행하면 모델의 특정 목표 달성을 위해서는 효과적이나, 성능 향상을
위한 특정 형태의 데이터 학습에서 하드웨어 자원이 필연적으로 요구된다. 최적화된 모델 학습 전략을 위해 질의 성능을 설정
하는 비교군을 구축하였고, 통용적인 벤치마크 성능 평가를 통해 기반 모델을 선정하였다.
5.1. 명령어 기반 조정 모델(Instruc
ti
on-tuned model) 분석
특정 작업에 대한 훈련 진행 여부를 기준으로 LLM 모델은 명령어 기반 조정 모델(Instruc
ti
on-Tuned Model)과 기본 모델
(Base Model)로 분류된다. 명령어 기반 조정 모델은 기본 모델에 추가적인 작업에 맞는 데이터 및 튜닝이 진행된 모델이다. 학
습된 모델은 프롬프트에서 요구된 작업의 주요 단어를 더 깊게 반영하여 절차를 수행한다. 이는 명령어 학습에 적합한 데이터
의 필터링 및 파인 튜닝에 의해 달성된다. 명령어 기반 조정 모델의 목적은 대개 질의 응답 수행, 문제 분석 및 풀이, 선택적 언어
번역 등의 특정성을 가진다.
본 연구는 목적의 세분화가 발생했을 때 해당 작업을 위해 사용되는 자원 소모를 최적화하고자 하였다. 사전 학습된 모델에 새
롭게 제시되는 명령어 집합의 특정성을 높이고, 이를 모델이 인식하여 최소 자원으로 목적을 달성할 수 있는 설계를 시도하였
다.
5.2. 모델 선정: Llama3-8b-it
LLaMA3-8B-IT 모델은 Meta AI에서 개발한 LLaMA (Large Language Model Meta AI) 시리즈의 최신 모델 중 하나로, 8억 개
의 매개변수(파라미터)를 갖춘 대규모 언어 모델이다. 이 모델은 최신 Transformer 아키텍처를 기반으로 하여 언어 이해와 생
성에 있어서 뛰어난 성능을 발휘한다. LLaMA3-8B-IT 모델은 다양한 자연어 처리(NLP) 과제에서 높은 성능을 보이며, 특히 대
규모 언어 모델이 필요로 하는 복잡한 문맥 이해와 문장 생성 능력을 갖추고 있다.
LLAMA3-8B-IT 모델을 선정한 이유는, 현재 가용한 교내 VRAM 서버 리소스에 가장 적합한 파라미터 개수를 가지고 있었기 때
문이며, 또한 성능이 우수하다고 검증된 모델이었기 때문에 면접 질문 생성에 있어 사용할 수 있으리라 예상했다.
• 모델 아키텍처
LLaMA3-8B-IT 모델은 Transformer 아키텍처를 기반으로 설계되었다. Transformer는 self-a
tt
en
ti
on 메커니즘을 활용하여 입
력 문장 내의 단어들 간의 관계를 효율적으로 파악할 수 있는 구조를 갖추고 있다. 이 모델은 8억 개의 매개변수를 포함하고 있
으며, 다층의 인코더와 디코더 블록을 통해 텍스트 데이터를 처리한다. 이러한 구조는 언어 모델이 문맥을 이해하고, 문장 구조
를 파악하며, 자연스럽고 유의미한 텍스트를 생성할 수 있도록 돕는다.
5
6. • 학습 데이터 및 방법론
LLaMA3-8B-IT 모델은 방대한 양의 텍스트 데이터를 사용하여 학습되었다. 학습 데이터는 다양한 도메인과 언어를 포함하여 모
델이 다양한 언어적 맥락과 스타일을 학습할 수 있도록 구성되었다. 학습 과정에서는 비지도 학습 방법이 주로 사용되며, 이는
모델이 대량의 텍스트 데이터를 통해 패턴을 스스로 학습할 수 있도록 한다. 또한, 학습 과정에서 모델의 성능을 지속적으로 평
가하고 조정하는 과정을 통해 최적의 성능을 도출한다.
• 성능 및 응용 분야
LLaMA3-8B-IT 모델은 다양한 NLP 과제에서 높은 성능을 보인다. 이 모델은 텍스트 생성, 기계 번역, 텍스트 요약, 질의응답 시
스템 등 여러 응용 분야에서 사용될 수 있다. 특히, 모델의 대규모 매개변수와 정교한 학습 방법론은 복잡한 언어적 패턴을 이해
하고 생성하는 데 탁월한 능력을 발휘한다. 예를 들어, 텍스트 생성에서는 인간이 작성한 것과 유사한 품질의 문장을 생성할 수
있으며, 기계 번역에서는 문맥을 이해하여 정확하고 유창한 번역 결과를 제공할 수 있다.
• 모델의 장점 및 한계
LLaMA3-8B-IT 모델의 주요 장점은 대규모 언어 모델로서의 강력한 성능이다. 이는 복잡한 문맥 이해와 고품질 텍스트 생성을
가능하게 한다. 또한, 다양한 도메인과 언어를 아우르는 학습 데이터를 통해 다양한 응용 분야에 적용할 수 있는 범용성을 제공
한다. 그러나, 대규모 모델의 특성상 높은 계산 자원과 메모리 용량을 요구하며, 이는 실시간 응용에서는 제한이 될 수 있다. 또
한, 비지도 학습의 특성상 학습 데이터의 편향이 모델의 출력에 영향을 미칠 수 있으며, 이는 신중한 데이터 선택과 후처리 과정
을 필요로 한다.
6.답변 평가 및 점수화
사용자의 면접 답변을 평가하기 위해, Encoder 모델을 기반으로 Classi
fi
ca
ti
on Task Fine Tuning을 시도하였다. 사용자가 어떠
한 질문에 대한 답변을 입력하면, 적절성을 0에서 5점까지로 부여하는 방식으로, 0점에서 5점까지를 Classi
fi
ca
ti
on 할 수 있도
록 Fine-Tuning하는 것을 목적으로 했다.
Base Model은 DeBERTa를 바탕으로 Fine-Tuning 했으며, Fine-Tuning 시에는 질문 - 답변으로 구성되어 있는 데이터셋을 활용
하고자 하였다.
6
DeBERTa Explained
7. DeBERTa (Decoding-enhanced BERT with disentangled a
tt
en
ti
on) 모델은 Microso
ft
Research에서 개발된 자연어 처리
(NLP) 모델로, BERT와 RoBERTa의 성능을 개선하기 위해 설계되었다.
• 모델 아키텍처 및 주요 특징
Disentangled A
tt
en
ti
on DeBERTa의 주된 혁신 중 하나는 disentangled a
tt
en
ti
on 메커니즘이다. 이는 단어의 내용(content)
과 위치(posi
ti
on) 정보를 분리하여 처리하는 방식으로, 전통적인 self-a
tt
en
ti
on 메커니즘의 한계를 극복한다. 전통적인 self-
7
8. a
tt
en
ti
on에서는 단어의 위치 정보와 내용 정보가 함께 처리되어 위치 정보가 충분히 반영되지 못하는 문제가 있다. DeBERTa
는 이를 개선하기 위해 단어의 내용 정보와 위치 정보를 별도로 인코딩하고, 각각에 대해 a
tt
en
ti
on score를 계산한 후 이를 통
합하여 최종 a
tt
en
ti
on을 결정한다. 이로 인해 모델은 문맥에서 단어의 위치와 의미를 더 잘 파악할 수 있게 된다.
Enhanced Mask Decoder DeBERTa는 또 다른 주요 혁신으로 enhanced mask decoder를 도입하였다. 이는 BERT에서 사용하
는 마스킹 방식의 단점을 보완하기 위한 것이다. BERT는 입력 문장에서 일부 토큰을 마스킹하고, 이를 예측하는 방식으로 학습
된다. 그러나 마스킹된 토큰의 위치 정보는 모델이 학습 과정에서 손실될 수 있다. DeBERTa는 이를 해결하기 위해 마스킹된 토
큰의 위치 정보를 유지하면서, 더 정교한 예측을 가능하게 하는 새로운 디코딩 메커니즘을 적용하였다. 이를 통해 모델은 문장
내에서 더 정확한 문맥적 이해를 바탕으로 마스킹된 토큰을 예측할 수 있다.
• 성능 및 응용 분야
DeBERTa는 다양한 벤치마크 테스트에서 BERT 및 RoBERTa를 능가하는 성능을 보여준다. 특히, GLUE(General Language
Understanding Evalua
ti
on)와 SQuAD(Stanford Ques
ti
on Answering Dataset)와 같은 대표적인 NLP 태스크에서 우수한 결
과를 나타낸다. 이러한 성능 향상은 모델이 더 복잡하고 긴 문맥을 이해하는 능력을 갖추게 하며, 이는 텍스트 분류, 질의응답,
문장 유사도 측정, 감정 분석 등 다양한 NLP 응용 분야에서 강력한 성능을 발휘하게 한다.
6.1 데이터셋 활용
데이터셋은 AIHub의 ‘채용 면접 데이터셋’을 초기에 활용하고자 하였으나, Ques
ti
on Answering에 대한 데이터셋이었기에 모
든 답변이 질문에 대한 ‘적절한 답변’이었다. 즉, 질문에 대한 답변을 평가하는 Classi
fi
ca
ti
on 모델을 구성해야 하는 입장에선
질문에 대한 점수 별 답변을 갖고 있는 새로운 데이터셋을 고안해야 할 필요성이 생기게 되었다.
6.2 데이터셋 생성
Score classi
fi
ca
ti
on에 대한 한국어 데이터셋은 기존에 존재하지 않았기에, 새로운 데이터셋을 평가해야 할 요구사항이 생기게
되었고, 비용 효율적인 측면에서 ‘LLM을 통한 데이터셋 자동 생성’을 채택하게 되었다.
6.2.1 OpenAPI를 활용한 Dataset Augmenta
ti
on 비용 최적화 전략 대안
본 연구의 주요 데이터셋은 완전 무료화 비용을 달성하였다. 최적화된 자원 사용을 위해서는 목적에 가장 부합한 데이터셋으로
학습해야 했다. 이에 따라 데이터셋을 직접 생성하기 위한 연구를 진행하였다 .면접 내에서 진행되는 질문-답변에 대한 일련의
데이터셋은 본 연구에서 적용한 파인 튜닝 베이스 모델의 성능 향상에 가장 높은 기대치를 가정하였다. 대용량 데이터셋 확보를
위해 Data augmenta
ti
on을 시도하였다.
8
데이터셋 생성 예시 (0점 답변)
9. 연구 산출물에는 답변을 평가하는 핵심 기능이 존재하므로, 데이터셋 역시 질문에 대한 답변의 점수가 부여된 형태가 요구되었
으나, 공개된 배포 데이터셋 환경에서는 해당 정보를 얻을 수 없었다. 이에 따라 면접의 주요 평가 기준과 데이터의 정형을 프롬
프트 형태로 제공하여 타 LLM 모델을 통해 대용량 데이터를 생성하였다. 이는 오픈소스로 공개된 Groq Cloud LLM API를 사용
하여 공개 모델에 데이터 생성 프롬프트를 부여하여 면접자의 답변에 대한 평가 지표가 첨가된 데이터셋을 무료로 생성할 수 있
었다.
6.2.2 카테고리 별 질문 - 답변 세트 생성
총 11개의 카테고리를 토대로 데이터셋을 생성했다(인공지능, 백엔드, 프론트엔드, 게임 개발, 데이터 분석, 알고리즘, 데이터베
이스, 운영체제, 자료구조, 네트워크, 컴퓨터구조). 11개의 CS 분야에서 각각 303개의 질문을 만들도록 범주화했고, 생성된 질
문마다 0-2점의 답변들을 각각 3개씩 부여하고, 이에 질문 당 9개의 예시 답변을 생성했다. 도합 29997 개의 질문 - 답변 데이
터셋을 구성했다.
6.3 Hallucina
ti
on 해결을 위한 Contras
ti
ve Learning
만들어진 데이터셋으로 Fine-Tuning 후 테스트한 결과, 정답이 아닌데도 만점을 부여하는 등 Hallucina
ti
on 현상이 발생하게 되
었다. 이러한 현상이 발생한 이유가 데이터셋의 정보 불균형에 있다고 보았고, Contras
ti
ve Learning을 통해 답변의 맥락 파악
을 향상시키고자 하였다.
Contras
ti
ve learning은 머신 러닝에서 대표적인 자기 지도 학습(self-supervised learning) 기법 중 하나로, 데이터 포인트 간의
유사성과 차이를 학습하는 데 초점을 맞춘다. 이 기법은 주어진 데이터 샘플 쌍을 통해 유사한 것끼리는 더 가깝게, 다른 것끼리
는 더 멀게 위치시키는 방식으로 학습을 진행한다.
Contras
ti
ve learning의 핵심은 두 가지 데이터 포인트 간의 관계를 정의하고, 이를 통해 모델을 학습시키는 것이다. 일반적으
로, 같은 클래스나 유사한 특성을 가진 데이터 샘플들은 "posi
ti
ve pair"로 간주되며, 서로 다른 클래스나 특성을 가진 데이터
샘플들은 "nega
ti
ve pair"로 간주된다. 학습 과정에서 모델은 posi
ti
ve pair 간의 거리를 최소화하고, nega
ti
ve pair 간의 거리
를 최대화하는 방향으로 파라미터를 조정한다.
이러한 Contras
ti
ve learning의 개념을 차용해 다른 질문의 답변을 이용하여 0점 Data로 Dataset에 새로 추가하여
Hallucina
ti
on 현상을 방지하고자 하였다.
하지만 그럼에도 불구하고 Metric(Accuracy, F1, Precision, Recall)을 살펴보았을 때 성능 향상은 미미했고 이에 따라 인코더
기반의 모델 구조가 아닌 디코더 기반의 모델로 전향하고자 하였다.
9
Contras
ti
ve Learning
10. 6.4. Decoder 기반 모델
사용자 답변 평가 기능의 세 번째 시도에서는 Transformer 기반의 Decoder 구조를 활용한 모델을 채택하였다. 이 모델은 인터
뷰 질문에 대한 답변의 정확도를 수치화하여 평가할 수 있는 기능을 제공한다. 구체적으로, 모델은 답변의 내용, 문법적 정확성,
적절성 등을 종합적으로 고려하여 점수를 산출한다. 평가 점수뿐만 아니라, 모델은 왜 특정 점수가 부여되었는지에 대한 이유
10
디코더 모델의 면접 평가 테스트
한국어 Tokenizer 개선 이후 성능 측정 결과 (Accuracy score)
11. 도 제공한다. 예를 들어, 답변이 구체성이 부족하거나 논리적 일관성이 결여되었음을 지적할 수 있다. 이러한 피드백을 통해 사
용자는 자신의 답변의 약점을 명확히 이해하고 개선할 수 있다.
또한, 모델은 사용자가 자신의 답변을 어떻게 개선할 수 있는지에 대한 구체적인 조언도 제공한다. 예를 들어, "답변의 구체성
을 높이기 위해 더 많은 예시를 포함해 보세요"와 같은 피드백을 제공함으로써 사용자의 역량 향상을 도모한다. 이를 위해 모델
은 단순히 평가 점수를 제공하는 것을 넘어, Genera
ti
on Task를 통해 사용자의 답변을 분석하고 개선 방안을 자동으로 생성할
수 있도록 설계되었다. 이는 기존의 단순한 평가 모델과 차별화되는 점으로, 사용자에게 보다 구체적이고 유용한 피드백을 제
공하는 것을 가능하게 한다.
결과적으로, 본 연구의 Decoder 기반 모델은 인터뷰 준비 과정에서 사용자의 답변 능력을 지속적으로 향상시키고, 평가와 개
선을 한 번에 제공함으로써 서비스적 향상을 도모한다. 이는 사용자의 인터뷰 성공률을 높이고, 인터뷰 준비 과정에서의 효율
성을 극대화하는 데 기여할 것이다.
6.5. 외국어 Token 생성 문제
Decoder 기반 모델인 Llama3 8b It을 사용하여 인터뷰 답변 평가 기능을 구현하는 과정에서, 생성된 Response에서 외국어
Token이 지속적으로 생성되는 문제가 발생하였다. 이는 Llama 3 모델이 한국어 Tokenizer를 충분히 지원하지 못하기 때문으
로, System Prompt를 추가하여 Request를 보내면 응답에서 적절한 한국어 Token을 생성하지 못하고 외국어 Token을 생성하
는 현상이 나타났다. 문제의 원인은 한국어에 대한 Tokenizer 부족으로, 이를 해결하기 위해 추가적인 한국어 데이터를 사용하
여 모델을 재훈련하거나, 한국어 전용 Tokenizer를 사용하는 방법을 검토하였다. 이러한 접근을 통해 모델이 한국어 응답에서
적절한 Token을 생성하도록 개선하였다.
6.5.1. 평가 점수의 극단화 문제
Prompt Engineering을 통해 답변의 평가 점수를 0점에서 5점으로 확장하였으나, 실제로 점수를 부여할 때 중간 점수인 2점
과 3점이 거의 부여되지 않는 현상이 발생하였다. 경험적으로 정답인 경우 4점 또는 5점을, 오답인 경우 0점 또는 1점을 부여하
여 중간 점수가 부여되는 경우가 드물었다. 이는 Pretrained 정보로만 답변을 평가하여 점수가 극단적으로 부여되는 문제로 판
단되었다. 이를 해결하기 위해 더 많은 중간 사례를 포함한 데이터셋을 사용하여 모델을 재훈련하고, 점수 부여 로직을 개선하
였다. 이러한 조치를 통해 다양한 답변에 대해 더 세밀하고 공정한 평가 점수를 부여할 수 있게 되었다.
6.5.2. Hallucina
ti
on 문제
Decoder 기반 모델을 사용할 때, 그럴듯한 답변이 입력되면 모델이 정답이라고 착각하여 점수를 부여하는 Hallucina
ti
on 문
제가 발생하였다. 이 문제는 모델이 정답과 관련된 직접적인 정보를 학습하지 않았기 때문에 발생하였다. Hallucina
ti
on 문제
를 해결하기 위해 모델의 응답을 검증하는 후처리 단계를 도입하거나, 추가적인 검증 모듈을 통해 응답의 정확성을 확인하는
방식을 채택하였다. 이를 통해 모델이 더욱 신뢰할 수 있는 평가 점수를 부여하도록 개선하였다.
7. 한국어 응답 튜닝
7.1 한국어 Token 추가
LLAMA3-8B-IT 모델을 기반으로 질문을 생성하는 과정에서, 한국어 Tokenizer 성능 문제로 인해 외국어로 응답이 나오거나, 특
수문자가 섞이는 경우가 존재했다. 이러한 문제를 해결하고자 토크나이저에 새로운 토큰들을 추가하여 한국어 응답 성능을 개
선시켰다. 다만 모델이 어떻게 토큰을 임베딩할지에 대한 정보가 없기 때문에, Random Vector로 임베딩한 뒤 Supervised
Fine Tuning을 통해 새로운 토큰을 어떻게 할지 학습시켰다.
하지만 성능 측정 결과 기대치에 미치지 못했으며, 이는 Quan
ti
za
ti
on과 LoRA를 통해 학습을 진행하였기에 발생한 문제라고 예
상했다. 따라서 다른 방법을 고안하게 되었고, Chat Vector 방식을 차용하였다.
11
12. 7.2 Chat Vector 적용
Chat Vector는 대화 기반 애플리케이션에서 사용자 입력을 고차원 벡터로 변환하는 임베딩 기술을 의미한다. 이 기술은 대화의
맥락을 이해하고, 대화 중의 문장이나 단어 간의 의미적 유사성을 파악하기 위해 사용된다.
Chat Vector는 주로 Transformer 기반 모델을 활용하여 사용자 발화의 의미를 벡터 공간에 임베딩한다. 이러한 벡터는 대화 시
스템이 사용자 의도를 파악하고, 적절한 응답을 생성하는 데 도움을 준다. 또한, 벡터 간의 유사도를 계산하여 유사한 문장을 찾
거나 대화의 흐름을 예측할 수 있다.
이러한 Chat Vector를 이용하면 It Model보다 한국어 구사 능력이 좋아지는 것을 기대할 수 있다. 한국어 데이터셋을 이용해
Con
ti
nuous Pretraining을 진행하고, 영어 Instruc
ti
on Model에서 Base Model 가중치값을 뺀 뒤, Con
ti
nuous Pretrained 된
Model의 가중치 값을 더하면 된다.
Huggingface에 한국어로 Con
ti
nuous Pretrained 된 모델을 사용해 조정 가중치 값을 더해 Chat Vector가 적용된 LLAMA-8B-
IT 모델을 구현했다. 그 결과 Chat Vector를 적용한 뒤 모든 Metric에 대해서는 크게 성능이 향상된 것을 확인할 수 있었다.
12
Chat Vector Concept
14. 8. Prompt Engineering: In-Context Example
본 연구에서는 모델의 답변 평가 성능을 향상시키기 위해 Prompt Engineering의 한 방법으로 In-Context Example을 도입하
였다. 기존의 Prompt Engineering은 평가 기준을 제시하기는 했지만, 모델이 이 기준만을 가지고 답변을 해석하여 평가하는
데에는 한계가 있었다. 이러한 한계를 극복하기 위해, 모델이 참고하여 평가할 수 있는 예시를 사용자 Prompt 내부에 포함시키
는 방식으로 개선하였다.
8.1. In-Context Example의 도입
In-Context Example을 도입함으로써, 모델이 사용자 답변을 평가할 때 참고할 수 있는 예시를 제공하였다. 이는 모델이 이미
학습한 지식과 Instruc
ti
on Fine-tuning을 통해 생성된 답변을 기반으로 하여, 사용자 답변과 비교 평가할 수 있도록 하였다. 구
체적으로, 모델이 직접 생성한 답변을 컨텍스트로 제공하고, 사용자의 답변과 비교하여 판단하도록 Prompt를 구성하였다. 이
를 통해 모델의 평가 능력이 향상되고, 더 정확하고 공정한 평가가 가능해졌다.
14
In-Context Example
15. 8.2. Tree-of-Thought 방법론
Tree-of-Thought(TOT) 방법론은 복잡한 문제를 해결하기 위한 효과적인 프롬프트 작성 기법 중 하나이다. TOT는 문제를 해
결하기 위해 여러 가지 가능한 경로를 트리 구조로 만들어 생각의 흐름을 명확하게 한다. 이를 통해 모델이 답변을 생성할 때 더
체계적으로 접근할 수 있도록 한다. 예를 들어, 데이터베이스 정규화에 대한 답변을 생성할 때, 각 단계별로 정규화를 설명하고,
그 과정에서 발생할 수 있는 문제와 해결 방법을 트리 구조로 정리할 수 있다. TOT는 복잡한 개념을 체계적으로 정리하고, 각
요소 간의 관계를 명확히 하여 모델이 논리적이고 일관된 답변을 생성하는 데 도움을 준다.
TOT 방법론을 적용할 때, 첫 번째 단계는 문제의 주요 개념을 식별하고 이를 트리의 최상위 노드로 설정하는 것이다. 예를 들
어, 데이터베이스 정규화에서는 '정규화의 정의', '정규화의 단계', '정규화의 장점과 단점'을 최상위 노드로 설정할 수 있다. 다
음 단계는 각 최상위 노드를 세부 항목으로 분해하여 하위 노드를 생성하는 것이다. '정규화의 단계'는 '1NF', '2NF', '3NF'와 같
이 세분화할 수 있다. 각 하위 노드는 더 구체적인 설명이나 예시로 확장될 수 있다. 예를 들어, '1NF'는 '각 컬럼에 원자값만 존
재하도록 함'과 같은 구체적인 정의와 '반복되는 그룹이 존재할 수 있음'과 같은 문제점을 포함할 수 있다.
TOT는 이러한 구조적 접근 방식을 통해 모델이 복잡한 개념을 더 쉽게 이해하고 처리할 수 있도록 한다. 트리 구조를 사용함으
로써 모델은 각 개념 간의 관계를 명확히 이해하고, 논리적인 흐름을 따라 답변을 생성할 수 있다. 이는 모델이 답변을 생성할
때 혼란을 줄이고, 보다 정확하고 일관된 응답을 제공하는 데 도움을 준다.
또한, TOT는 모델의 응답 생성 과정에서 발생할 수 있는 문제를 사전에 식별하고 해결할 수 있는 방법을 제시하는 데 유용하다.
예를 들어, '2NF'에서 발생할 수 있는 문제로 '일부 데이터 중복'을 식별하고, 이를 해결하기 위한 방법을 미리 제시함으로써 모
델이 더 정확한 답변을 제공할 수 있도록 한다. 이와 같은 TOT의 적용은 복잡한 문제를 단계별로 해결하고, 각 단계에서 발생할
수 있는 문제를 체계적으로 해결하는데 큰 도움이 되었다.
9. RAG(Retrieval Augmented Genera
ti
on) 도입
15
Tree-of-Thought
16. 언어 모델은 보편적인 답변을 하는 경향이 있기에, 보다 구체적인 답변을 위해 Retrieval Argument Genera
ti
on을 적용했다.
GNU License로 제공되는 위키피디아 한국어 덤프본을 Retrieval 하기로 결정했고, 이를 XML 형태로 저장하여 파싱, 이후
sentence transformer를 통해 임베딩해 벡터 데이터베이스로 구성했다. 이후 유사도 검색을 통해 사용자의 답변을 토대로 적
절한 wikipedia 문서를 찾도록 구성했고, 이를 Context로 제공해 LLAMA3 모델에 프롬프트로 전달하였다.
하지만 위 그림과 같이 답변이 짧거나 적절하지 못한 경우 적절한 Context(위키피디아 문서)를 찾는 데에 어려움이 있었고, 키
워드 - 문서 매핑 알고리즘을 구현하기에는 리소스가 부족해 추후 보완할 예정이다.
10. Web Service 배포를 통한 사용성 기반 모델 자기주도 학습 향상 전략
모델의 자기주도적 데이터 학습 및 실사용성 경험 향상을 위한 유저 테스트는 모델의 성능 발전에 유의미한 영향력을 가진다.
본 연구는 학습한 모델 기반의 기술면접 플랫폼 웹서비스를 개발 및 배포하는 산출물을 제작하였다. 이를 통해 실제 사용자들
의 입력에 따른 모델의 출력 결과들을 저장하고, 데이터로 정제화하여 모델의 추가 데이터 학습 향상 전략의 keypoint data
source로 활용하였다.
면접 기능에 대한성 과정에서 발생할 수 있는 문제를 사전에 식별하고 해결할 수 있는 방법을 제시하는 데 유용하다. 예를 들
어, '2NF'에서 발생할 수 있는 문제로 '일부 데이터 중복'을 식별하고, 이를 해결하기 위한 방법을 미리 제시함으로써 모델은 더
정확한 답변을 제공하고, 사용자들은 면접 시뮬레이션 경험을 향상시킬 수 있는 상호 성장 환경을 구성하였다.
10.1. 주요 구현 기능
본 연구에서는 면접 자동화 시스템을 위한 웹 서버를 구현하였으며, 주요 기능은 다음과 같다. 첫째, 면접 시작 시 대화방을 생
성하여 면접자와의 실시간 대화를 지원한다. 대화방 내에서 답변을 입력하면 면접자의 유효성을 검증하는 기능을 제공하여, 면
접 과정의 신뢰성과 정확성을 높인다. 둘째, 답변의 유효성을 검사하기 위해 정규 표현식을 사용한 문자열 검증 기능을 구현하
16
17. 였다. 이를 통해 비정상적인 입력을 사전에 차단하고, 데이터의 일관성을 유지할 수 있다. 셋째, 사용자별 대화 기록을 조회할
수 있는 기능을 제공하며, 대화방별 대화 기록 조회 시 페이징 기능을 추가하여 대용량 데이터 처리 시 효율적인 데이터 관리가
가능하도록 하였다. 넷째, AI 모델 정보를 리스트 형태로 제공하여 여러 모델을 선택할 수 있도록 확장성을 고려하였다. 이를 통
해 다양한 인터뷰 시나리오에 맞춤형 모델을 적용할 수 있다. 마지막으로, 대화방 내 인터뷰 주제를 저장하고 대화방 간 이동 기
능을 제공하여 사용자 경험을 향상시켰다. 이러한 기능들은 전반적인 면접 자동화 시스템의 효율성을 높이고, 사용자와의 상호
작용을 강화하는 데 기여한다.
10.2. AWS 클라우드 기반 배포 인프라 구성
본 시스템의 배포 인프라는 AWS 클라우드를 기반으로 구성하였다. Public subnet에는 현재 API만 배포하였으며, 이는 프론트
17
실제 면접 평가 서비스 화면
18. 엔드에서 사용 가능하도록 설정되었다. AWS Free-
ti
er VPC를 구성하여 비용 효율적인 인프라를 제공하였으며, Private subnet
에는 채팅 데이터베이스와 HuggingFace 모델 연결 서버를 배치하였다. 이를 통해 민감한 데이터와 모델을 안전하게 보호하고,
신뢰성 있는 서비스를 제공할 수 있다. Nginx 서버를 구성하여 사용자 가입 처리와 대화 단건 조회 및 사용자 조회 등 정적 데이
터 처리를 수행하였다. 페이지 접근 시 OAuth 가입 여부를 확인하고, 보안 접근 제한 필터링을 구현하여 사용자 데이터를 안전
하게 보호하였다. 이러한 인프라 구성은 시스템의 확장성과 보안성을 강화하며, 연구 결과의 신뢰성을 높이는 데 기여한다.
10.3. 웹페이지 개발 및 API 명세
웹페이지는 Vue3.js를 기반으로 개발되었으며, 사용자 인터페이스와 사용자 경험을 최적화하였다. 직관적이고 반응성이 좋은
UI를 통해 사용자 친화적인 인터페이스를 제공하며, 면접 자동화 시스템의 접근성을 높였다. Swagger 3를 기반으로 API 명세
기능을 제공하였고, 테스트 가능한 명세 환경을 구현하였다. 이를 통해 개발자들이 API를 쉽게 이해하고 활용할 수 있도록 하였
으며, 시스템 통합의 효율성을 높였다. 입력 검증 및 예외 케이스 처리를 통해 안정적인 서비스 제공을 목표로 하였다. 예외 케
이스는 별도의 비즈니스 로직으로 구성하여 대화 기능에 맞는 에러 트래킹을 구현하였다. 이러한 웹페이지와 API 명세의 개발
은 면접 자동화 시스템의 사용성과 신뢰성을 크게 향상시켰다.
18
Web Overall Architecture
19. 10.4. Web Server Implement
데이터셋은 오픈소스화하여 Huggingface에 배포할 계획이며, 이를 통해 연구 커뮤니티와의 협업을 촉진하고, 모델의 발전을
도모할 수 있다. 도메인 구매 후 공개 배포를 진행할 예정이며, GitHub를 통해 코드와 데이터를 배포하여 연구의 투명성과 재현
성을 보장할 것이다. 또한, 데모 페이지를 배포하여 면접 자동화 시스템의 실제 활용 사례를 보여주고 사용자 피드백을 수집할
계획이다. 이를 통해 시스템의 실용성을 검증하고 지속적으로 개선할 수 있도록 할 것이다. 이러한 오픈소스화와 공개 배포는
연구의 확장성과 지속 가능성을 높이며, 면접 자동화 모델의 발전에 기여하는 중요한 요소가 될 것이다.
11. 향후 계획
대부분의 모델 기능은 계획했던 정도로 완성했고, 면접 평가 및 질문 생성에는 어려움이 없는 상황이다. 따라서 추후 사용자들
이 웹 브라우저에서 서비스를 더 잘 사용할 수 있도록 UX 개선 및 기능 추가 작업을 거칠 예정이다.
12. 참고 논문
A
tt
en
ti
on Is All You Need
Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, and Illia
Polosukhin, “A
tt
en
ti
on Is All You Need,” in Advances in Neural Informa
ti
on Processing Systems (NeurIPS), 2017.
Available: h
tt
ps://arxiv.org/abs/1706.03762
Chat Vector: A Simple Approach to Equip LLMs with Instruc
ti
on Following and Model Alignment in New Languages
Shih-Cheng Huang, “Chat Vector: A Simple Approach to Equip LLMs with Instruc
ti
on Following and Model Alignment in
New Languages,” 2023. Available: h
tt
ps://arxiv.org/abs/2310.04799
Llama 2: Open Founda
ti
on and Fine-Tuned Chat Models
Hugo Touvron, Louis Mar
ti
n, and Kevin Stone, “Llama 2: Open Founda
ti
on and Fine-Tuned Chat Models,” 2023.
Available: h
tt
ps://arxiv.org/abs/2307.09288
19