Large Language Model 이란, Transformer 구조를 바탕으로 대규모 데이터를 자기지도학습 방식으로 처리하는 모델입니다.
LLM은 문장의 일부를 가지고 다음 단어를 예측하는 방식으로 학습합니다.
Transformer 구조는 위의 그림과 같이 Encoder와 Decoder로 구성되어 있습니다.
Encoder는 입력을 이해하는 부분이고 Decoder는 Encoder가 이해한 정보를 바탕으로 새로운 문장을 생성합니다.
API란 Application Programming Interface의 약어로, 다른 프로그램들끼리 소통할 수 있게 해주는 인터페이스입니다.
https://www.invector.co/blog/llm
[Text Input]
사용자는 하나 이상의 문장을 입력합니다. 입력하는 행위를 prompt라고 하며 여러개의 메시지로 구성됩니다.
[Language Model]
GPT 모델을 활용한 인터페이스를 제공하며 다양한 파라미터(temperature, max_tokens, top_p)를 활용해 텍스트 생성을 제어합니다. GPT 모델은 GPT-4.1, GPT-4.1-mini, o1 등이 있습니다.
GPT 4.1: 높은 성능을 가지고 있지만, 높은 비용이 필요합니다.
GPT-4.1-mini: 빠른속도와 낮은 비용이 들지만 성능은 GPT 4.1보다 떨어집니다.
O1: 복잡한 추론이 필요한 경우 사용하는 모델입니다.
사용자가 입력한 프롬프트를 가지고 모델을 최적화하기 위해서는 다음과 같은 파라미터(매개변수)들을 설정할 수 있습니다.
Temperature와 Top_p는 응답 품질과 관련된 매개변수 입니다.
Temperature: 0 ~ 2의 값을 가지며, 0은 항상 가장 확률이 높은 토큰을 선택해서 일관된 응답을 할 수 있게 합니다. 1은 기본값으로 적당한 창의성과 일관성이라는 특성을 가지고 있습니다. 2는 가장 창의적인 답변을 출력하지만 일관되지 않아 불안정한 응답을 출력할 수 있습니다.
** 토큰(Token)이란, 언어 모델이 텍스트를 이해하고 생성하는 기본 단위입니다.
"안녕하세요!, 즐거운 아침 입니다~" 라는 메시지가 있습니다.
이는 "안녕하세요", "!", "즐거운", "아침", "입니다", "~" 로 분할할 수 있습니다.
top_p: 모델의 결정성을 제어할 수 있는 파라미터입니다. 상위 p를 기준으로 확률 값을 정렬하고 p이하인 토큰들 중에서 랜덤 샘플링을 수행합니다. 0 ~ 1의 값을 가지며 0.1은 매우 포커스된 응답을 가지며 0.9의 경우에는 상위 90% 확률 분포 내에서 선택할 수 있습니다. 1.0은 기본값으로 모든 토큰을 고려합니다.
Max_tokens는 응답 길이를 제어하는 파라미터입니다.
Max_tokens: 1 ~ 8,192의 값을 가지며 기본값은 없습니다. 이 파라미터는 생성될 최대 토큰 수를 지정합니다. 모델별로 길이를 제한할 필요가 있습니다.
Presence_penalty와 Frequency_penalty는 반복 제어 매개변수입니다.
Presence_penalty: 0을 기본값으로 가지며 양수는 새로운 주제를 도입에 적극적이며 음수의 경우에는 기존 주제를 유지하려고 합니다.
Frequencty_penalty: -2 ~ 2의 값을 가지며 0을 기본값으로 가지며 양수는 단어가 다시 등장할 가능설을 줄이고 음수의 경우 페널티를 부여하여 단어의 반복을 방지합니다.
이외의 매개변수에는 stream(스트리밍)과 stop(정지조건)이 있습니다.
stream: Boolean 값을 가지며, False를 기본값으로 가지며 완성된 응답을 반환하고, True의 경우에는 토큰 단위로 결과값을 출력합니다.
stop: string 또는 array 단위로 최대 4개까지 지정할 수 있습니다. 모델의 응답 길이 또는 구조를 제어하는데 5로 지정한다면, 최대 4개까지의 리스트를 생성하도록 합니다.
[Text Output]
하나의 문장으로 출력하며 코드, 수식, JSON 데이터, 일반데이터로 출력할 수 있습니다.
JSON 데이터란 Javascript 객체 문법으로 구조화된 데이터입니다.