0. GPU 및 환경 변수 설정
import os
# 0) GPU 설정: TITAN RTX 0,1번만 사용 (선택)
os.environ["CUDA_VISIBLE_DEVICES"] = "0,1"
# ✅ Transformers에게 "TensorFlow 쓰지 마라" 강제
os.environ["TRANSFORMERS_NO_TF"] = "1"
# TF oneDNN 로그/최적화 끄고 싶으면 (선택)
os.environ["TF_ENABLE_ONEDNN_OPTS"] = "0"
핵심 포인트
- CUDA_VISIBLE_DEVICES="0,1"
- 시스템에 여러 개의 GPU가 있을 때, 파이썬 프로세스 입장에서 보이는 GPU를 제한하는 환경변수입니다.
- 예를 들어 실제 물리 GPU가
- 0: TITAN RTX
- 1: TITAN RTX
- 2: GTX 1060
이렇게 3장이라면,
- CUDA_VISIBLE_DEVICES="0,1"를 설정해 두면, 이 스크립트 안에서는 GTX 1060(2번) 은 아예 존재하지 않는 것처럼 보입니다.
- 멀티 GPU 파인튜닝을 할 때, 원치 않는 카드(디스플레이용, 작은 VRAM 등)를 제외할 수 있습니다.

- TRANSFORMERS_NO_TF="1"
- Hugging Face transformers는 PyTorch, TensorFlow를 둘 다 지원합니다.
- 그런데 시스템에 TensorFlow가 설치되어 있으면, 내부에서 TF 관련 모듈을 건드리면서 oneDNN 로그가 잔뜩 찍히거나, 불필요한 경고가 나오는 경우가 있습니다.
- "1"로 설정하면 “야, TensorFlow 쓰지 마. PyTorch만 써라” 라고 강제하는 효과가 있습니다.
→ 불필요한 TF 의존성과 로그를 깔끔하게 차단.
- TF_ENABLE_ONEDNN_OPTS="0"
- TensorFlow의 oneDNN 최적화 옵션을 꺼버립니다.
- 사실 이 코드는 PyTorch만 쓰기 때문에 꼭 필요하진 않지만, 이전에 TF 로그가 너무 많이 떠서 “아예 조용히 만들어버자”는 느낌으로 같이 넣어둔 옵션입니다.
1. 데이터셋 로드: load_from_disk
from datasets import load_from_disk
from transformers import (
AutoTokenizer,
AutoModelForSeq2SeqLM,
DataCollatorForSeq2Seq,
Seq2SeqTrainer,
Seq2SeqTrainingArguments,
)
무슨 데이터인가?
- make_splits.py에서 미리 가공해 둔 AI-Hub 한·영 기술과학 번역 데이터를 Hugging Face datasets 포맷으로 디스크에 저장해 둔 상태입니다.
- 그 디렉토리를 load_from_disk로 다시 불러와서 사용합니다.
구조
- datasets는 DatasetDict 형태로,
- "train" : 학습용 데이터
- "validation" : 검증용 데이터
- "test" : 최종 성능 확인용 데이터를 포함합니다.
- 각 샘플은 기본적으로 다음과 같은 형태라고 보면 됩니다.
{
"src": "한국어 원문 문장",
"tgt": "영어 번역 문장"
}
print("train 샘플:", train_ds[0]) 로 실제 한 줄을 찍어보면서 데이터가 제대로 로드되었는지, 컬럼 이름이 맞는지 확인하는 단계입니다.
2. 토크나이저와 전처리: 텍스트 → 토큰
from transformers import AutoTokenizer
model_name = "KETI-AIR/ke-t5-large-ko"
tokenizer = AutoTokenizer.from_pretrained(model_name, legacy=False)
# 문장 길이에 따라 적당히 조정
MAX_INPUT_LEN = 256
MAX_TARGET_LEN = 256
왜 ke-t5-large-ko인가?
- KETI-AIR/ke-t5-large-ko는 한국어 전용 T5 모델입니다.
- 원래는 다양한 한국어 NLP 태스크에 사용할 수 있는 범용 모델인데,
- 여기서는 “한글을 영어로 번역하는 특화 모델” 로 파인튜닝합니다.
길이 설정
- MAX_INPUT_LEN, MAX_TARGET_LEN은 각각 인코더 입력(한국어), 디코더 타깃(영어) 의 최대 토큰 길이입니다.
- 너무 짧으면 문장 뒷부분이 잘리고, 너무 길면 VRAM 사용량이 급격히 증가합니다.
- 이 프로젝트에서는 256 토큰으로 설정.
전처리 함수: 프롬프트 + 토크나이징
def preprocess_function(example):
# 한→영 번역 태스크 프롬프트를 간단히 명시
src_text = "한글을 영어로 번역:\n" + example["src"]
tgt_text = example["tgt"]
# 입력 인코딩
model_inputs = tokenizer(
src_text,
max_length=MAX_INPUT_LEN,
truncation=True,
)
# 타깃 인코딩 (레이블)
with tokenizer.as_target_tokenizer():
labels = tokenizer(
tgt_text,
max_length=MAX_TARGET_LEN,
truncation=True,
)["input_ids"]
model_inputs["labels"] = labels
return model_inputs
1) 프롬프트를 붙이는 이유
src_text = "한글을 영어로 번역:\n" + example["src"]
- T5 계열 모델은 “텍스트-투-텍스트” 구조라서,
- 번역, 요약, 질의응답 등 다양한 태스크를 프롬프트 한 줄로 구분합니다.
- "한글을 영어로 번역:" 이라는 문장을 앞에 붙여줌으로써,
- 모델에게 **“이건 번역 태스크야”**라고 분명하게 알려주는 역할을 합니다.
- 나중에 inference(추론)할 때에도 같은 프롬프트를 붙여서 일관성을 유지해야 합니다.
2) tokenizer(...) – 입력 인코딩
model_inputs = tokenizer(
src_text,
max_length=MAX_INPUT_LEN,
truncation=True,
)
- 문자열 src_text를 토큰 아이디 벡터로 변환합니다.
- 결과에는 보통 다음과 같은 키들이 들어 있습니다.
- input_ids: 정수 토큰 시퀀스
- attention_mask: 패딩이 아닌 위치는 1, 패딩은 0
3) as_target_tokenizer() – 타깃 인코딩
with tokenizer.as_target_tokenizer():
labels = tokenizer(
tgt_text,
max_length=MAX_TARGET_LEN,
truncation=True,
)["input_ids"]
- 디코더에서 생성해야 하는 영어 문장을 토크나이즈해서 labels로 저장합니다.
- Seq2Seq 모델에서는
- 인코더 입력: input_ids
- 디코더 타깃: labels가 모두 필요합니다.
4) 학습용 샘플 형태
최종적으로 하나의 샘플은 대략 이렇게 바뀝니다.
{
"input_ids": [...],
"attention_mask": [...],
"labels": [...]
}
원본 "src", "tgt" 문자열은 이후 제거하게 됩니다.
datasets.map으로 전체 데이터 토크나이징
tokenized_datasets = datasets.map(
preprocess_function,
batched=False,
remove_columns=["src", "tgt"], # 원본 텍스트 컬럼 제거
)
tokenized_train = tokenized_datasets["train"]
tokenized_valid = tokenized_datasets["validation"]
tokenized_test = tokenized_datasets["test"]
print(tokenized_train[0])
- datasets.map은 모든 샘플에 대해 preprocess_function을 적용해 줍니다.
- batched=False 이므로 샘플 하나씩 함수에 들어갑니다.
- remove_columns=["src", "tgt"]는 전처리 후
- 원래의 텍스트 컬럼 대신
- input_ids, labels 만 남기겠다는 의미입니다.
- 이렇게 만들어진 tokenized_* 데이터셋이 실제 학습에 들어가는 입력이 됩니다.
3. 모델 로드: 멀티 GPU + device_map="auto"
import torch
from transformers import AutoModelForSeq2SeqLM, DataCollatorForSeq2Seq
model = AutoModelForSeq2SeqLM.from_pretrained(
model_name,
device_map="auto", # 0,1번 GPU에 자동 분산
# dtype=torch.float16, # VRAM 절약
)
data_collator = DataCollatorForSeq2Seq(tokenizer, model=model)
AutoModelForSeq2SeqLM
- T5, BART, mBART 등 “인코더-디코더(Seq2Seq)” 구조를 쓰는 모델은
이 클래스로 불러옵니다. - 내부적으로는 T5ForConditionalGeneration 같은 구체 모델로 매핑됩니다.
device_map="auto" – 멀티 GPU 자동 분산
- Hugging Face accelerate / transformers가
- CUDA_VISIBLE_DEVICES로 보이는 GPU(여기선 0,1번)를 스캔해서
- 파라미터를 자동으로 분산시킵니다.
- 대형 모델(예: large급)을 한 장의 GPU에 올리기 버거울 때,
- 이런 방식으로 두 장의 VRAM을 합쳐서 사용하는 효과를 얻습니다.
- 주석 처리된 dtype=torch.float16을 활성화하면
- 파라미터를 half precision으로 올려서 VRAM을 추가로 절약할 수 있습니다.
- 대신 연산 및 수치 안정성 이슈를 조금 더 신경 써야 합니다.
DataCollatorForSeq2Seq
- DataLoader에서 배치 단위로 묶을 때 사용하는 collator(정리자) 입니다.
- 하는 일:
- 서로 길이가 다른 문장을 동적으로 패딩해서 하나의 배치 텐서로 만듦
- 디코더 타깃 labels를 모델이 요구하는 형태로 정리
- 필요 시 decoder_input_ids 생성 등
- 직접 수동으로 pad_sequence 등을 처리할 필요 없이,
- Seq2Seq에 필요한 복잡한 로직을 자동으로 처리해 줍니다.
디바이스 확인 코드
# 1) accelerate가 판단한 디바이스 맵 확인
print(">>> hf_device_map:", getattr(model, "hf_device_map", None))
# 2) 파라미터들이 실제로 올라간 디바이스 집합
param_devices = {p.device for p in model.parameters()}
print(">>> unique param devices:", param_devices)
# 3) 첫 번째 파라미터의 디바이스만 보고 싶을 때
first_param = next(model.parameters())
print(">>> first param device:", first_param.device)
print(">>> first param dtype:", first_param.dtype)
- 멀티 GPU 설정이 정상적으로 적용되었는지 확인하는 디버깅 코드입니다.
- hf_device_map:
- 어떤 레이어가 어떤 디바이스(cuda:0, cuda:1)에 올라갔는지 보여줍니다.
- param_devices:
- 실제 파라미터들이 할당된 디바이스 목록을 집합으로 모아 보여줍니다.
- 블로그에서는 이 부분을 통해
- “멀티 GPU 분산이 잘 되었는지 체크하는 방법”으로 소개하면 좋습니다.
4. 학습 설정: Seq2SeqTrainingArguments
from transformers import Seq2SeqTrainingArguments, Seq2SeqTrainer
training_args = Seq2SeqTrainingArguments(
output_dir="./ke_t5_ko2en_tech",
per_device_train_batch_size=16,
per_device_eval_batch_size=16,
learning_rate=5e-04,
num_train_epochs=1,
# 🔽 지금은 fp16 안 쓰는 상태 (주석 수정)
fp16=False,
bf16=False,
# 🔽 2단계: 반드시 warmup 넣기 (둘 중 하나 택 1)
warmup_ratio=0.03, # 전체 step의 3%를 warmup
max_grad_norm=0.5, # 기본 1.0보다 조금 더 강하게 잘라줌
eval_strategy="steps",
eval_steps=5000,
save_strategy="steps",
save_steps=5000,
save_total_limit=3,
load_best_model_at_end=True, # ✅ 베스트 체크포인트 자동 로드
metric_for_best_model="eval_loss", # ✅ 가장 낮은 eval_loss 기준으로
greater_is_better=False, # ✅ loss는 작을수록 좋으니까 False
logging_steps=200,
predict_with_generate=True,
gradient_accumulation_steps=1,
report_to=[],
)
주요 파라미터 설명
블로그용으로는 아래처럼 표나 리스트로 정리해 두면 좋습니다.
- output_dir
- 체크포인트와 로그를 저장할 폴더.
- per_device_train_batch_size
- GPU 한 장당 배치 크기.
- 멀티 GPU일 경우 실제 전체 배치 크기 = 배치 크기 × GPU 개수.
- learning_rate=5e-4
- T5 파인튜닝에서 비교적 큰 편인 LR.
- 데이터 양, warmup 설정에 따라 조정 필요.
- num_train_epochs=1
- 에폭 수. 데이터가 매우 크기 때문에 처음에는 1 epoch만 돌려보고
- OOM 여부와 loss 추이를 확인하는 전략.
- fp16, bf16
- 혼합 정밀도 학습. 여기서는 안정성을 위해 일단 False.
- 나중에 학습이 잘 돌아가면 fp16을 켜서 속도·VRAM 최적화 고려 가능.
- warmup_ratio=0.03
- 전체 스텝의 3% 동안 learning rate를 0 → 목표값까지 선형 증가.
- 초기 학습 폭주, NaN 발생을 줄이는 중요한 장치.
- max_grad_norm=0.5
- Gradient clipping 값.
- 큰 그래디언트가 튀는 것을 막아서 안정적인 학습에 도움.
- eval_strategy="steps", eval_steps=5000
- 매 5000 스텝마다 validation 데이터로 평가.
- save_strategy="steps", save_steps=5000
- 매 5000 스텝마다 체크포인트 저장.
- save_total_limit=3
- 최신 체크포인트 3개만 유지해서 디스크 용량 관리.
- load_best_model_at_end=True
- 학습이 끝나면,
학습 중에 가장 eval_loss가 낮았던 체크포인트를 자동으로 로드.
- 학습이 끝나면,
- predict_with_generate=True
- 평가 시에 단순 cross-entropy loss 뿐 아니라
model.generate()를 호출해서 실제 번역 문장도 생성해보는 모드.
- 평가 시에 단순 cross-entropy loss 뿐 아니라
- report_to=[]
- wandb, tensorboard 등에 로깅하지 않고 콘솔 출력만 사용.
5. Seq2SeqTrainer 구성 및 학습 실행
trainer = Seq2SeqTrainer(
model=model,
args=training_args,
train_dataset=tokenized_train,
eval_dataset=tokenized_valid,
tokenizer=tokenizer,
data_collator=data_collator,
)
# torch.autograd.set_detect_anomaly(True) # “어느 레이어/연산에서 터졌는지”를 바로 볼 수 있습니다.
trainer.train()
Seq2SeqTrainer가 해주는 일
- 배치 구성 (collator 이용)
- forward / loss 계산
- backward / gradient clipping
- optimizer & scheduler step
- checkpoint 저장 / 로드
- evaluation (generate 포함)
- (옵션) metric 계산
정리하면,
💡 “훈련 루프 전체를 직접 짜지 않고도,
Seq2Seq 파인튜닝에 필요한 대부분의 작업을 자동으로 처리해주는 도우미”
라고 이해하면 됩니다.
torch.autograd.set_detect_anomaly(True)
- 주석 처리된 부분입니다.
- 켜두면 backward 과정에서 NaN이나 Inf가 발생했을 때
어느 연산에서 문제가 터졌는지 스택 트레이스를 자세히 보여줍니다. - 다만 속도가 느려지기 때문에
- 문제 디버깅할 때만 켰다가,
- 학습이 정상 동작하면 끄는 것이 좋습니다.
6. 학습 후 모델 저장 + 테스트 세트 평가
save_dir = "./ke_t5_ko2en_tech_final"
trainer.save_model(save_dir)
tokenizer.save_pretrained(save_dir)
- 학습된 가중치와 설정을 save_dir에 저장합니다.
- 여기서 저장되는 것:
- pytorch_model.bin (모델 파라미터)
- config.json (모델 설정)
- tokenizer.json / spiece.model / tokenizer_config.json 등 토크나이저 관련 파일
- 나중에 추론 스크립트에서는 이 디렉토리만 있으면 바로
- AutoTokenizer.from_pretrained(save_dir)
- AutoModelForSeq2SeqLM.from_pretrained(save_dir)
로 로드해서 번역에 활용할 수 있습니다.
테스트 데이터셋으로 최종 평가
metrics = trainer.evaluate(
eval_dataset=tokenized_test,
max_length=MAX_TARGET_LEN,
num_beams=4,
metric_key_prefix="test",
)
print("Test metrics:", metrics)
- 학습에 전혀 사용하지 않았던 test 데이터를 이용해 최종 평가지표를 얻습니다.
- max_length, num_beams는 generate 호출 시 사용하는 파라미터입니다.
- num_beams=4 → Beam Search로 번역 품질을 조금 더 끌어올림.
- 현재 코드는 별도의 compute_metrics 함수를 넘기지 않았기 때문에,
- 기본적으로는 test_loss 정도만 나올 가능성이 큽니다.
- 만약 BLEU, chrF, COMET 같은 번역 메트릭을 보고 싶다면:
- 별도의 compute_metrics 함수를 정의해서 Seq2SeqTrainer에 인자로 전달해야 합니다.
- (이 부분은 블로그의 “다음 과제” 혹은 “추가 개선 포인트” 섹션으로 빼도 좋습니다.)
전체 흐름 한 번에 정리
- 데이터 준비
- AI-Hub 한·영 기술과학 번역 데이터 → datasets 포맷으로 가공 → load_from_disk
- 전처리
- "한글을 영어로 번역:\n" 프롬프트를 붙여서 T5 입력 생성
- 토크나이저로 input_ids, labels 생성 → datasets.map으로 전체 적용
- 모델 준비
- KETI-AIR/ke-t5-large-ko 로드
- device_map="auto" + CUDA_VISIBLE_DEVICES="0,1"로 TITAN RTX 2장 활용
- DataCollatorForSeq2Seq로 배치 패딩/정리 자동화
- 학습
- Seq2SeqTrainingArguments로 학습 하이퍼파라미터 설정
- Seq2SeqTrainer로 전체 학습 루프 자동화
- 저장 & 평가
- 최종 파인튜닝된 모델을 ./ke_t5_ko2en_tech_final에 저장
- test 데이터셋에 대해 평가 (test_loss 등)
- 후속 작업: BLEU/chrF/COMET 등 정밀 번역 메트릭 추가 가능
데이터 학습 로그
(KDT_Academy) PS D:\VIRT3D_04\Local_workspace_virt3d_04\HRDI\251124_project> python finetune_ke_t5_ko2en.py
WARNING:tensorflow:From C:\Users\nippa\.conda\envs\KDT_Academy\lib\site-packages\tf_keras\src\losses.py:2976: The name tf.losses.sparse_softmax_cross_entropy is deprecated. Please use tf.compat.v1.losses.sparse_softmax_cross_entropy instead.
DatasetDict({
train: Dataset({
features: ['src', 'tgt'],
num_rows: 1080129
})
validation: Dataset({
features: ['src', 'tgt'],
num_rows: 120015
})
test: Dataset({
features: ['src', 'tgt'],
num_rows: 150018
})
})
train 샘플: {'src': 'AAA 정부의 통일정책은 공산주의 이념체계로 정권을 출범시킨 북한의 존재자체를 인정하
지 않거나 불법시 하면서 1948년 총선거에서 보류된 북한지역에서의 자유총선거를 가장 중요한 통일방법으로 제
시하였다.', 'tgt': 'The unification policy associated with AAA government did perhaps not recognize or illegally recognize the existence of North Korea, which launched the regime under the communist ideological system, and provided the free general election in North Korea, which was placed on hold in the 1948 basic election, as probably the most important unification method.'}
{'input_ids': [10075, 11, 27435, 8795, 103, 50350, 1118, 3371, 2448, 19, 29925, 10275, 4539, 34, 20343,
3704, 3564, 1846, 2538, 35035, 21, 17012, 24700, 1635, 98, 2305, 26365, 48, 317, 6024, 37, 18138, 178, 821, 15020, 6, 2869, 2575, 6024, 21, 189, 964, 3371, 8780, 45, 3944, 1629, 3, 1], 'attention_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'labels': [55, 1062, 13042, 2205, 10225, 54, 50350, 618, 758, 6393, 112, 13521, 117, 31252, 13521, 5, 23753, 14, 1714, 5701, 4, 159, 5493, 5, 9342, 730, 5, 53504, 46682, 1076, 4, 13, 4564, 5, 1303, 2749, 2672, 20, 1714, 5701, 4, 159, 62, 8855, 46, 3630, 20, 5, 26365, 7543, 2672, 4, 64, 3329, 5, 429, 1577, 1062, 13042, 15883, 3, 1]}
C:\Users\nippa\.conda\envs\KDT_Academy\lib\site-packages\accelerate\utils\modeling.py:1598: UserWarning: The following device_map keys do not match any submodules in the model: ['decoder.embed_tokens']
warnings.warn(
>>> hf_device_map: {'shared': 0, 'decoder.embed_tokens': 0, 'encoder': 0, 'lm_head': 0, 'decoder.block.0': 0, 'decoder.block.1': 1, 'decoder.block.2': 1, 'decoder.block.3': 1, 'decoder.block.4': 1, 'decoder.block.5': 1, 'decoder.block.6': 1, 'decoder.block.7': 1, 'decoder.block.8': 1, 'decoder.block.9': 1, 'decoder.block.10': 1, 'decoder.block.11': 1, 'decoder.block.12': 1, 'decoder.block.13': 1, 'decoder.block.14': 1, 'decoder.block.15': 1, 'decoder.block.16': 1, 'decoder.block.17': 1, 'decoder.block.18': 1, 'decoder.block.19': 1, 'decoder.block.20': 1, 'decoder.block.21': 1, 'decoder.block.22': 1, 'decoder.block.23': 1, 'decoder.final_layer_norm': 1, 'decoder.dropout': 1}
>>> unique param devices: {device(type='cuda', index=0), device(type='cuda', index=1)}
>>> first param device: cuda:0
>>> first param dtype: torch.float32
D:\VIRT3D_04\Local_workspace_virt3d_04\HRDI\251124_project\finetune_ke_t5_ko2en.py:144: FutureWarning: `tokenizer` is deprecated and will be removed in version 5.0.0 for `Seq2SeqTrainer.__init__`. Use `processing_class` instead. Use `processing_class` instead.
trainer = Seq2SeqTrainer( : 0.01}{'loss': 7.305, 'grad_norm': 1.31629
{'loss': 10.9815, 'grad_norm': 1707.500244140625, 'learning_rate': 4.9111549851924976e-05, 'epoch': 0.0}{'loss': 19.0225, 'grad_norm': 2.714174509048462, 'learning_rate': 9.846989141164857e-05, 'epoch'035810470581, 'learning_rate': 0.0002465449poch': 0.01}{'loss': 7.305, 'grad_norm': 1.3162968158721924, 'learning_rate': 0.00014782823297137217, 'epoch': 0.01}{'loss': 5.9484, 'grad_norm': 4.378161907196045, 'learning_rate': 0.000197186574576, 53109576, 'epoch': 0.01}{'loss': 5.2909, 'grad_norm': 3.575035810470581, 'learning_rate': 0.0002465449160908194, 'epoch': 0.01}
{'loss': 4.609, 'grad_norm': 2.21923565864563, 'learning_rate': 0.0002959032576505429, 'epoch': 0.02}
{'loss': 3.9046, 'grad_norm': 2.9477949142456055, 'learning_rate': 0.00034526159921026656, 'epoch': 0.02} ': 0.03}
{'loss': 3.437, 'grad_norm': 2.3973450660705566, 'learning_rate': 0.00039461994076999015, 'epoch': 0.02}{'loss': 3.1344, 'grad_norm': 1.5800700187683105, 'learning_rate': 0.00044397828232971374, 'epoch: 0.03}{'loss': 2.4978, 'grad_norm': 1.5885epoch': 0.03} 2477684020996, 'learning_rate': 0.000494097
{'loss': 2.8759, 'grad_norm': 1.8666006326675415, 'learning_rate': 0.0004933366238894373, 'epoch': 0.03}{'loss': 2.7169, 'grad_norm': 2.9717676639556885, 'learning_rate': 0.0004986790464700762, 'epoch'poch': 0.03}{'loss': 2.4978, 'grad_norm': 1.5885841846466064, 'learning_rate': 0.0004971519325626499, 'epoch': 0.04}{'loss': 2.3609, 'grad_norm': 1.5511868000030518, 'learning_rate': 0.00049562481235, | 3193/67509 [39:04<13:21:45, 1.3486552235, 'epoch': 0.04}{'loss': 2.2345, 'grad_norm': 1.1212477684020996, 'learning_rate': 0.000494097704747{'loss': 2.1559, 'grad_norm': 1.3809599876403809, 'learning_rate': 0.0004925705908403708 0.04, 'epoch': 0.04}
5%|█████████▋
5%|███████▎ | 3194/67509 [39:04<13:21:03, t/s]
1.34it/s] {'loss': 2.067, 'grad_norm': 1.1615256071090698, 'learning_rate': 0.0004910434769329445, 'epoch': 0.05}
{'loss': 2.0107, 'grad_norm': 2.4356374740600586, 'learning_rate': 0.0004895163630255181, 'epoch': 0.05}
5%|███████▉ | 3482/67509 [42:36<12:59:13, 1.37it/s] 5%|███████▋ | 3483/67509 [42:36<13:10:13, 1.35it/s]
{'loss': 1.9274, 'grad_norm': 1.9547373056411743, 'learning_rate': 0.00048798924911809175, 'epoch': 0.05}
{'loss': 1.895, 'grad_norm': 1.3645975589752197, 'learning_rate': 0.00048646213521066537, 'epoch': 0.06}
{'loss': 1.8575, 'grad_norm': 1.3419643640518188, 'learning_rate': 0.00048493502130323904, 'epoch': 0.06}
{'loss': 1.7909, 'grad_norm': 1.687760829925537, 'learning_rate': 0.00048340790739581266, 'epoch': 0.06}
{'loss': 1.7647, 'grad_norm': 1.2297730445861816, 'learning_rate': 0.00048188079348838634, 'epoch': 0.07}
{'loss': 1.7386, 'grad_norm': 1.1355775594711304, 'learning_rate': 0.00048035367958095996, 'epoch': 0.07}
{'loss': 1.6648, 'grad_norm': 1.02985417842865, 'learning_rate': 0.00047882656567353364, 'epoch': 0.07}
{'loss': 1.618, 'grad_norm': 1.2455216646194458, 'learning_rate': 0.00047729945176610726, 'epoch': 0.07}
{'eval_loss': 1.635196566581726, 'eval_runtime': 1950.6364, 'eval_samples_per_second': 61.526, 'eval_steps_per_second': 3.845, 'epoch': 0.07}
{'loss': 1.6577, 'grad_norm': 1.166762113571167, 'learning_rate': 0.00047577233785868093, 'epoch': 0.08}
{'loss': 1.5801, 'grad_norm': 1.2925018072128296, 'learning_rate': 0.0004742452239512545, 'epoch': 0.08}
{'loss': 1.57, 'grad_norm': 1.6516906023025513, 'learning_rate': 0.00047271811004382817, 'epoch': 0.08}
{'loss': 1.5356, 'grad_norm': 1.0158902406692505, 'learning_rate': 0.0004711909961364018, 'epoch': 0.09}
{'loss': 1.5532, 'grad_norm': 1.574010968208313, 'learning_rate': 0.00046966388222897547, 'epoch': 0.09}
{'loss': 1.5294, 'grad_norm': 1.7366690635681152, 'learning_rate': 0.0004681367683215491, 'epoch': 0.09}
{'loss': 1.5132, 'grad_norm': 1.0305333137512207, 'learning_rate': 0.00046660965441412276, 'epoch': 0.09}
{'loss': 1.4671, 'grad_norm': 1.1053242683410645, 'learning_rate': 0.0004650825405066964, 'epoch': 0.1}
{'loss': 1.4437, 'grad_norm': 1.1598362922668457, 'learning_rate': 0.00046355542659927, 'epoch': 0.1}
{'loss': 1.4479, 'grad_norm': 0.9717410206794739, 'learning_rate': 0.0004620283126918437, 'epoch': 0.1}
{'loss': 1.4378, 'grad_norm': 1.4872688055038452, 'learning_rate': 0.0004605011987844173, 'epoch': 0.11}
{'loss': 1.4144, 'grad_norm': 1.3171617984771729, 'learning_rate': 0.000458974084876991, 'epoch': 0.11}
{'loss': 1.3825, 'grad_norm': 0.9092162847518921, 'learning_rate': 0.0004574469709695646, 'epoch': 0.11}
{'loss': 1.385, 'grad_norm': 1.1215001344680786, 'learning_rate': 0.00045591985706213827, 'epoch': 0.12}
{'loss': 1.335, 'grad_norm': 1.2041609287261963, 'learning_rate': 0.0004543927431547119, 'epoch': 0.12}
{'loss': 1.3494, 'grad_norm': 1.3023505210876465, 'learning_rate': 0.00045286562924728557, 'epoch': 0.12}
{'loss': 1.346, 'grad_norm': 0.8533542156219482, 'learning_rate': 0.0004513385153398592, 'epoch': 0.12}
{'loss': 1.3366, 'grad_norm': 1.3086178302764893, 'learning_rate': 0.00044981140143243286, 'epoch': 0.13}
{'loss': 1.3058, 'grad_norm': 1.1775871515274048, 'learning_rate': 0.0004482842875250065, 'epoch': 0.13}
{'loss': 1.3067, 'grad_norm': 1.1047824621200562, 'learning_rate': 0.00044675717361758016, 'epoch': 0.13}
{'loss': 1.3142, 'grad_norm': 0.870261013507843, 'learning_rate': 0.0004452300597101538, 'epoch': 0.14}
{'loss': 1.2852, 'grad_norm': 1.0081247091293335, 'learning_rate': 0.0004437029458027274, 'epoch': 0.14}
{'loss': 1.2823, 'grad_norm': 0.8859627842903137, 'learning_rate': 0.0004421758318953011, 'epoch': 0.14}
{'loss': 1.2818, 'grad_norm': 1.117301106452942, 'learning_rate': 0.0004406487179878747, 'epoch': 0.15}
{'loss': 1.277, 'grad_norm': 0.9606307148933411, 'learning_rate': 0.00043912160408044837, 'epoch': 0.15}
{'eval_loss': 1.2556157112121582, 'eval_runtime': 1956.1073, 'eval_samples_per_second': 61.354, 'eval_steps_per_second': 3.835, 'epoch': 0.15}
{'loss': 1.2475, 'grad_norm': 1.064202070236206, 'learning_rate': 0.000437594490173022, 'epoch': 0.15}
{'loss': 1.2373, 'grad_norm': 0.8651875853538513, 'learning_rate': 0.00043606737626559566, 'epoch': 0.15}
{'loss': 1.2411, 'grad_norm': 0.9116905927658081, 'learning_rate': 0.0004345402623581693, 'epoch': 0.16}
{'loss': 1.2322, 'grad_norm': 0.7657384872436523, 'learning_rate': 0.00043301314845074296, 'epoch': 0.16}
{'loss': 1.2236, 'grad_norm': 2.0828468799591064, 'learning_rate': 0.0004314860345433166, 'epoch': 0.16}
{'loss': 1.2325, 'grad_norm': 1.2692979574203491, 'learning_rate': 0.00042995892063589026, 'epoch': 0.17}
{'loss': 1.1984, 'grad_norm': 1.4579511880874634, 'learning_rate': 0.0004284318067284639, 'epoch': 0.17}
{'loss': 1.1986, 'grad_norm': 2.198239803314209, 'learning_rate': 0.00042690469282103755, 'epoch': 0.17}
{'loss': 1.2019, 'grad_norm': 0.8540583252906799, 'learning_rate': 0.00042537757891361117, 'epoch': 0.17}
{'loss': 1.1816, 'grad_norm': 0.7494217157363892, 'learning_rate': 0.0004238504650061848, 'epoch': 0.18}
{'loss': 1.1905, 'grad_norm': 1.0074560642242432, 'learning_rate': 0.00042232335109875847, 'epoch': 0.18}
{'loss': 1.1732, 'grad_norm': 1.2056686878204346, 'learning_rate': 0.0004207962371913321, 'epoch': 0.18}
{'loss': 1.1614, 'grad_norm': 0.9373527765274048, 'learning_rate': 0.00041926912328390576, 'epoch': 0.19}
{'loss': 1.1582, 'grad_norm': 1.008357286453247, 'learning_rate': 0.0004177420093764794, 'epoch': 0.19}
{'loss': 1.162, 'grad_norm': 0.9202551245689392, 'learning_rate': 0.00041621489546905306, 'epoch': 0.19}
{'loss': 1.1301, 'grad_norm': 1.0520612001419067, 'learning_rate': 0.0004146877815616267, 'epoch': 0.2}
{'loss': 1.1488, 'grad_norm': 1.2276723384857178, 'learning_rate': 0.00041316066765420035, 'epoch': 0.2}
{'loss': 1.1379, 'grad_norm': 1.0295994281768799, 'learning_rate': 0.000411633553746774, 'epoch': 0.2}
{'loss': 1.1415, 'grad_norm': 1.43824303150177, 'learning_rate': 0.00041010643983934765, 'epoch': 0.2}
{'loss': 1.1339, 'grad_norm': 0.9453617930412292, 'learning_rate': 0.00040857932593192127, 'epoch': 0.21}
{'loss': 1.1053, 'grad_norm': 1.1512746810913086, 'learning_rate': 0.00040705221202449494, 'epoch': 0.21}
{'loss': 1.1324, 'grad_norm': 1.0767697095870972, 'learning_rate': 0.00040552509811706856, 'epoch': 0.21}
{'loss': 1.113, 'grad_norm': 1.2187138795852661, 'learning_rate': 0.00040399798420964224, 'epoch': 0.22}
{'loss': 1.0909, 'grad_norm': 1.091253399848938, 'learning_rate': 0.00040247087030221586, 'epoch': 0.22}
{'loss': 1.1307, 'grad_norm': 1.2470653057098389, 'learning_rate': 0.0004009437563947895, 'epoch': 0.22}
{'eval_loss': 1.1177561283111572, 'eval_runtime': 1949.3194, 'eval_samples_per_second': 61.568, 'eval_steps_per_second': 3.848, 'epoch': 0.22}
{'loss': 1.0915, 'grad_norm': 0.8242588043212891, 'learning_rate': 0.00039941664248736316, 'epoch': 0.23}
{'loss': 1.11, 'grad_norm': 0.8242720365524292, 'learning_rate': 0.0003978895285799368, 'epoch': 0.23}
{'loss': 1.0887, 'grad_norm': 0.7739263772964478, 'learning_rate': 0.00039636241467251045, 'epoch': 0.23}
{'loss': 1.0505, 'grad_norm': 0.7772217392921448, 'learning_rate': 0.00039483530076508407, 'epoch': 0.23}
{'loss': 1.0663, 'grad_norm': 1.040212631225586, 'learning_rate': 0.00039330818685765775, 'epoch': 0.24}
{'loss': 1.0777, 'grad_norm': 1.2848347425460815, 'learning_rate': 0.00039178107295023137, 'epoch': 0.24}
{'loss': 1.0604, 'grad_norm': 0.9590355753898621, 'learning_rate': 0.00039025395904280504, 'epoch': 0.24}
{'loss': 1.0762, 'grad_norm': 1.051562786102295, 'learning_rate': 0.00038872684513537866, 'epoch': 0.25}
{'loss': 1.0517, 'grad_norm': 0.6775292754173279, 'learning_rate': 0.00038719973122795234, 'epoch': 0.25}
{'loss': 1.069, 'grad_norm': 1.0629762411117554, 'learning_rate': 0.00038567261732052596, 'epoch': 0.25}
{'loss': 1.066, 'grad_norm': 1.355197548866272, 'learning_rate': 0.00038414550341309963, 'epoch': 0.25}
{'loss': 1.0744, 'grad_norm': 0.9483560919761658, 'learning_rate': 0.00038261838950567325, 'epoch': 0.26}
{'loss': 1.0242, 'grad_norm': 0.8492407202720642, 'learning_rate': 0.0003810912755982469, 'epoch': 0.26}
{'loss': 1.0615, 'grad_norm': 0.8122996091842651, 'learning_rate': 0.00037956416169082055, 'epoch': 0.26}
{'loss': 1.0284, 'grad_norm': 0.9729459285736084, 'learning_rate': 0.00037803704778339417, 'epoch': 0.27}
{'loss': 1.0274, 'grad_norm': 0.9142367243766785, 'learning_rate': 0.00037650993387596785, 'epoch': 0.27}
{'loss': 1.0468, 'grad_norm': 1.0770541429519653, 'learning_rate': 0.00037498281996854147, 'epoch': 0.27}
{'loss': 1.0208, 'grad_norm': 0.97905033826828, 'learning_rate': 0.00037345570606111514, 'epoch': 0.28}
{'loss': 1.0218, 'grad_norm': 0.8121296763420105, 'learning_rate': 0.00037192859215368876, 'epoch': 0.28}
{'loss': 1.0237, 'grad_norm': 0.8831801414489746, 'learning_rate': 0.00037040147824626244, 'epoch': 0.28}
{'loss': 1.0408, 'grad_norm': 1.0761719942092896, 'learning_rate': 0.00036887436433883606, 'epoch': 0.28}
{'loss': 1.0107, 'grad_norm': 1.4550296068191528, 'learning_rate': 0.00036734725043140973, 'epoch': 0.29}
{'loss': 0.9943, 'grad_norm': 0.7828203439712524, 'learning_rate': 0.00036582013652398335, 'epoch': 0.29}
{'loss': 0.9996, 'grad_norm': 1.195625901222229, 'learning_rate': 0.00036429302261655703, 'epoch': 0.29}
{'loss': 1.0003, 'grad_norm': 0.9609420299530029, 'learning_rate': 0.0003627659087091306, 'epoch': 0.3}
{'eval_loss': 1.0034525394439697, 'eval_runtime': 1948.1149, 'eval_samples_per_second': 61.606, 'eval_steps_per_second': 3.85, 'epoch': 0.3}
{'loss': 0.987, 'grad_norm': 0.7562028169631958, 'learning_rate': 0.0003612387948017042, 'epoch': 0.3}
{'loss': 0.9879, 'grad_norm': 0.5565323829650879, 'learning_rate': 0.0003597116808942779, 'epoch': 0.3}
{'loss': 0.9931, 'grad_norm': 0.9149838089942932, 'learning_rate': 0.0003581845669868515, 'epoch': 0.31}
{'loss': 0.9958, 'grad_norm': 1.0054206848144531, 'learning_rate': 0.0003566574530794252, 'epoch': 0.31}
{'loss': 0.9893, 'grad_norm': 1.1146334409713745, 'learning_rate': 0.0003551303391719988, 'epoch': 0.31}
{'loss': 0.9806, 'grad_norm': 0.8708373308181763, 'learning_rate': 0.0003536032252645725, 'epoch': 0.31}
{'loss': 0.9614, 'grad_norm': 0.8761562705039978, 'learning_rate': 0.0003520761113571461, 'epoch': 0.32}
{'loss': 0.9996, 'grad_norm': 0.8332303762435913, 'learning_rate': 0.0003505489974497198, 'epoch': 0.32}
{'loss': 0.9736, 'grad_norm': 1.1145107746124268, 'learning_rate': 0.0003490218835422934, 'epoch': 0.32}
{'loss': 0.9567, 'grad_norm': 0.6929807066917419, 'learning_rate': 0.00034749476963486707, 'epoch': 0.33}
{'loss': 0.9742, 'grad_norm': 1.2496843338012695, 'learning_rate': 0.0003459676557274407, 'epoch': 0.33}
{'loss': 0.9679, 'grad_norm': 0.8020545244216919, 'learning_rate': 0.00034444054182001437, 'epoch': 0.33}
{'loss': 0.9621, 'grad_norm': 0.8397977352142334, 'learning_rate': 0.000342913427912588, 'epoch': 0.33}
{'loss': 0.9706, 'grad_norm': 0.8724926114082336, 'learning_rate': 0.0003413863140051616, 'epoch': 0.34}
{'loss': 0.947, 'grad_norm': 1.089823842048645, 'learning_rate': 0.0003398592000977353, 'epoch': 0.34}
{'loss': 0.9601, 'grad_norm': 0.8455361723899841, 'learning_rate': 0.0003383320861903089, 'epoch': 0.34}
{'loss': 0.9863, 'grad_norm': 0.752769410610199, 'learning_rate': 0.0003368049722828826, 'epoch': 0.35}
{'loss': 0.9584, 'grad_norm': 0.8153629302978516, 'learning_rate': 0.0003352778583754562, 'epoch': 0.35}
{'loss': 0.9311, 'grad_norm': 0.8661390542984009, 'learning_rate': 0.0003337507444680299, 'epoch': 0.35}
{'loss': 0.9409, 'grad_norm': 0.8762363195419312, 'learning_rate': 0.0003322236305606035, 'epoch': 0.36}
{'loss': 0.9495, 'grad_norm': 1.0086942911148071, 'learning_rate': 0.00033069651665317717, 'epoch': 0.36}
{'loss': 0.9228, 'grad_norm': 0.9085280895233154, 'learning_rate': 0.0003291694027457508, 'epoch': 0.36}
{'loss': 0.9205, 'grad_norm': 0.7862815856933594, 'learning_rate': 0.00032764228883832447, 'epoch': 0.36}
{'loss': 0.942, 'grad_norm': 1.1253538131713867, 'learning_rate': 0.0003261151749308981, 'epoch': 0.37}
{'loss': 0.923, 'grad_norm': 2.4396917819976807, 'learning_rate': 0.00032458806102347176, 'epoch': 0.37}
{'eval_loss': 0.9353911280632019, 'eval_runtime': 1967.7239, 'eval_samples_per_second': 60.992, 'eval_steps_per_second': 3.812, 'epoch': 0.37}
{'loss': 0.9139, 'grad_norm': 1.1860848665237427, 'learning_rate': 0.0003230609471160454, 'epoch': 0.37}
{'loss': 0.9341, 'grad_norm': 0.8274381160736084, 'learning_rate': 0.00032153383320861906, 'epoch': 0.38}
{'loss': 0.932, 'grad_norm': 1.0382866859436035, 'learning_rate': 0.0003200067193011927, 'epoch': 0.38}
{'loss': 0.9245, 'grad_norm': 0.6612290143966675, 'learning_rate': 0.0003184796053937663, 'epoch': 0.38}
{'loss': 0.9285, 'grad_norm': 0.8672088980674744, 'learning_rate': 0.00031695249148633997, 'epoch': 0.39}
{'loss': 0.9253, 'grad_norm': 0.8526297807693481, 'learning_rate': 0.0003154253775789136, 'epoch': 0.39}
{'loss': 0.9125, 'grad_norm': 0.8832495212554932, 'learning_rate': 0.00031389826367148727, 'epoch': 0.39}
{'loss': 0.9389, 'grad_norm': 0.7173917293548584, 'learning_rate': 0.0003123711497640609, 'epoch': 0.39}
{'loss': 0.8977, 'grad_norm': 0.6834053993225098, 'learning_rate': 0.00031084403585663456, 'epoch': 0.4}
{'loss': 0.9212, 'grad_norm': 0.865925133228302, 'learning_rate': 0.0003093169219492082, 'epoch': 0.4}
{'loss': 0.9175, 'grad_norm': 0.9467422962188721, 'learning_rate': 0.00030778980804178186, 'epoch': 0.4}
{'loss': 0.9176, 'grad_norm': 0.679959237575531, 'learning_rate': 0.0003062626941343555, 'epoch': 0.41}
{'loss': 0.9187, 'grad_norm': 0.7308865189552307, 'learning_rate': 0.00030473558022692915, 'epoch': 0.41}
{'loss': 0.9037, 'grad_norm': 0.8442412614822388, 'learning_rate': 0.0003032084663195028, 'epoch': 0.41}
{'loss': 0.8965, 'grad_norm': 0.7568848133087158, 'learning_rate': 0.00030168135241207645, 'epoch': 0.41}
{'loss': 0.9111, 'grad_norm': 0.8706641793251038, 'learning_rate': 0.00030015423850465007, 'epoch': 0.42}
{'loss': 0.877, 'grad_norm': 0.7853829264640808, 'learning_rate': 0.0002986271245972237, 'epoch': 0.42}
{'loss': 0.8722, 'grad_norm': 0.8112730979919434, 'learning_rate': 0.00029710001068979737, 'epoch': 0.42}
{'loss': 0.8871, 'grad_norm': 0.8390194177627563, 'learning_rate': 0.000295572896782371, 'epoch': 0.43}
{'loss': 0.8861, 'grad_norm': 0.8007487058639526, 'learning_rate': 0.00029404578287494466, 'epoch': 0.43}
{'loss': 0.9098, 'grad_norm': 1.0214616060256958, 'learning_rate': 0.0002925186689675183, 'epoch': 0.43}
{'loss': 0.9082, 'grad_norm': 0.8336062431335449, 'learning_rate': 0.00029099155506009196, 'epoch': 0.44}
{'loss': 0.879, 'grad_norm': 0.6844392418861389, 'learning_rate': 0.0002894644411526656, 'epoch': 0.44}
{'loss': 0.8691, 'grad_norm': 0.8882843255996704, 'learning_rate': 0.00028793732724523925, 'epoch': 0.44}
{'loss': 0.8758, 'grad_norm': 0.8761543035507202, 'learning_rate': 0.0002864102133378129, 'epoch': 0.44}
{'eval_loss': 0.8819697499275208, 'eval_runtime': 1966.6285, 'eval_samples_per_second': 61.026, 'eval_steps_per_second': 3.814, 'epoch': 0.44}
{'loss': 0.8978, 'grad_norm': 0.7820104360580444, 'learning_rate': 0.00028488309943038655, 'epoch': 0.45}
{'loss': 0.8639, 'grad_norm': 0.781293511390686, 'learning_rate': 0.00028335598552296017, 'epoch': 0.45}
{'loss': 0.8607, 'grad_norm': 0.856580376625061, 'learning_rate': 0.00028182887161553384, 'epoch': 0.45}
{'loss': 0.8708, 'grad_norm': 0.7326657772064209, 'learning_rate': 0.00028030175770810746, 'epoch': 0.46}
{'loss': 0.8758, 'grad_norm': 1.0158768892288208, 'learning_rate': 0.0002787746438006811, 'epoch': 0.46}
{'loss': 0.8646, 'grad_norm': 0.970942497253418, 'learning_rate': 0.00027724752989325476, 'epoch': 0.46}
{'loss': 0.8666, 'grad_norm': 0.7590320110321045, 'learning_rate': 0.0002757204159858284, 'epoch': 0.47}
{'loss': 0.847, 'grad_norm': 0.7558133006095886, 'learning_rate': 0.00027419330207840206, 'epoch': 0.47}
{'loss': 0.8645, 'grad_norm': 0.7994266748428345, 'learning_rate': 0.0002726661881709757, 'epoch': 0.47}
{'loss': 0.8749, 'grad_norm': 1.1659806966781616, 'learning_rate': 0.00027113907426354935, 'epoch': 0.47}
{'loss': 0.8505, 'grad_norm': 0.909113883972168, 'learning_rate': 0.00026961196035612297, 'epoch': 0.48}
{'loss': 0.8726, 'grad_norm': 0.7943546772003174, 'learning_rate': 0.00026808484644869665, 'epoch': 0.48}
{'loss': 0.847, 'grad_norm': 0.6067540049552917, 'learning_rate': 0.00026655773254127027, 'epoch': 0.48}
{'loss': 0.8507, 'grad_norm': 0.8063498735427856, 'learning_rate': 0.00026503061863384394, 'epoch': 0.49}
{'loss': 0.8462, 'grad_norm': 0.8099154233932495, 'learning_rate': 0.00026350350472641756, 'epoch': 0.49}
{'loss': 0.8374, 'grad_norm': 0.5959171056747437, 'learning_rate': 0.00026197639081899124, 'epoch': 0.49}
{'loss': 0.8524, 'grad_norm': 0.7585708498954773, 'learning_rate': 0.00026044927691156486, 'epoch': 0.49}
{'loss': 0.8445, 'grad_norm': 0.7503898739814758, 'learning_rate': 0.00025892216300413853, 'epoch': 0.5}
{'loss': 0.8429, 'grad_norm': 0.9447136521339417, 'learning_rate': 0.00025739504909671215, 'epoch': 0.5}
{'loss': 0.8198, 'grad_norm': 1.0212852954864502, 'learning_rate': 0.0002558679351892858, 'epoch': 0.5}
{'loss': 0.8391, 'grad_norm': 0.9099057912826538, 'learning_rate': 0.00025434082128185945, 'epoch': 0.51}
{'loss': 0.8494, 'grad_norm': 0.7289407849311829, 'learning_rate': 0.00025281370737443307, 'epoch': 0.51}
{'loss': 0.844, 'grad_norm': 0.8621858358383179, 'learning_rate': 0.00025128659346700674, 'epoch': 0.51}
{'loss': 0.8407, 'grad_norm': 0.7449899315834045, 'learning_rate': 0.00024975947955958037, 'epoch': 0.52}
{'loss': 0.8216, 'grad_norm': 0.7991713285446167, 'learning_rate': 0.000248232365652154, 'epoch': 0.52}
{'eval_loss': 0.8366028666496277, 'eval_runtime': 1951.1819, 'eval_samples_per_second': 61.509, 'eval_steps_per_second': 3.844, 'epoch': 0.52}
{'loss': 0.8372, 'grad_norm': 0.8398895859718323, 'learning_rate': 0.0002467052517447276, 'epoch': 0.52}
{'loss': 0.8277, 'grad_norm': 0.7861682176589966, 'learning_rate': 0.0002451781378373013, 'epoch': 0.52}
{'loss': 0.81, 'grad_norm': 0.619975209236145, 'learning_rate': 0.00024365102392987493, 'epoch': 0.53}
{'loss': 0.829, 'grad_norm': 1.1479049921035767, 'learning_rate': 0.00024212391002244858, 'epoch': 0.53}
{'loss': 0.8434, 'grad_norm': 1.175234317779541, 'learning_rate': 0.00024059679611502222, 'epoch': 0.53}
{'loss': 0.8181, 'grad_norm': 0.7344660758972168, 'learning_rate': 0.00023906968220759587, 'epoch': 0.54}
{'loss': 0.8347, 'grad_norm': 0.7843818664550781, 'learning_rate': 0.00023754256830016952, 'epoch': 0.54}
{'loss': 0.8332, 'grad_norm': 0.7721716165542603, 'learning_rate': 0.00023601545439274317, 'epoch': 0.54}
{'loss': 0.8265, 'grad_norm': 0.6587583422660828, 'learning_rate': 0.00023448834048531682, 'epoch': 0.55}
{'loss': 0.8328, 'grad_norm': 0.5874495506286621, 'learning_rate': 0.00023296122657789046, 'epoch': 0.55}
{'loss': 0.8137, 'grad_norm': 0.7856174111366272, 'learning_rate': 0.0002314341126704641, 'epoch': 0.55}
{'loss': 0.8122, 'grad_norm': 0.7492685914039612, 'learning_rate': 0.00022990699876303776, 'epoch': 0.55}
{'loss': 0.8104, 'grad_norm': 0.7005335688591003, 'learning_rate': 0.0002283798848556114, 'epoch': 0.56}
{'loss': 0.7959, 'grad_norm': 0.6785234808921814, 'learning_rate': 0.00022685277094818503, 'epoch': 0.56}
{'loss': 0.8213, 'grad_norm': 0.6766274571418762, 'learning_rate': 0.00022532565704075868, 'epoch': 0.56}
{'loss': 0.8041, 'grad_norm': 0.7487271428108215, 'learning_rate': 0.00022379854313333232, 'epoch': 0.57}
{'loss': 0.8151, 'grad_norm': 0.7078477144241333, 'learning_rate': 0.00022227142922590597, 'epoch': 0.57}
{'loss': 0.8241, 'grad_norm': 0.6313979029655457, 'learning_rate': 0.0002207443153184796, 'epoch': 0.57}
{'loss': 0.8007, 'grad_norm': 0.8470695614814758, 'learning_rate': 0.00021921720141105324, 'epoch': 0.57}
{'loss': 0.7957, 'grad_norm': 0.7770642042160034, 'learning_rate': 0.0002176900875036269, 'epoch': 0.58}
{'loss': 0.8063, 'grad_norm': 0.7380073666572571, 'learning_rate': 0.00021616297359620053, 'epoch': 0.58}
{'loss': 0.8048, 'grad_norm': 0.8151660561561584, 'learning_rate': 0.00021463585968877418, 'epoch': 0.58}
{'loss': 0.8103, 'grad_norm': 0.740604817867279, 'learning_rate': 0.00021310874578134783, 'epoch': 0.59}
{'loss': 0.8053, 'grad_norm': 1.0372763872146606, 'learning_rate': 0.00021158163187392148, 'epoch': 0.59}
{'loss': 0.7919, 'grad_norm': 0.9137498140335083, 'learning_rate': 0.00021005451796649513, 'epoch': 0.59}
{'eval_loss': 0.7994819283485413, 'eval_runtime': 1950.681, 'eval_samples_per_second': 61.525, 'eval_steps_per_second': 3.845, 'epoch': 0.59}
{'loss': 0.8078, 'grad_norm': 1.2467830181121826, 'learning_rate': 0.00020852740405906877, 'epoch': 0.6}
{'loss': 0.8018, 'grad_norm': 0.8178420066833496, 'learning_rate': 0.00020700029015164242, 'epoch': 0.6}
{'loss': 0.7961, 'grad_norm': 0.6629436016082764, 'learning_rate': 0.00020547317624421604, 'epoch': 0.6}
{'loss': 0.8025, 'grad_norm': 0.6818265914916992, 'learning_rate': 0.0002039460623367897, 'epoch': 0.6}
{'loss': 0.7976, 'grad_norm': 0.8894730806350708, 'learning_rate': 0.00020241894842936334, 'epoch': 0.61}
{'loss': 0.7894, 'grad_norm': 0.8033319115638733, 'learning_rate': 0.00020089183452193699, 'epoch': 0.61}
{'loss': 0.7892, 'grad_norm': 0.7503067255020142, 'learning_rate': 0.00019936472061451063, 'epoch': 0.61}
{'loss': 0.7681, 'grad_norm': 0.7414132356643677, 'learning_rate': 0.00019783760670708428, 'epoch': 0.62}
{'loss': 0.7885, 'grad_norm': 0.9176585674285889, 'learning_rate': 0.00019631049279965793, 'epoch': 0.62}
{'loss': 0.7811, 'grad_norm': 0.7658310532569885, 'learning_rate': 0.00019478337889223158, 'epoch': 0.62}
{'loss': 0.7926, 'grad_norm': 1.4811164140701294, 'learning_rate': 0.00019325626498480522, 'epoch': 0.63}
{'loss': 0.7698, 'grad_norm': 0.7250633835792542, 'learning_rate': 0.00019172915107737887, 'epoch': 0.63}
{'loss': 0.7682, 'grad_norm': 0.7625973224639893, 'learning_rate': 0.00019020203716995252, 'epoch': 0.63}
{'loss': 0.8005, 'grad_norm': 0.7270976305007935, 'learning_rate': 0.00018867492326252617, 'epoch': 0.63}
{'loss': 0.7778, 'grad_norm': 0.6842037439346313, 'learning_rate': 0.00018714780935509982, 'epoch': 0.64}
{'loss': 0.7885, 'grad_norm': 0.8367183804512024, 'learning_rate': 0.00018562069544767344, 'epoch': 0.64}
{'loss': 0.7909, 'grad_norm': 0.8180488348007202, 'learning_rate': 0.00018409358154024708, 'epoch': 0.64}
{'loss': 0.7726, 'grad_norm': 0.9325332641601562, 'learning_rate': 0.00018256646763282073, 'epoch': 0.65}
{'loss': 0.7758, 'grad_norm': 0.8655913472175598, 'learning_rate': 0.00018103935372539438, 'epoch': 0.65}
{'loss': 0.7849, 'grad_norm': 0.8343310952186584, 'learning_rate': 0.00017951223981796803, 'epoch': 0.65}
{'loss': 0.7761, 'grad_norm': 0.6303175687789917, 'learning_rate': 0.00017798512591054167, 'epoch': 0.65}
{'loss': 0.7673, 'grad_norm': 0.8344900608062744, 'learning_rate': 0.00017645801200311532, 'epoch': 0.66}
{'loss': 0.7722, 'grad_norm': 0.6518169045448303, 'learning_rate': 0.00017493089809568897, 'epoch': 0.66}
{'loss': 0.7752, 'grad_norm': 0.6851385235786438, 'learning_rate': 0.00017340378418826262, 'epoch': 0.66}
{'loss': 0.756, 'grad_norm': 0.5652550458908081, 'learning_rate': 0.00017187667028083627, 'epoch': 0.67}
{'eval_loss': 0.7672787308692932, 'eval_runtime': 1952.6553, 'eval_samples_per_second': 61.462, 'eval_steps_per_second': 3.841, 'epoch': 0.67}
{'loss': 0.7427, 'grad_norm': 0.5997459292411804, 'learning_rate': 0.0001703495563734099, 'epoch': 0.67}
{'loss': 0.7832, 'grad_norm': 0.6718577146530151, 'learning_rate': 0.00016882244246598356, 'epoch': 0.67}
{'loss': 0.7626, 'grad_norm': 0.5617042183876038, 'learning_rate': 0.0001672953285585572, 'epoch': 0.68}
{'loss': 0.764, 'grad_norm': 0.7839145064353943, 'learning_rate': 0.00016576821465113086, 'epoch': 0.68}
{'loss': 0.7716, 'grad_norm': 0.8427501320838928, 'learning_rate': 0.00016424110074370445, 'epoch': 0.68}
{'loss': 0.758, 'grad_norm': 0.6203338503837585, 'learning_rate': 0.0001627139868362781, 'epoch': 0.68}
{'loss': 0.7547, 'grad_norm': 0.700105607509613, 'learning_rate': 0.00016118687292885175, 'epoch': 0.69}
{'loss': 0.778, 'grad_norm': 0.7021758556365967, 'learning_rate': 0.0001596597590214254, 'epoch': 0.69}
{'loss': 0.7647, 'grad_norm': 0.7061144113540649, 'learning_rate': 0.00015813264511399904, 'epoch': 0.69}
{'loss': 0.7481, 'grad_norm': 1.1931815147399902, 'learning_rate': 0.0001566055312065727, 'epoch': 0.7}
{'loss': 0.7653, 'grad_norm': 0.7578601241111755, 'learning_rate': 0.00015507841729914634, 'epoch': 0.7}
{'loss': 5.1409, 'grad_norm': 3.251786947250366, 'learning_rate': 0.00015355130339171998, 'epoch': 0.7}
{'loss': 7.6368, 'grad_norm': 0.9753440618515015, 'learning_rate': 0.00015202418948429363, 'epoch': 0.71}
{'loss': 0.7752, 'grad_norm': 0.5558459758758545, 'learning_rate': 0.00015049707557686728, 'epoch': 0.71}
{'loss': 0.7531, 'grad_norm': 0.6859638690948486, 'learning_rate': 0.00014896996166944093, 'epoch': 0.71}
{'loss': 0.754, 'grad_norm': 0.6924189925193787, 'learning_rate': 0.00014744284776201458, 'epoch': 0.71}
{'loss': 0.7591, 'grad_norm': 0.8159561157226562, 'learning_rate': 0.00014591573385458822, 'epoch': 0.72}
{'loss': 0.7627, 'grad_norm': 0.979657769203186, 'learning_rate': 0.00014438861994716187, 'epoch': 0.72}
{'loss': 0.746, 'grad_norm': 0.6127135157585144, 'learning_rate': 0.0001428615060397355, 'epoch': 0.72}
{'loss': 0.7249, 'grad_norm': 0.6039910316467285, 'learning_rate': 0.00014133439213230914, 'epoch': 0.73}
{'loss': 0.7364, 'grad_norm': 0.7422240972518921, 'learning_rate': 0.0001398072782248828, 'epoch': 0.73}
{'loss': 0.7676, 'grad_norm': 0.6304046511650085, 'learning_rate': 0.00013828016431745644, 'epoch': 0.73}
{'loss': 0.7368, 'grad_norm': 0.6475726962089539, 'learning_rate': 0.00013675305041003008, 'epoch': 0.73}
{'loss': 0.7543, 'grad_norm': 0.792453944683075, 'learning_rate': 0.00013522593650260373, 'epoch': 0.74}
{'loss': 0.7258, 'grad_norm': 0.8555119037628174, 'learning_rate': 0.00013369882259517738, 'epoch': 0.74}
{'eval_loss': 0.7402225136756897, 'eval_runtime': 1946.6041, 'eval_samples_per_second': 61.654, 'eval_steps_per_second': 3.853, 'epoch': 0.74}
{'loss': 0.7641, 'grad_norm': 0.6320087313652039, 'learning_rate': 0.00013217170868775103, 'epoch': 0.74}
{'loss': 0.7331, 'grad_norm': 0.7730384469032288, 'learning_rate': 0.00013064459478032467, 'epoch': 0.75}
{'loss': 0.7376, 'grad_norm': 1.0550119876861572, 'learning_rate': 0.00012911748087289832, 'epoch': 0.75}
{'loss': 0.7284, 'grad_norm': 0.6494659185409546, 'learning_rate': 0.00012759036696547197, 'epoch': 0.75}
{'loss': 0.7354, 'grad_norm': 0.7803389430046082, 'learning_rate': 0.00012606325305804562, 'epoch': 0.76}
{'loss': 0.7398, 'grad_norm': 0.5885416269302368, 'learning_rate': 0.00012453613915061924, 'epoch': 0.76}
{'loss': 0.7473, 'grad_norm': 0.9421162605285645, 'learning_rate': 0.00012300902524319289, 'epoch': 0.76}
{'loss': 0.7163, 'grad_norm': 0.6738815903663635, 'learning_rate': 0.00012148191133576653, 'epoch': 0.76}
{'loss': 0.7397, 'grad_norm': 0.8261429667472839, 'learning_rate': 0.00011995479742834018, 'epoch': 0.77}
{'loss': 0.7185, 'grad_norm': 0.8127503991127014, 'learning_rate': 0.00011842768352091383, 'epoch': 0.77}
{'loss': 0.7285, 'grad_norm': 0.8127832412719727, 'learning_rate': 0.00011690056961348746, 'epoch': 0.77}
{'loss': 0.7331, 'grad_norm': 0.8559761047363281, 'learning_rate': 0.00011537345570606111, 'epoch': 0.78}
{'loss': 0.7121, 'grad_norm': 0.6798668503761292, 'learning_rate': 0.00011384634179863476, 'epoch': 0.78}
{'loss': 0.7209, 'grad_norm': 0.815052330493927, 'learning_rate': 0.0001123192278912084, 'epoch': 0.78}
{'loss': 0.7315, 'grad_norm': 0.771504819393158, 'learning_rate': 0.00011079211398378205, 'epoch': 0.79}
{'loss': 0.7312, 'grad_norm': 0.8412771821022034, 'learning_rate': 0.0001092650000763557, 'epoch': 0.79}
{'loss': 0.7132, 'grad_norm': 0.6551869511604309, 'learning_rate': 0.00010773788616892934, 'epoch': 0.79}
{'loss': 0.7203, 'grad_norm': 0.6637396216392517, 'learning_rate': 0.00010621077226150298, 'epoch': 0.79}
{'loss': 0.7179, 'grad_norm': 0.7881588935852051, 'learning_rate': 0.00010468365835407663, 'epoch': 0.8}
{'loss': 0.7045, 'grad_norm': 0.8531120419502258, 'learning_rate': 0.00010315654444665028, 'epoch': 0.8}
{'loss': 0.7314, 'grad_norm': 0.571255087852478, 'learning_rate': 0.00010162943053922393, 'epoch': 0.8}
{'loss': 0.7284, 'grad_norm': 0.6197315454483032, 'learning_rate': 0.00010010231663179757, 'epoch': 0.81}
{'loss': 0.7138, 'grad_norm': 0.6433258056640625, 'learning_rate': 9.857520272437122e-05, 'epoch': 0.81}
{'loss': 0.7163, 'grad_norm': 0.5362669229507446, 'learning_rate': 9.704808881694486e-05, 'epoch': 0.81}
{'loss': 0.7263, 'grad_norm': 0.7415969967842102, 'learning_rate': 9.55209749095185e-05, 'epoch': 0.81}
{'eval_loss': 0.7167780995368958, 'eval_runtime': 1956.7835, 'eval_samples_per_second': 61.333, 'eval_steps_per_second': 3.833, 'epoch': 0.81}
{'loss': 0.7029, 'grad_norm': 0.9031645059585571, 'learning_rate': 9.399386100209215e-05, 'epoch': 0.82}
{'loss': 0.7373, 'grad_norm': 0.9972639679908752, 'learning_rate': 9.246674709466579e-05, 'epoch': 0.82}
{'loss': 0.7093, 'grad_norm': 0.6665236353874207, 'learning_rate': 9.093963318723943e-05, 'epoch': 0.82}
{'loss': 0.7135, 'grad_norm': 0.8924069404602051, 'learning_rate': 8.941251927981308e-05, 'epoch': 0.83}
{'loss': 0.7127, 'grad_norm': 0.753237783908844, 'learning_rate': 8.788540537238673e-05, 'epoch': 0.83}
{'loss': 0.7246, 'grad_norm': 0.6772266626358032, 'learning_rate': 8.635829146496036e-05, 'epoch': 0.83}
{'loss': 0.7136, 'grad_norm': 0.8927413821220398, 'learning_rate': 8.483117755753401e-05, 'epoch': 0.84}
{'loss': 0.7172, 'grad_norm': 0.5989747047424316, 'learning_rate': 8.330406365010766e-05, 'epoch': 0.84}
{'loss': 0.731, 'grad_norm': 0.5840961933135986, 'learning_rate': 8.177694974268131e-05, 'epoch': 0.84}
{'loss': 0.7237, 'grad_norm': 0.5218879580497742, 'learning_rate': 8.024983583525496e-05, 'epoch': 0.84}
{'loss': 0.6914, 'grad_norm': 0.7910071015357971, 'learning_rate': 7.87227219278286e-05, 'epoch': 0.85}
{'loss': 0.7141, 'grad_norm': 0.5908867120742798, 'learning_rate': 7.719560802040225e-05, 'epoch': 0.85}
{'loss': 0.698, 'grad_norm': 0.6137605905532837, 'learning_rate': 7.566849411297588e-05, 'epoch': 0.85}
{'loss': 0.7046, 'grad_norm': 0.7376453280448914, 'learning_rate': 7.414138020554953e-05, 'epoch': 0.86}
{'loss': 0.6982, 'grad_norm': 0.9694022536277771, 'learning_rate': 7.261426629812318e-05, 'epoch': 0.86}
{'loss': 0.6988, 'grad_norm': 0.6900585889816284, 'learning_rate': 7.108715239069683e-05, 'epoch': 0.86}
{'loss': 0.6981, 'grad_norm': 0.7514756321907043, 'learning_rate': 6.956003848327048e-05, 'epoch': 0.87}
{'loss': 0.6988, 'grad_norm': 0.7674206495285034, 'learning_rate': 6.803292457584412e-05, 'epoch': 0.87}
{'loss': 0.7021, 'grad_norm': 0.627799391746521, 'learning_rate': 6.650581066841777e-05, 'epoch': 0.87}
{'loss': 0.701, 'grad_norm': 0.7179816961288452, 'learning_rate': 6.497869676099139e-05, 'epoch': 0.87}
{'loss': 0.7073, 'grad_norm': 0.8053346276283264, 'learning_rate': 6.345158285356504e-05, 'epoch': 0.88}
{'loss': 0.6909, 'grad_norm': 0.539218008518219, 'learning_rate': 6.192446894613869e-05, 'epoch': 0.88}
{'loss': 0.6964, 'grad_norm': 0.8857277631759644, 'learning_rate': 6.039735503871234e-05, 'epoch': 0.88}
{'loss': 0.7191, 'grad_norm': 1.0188195705413818, 'learning_rate': 5.887024113128599e-05, 'epoch': 0.89}
{'loss': 0.6911, 'grad_norm': 0.6373711824417114, 'learning_rate': 5.7343127223859624e-05, 'epoch': 0.89}
{'eval_loss': 0.6963518261909485, 'eval_runtime': 1952.8331, 'eval_samples_per_second': 61.457, 'eval_steps_per_second': 3.841, 'epoch': 0.89}
{'loss': 0.6861, 'grad_norm': 0.7424456477165222, 'learning_rate': 5.581601331643327e-05, 'epoch': 0.89}
{'loss': 0.6804, 'grad_norm': 0.6351718306541443, 'learning_rate': 5.428889940900692e-05, 'epoch': 0.89}
{'loss': 0.7155, 'grad_norm': 0.6056322455406189, 'learning_rate': 5.276178550158056e-05, 'epoch': 0.9}
{'loss': 0.6922, 'grad_norm': 0.6847458481788635, 'learning_rate': 5.123467159415421e-05, 'epoch': 0.9}
{'loss': 0.6871, 'grad_norm': 0.6563594937324524, 'learning_rate': 4.9707557686727856e-05, 'epoch': 0.9}
{'loss': 0.6955, 'grad_norm': 0.6335992217063904, 'learning_rate': 4.81804437793015e-05, 'epoch': 0.91}
{'loss': 0.6852, 'grad_norm': 0.8066267371177673, 'learning_rate': 4.6653329871875145e-05, 'epoch': 0.91}
{'loss': 0.6893, 'grad_norm': 0.6567937135696411, 'learning_rate': 4.512621596444879e-05, 'epoch': 0.91}
{'loss': 0.6813, 'grad_norm': 0.6523751616477966, 'learning_rate': 4.3599102057022434e-05, 'epoch': 0.92}
{'loss': 0.6698, 'grad_norm': 0.5852751731872559, 'learning_rate': 4.2071988149596075e-05, 'epoch': 0.92}
{'loss': 0.6921, 'grad_norm': 0.75641268491745, 'learning_rate': 4.054487424216972e-05, 'epoch': 0.92}
{'loss': 0.6937, 'grad_norm': 0.8274210095405579, 'learning_rate': 3.901776033474337e-05, 'epoch': 0.92}
{'loss': 0.6878, 'grad_norm': 0.7789375185966492, 'learning_rate': 3.749064642731701e-05, 'epoch': 0.93}
{'loss': 0.685, 'grad_norm': 0.6653401851654053, 'learning_rate': 3.596353251989066e-05, 'epoch': 0.93}
{'loss': 0.6935, 'grad_norm': 0.6370682716369629, 'learning_rate': 3.443641861246431e-05, 'epoch': 0.93}
{'loss': 0.7101, 'grad_norm': 1.1224191188812256, 'learning_rate': 3.2909304705037954e-05, 'epoch': 0.94}
{'loss': 0.6938, 'grad_norm': 0.9496079683303833, 'learning_rate': 3.1382190797611595e-05, 'epoch': 0.94}
{'loss': 0.6796, 'grad_norm': 0.6836010813713074, 'learning_rate': 2.985507689018524e-05, 'epoch': 0.94}
{'loss': 0.6847, 'grad_norm': 0.7772054672241211, 'learning_rate': 2.8327962982758884e-05, 'epoch': 0.95}
'epoch': 0.98} 5, 'epoch': 0.97
{'loss': 0.6637, 'grad_norm': 0.7412653565406799, 'learning_rate': 6.948368278789915e-06 }, 'epoch': 0.99} , 'epoch': 0.98}
{'loss': 0.6982, 'grad_norm': 0.8023248910903931, 'learning_rate': 5.42125437136356e-06, } 'epoch': 0.99} 'epoch': 0.98}
{'loss': 0.6602, 'grad_norm': 0.7162567377090454, 'learning_rate': 3.894140463937205e-06'epoch': 0.98} }, 'epoch': 0.99} , 'epoch': 0.99}ps_per_second': 3.801, 'epoch': 0.96}
{'loss': 0.6793, 'grad_norm': 0.6918164491653442, 'learning_rate': 2.36702655651085e-06, } 'epoch': 1.0} 'epoch': 0.99}
{'loss': 0.6849, 'grad_norm': 0.9163804650306702, 'learning_rate': 8.399126490844952e-07, 'epoch': 0.99}, 'epoch': 1.0} }
100%|███████████████████████████████████████████████████████████████████████████████████ 'epoch': 1.0} ██████████████████████████████████████████████████████████████████| 67509/67509 [20:51:4, 'epoch': 1.0} 6<00:00, 1.27it/s]There were missing keys in the checkpoint model loaded: ['encoder.emb████████████████ed_tokens.weight', 'decoder.embed_tokens.weight', 'lm_head.weight']. /s]There were mi
{'train_runtime': 75130.7806, 'train_samples_per_second': 14.377, 'train_steps_per_second_tokens.weight'd': 0.899, 'train_loss': 1.147833806824346, 'epoch': 1.0}
100%|███████████████████████████████████████████████████████████████████████████████████d': 0.899, 'trai██████████████████████████████████████████████████████████████████| 67509/67509 [20:52:10<00:00, 1.11s/it] ██████████████████████████████████████████████████████████████████| 67509/67509 [20:51:46<00:00, 1.27it/s]There were missing keys in the checkpoint model l
100%|███████████████████████████████████████████████████████████████████████████████████it]███████████████████████████████████████████████████████████████████████| 9377/9377 [40:5████████████████n_loss': 1.147833806824346, 'epoch': 1.0}9<00:00, 3.81it/s] /s] ██████████████████████████████████████████████████| 67509/67509 [20:52:10<00:00, 1.11s/it]
Test metrics: {'test_loss': 0.6804903149604797, 'test_runtime': 2460.155, 'test_samples_per_second': 60.███████████████████████████████████████████████████████| 9377/9377 [40:59<00:00, 3.81it/s]per_second': 60.979, 'test_steps_per_second': 3.812, 'epoch': 1.0}'HRDI_AI > 머신러닝_딥러닝 핵심 기술과 실무 중심 생성형 AI 프로젝트' 카테고리의 다른 글
| Day1: 인공지능 프로그래밍 준비-1 (0) | 2025.12.04 |
|---|---|
| translate_article.py (0) | 2025.11.29 |
| AutoModelForSeq2SeqLM의 손실함수 (0) | 2025.11.27 |
| AutoModelForSeq2SeqLM (0) | 2025.11.27 |
| AdamW란 무엇인가, 왜 쓰는가, 수식/직관/실전 세팅까지 (0) | 2025.11.27 |