Table of Contents
1. 프로젝트 개요
A. 개요 : https://stages.ai/en/competitions/320/overview/description
B. 환경: Upstage에서 제공하는 remote 서버연결
GPU | CPU | Memory |
RTX 3090 / 24 GB | 10 thread | 60G |
2. 프로젝트 팀 구성 및 역할
2-1. 매일 11시 어제 한 것, 유효한 부분, 내일 진행할 부분에 대해 공유, 모델학습실험기록지를 엑셀로 공유
2-2. 역할분담
진행속도가 빠른 사람이 실험결과 공유해주고, 후발주자가 성능 올릴 수 있는 다양한 실험 진행
3.프로젝트 수행 절차 및 결과
3-1. 데이터 탐색:
3-2. 모델 학습:
3-3. 결과 추론:
4.프로젝트 회고
**LLM(대형 언어 모델)**에서 add_token(토큰 추가) 작업을 하는 것이 학습에 도움이 되는지에 대한 질문에 대한 답변은 상황에 따라 다릅니다. 하지만 일반적으로는 특정한 경우에 도움이 될 수 있습니다. 자세한 설명을 위해 아래에 몇 가지 측면을 살펴보겠습니다.
1. 특정 도메인이나 언어에 맞춘 토큰 추가
- 도움이 되는 경우:
- 도메인 특화 언어를 다루는 경우나 특정 용어, 약어, 또는 특수 기호가 많이 등장하는 텍스트에서는 기존 언어 모델에 해당 토큰들이 포함되어 있지 않을 수 있습니다.
- 예를 들어, 의료나 법률처럼 특화된 도메인에서는 일반적으로 사용되지 않는 전문 용어나 약어가 많을 수 있습니다. 이런 경우에 도메인에 맞는 새로운 토큰을 추가하면 모델이 해당 용어를 더 잘 처리할 수 있습니다.
- 또는 새로운 언어에서 특정한 단어들이 자주 등장하는 경우, 그 언어에 맞는 토큰을 추가하여 모델의 성능을 개선할 수 있습니다.
-
python코드 복사from transformers import GPT2Tokenizer tokenizer = GPT2Tokenizer.from_pretrained('gpt2') special_tokens = {'additional_special_tokens': ['<MEDICAL_TERM>', '<LEGAL_TERM>']} num_added_tokens = tokenizer.add_special_tokens(special_tokens)
- 도움이 되지 않는 경우:
- 일반적인 도메인이나 잘 정의된 데이터셋을 사용할 때는 기존의 사전(vocabulary)이 이미 잘 구성되어 있기 때문에, 추가 토큰이 성능에 큰 차이를 만들지 않을 수 있습니다.
- 너무 많은 토큰을 추가하면 모델이 오히려 더 많은 데이터를 필요로 할 수 있습니다. 불필요하게 토큰을 추가하는 것은 학습 효율성을 떨어뜨릴 수 있습니다.
2. 특수 토큰 추가
- 도움이 되는 경우:
- 모델이 특정한 구조나 문맥을 구분할 필요가 있을 때 특수 토큰을 추가하는 것이 매우 유용할 수 있습니다. 예를 들어, BERT에서 <SEP>나 <CLS> 같은 특수 토큰을 사용하여 문장의 경계를 구분하거나 문서 간 구분을 하는 방식이 있습니다.
- 대화형 모델에서 각 발화의 구분을 명확히 하기 위해 <SPEAKER1>, <SPEAKER2> 같은 특수 토큰을 추가하면, 모델이 문맥을 더 잘 이해할 수 있습니다.
-
python코드 복사special_tokens_dict = {'additional_special_tokens': ['<SPEAKER1>', '<SPEAKER2>']} tokenizer.add_special_tokens(special_tokens_dict)
3. 다양한 언어 지원
- 도움이 되는 경우:
- 모델이 지원하지 않는 언어의 문자를 처리해야 할 때 특정 언어의 문자나 단어를 토큰화하지 못할 수 있습니다. 이때 해당 언어의 새로운 토큰을 추가하면 모델이 새로운 언어에 더 잘 적응할 수 있습니다.
- 예를 들어, 특정한 다중 언어 모델을 사용할 때 자주 등장하는 특정 문자나 단어들을 잘 처리하지 못하는 경우가 있습니다. 이런 경우 토큰을 추가해 줌으로써 그 언어의 처리가 더 원활해질 수 있습니다.
4. 문장구조 및 포맷에 대한 학습
- 도움이 되는 경우:
- LLM을 학습할 때 특정한 포맷(예: HTML 태그, 코드 내의 특정 구조 등)을 더 잘 이해시키고 싶다면 그 구조에 맞는 추가 토큰을 생성해주는 것이 유용할 수 있습니다.
- 예를 들어, 코드 관련 작업에서는 "<function>", "<variable>" 같은 토큰을 추가하여 코드 구조를 더 잘 이해할 수 있게 만들 수 있습니다.
5. 데이터의 일관성 유지
- 도움이 되는 경우:
- 토큰 추가를 통해 더 짧고 일관된 토큰화가 가능해지면 모델의 효율성도 증가할 수 있습니다. 예를 들어, 특정한 긴 용어가 자주 등장하는 경우 그 용어를 하나의 토큰으로 처리하면 더 적은 토큰 수로 문장을 처리할 수 있습니다.
결론
add_token 작업은 상황에 따라 학습에 도움이 될 수 있습니다. 특히 도메인 특화된 용어나 새로운 언어, 특수 포맷이 자주 등장하는 경우, 그리고 구조적 학습을 할 때는 매우 유용할 수 있습니다. 하지만, 불필요하게 토큰을 추가하거나 너무 많은 토큰을 추가할 경우 오히려 모델의 성능에 악영향을 줄 수 있기 때문에 신중하게 사용하는 것이 중요합니다.
'Upstage AI 3기 > 프로젝트_개인회고' 카테고리의 다른 글
[Scientific Knowledge Question Answering | 과학 지식 질의 응답 시스템 구축] IR 프로젝트 개인회고 (0) | 2024.10.27 |
---|---|
[Document Type Classification | 문서 타입 분류] VISION 프로젝트 개인회고 (0) | 2024.08.12 |
[House Price Prediction | 아파트 실거래가 예측] ML프로젝트 개인회고 (0) | 2024.07.20 |
- Total
- Today
- Yesterday
- 코딩테스트
- LLM
- speaking
- Numpy
- Hugging Face
- clustering
- classification
- Python
- t5
- RAG
- 손실함수
- 티스토리챌린지
- #패스트캠퍼스 #패스트캠퍼스AI부트캠프 #업스테이지패스트캠퍼스 #UpstageAILab#국비지원 #패스트캠퍼스업스테이지에이아이랩#패스트캠퍼스업스테이지부트캠프
- PEFT
- 해시
- 파이썬
- LIST
- English
- #패스트캠퍼스 #UpstageAILab #Upstage #부트캠프 #AI #데이터분석 #데이터사이언스 #무료교육 #국비지원 #국비지원취업 #데이터분석취업 등
- #패스트캠퍼스 #패스트캠퍼스ai부트캠프 #업스테이지패스트캠퍼스 #upstageailab#국비지원 #패스트캠퍼스업스테이지에이아이랩#패스트캠퍼스업스테이지부트캠프
- Github
- Transformer
- recursion #재귀 #자료구조 # 알고리즘
- 오블완
- git
- nlp
- Lora
- Array
- 리스트
- cnn
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |