안녕하세요. 좋은 강의 감사합니다. 직접 타이핑 해보라는 의미에서 코드 공유가 어렵다고 하셨는데요. 아래 글들을 보니 많은 분들이 코드 공유를 요청하셨습니다. 시간 부족으로 눈으로만 학습하게 되는데, 직접 코랩에서 해볼 수 있도록 다시 한번 코드 공유 고려해 주시면 감사하겠습니다. 부탁드려요!
강사님 seq2seq 모델의 경우 학습할 때와 추론할 때 서로 다른 모델을 정의하여 사용하였습니다. 하지만 트랜스포머는 그렇지 않고 추론할 때도 같은 모델을 사용하고 있습니다. 두 개의 모델 모두 교사강요학습을 사용하고 있고 인코더/디코더 구조를 가지고 있는데 왜 두개가 이렇게 차이가 있는 것인지요?
모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
https://colab.research.google.com/drive/1Xzv-qhal48LknNYmTSI_-sEBmBWpioBl?usp=sharing 위의 코드 실행 중 오류가 발생하였습니다 trainer = Trainer( model=model, args=training_args, train_dataset=tokenized_datasets["train"], eval_dataset=tokenized_datasets["test"], tokenizer=tokenizer, data_collator=data_collator, compute_metrics=compute_metrics, ) trainer.train() 오류 발생 부분은 위의 파트이고 오류의 내용은 아래와 같습니다 혹시 수정된 코드를 받을 수 있을까요?
# 훈련 데이터셋에서 포르투갈어 및 영어 예제 출력 for pt_examples, en_examples in train_examples.batch(3).take(1): print('> 포르투갈어 예제:') for pt in pt_examples.numpy(): print(pt.decode('utf-8')) # 포르투갈어 문장 디코딩하여 출력 print() print('> 영어 예제:') for en in en_examples.numpy(): print(en.decode('utf-8')) # 영어 문장 디코딩하여 출력 =====> 위의 코드에 pt 와 en 이 어떻게 생성된 변수인지 잘 이해가 안 가서 여쭤봅니다.
/usr/local/lib/python3.10/dist-packages/sklearn/utils/validation.py in check_consistent_length(*arrays) 405 uniques = np.unique(lengths) 406 if len(uniques) > 1: --> 407 raise ValueError( 408 "Found input variables with inconsistent numbers of samples: %r" 409 % [int(l) for l in lengths] ValueError: Found input variables with inconsistent numbers of samples: [2286, 238] 수업 내용대로 했는데 이러한 에러가 나오네요.. 그대로 코드로 작성했는데요. 샘플 수가 안맞는건가요.
강사님, 본 강의 들으면서 정말 많은 도움을 받고 있습니다. normalization 에 대해서 이렇게 상세하게 설명해 준 온라인 강의는 본 적이 없네요 🙂 CNN 을 기반으로 하되 모델 파라메터도 엄청 크고, 데이터셋 크기도 매우 큰 경우, 예를 들어 3D Unet 을 구성해서 3차원의 고해상도 (256 x 256 x 256) 이미지를 input 과 output 으로 사용하다보니 GPU 메모리를 너무 많이 잡아먹어서 batch 에 복수의 샘플을 적용하지 못하고 하나의 batch 에 단일 샘플만 적용하는 경우를 study 하고 있는데요, BatchNormalization 을 적용했을 경우 오히려 학습이 잘 안 되는 것 같아서 Normalization layer 를 야예 제거한 후 모델 학습 진행 중이었습니다. 경험적으로 했던 것이었지만 본 강의를 보다 보니 그 이유가 조금 이해가 되기도 하는데요, 이와 같이 batch size 가 극단적으로 작은 경우에 Normalization layer 을 적용 안하는게 더 좋을 수 있나요? 혹은 설명해 주신 table 에 나와 있는 것 처럼 Group Normalization layer 나 Instance Normalization을 적용하는 것이 개념적으로 더 나은 방법일까요? (설명을 들었을 때는 Group Normalization 을 적용하는 것이 필요한 상황으로 이해가 되기도 하는데.. 제가 이해한 것이 맞는지 확인 부탁드립니다 ^^;) 그리고 Group Normalization 에서 "Group" 의 의미가 무엇인지 잘 와닿지가 않아서 (Batch 나 Width, Height, Sample Number 이외에 그룹이 될 수 있는 경우가 무엇인지가 잘 이해가 되지 않습니다.) ... 요 부분에 대해서 좀 더 설명해 주시면 감사드리겠습니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 강의 내용을 질문할 경우 몇분 몇초의 내용에 대한 것인지 반드시 기재 부탁드립니다. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 로드맵 따라가며 강의 정말 잘 듣고있습니다 ! 항상 친절한 답변도 감사드립니다. 다름이 아니라 Yolo 3를 구현하면서 궁금증이 생겼습니다. 1. output을 담당하는 layer가 3개이므로(13X13/26X26/52X52) 3개의 layer에서 forward를 이용하여 결과를 추출한다고 이해했는데 이게 맞나요? 3개에서 뽑은 output(confidence_threshold보다 큰) 을 종합한 후 NMS process를 거쳐서 최종적으로 조건에 맞는 index를 반환받아 그 index를 이용해 image에 구현한다고 이해했는데 이것도 맞을까요? 만약 위에서 제가 이해한게 어느정도 맞다면 마지막으로 드는 궁금증은 13X13, 26X26, 52X52에서 각 Grid Cell이 image의 object를 예측할텐데, 이는 비유하자면 Random Forest에서 각각 학습한 model이 다수결(?)로 infernece한다고 이해해도 될까요? 즉, 세개의 Multi Scale에서 학습한 각각의 gride cell의 anchor box들이 자신의 의견을 내놓아 그중 confidence, nms의 조건을 이용해 최종적으로 조건에 부합하는 몇 개의 bbox만 남는걸로 이해해도 되는지 여쭤보고 싶습니다..!
강의 14분쯤에서 모델을 변경하는 부분입니다. 케라스가 업데이트 된 건지는 잘 모르겠지만 아래 부분에서 시퀀셜 모델이 레이어를 단일 값으로 받을 수 없어 에러가 납니다. encoder = Sequential(Dense(2, input_shape=(3, ))) decoder = Sequential(Dense(3, input_shape=(2, ))) autoencoder = Sequential([encoder, decoder]) autoencoder.summary() 아래 처럼 괄호로 감싸 리스트로 넘기면 해결됩니다. encoder = Sequential([Dense(2, input_shape=(3, ))]) decoder = Sequential([Dense(3, input_shape=(2, ))]) autoencoder = Sequential([encoder, decoder]) autoencoder.summary()
https://github.com/WongKinYiu/yolov9/tree/main 욜로에서 models.yolo.py나 models.detect.custon.yaml을 제작해 pth로 저장하고자합니다.. 기존 욜로백본 yolov9.yaml을 수정해도 상관없고, 새로 얌파일을 추가해도 상관은 없는데, 전혀 갈피가 안잡혀서 도움 요청드립니다. 사실 백본을 바꾸기보단 파이토치로 새로 짜보려했는데, 제가 그냥 학습에서 엔지니어링으로 옵션 건드는건 했어도, 아예 레이어 설계하거나 저장하도록 만들어본 적이 없어서 계속 헷갈리네요.. 지금은 프로젝트 코드 다 엎어버렸습니다.
모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
autotrain 최신버전에서는 --merge-adapter 옵션을 추가하여도 학습이 중단되거나 이미 학습된 모델이 재학습 또는 추가학습이 안되나요? --merge-adapter 옵션을 추가한 후 학습을 진행하고 나서 다시 재학습을 시키기 위해 다음과 같이 model에 학습 된 모델의 파일 경로를 입력하였지만 재학습이 진행이 안되는거 같습니다..! !autotrain llm --train \ --project_name "llama2-korquad-finetuning-2" \ --model "./학습 된 모델 파일 경로" \ --data_path "korquad_prompt" \ --text_column "text" \ --use_peft \ --use_int4 \ --learning_rate 2e-4 \ --train_batch_size 4 \ --num_train_epochs 100 \ --trainer sft \ --model_max_length 256 혹시 autotrain 최신버전에서는 재학습 시키는 방법이 변경되었을까요?
안녕하세요 강사님.. 제가 일주일이 넘는 기간 동안 계속 이것저것 시도를 해봤음에도 왜 분류 성능이 10%인지를 모르겠어서 실례를 무릅쓰고 질문을 올리게 되었습니다.. cifar10 이미지가 32 크기여서 128 정도로만 rescale을 했고, normalize도 진행했음에도 계속 성능이 10%대이고, loss는 줄어들었다가 갑자기 튀기도 하면서.. 제대로 학습이 되고 있지 않은 것 같습니다ㅠㅠ 바쁘시겠지만 문제의 원인이 무엇인지 여쭤보고 싶습니다ㅠㅠ 감사합니다.. https://drive.google.com/file/d/1FEsv1dex9y9I4AFqX42gBIhVeeOcgQXQ/view?usp=sharing
교사학습용 데이터와 target 데이터 모두 post 패딩을 하였는데 교사학습용 데이터는 <sos> 가 중요하고 target 데이터는 <eos> 가 중요하기 때문에 교사학습용은 post, target 데이터는 pre 를 해야 하는거 아닌지요? 만약 post 패딩을 하게 되면 길이가 초과하는 교사학습용 데이터는 <sos>가 잘려지지 않을까 생각합니다. 강사님 부탁드리겠습니다.