생성형 AI 이해 - 어텐션
프롬프트는 컴퓨터가 사용자에게 보여주는 문구로, 이에 따라 프롬프트 엔지니어링은 좋은 질문을 던지는 것이 아니라, 좋은 답변을 받기 위한 모든 기법을 말한다. 방법이야 어떻게 되는 간에, 결론만 잘 나오면 된다.
LLM은 어텐션(attention) 기반이다. 어텐션은 문제를 풀기 위해 영어 지문을 이리저리 오가며 독해하는 것과 같다. 뒷부분을 읽다가도 앞부분과 붙이고 중요한 부분은 동그라미 치는 과정이라 볼 수 있다. 이런 방법으로 짧은 시간에 엄청난 정보를 정리해 제공할 수 있다. GPT가 내용을 다 기억할 수 있는 것도 어텐션 덕분에 대화를 훑어볼 수 있기 때문이다.
우리 뇌가 필요한 정보만 저장하고, 이 정보를 잘 가공해 꺼내듯이 AI도 인코딩과 디코딩을 거친다. 인코딩은 외부의 정보를 입력하는 과정인데, 인코더 성능이 뛰어날수록 AI의 이해력이 올라간다. 디코딩은 압축된 정보를 꺼내 표현하는 과정인데, 디코더가 뛰어나면 표현력이 좋아진다.
우리가 습득한 정보는 벡터로 표현되는데, 벡터는 레이턴트 스페이스라는 가상의 공간에 놓여 레이턴트 벡터로 정리된다. 인코딩은 레이턴트 벡터를 만드는 과정이다. 디코더는 레이턴트 벡터를 조합해 팽창시키는 과정이다.
레이턴트 스페이스가 커지면 저장 용량도 커지고 판단 능력도 좋아질 것이다. 여기서 트랜스포머(Transformer)가 등장하는데, 인코더와 디코더를 여러개 붙여서 성능을 비약적으로 향상시켰다. OpenAI의 GPT는 디코더를, 구글의 BERT는 인코더를 깊게 쌓은 형태였다. BERT의 성능이 GPT를 압도했는데, OpenAI는 뇌세포가 많으면 AI의 성능이 좋아진다고 판단해 부피를 키우는 방식으로 접근했다. AI 부피가 2배가 되면 성능은 5%밖에 증가하지 않는데 부피를 무지막지 키워버린 것이다. 이 아이디어로 LLM 생태계를 주도하고 있다. 구글은 OpenAI만큼 부피에 집착하지는 않고, 메타는 GPT의 부피 팽창과는 반대로 효율에 집중했다.
어쨌든, 중요한 건 LLM이 어텐션을 적극적으로 사용한다는 점이다. 따라서 어텐션을 활용하는 방법으로 프롬프트 엔지니어링에 접근하면 GPT를 비릇한 Gemini 등 다른 LLM에서도 성립할 가능성이 높다.
기법
1. 태스크 프롬프트
'~을 해줘"라고 작업을 지시하는 방법이다. 단순히 지시할 수도 있지만, "임무: 번역"처럼 하이퍼파라미터를 사용할 수도 있다. 번역, 요약, 분류, 분량 확장 등 다양한 임무를 부여할 수 있다.
2. 규칙 부여
AI에 규칙을 부여하고 이에 따라 행동하도록 만드는 기법이다.
3. 질의 응답 역전
대화의 주도권을 AI에 넘겨버리는 방법이다. AI에게 질문을 요청하고, 해당 질문에 대한 답을 다시 AI에게 떠넘기는 것이다. 이를 통해 AI의 지식을 활용할 수 있다.
어텐션이 이상한 정보를 중요하다고 판단할 수도 있다. 데이터가 부족해 AI가 편항되는 현상을 과적합(overfitting)이라 한다. 어텐션의 이런 특징을 이용할 수도 있다.
4. 범위 한정
AI가 어떤 주제에 집중하고 있었는지에 따라 답변이 달라질 수 있으므로, 답변의 범위를 제약한다.
교육학적 기법을 적용해 사람처럼 AI를 다룰 수 있다.
5. 롤플레잉
범위 한정 기법과 유사한데, AI에 "OO전문가" 등의 역할을 부여하는 방법이다. AI와 사용자 모두에게 역할을 부여해 역할극을 진행할 수도 있다.
6. 생성자 - 감별자
생성적 적대 신경망(GAN, Generative Adversarial Networks)의 아이디어를 사용하는 방법이다. 생성자는 진품에 가까운 가짜 데이터를 만들고자 한다. 감별자는 위조품인지 아닌지 감별해 준다. 두 AI는 서로 경쟁하며 성장한다. 생성자가 생성을 거듭하다 100% 진품과 같은 가품을 만들면 생성자를 위조 데이터 생성에 적극 활용하는 방법이다. 생성형 AI로 채팅창 2개를 띄워놓고 활용할 수 있다.
7. 강화 학습
AI에게 칭찬이나 비난을 통해 답변을 수정하는 방법이다.
8. 주입식 교육
미리 정보를 입력해두어 할루시네이션을 줄이는 방법이다.
9. 평가
AI가 입력한 작업을 잘 이해하고 수행 중인지 물어보는 질의를 통해 평가하는 방법이다.
참고 문헌
반병현. 프롬프트 엔지니어링. 경기도: 생능북스, 2023.
'기타 > 팁' 카테고리의 다른 글
ubuntu에서 LLVM 기본 버전 바꾸는 방법 (0) | 2024.05.20 |
---|---|
버추얼박스 우분투에서 응용 프로그램 그래픽이 깨질 때 해결 방법 (0) | 2024.01.03 |
알PDF를 이용해 여러 사진을 한 PDF 파일로 만들기 (0) | 2023.11.04 |
윈도우는 필기 앱이 없다고? 장점만 뽑아서 극복하자! - 원노트, inkodo, drawboardPDF 활용법 (1) | 2023.04.06 |
비주얼 스튜디오에서 여러 프로젝트 한 파일에 만들기 (0) | 2023.03.15 |