본문 바로가기
논문리뷰

[논문리뷰] Personality-Guided Code Generation Using Large Language Models

by 단깅수 2026. 1. 6.
728x90

Personality-Guided Code Generation Using Large Language Models 논문 리뷰입니다.

논문 : Personality-Guided Code Generation Using Large Language Models

저자 : Yaoqi Guo, Zhenpeng Chen, Jie M. Zhang, Yang Liu, Yun Ma

[1] Introduction

자연어 프롬프트로부터 소스 코드를 자동으로 생성하는 코드 생성 Task는 소프트웨어 개발을 간소화할 수 있는 잠재력 덕분에 학계 및 산업계에서 큰 관심을 받고 있습니다.

 

https://www.digidop.com/blog/deepseek-vs-chatgpt

 

아마 저를 포함한 많은 분들이 ChatGPT, Gemini 등 LLM의 힘을 빌려서 코딩을 하고 계실거라 생각하는데요.

또한, Codellama, DeepSeek-Coder V2와 같이 코드 생성을 중점적으로 하는 LLM도 생겨나고 있습니다.

 

그리고 LLM에 역할을 부여한다면 성능이 더 올라간다는 연구결과도 있어 많은 사람들은 LLM에 프로그래머 역할을 부여해 코드 생성 작업을 수행하고 있습니다.

 

하지만 이렇게 프로그래머 역할을 부여받은 LLM에 성격 다양성을 높이는 것이 코드 생성 정확도를 더욱 향상시킬 수 있는지는 불분명하기 때문에 이 작업을 본 논문에서 수행했다고 합니다.

 

요약하자면 (1) GPT-4o를 사용하여 각 코딩 작업에 맞춘 프로그래머 성격을 생성하고, (2) 생성된 성격을 가진 프로그래머의 역할을 모방하도록 다양한 LLM에 할당 후 코드 생성 정확도를 평가합니다.

 

본 연구에서 7개의 LLM과 4개의 데이터셋을 활용하였고 결과적으로 28개 LLM-Dataset 조합 중 23개에서 성능이 올랐다고 합니다.


[2] Related Work

(1) ChatGPT와 같은 LLM의 등장으로 자동 코드 생성 Task가 크게 변화했으며 LLM에 기반해 코드를 생성하는 본 Task는 산업계와 자연어처리 및 소프트웨어 커뮤니티 모두에서 매우 활발한 분야로 떠올랐습니다. ChatGPT, GPT-4, DeepSeek-Coder, CodeLlama 등 코드 관련 작업을 최적화하도록 설계된 LLM도 개발되었습니다.

 

(2) 프롬프트 엔지니어링을 통해 LLM 기반 코드 생성 Task의 정확도를 향상시키는 것은 중요한 전략이고 실제로 성능 향상을 위해 프롬프트 엔지니어링을 많이 활용하고 있습니다. 그래서 대개 프로그래머 역할을 LLM에 부여하는데 본 논문에서는 프로그래머 역할뿐 아니라 성격을 부여함으로써 성격 기반 코드 생성과 기존 프롬프트 전략을 통합하여 성능을 더욱 향상시킬 수 있는 방안을 탐구합니다.

 

(3) 기존 연구에서 ChatGPT가 맥락에 관계없이 일관되게 ENFJ 성격을 나타낸다는 것을 발견했다고 합니다. 그리고 다양한 성격을 부여하면 더 높은 품질의 결과물이 출력된다는 연구들도 존재해 이를 바탕으로 본 논문에서는 성격 다양성을 확보하여 코드 생성 정확도를 향상시키는 것을 목표로 합니다.


[3] Method

 

본 논문에서는 해당 파이프라인을 3가지 섹션으로 정리합니다.

 

  1. 과제 정의
    1. 함수 수준의 코드 생성 Task
    2. 일반적으로 작업 설명이 제공되며 주어진 문제를 해결하기 위한 함수 코드 생성이 요구됨
    3. LLM이 생성한 코드(함수)가 모든 테스트 케이스에 대해 올바른 출력을 생성하면 "정답"으로 간주
  2. 성격 유형 생성
    1. 주어진 코딩 작업에 대해 GPT-4o에게 해당 작업을 해결하는데 가장 적합한 성격 유형을 생성하도록 지시
    2. 본 논문에서의 성격 유형 분류 체계는 MBTI를 채택
    3. 즉, GPT-4o는 코딩 작업을 보고 가장 적합한 MBTI를 출력하는 느낌
  3. 코드 생성
    1. 주어진 작업에 해당하는 MBTI 성격 유형이 생성되면 코드 생성 수행
    2. LLM에게 MBTI 및 해당 성격 유형에 대한 자세한 설명과 프로그매러 역할을 부여하면 LLM이 코드 생성하는 느낌

[4] Experimental Setup

(1) RQ

RQ1. 성격 기반 코드 생성은 정확도를 향상시키는 데 얼마나 효과적인가?

RQ2. 성격 기반 코드 생성의 효과성에 영향을 미치는 잠재적 요인은 무엇인가?

RQ3. 성격 기반 코드 생성 방식을 다른 프롬프트 전략과 결합하여 생성 정확도를 더욱 향상시킬 수 있는가?

RQ4. 코드 생성 과정에서 상세한 MBTI 성격 설명을 포함하는 것이 코드 정확도에 어떤 영향을 미치는가?

RQ5. GPT-4o가 아닌, 다른 LLM을 사용하여 성격을 생성할 경우 정확도가 어떻게 변화하는가?

 

