우잉's Development

[LLM 기본] 생성 조건 본문

Deep learning/LLM

[LLM 기본] 생성 조건

우잉이 2023. 9. 5. 01:04
728x90
반응형
  1. Token : 언어 모델에 입력하거나 출력하는 택스트의 구성요소
     ex ) apple - tokens:2 / apples - tokens:2 / I love apple. - tokens:4('I','love', 'apple', ' ')
    • 단어/글자당 토큰 사용수는 토크나이저마다 다름.
    • GPT 토크나이저 기준
      1. 영어 : 단어당 평균 1.3개의 토큰 사용
      2. 한글 : 글자당 약 2.5개의 토큰 사용
    • 일반적으로 영어 문서 대비, 한글 문서가 약 4~5배 정도의 토큰을 사용
    • 현재 대다수의 클라우드형 LLM의 경우 한글에 대한 토큰 사용이 상당히 비효율적이므로 다음과 같은 전략으로 토큰 사용을 최적화 할 필요가 있다.
    • 프롬프트와 출력을 영어로 작성하는 경우 성능이 더 향상되는 효과가 있다.
    • 입출력을 번역하여 사용
      1. 프롬프트에 포함 시킬 컨텍스트를 번역하여 사용
      2. 출력을 영어로 출력시킨 후 번역하여 사용
      3. 고유명사 등을 출력할 필요가 없는 경우에만 사용가능
      4. 번역 품질과 번역시의 비용 및 속도를 함께 고려해야 함.
  2. Context Window : 문맥을 판단하거나 다음 단어를 예측하기 위해 참고할 토큰 범위,
    언어 모델이 다룰 수 있는 최대 토큰수를 말하기도 함.
  3. 주요 생성 옵션
    1. Temperature : 모델이 다음 토큰 후보중에서 출력할 토큰을 선택하는 방식
      - 0.8과 같은 높은 값은 출력을 더 다양하게 만들고, 0.2와 같은 낮은 값은 출력을 더 높은 확률의 토큰에 집중시켜 결정론적으로 만듦. 즉, 값이 높을수록 더 창의적인 (무작위적이고 환각이 많은)답변을 하고, 값이 낮을수록 일관된 답변을 함. 범위는 모델마다 다르지만, Chat모델의 경우 0~2사이의 값.
    2. Top P, Top K : 모델이 다음 토큰 후보를 선택하는 방식
      - 확률이 상위 P%인 토큰, 혹은 확률이 상위 K개인 토큰의 결과를 출력후보로 선택합니다.
      - 일반적으로 Temperature만 변경하지만, Temperature를 매우 높게 했을 때 결과가 무너지는 것 (맥락을 크게 벗어나거나 잘못된 글자를 출력)을 방지하기 위해 추가로 사용합니다.
    3. Maximum length : 생성할 최대 토큰 수를 설정
      - 입력할 토큰(프롬프트)과 최대 토큰수가 모델의 최대 토큰수를 넘지 않도록 주의깊게 설정해야 함.
      - 입력 가능한 프롬프트 토큰 수 = 모델의 최대 토큰 수 - Maximum length
    4. Frequency Penalty : 같은 토큰을 반복하면 패널티를 주는 파라미터
      - 같은 표현을 반복하는 경우, 이 값을 높은 값을 주어 같은 표현을 반복하지 않도록 제한 할 수 있음.
    5. Presence Penalty : 한 번 이상 샘플링 된 토큰에 패널티를 주는 파라미터
      - 이 값이 높을수록, 동일한 개념이나 아이디어를 반복적으로 사용하는 것을 방지하여 새로운 아이디어나 개념을 생성하도록 유도함.
      - 단, 이 패널티를 너무 높게 설정하면, 모델의 출력이 일관성이 없거나 관련성이 떨어질 수 있음
    6. Stop sequence  : 특정 문구를 설정하고, 해당 문구가 나오면 생성을 중지하도록 험
      - 무의미하게 생성을 반복하는 경우를 제어하거나, 반복적인 시퀀스의 생성을 유도할 때 사용
      - 요즘은 많이 사용하지 않음.
    7. Injection Start 
      : 생성을 시작하기 전에, 특정 문구를 삽입하고 생성을 시작함 다음 생성 결과를 원하는 대로 유도 할 수 있음.
728x90
반응형
Comments