LLM의 Core 개념
LLM을 효과적으로 사용하기 위해 이해해야 하는 몇 가지 핵심 개념, 즉 토큰 및 프롬프트가 있습니다.
- 프롬프트: 프롬프트는 LLM을 지시하는 데 사용되는 텍스트 문장입니다. 문장을 어떻게 표현하느냐에 따라 결과가 달라집니다.
- 토큰: 토큰은 단일 문자, 단어의 일부 또는 전체 단어일 수 있습니다. 단일 토큰은 일반적인 단어를 나타내는 데 사용될 수 있지만, 덜 일반적인 단어를 나타내려면 여러 토큰이 필요합니다.
프롬프트
텍스트 프롬프트는 문장입니다. LLM은 여러 가지 다른 언어를 이해합니다. LLM 작업을 위해 특정 언어를 알아볼 필요 없이 모국어로 프롬프트를 작성할 수 있습니다. 다음 프롬프트 예를 참조하세요.
해적 모자를 쓴 분홍색 앵무새의 이미지를 생성합니다.
Python으로 고객을 처리하는 웹앱을 만듭니다.
요청하는 내용이 구체적일수록 결과가 더 좋습니다.
토큰
토큰은 LLM이 이해하고 처리할 수 있는 기본 단위 텍스트 또는 코드입니다.
OpenAI 자연어 모델은 단어나 문자를 텍스트 단위로 작동하지 않고 그 중간 요소인 토큰을 기반으로 작동합니다.
OpenAI는 요청을 토큰화하는 방법을 이해하는 데 도움이 되는 유용한 토크나이저 웹 사이트를 제공합니다. 자세한 내용은 OpenAI 토크나이저를 참조하세요.
참고 항목
OpenAI 토크나이저 프롬프트 상자 안에 입력을 시작하면 상자에 있는 총 토큰 수를 계산하는 카운터가 나타납니다.
활발히 입력하고 있는 경우 카운터가 업데이트되는 데 몇 초 정도 걸릴 수 있습니다.
다음 단어에는 몇 개의 토큰이 들어있나요?
다음 단어 apple
, blueberries
및 Skarsgård
에 대한 토큰 수를 결정해 보겠습니다.
apple
이라는 단어는 일반적인 단어이므로 표시하려면 하나의 토큰이 필요합니다. 반면, 단어 blueberries
를 표시하려면 두 개의 토큰(blue
및 berries
)이 필요합니다. 단어가 일반적이지 않은 경우 Skarsgård
와 같은 고유 이름을 표시하려면 여러 토큰이 필요합니다.
이 토큰 표현을 통해 AI 모델은 문자별로 텍스트를 생성하지 않고도 어떤 사전에서도 찾을 수 없는 단어를 생성할 수 있습니다.
참고 항목
문자별로 텍스트를 생성하면 쉽게 횡설수설이 발생할 수 있습니다.
완료는 어떻게 이루어지나요?
자연어 모델은 비결정적 방식으로 한 번에 하나의 토큰 완료를 생성합니다.
각 단계에서 모델은 토큰 목록과 관련 가중치를 내보냅니다. 그런 다음 API는 가중치를 기준으로 목록에서 하나의 토큰을 샘플링합니다. 가중치가 높은 토큰이 선택될 가능성이 더 높습니다.
API는 선택한 토큰을 프롬프트에 추가하고 완료를 위한 최대 토큰 길이에 도달하거나 모델이 새 토큰 생성을 방지하는 중지 토큰이라는 특수 토큰을 생성할 때까지 프로세스를 반복합니다.
이 비결정적 프로세스로 인해 완료 요청을 보낼 때마다 모델이 새 단어를 생성하게 됩니다.
참고 항목
각 LLM에는 생성할 수 있는 토큰 수에 제한이 있습니다. 완료 시 이 제한은 원래 프롬프트의 총 토큰 수와 함께 추가될 때 새로 생성된 토큰 수에 적용됩니다. 토큰 제한에 대한 자세한 내용은 Azure OpenAI Service 모델을 참조하세요.
토큰 제한이 크면 완료 기간이 길어지고 메시지가 훨씬 커집니다.