아주 간단한 프롬프트 엔지니어링 (1): LLM에 대해서

3 minute read

글을 쓰게 된 배경

팀 내에서 LLM을 이용한 챗봇을 만드는 프로젝트를 하기로 하면서 LLM와 프롬프트 엔지니어링에 대해서 리서치를 하게 되었습니다. 그러면서 엄청나게 어려운 기술이 아니라 간단하고 실제로 LLM, 대표적으로 chatgpt와 같은 서비스를 이용할 때 유용하게 사용할 때 도움이 될만한 프롬프트 엔지니어링에 대해서 알게되었습니다. LLM에 깊숙히 알지 못하더라도 잘 사용할 수 있는 방법에 대해서 공유하고 싶었습니다.

대상

LLM을 잘 알지 못하지만 잘 활용하고 싶은 사람들.

글의 시작

인공지능의 발전은 우리의 상상을 초월하는 속도로 진행되고 있습니다. 그 중심에는 ‘LLM(Large Language Models)’이 있으며, 이들은 언어를 이해하고 생성하는 능력을 통해 다양한 분야에서 혁신을 가져오고 있습니다. 이 글에서는 LLM과 이를 더욱 효과적으로 활용하기 위한 ‘프롬프트 엔지니어링’에 대해 알아보겠습니다.

LLM(Large Language Models)이란?

LLM에 대해서 알아보기 전에 프롬프트 엔지니어링 이전에 LLM에 대해서 설명을 해야될까요?

뒤에 말하겠지만 프롬프트를 입력받아서 그것을 처리하는 것은 결국 LLM입니다. 그러기 때문에 근본적으로 해당 기술이 가지고 있는 장점과 한계점에 대해서 알게 되나면 이 기술이 왜 이러는지에 대해서 완벽하게 알지 못하더라도 추측을 통해서 발전 시킬수 있다고 생각합니다.

이제 설명으로 돌아와서, LLM은 Large Language Model의 약자로, 말 그대로 방대한 양의 언어 데이터를 기반으로 학습된 거대한 언어 모델을 의미합니다. 이 모델들은 수십억에서 수조 개에 달하는 파라미터를 가지고 있으며, 이를 통해 사람의 언어를 이해하고, 새로운 문장을 생성하는 능력을 갖추고 있습니다.

2020년 이전에는 약 110억 개의 파라미터를 가진 모델이 가장 큰 것으로 알려져 있었습니다. 그러나 2020년 GPT-3의 등장으로 1750억 개의 파라미터를 가진 모델이 소개되었고, 2023년에는 더욱 발전된 GPT-4가 1조 7억 개의 파라미터를 가졌다고 인터넷 검색으로 나오지만 실제로 공개된 적은 없습니다. 이 이야기만 들어도 2020년 이후에 기존 Language Model 대비 엄청나게 큰 모델이 만들어진 것으로 보이죠?

LLM의 생성 과정

LLM은 크게 Pre-training과 Fine-tuning 두 단계의 학습 과정을 거칩니다.

Pre-training(사전 학습)

인터넷에 존재하는 방대한 양의 텍스트 데이터를 사용하여 모델을 학습시키는 단계입니다. 실제 이 단계를 거치게되면 다음에 오는 단어를 예측하는 모델이 만들어집니다.

굉장히 많은 데이터를 가져와서 엄청나게 비싼 그래픽카드와 시간을 투자하기 때문에 굉장히 큰 비용과 시간을 사용해야 됩니다.

하지만 이 과정을 통해서 만들어진 모델은 실질적으로 큰 도움이 되지 않습니다. 그렇기 때문에 추가적인 작업이 필요합니다.

Fine-tuning(미세 조정)

이번에는 사람이 직접 선별한 고품질 데이터(라벨링된 데이터)를 기반으로 Pre-training으로 만들어진 모델에 추가 학습을 시킵니다. 사람들 혹은 ai가 직접 만들고 판단한 데이터로 좋은 답변, 좋은 텍스트를 생성할 수 있도록 하는 데이터셋을 학습시킵니다.

기존에 진행했던 Pre-training보다 훨씬 적은 사이즈의 데이터셋입니다. 그러기 때문에 이전 단계보다 적은 비용, 적은 시간이 걸립니다.

이 단계를 거쳐서 우리가 사용할 수 있는 그리고 그럴싸한 답변을 만들어주는 인공지능 모델이 만들어집니다.

RLHF(Reinforcement Learning from Human Feedback)

해당 단계를 Fine-tuning 단계로 같이보는 경우도 있지만 따로 보는 경우도 있습니다.

마지막으로, RLHF(Reinforcement Learning from Human Feedback) 과정을 통해 사람의 피드백을 바탕으로 모델이 더 나은 답변을 생성하도록 지속적으로 학습합니다.

이 과정을 통해서 사람들이 더 좋다고 인식되는 답변들에 대해서 학습시켜 더 좋은 답변, 더 좋은 텍스트를 생성하기 위해서 학습시키는 단계입니다.

LLM의 작동 원리

정확하게 어떻게 동작하는지 구체적인 논리 구조에 대해서 아직 알아내지 못했습니다.

그 이유로는 무엇보다 너무 많이 파라미터와 너무 많은 학습 단계로 인해서 구체적으로 어떤 원리로 우리가 매우 똑똑하다고 생각하는 인공지능이 되었는지 모른다고 합니다.

그러기 때문에 (다른 이유도 있지만) 프롬프트 엔지니어링과 같이 경험적인 요소를 기반으로 더 좋은 답변을 만들기 위한 것들이 만들어 지고 있습니다.

그래서 LLM은?

그래서 LLM은 이런 많은 돈과 시간을 쓰고 많은 학습 단계를 통해서 결국 어떤 텍스트 입력에 대해서 뒤에 올 문장을 아주 잘 만드는 모델 이라고 할 수 있습니다.

LLM의 장점

LLM은 기존 Language model에서 중요하게 다뤄졌던 요약, 번역, 감정 분석 등 다양한 언어 관련 작업을 수행하는 데 뛰어난 능력을 보입니다. 이전에는 요약, 번역, 감정 분석과 같은 기술들은 각 분야별로 매우 중요한 요소들이었지만 현재 LLM을 기반으로 쉽게 처리할 수 있습니다.

https://chat.openai.com/share/399ca57b-3084-40b6-943e-9c5dd3099b17

잘되는 것 같으면서도 잘 안되는것 같지만 이렇게 특정 글을 가져와서 요약해달라고 하거나 글에 대한 감정을 물어보게되면 아주 빠르고 간단하게 답을 들을 수 있습니다.

LLM의 한계

다들 처음 chatgpt가 나왔을 때 세종대왕 맥북프로 던짐 사건이라고 들어보셨을 것입니다. 인터넷과 interact하지 않은 LLM 서비스 같은 경우 완벽하거나 최신 지식을 가지고 있지 않기 때문에, 때때로 잘못된 정보를 생성할 수도 있습니다.

이를 할루시네이션이라고 하며, 모델이 알고 있지 않은 정보에 대해 잘못된 답변을 만들어내는 현상을 말합니다.

LLM의 활용 사례

LLM은 단순히 텍스트 생성에만 국한되지 않습니다. 리서치, 데이터 분석, 아이디어 생성 등 다양한 분야에서 활용될 수 있습니다.

특히 Bing과 같이 검색을 통해서 최신 정보를 가져와서 LLM이 답변을 해줄 수 있는 경우에는 리서치에 매우 유용하게 사용할 수 있습니다. 최신 뉴스 기사들을 이용해서 다양한 정보들을 수집할 수 있습니다.

그것 뿐만 아니라 엑셀 및 pdf 기반으로 처리하는게 아니더라도 숫자와 포맷을 명시적으로 입력하고 LLM이 알기 쉽게 데이터를 전달해줬을 경우에 텍스트를 이용해서도 충분히 데이터 분석이 가능합니다.

마무리

이번 글에서는 LLM에 대해서 아주 간단하고 아주 쉬운(?) 글을 작성해봤습니다. 다음 글로는 제가 진짜로 말하고 싶은 프롬프트 엔지니어링에 대해서 글을 작성해보겠습니다.

Ref

  • https://www.youtube.com/watch?v=zjkBMFhNj_g&t=0s

Leave a comment