Notice
Recent Posts
Recent Comments
Link
헬창 개발자
LoRA target_modules 본문
LoRA target_modules은 특정 모델의 파인튜닝이나 훈련 시, 수정 또는 최적화하려는 모델의 모듈을 지정하는 부분입니다.
특히, "q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"와 같은 모듈 이름들은 트랜스포머
(Transformer) 아키텍처와 관련이 있습니다. Attention is all you need 논문을 읽어 보신분들은 어느정도 감이 오겠지만 모르시는 분들을 위해 각 모듈이 무엇을 하는지 간단히 설명하겠습니다:
트랜스포머 아키텍처에서의 주요 모듈들
- q_proj (query projection):
- 쿼리 벡터를 생성하는 모듈입니다. 입력된 텍스트의 특정 부분에 대한 쿼리를 생성합니다.
- 트랜스포머의 셀프 어텐션 메커니즘에서, 각 단어의 쿼리 벡터가 다른 모든 단어와의 관계를 평가합니다.
- k_proj (key projection):
- 키 벡터를 생성하는 모듈입니다. 입력 텍스트의 각 단어에 대한 키 벡터를 생성합니다.
- 쿼리 벡터와 키 벡터의 내적(dot product)을 통해 각 단어 간의 연관성을 계산합니다.
- v_proj (value projection):
- 밸류 벡터를 생성하는 모듈입니다. 입력 텍스트의 각 단어에 대한 밸류 벡터를 생성합니다.
- 어텐션 스코어에 따라 가중치가 적용된 후, 최종적으로 출력되는 벡터를 형성합니다.
- o_proj (output projection):
- 셀프 어텐션 메커니즘의 출력을 최종 출력으로 변환하는 모듈입니다.
- 어텐션 헤드들의 출력을 통합하여 최종적인 출력을 생성합니다.
추가적인 프로젝션 모듈들
- gate_proj:
- 특정 입력을 조절하거나 필터링하기 위해 게이트 메커니즘을 적용하는 모듈입니다.
- 이는 게이트드 피드포워드 네트워크(Gated Feedforward Network)나 LSTM에서 게이트 메커니즘과 유사한 역할을 할 수 있습니다.
- up_proj (up projection):
- 입력의 차원을 증가시키는 모듈입니다. 예를 들어, 입력 벡터의 크기를 증가시켜 더 많은 정보를 담을 수 있도록 합니다.
- 주로 트랜스포머의 피드포워드 신경망에서 사용됩니다.
- down_proj (down projection):
- 입력의 차원을 감소시키는 모듈입니다. 예를 들어, 입력 벡터의 크기를 줄여 계산 효율성을 높입니다.
- 주로 트랜스포머의 피드포워드 신경망에서 사용됩니다.
'공부방' 카테고리의 다른 글
도메인 특화 언어 모델 구축 어떤 방법이 좋을까? (1) | 2024.09.04 |
---|---|
FastAPI : LLM 모델 서빙을 위한 API (1) | 2024.09.03 |
중첩된 리스트 평탄화 : python list flattening (0) | 2024.08.07 |
허깅페이스 자주 사용하는 파라미터 (0) | 2024.08.01 |
LangChain 문서 분할 종류 (0) | 2024.07.29 |
Comments