반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- sqlite3
- max
- join
- Next.js
- 최댓값
- 밑바닥부터 시작하는 딥러닝
- 시험데이터
- 학습 구현
- Depthwise Convolution
- PYTHON
- sigmoid
- 데이터베이스
- 평균
- 합계
- 수치미분
- sum
- next.js 튜토리얼
- Depthwise Separagle Convolution
- MIN
- total
- Pointwise Convolution
- 미니배치
- 렐루함수
- COUNT
- PyQt5
- 제약조건
- 교차엔트로피오차
- AVG
- 오차제곱합
- 신경망
Archives
- Today
- Total
우잉's Development
[LLM 기본] 생성 조건 본문
728x90
반응형
- Token : 언어 모델에 입력하거나 출력하는 택스트의 구성요소
ex ) apple - tokens:2 / apples - tokens:2 / I love apple. - tokens:4('I','love', 'apple', ' ')- 단어/글자당 토큰 사용수는 토크나이저마다 다름.
- GPT 토크나이저 기준
- 영어 : 단어당 평균 1.3개의 토큰 사용
- 한글 : 글자당 약 2.5개의 토큰 사용
- 일반적으로 영어 문서 대비, 한글 문서가 약 4~5배 정도의 토큰을 사용
- 현재 대다수의 클라우드형 LLM의 경우 한글에 대한 토큰 사용이 상당히 비효율적이므로 다음과 같은 전략으로 토큰 사용을 최적화 할 필요가 있다.
- 프롬프트와 출력을 영어로 작성하는 경우 성능이 더 향상되는 효과가 있다.
- 입출력을 번역하여 사용
- 프롬프트에 포함 시킬 컨텍스트를 번역하여 사용
- 출력을 영어로 출력시킨 후 번역하여 사용
- 고유명사 등을 출력할 필요가 없는 경우에만 사용가능
- 번역 품질과 번역시의 비용 및 속도를 함께 고려해야 함.
- Context Window : 문맥을 판단하거나 다음 단어를 예측하기 위해 참고할 토큰 범위,
언어 모델이 다룰 수 있는 최대 토큰수를 말하기도 함. - 주요 생성 옵션
- Temperature : 모델이 다음 토큰 후보중에서 출력할 토큰을 선택하는 방식
- 0.8과 같은 높은 값은 출력을 더 다양하게 만들고, 0.2와 같은 낮은 값은 출력을 더 높은 확률의 토큰에 집중시켜 결정론적으로 만듦. 즉, 값이 높을수록 더 창의적인 (무작위적이고 환각이 많은)답변을 하고, 값이 낮을수록 일관된 답변을 함. 범위는 모델마다 다르지만, Chat모델의 경우 0~2사이의 값. - Top P, Top K : 모델이 다음 토큰 후보를 선택하는 방식
- 확률이 상위 P%인 토큰, 혹은 확률이 상위 K개인 토큰의 결과를 출력후보로 선택합니다.
- 일반적으로 Temperature만 변경하지만, Temperature를 매우 높게 했을 때 결과가 무너지는 것 (맥락을 크게 벗어나거나 잘못된 글자를 출력)을 방지하기 위해 추가로 사용합니다. - Maximum length : 생성할 최대 토큰 수를 설정
- 입력할 토큰(프롬프트)과 최대 토큰수가 모델의 최대 토큰수를 넘지 않도록 주의깊게 설정해야 함.
- 입력 가능한 프롬프트 토큰 수 = 모델의 최대 토큰 수 - Maximum length - Frequency Penalty : 같은 토큰을 반복하면 패널티를 주는 파라미터
- 같은 표현을 반복하는 경우, 이 값을 높은 값을 주어 같은 표현을 반복하지 않도록 제한 할 수 있음. - Presence Penalty : 한 번 이상 샘플링 된 토큰에 패널티를 주는 파라미터
- 이 값이 높을수록, 동일한 개념이나 아이디어를 반복적으로 사용하는 것을 방지하여 새로운 아이디어나 개념을 생성하도록 유도함.
- 단, 이 패널티를 너무 높게 설정하면, 모델의 출력이 일관성이 없거나 관련성이 떨어질 수 있음 - Stop sequence : 특정 문구를 설정하고, 해당 문구가 나오면 생성을 중지하도록 험
- 무의미하게 생성을 반복하는 경우를 제어하거나, 반복적인 시퀀스의 생성을 유도할 때 사용
- 요즘은 많이 사용하지 않음. - Injection Start
: 생성을 시작하기 전에, 특정 문구를 삽입하고 생성을 시작함 다음 생성 결과를 원하는 대로 유도 할 수 있음.
- Temperature : 모델이 다음 토큰 후보중에서 출력할 토큰을 선택하는 방식
728x90
반응형
'Deep learning > LLM' 카테고리의 다른 글
[LLM 기본] 모델 선택 기준 & Function Calling (0) | 2023.09.06 |
---|---|
[LLM 기본] 프롬프트 엔지니어링 기본 (0) | 2023.09.05 |
[LLM 기초] 프롬프트 보안 (0) | 2023.08.31 |
[LLM 기초] 프롬프트 엔지니어링 기초2 (0) | 2023.08.31 |
[LLM 기초] 프롬프트 엔지니어링 기초 1 (0) | 2023.08.31 |
Comments