(2) Dataset

MBPP Sanitized, MBPP+, HumanEval+, APPS 등의 Dataset을 활용했다고 합니다.

 

(3) Used Models

 

GPT-4o, GPT-4o mini, Llama3.1, Qwen-Long, DeepSeek-Coder, Codestral, CodeLlama의 7개 모델을 실험했다고 합니다.

 

(4) Evaluation Metric

점수는 모든 테스트 케이스에 대해 얼마나 정답을 맞췄는지 3번 평가하여 평균을 냈다고 합니다.


[5] Results

RQ1: Effectiveness

 

  • Table 2 : 4개의 데이터셋에서 성격 유형별 프롬프트를 적용한 경우와 그렇지 않은 경우의 LLM 정답률 비교 표
  • Direct : LLM에게 프로그래머처럼 코드 생성하도록 직접 지시 (w/o MBTI)
  • MBTI : 성격 유형 기반 방식을 사용하는 방식 (MBTI + Direct)
  • 28개 조합 중 23개 조합에서 정답률을 향상시켰고 11가지 조합에서는 정답률 향상이 5% 이상 일어났으며 5가지 조합에서는 10%를 초과함, 특히 MBPP Sanitized 데이터셋에서 GPT-4o mini 성공률이 12.9% 증가함
  • 평균 0.6% ~ 6.5% 향상된 결과로 보아 모든 모델에서 전체적으로 성능이 향상됨
  • 이를 통해, 원래 성능이 매우 높거나(GPT-4o, DeepSeek-Coder) 매우 낮은(CodeLlama) 모델보다 중간 성능의 모델에서 성능 향상이 많이 일어났음을 알 수 있음

 

RQ2. Influencing Factors

  • Figure 2 : 각 데이터셋별로 GPT-4o가 어떤 MBTI를 생성했는지 분포를 나타내는 그림
  • 위의 Table 2에서 볼 수 있듯이 성능 감소는 HumanEval+와 APPS에서만 나타나는데, 이는 이미 모델 성능이 우수하고 비교적 쉬운 Task에서는 성격 기반 접근 방식의 성능 향상 효과가 저하되거나 매우 어려운 작업에서도 작업의 복잡성으로 인해 잠재적인 향상 효과가 제한될 수 있음을 시사함
  • 또한 HumanEval+, APPS에서는 MBTI 분포가 INTJ가 가장 높게 나오면서 성격 유형의 다양성이 낮았는데, 이를 통해 성격 다양성이 성격 기반 코드 생성의 효율성에 영향을 미치는 잠재적 요인일 수 있음을 시사함

 

RQ3: Combination with Other Strategies

 

  • Table 4 : 성격 기반 코드 생성뿐만 아니라 few-shot learning과 CoT와도 성능 비교한 표
  • 실험은 MBPP Sanitized Dataset으로 진행 (가장 성능 향상이 높게 일어난 데이터셋이라서)
  • 본 논문에서 제시하는 성격 기반 접근 방식(Personality)이 Three-shot, CoT에 비해 일관되게 성능이 높음 (왜 3-shot으로 했는지는 모르겠어요)
  • 그리고 각 전략과 성격 기반 접근 방식을 결합하면 더 높은 성능 향상을 이뤄낼 수 있음

 

RQ4: Prompt Design

 

  • Table 5 : Direct(w/o MBTI), Full Prompt(MBTI 성격 설명도 포함, 본 논문에서 제시하는 방법론), Short Prompt(MBTI만 포함)의 성능 비교 표
  • 너무 긴 프롬프트는 오히려 LLM의 성능 하락을 유발할 수 있기에 본 실험을 진행
  • 결과적으로 MBTI만 제시하는 것보다는 성격 설명도 포함하는 게 더 큰 성능 향상을 불러일으켰으나 MBTI만 제시하는 것도 성능이 향상되었음

 

RQ5: Personality Modeling

 

  • Table 7 : 코드 생성하는 LLM을 성격 생성도 하게 해 Self가 성능이 좋은지 GPT-4o가 생성한 성격 설명을 포함하는 게 좋은지 비교하는 성능 표
  • 결과적으로 GPT-4o가 생성한 성격 유형 설명을 포함하는 게 일관되게 성능이 향상되었지만 GPT-4o mini의 경우만 예외적으로 Self가 성능이 높았음

 

MBTI Description


[6] Conclusion

  • 본 논문은 LLM의 코드 생성 평가를 프로그래머 역할 부여 뿐 아니라 성격 유형 생성 프롬프트를 포함해 성능이 어떻게 변화하는지에 대한 실증적인 연구를 진행함
  • 성격 유형을 포함할 때 MBTI만 제시하는 것이 아니라 각 MBTI에 대한 자세한 설명도 포함하여 성능을 더 끌어올림
  • 하지만 MBTI 프레임워크로 한정된 성격 특성을 살펴보아서 MBTI 자체적인 한계가 존재하고 다른 LLM에도 일반화될 수 있는지 추가적인 연구가 필요함

 

 

[논문리뷰] DPO 논문 리뷰

DPO 논문 리뷰입니다. 논문 : Direct Preference Optimization: Your Language Model is Secretly a Reward Model저자 :Rafael Rafailov, Archit Sharma, Eric Mitchell, Stefano Ermon, Christopher D. Manning, Chelsea Finn [1] IntroductionLLM을 학습시

dangingsu.tistory.com

728x90
반응형