묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨딥러닝 이론 + PyTorch 실무 완전 정복
section4의 entropy 시그마 식 전개에 대한 질문입니다.
안녕하세요, 좋은 강의 잘 듣고 있습니다. 다름이 아니라 entropy를 안내해주실때 entropy의 식이-Σp_i*log(p_i)위 식이고, p와 1-p에 대한 의미도 잘 이해했습니다. 그런데 대입하는 과정에서 갑자기-plogp-(1-p)log(1-p)가 된 것이 이해가 안되네요... 그래프로 그려주시면서 설명해주신 것도 잘 이해가 되는데, 어떤 과정으로 위 식이 나왔는지 이해가 안되서 질문드려요.제가 단순 시그마 푸는 법을 잊어서 생긴 것이라면 다시 찾아보겠습니다. 두 값을 대입한다는 말이 어떤 것을 의미하는지 잘 이해가 안되서 질문드립니다. 감사합니다.
-
미해결모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
llama 3 파인튜닝 관련 문의 사항
안녕하세요강의 내용을 기반으로 실습을 잘 진행 해보고 있습니다.허깅페이스에서 하나의 모델을 다운받아 테스트를 해보려고 하는데, 모델명.gguf 파일로 되어있는 모델은 autotrain으로 파인튜닝이 잘 진행되지 않아 문의 드립니다. !autotrain llm --train \ --project-name "llama3-finetuning-da-8B-Q4" \ --model "path/llama-3-8B-gguf-Q4_K_M/llama-3-8B-Q4_K_M.gguf" \ --data-path "/path/train_data/korquad" \ --text-column "text" \ --peft \ --quantization "int4" \ --lr 2e-4 \ --batch-size 8 \ --epochs 40 \ --trainer sft \ --model_max_length 2048 답변 부탁드리겠습니다. 감사합니다.
-
해결됨[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
7강 폴더 만들
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 폴더 만드는 부분에서 directory_create('x/x')를 하게 되면 x에 어떤 이름을 넣어도 다 이미 만들어졌다고만 뜨고 실제 드라이브 들어가면 아무것도 폴더가 생성이 안되었는데, 왜 그런건지 잘 모르겠어요. 그리고 현재 디렉토리 위치 설정하는 것도 이런 오류가 발생하는데, 구글 드라이브 마운트 할 때는 잘 됐었는데 이런 오류가 발생하네요..! cd/~ 의 코드를 실행하면 현재 디렉토리를 cd/~에서 ~에 해당하는 디렉토리로 이동해주는게 아닌가요? 아래 사진은 현재 드라이브 디렉토리 경로입니다!
-
미해결처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part4]
test data 의 loss 계산식 문의
10_ADVANCE-EXAMPLE-MILTI-LABEL-CLASSIFICATION 과 11_MILTI-LABEL-CLASSIFICATION-DROPOUT-BATCHNORMALIZATION 강의자료에서 맨 밑부분의 테스트셋 기반 Evaluation 에서 test_loss 를 계산할 때 전체 데이터인 10000으로 나누셨는데, 왜 그러신건지 궁금해서 질문드립니다.train 과 validation 의 loss 계산은 train_batches 와 val_batches 개수(for문 도는 횟수) 만큼만 나누셨는데 test loss 를 계산할 때는 minibatch 가 아닌 전체 데이터로 나누셔서 상대적으로 test data 의 loss 값이 작아보여서요.test_loss = 0correct = 0wrong_samples, wrong_preds, actual_preds = list(), list(), list()model.eval()with torch.no_grad(): for x_minibatch, y_minibatch in test_batches: y_test_pred = model(x_minibatch.view(x_minibatch.size(0), -1)) test_loss += loss_func(y_test_pred, y_minibatch) pred = torch.argmax(y_test_pred, dim=1) correct += pred.eq(y_minibatch).sum().item() wrong_idx = pred.ne(y_minibatch).nonzero()[:, 0].numpy().tolist() for index in wrong_idx: wrong_samples.append(x_minibatch[index]) wrong_preds.append(pred[index]) actual_preds.append(y_minibatch[index]) test_loss /= len(test_batches.dataset)
-
해결됨딥러닝 이론 + PyTorch 실무 완전 정복
Section14 관련 질문요청드립니다.
83쪽에 '예를 들어 (3*3) Conv.Kernel 2개를 쌓은 경우 Receptive Field는 (7*7)이 된다!'라고 하셨는데 Kernel이 쌓이는게 아니라 Layer 아닌가요?? 혹시 제가 잘못 이해하고 있었다면 지금까지 각 Layer마다 하나의 kernel만 훑고 지나가는 줄 알고 있어서 Kernel이 쌓인다 라는 개념을 잘 모르겠습니다.기존 ANN에서 Bias를 더하는 개념과 ResNet에서Residual Connection을 더하는 개념의 차이를 잘 모르겠습니다. 둘다 비슷하게 느껴집니다 ㅠㅠ.
-
미해결처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part4]
차원 출력 관련 문의
주피터 노트북 "06_1_DNN_PYTORCH" 자료에서 등록된 parameter 의 차원을 출력해보면 최초 출력되는 파라미터가 최초 등록한 nn.Linear(input_dim, 10) // (4, 10) 이면 (4, 10) 이 출력되어야 할 것 같은데 왜 (10, 4) 가 출력될까요? x = torch.ones(4) # input tensory = torch.zeros(3) # expected outputinput_dim = x.size(0)output_dim = y.size(0)model = nn.Sequential ( nn.Linear(input_dim, 10), nn.LeakyReLU(0.1), nn.Linear(10, 10), nn.LeakyReLU(0.1), nn.Linear(10, 10), nn.LeakyReLU(0.1), nn.Linear(10, output_dim) ) loss_function = nn.MSELoss()learning_rate = 0.01nb_epochs = 1000 optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate)for epoch in range(nb_epochs + 1): y_pred = model(x) loss = loss_function(y_pred, y) optimizer.zero_grad() loss.backward() optimizer.step() print(loss)for param in model.parameters(): print (param) print(param.shape)
-
미해결모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
checkpoint 파일이 안생겨요
제가 강의에 LLaMA 파인튜닝 코드를 변형해서 한 => 영 번역기를 만들고 있는데요. 몇일 전까지만 해도 zip파일을 해제하면 checkpoint-875 이런식으로 체크포인트가 저장된 파일이 생겼는데 갑자기 안생기네요.. 이유가 뭘까요 선생님!autotrain llm --train \ --project-name "conversational-finetuning" \ --model "TinyPixel/Llama-2-7B-bf16-sharded" \ --data-path "conversational-prompt" \ --text-column "text" \ --peft \ --quantization "int4" \ --lr 3e-4 \ --batch-size 8 \ --epochs 5 \ --trainer sft \ --model_max_length 80 import zipfile import shutil from google.colab import files folder_name = "conversational-finetuning" zip_file_name = "conversational-finetuning1.zip" shutil.make_archive(zip_file_name[:-4], "zip", folder_name) files.download(zip_file_name) extract_folder_name = '.' # 현재 디렉토리 with zipfile.ZipFile(zip_file_name, 'r') as zip_ref : zip_ref.extractall(extract_folder_name)
-
미해결모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
고스트 어텐션
고스트 어텐션한국어로 말해라, 아인슈타인처럼 말해라 와 같이 모델이 일관성을 유지해야 하는 말에 대해 자꾸 몇번 더 대화를 나누면 일관성을 잃어버려서 고스트 어텐션을 적용했다고스트 어텐션은인물: 아인슈타인언어: 한국어와같이 저장하는데 이걸 이용하는 방법은 잘 모르겠다 어디서 이용되는건지 모르겠습니다.제가 생각했을때 이용될 수 있는 방법은 이런 파라미터를 이후에 오는 모든 파라미터앞에 붙인것 처럼 입력된다--> 이건 위에서 대조한 예시로 나온것 같은데 이러면 둘이 충돌이 일어날 상황이 생겨서 안한다고 한것 같고인물, 언어 와 같은 카테고리를 적용한 것을 미리 파인튜닝 해둔 후 위의 프롬프트가 나오면 그 파인튜닝 된 것을 불러온다? --> 이건 너무 경우도 많고 복잡할 것 같습니다. 선생님이 간단하다고 해서 이것도 아닌것 같습니다. 고스트 어텐션이 실제로 gpts를 이용할때 프롬프트로 저장, 고정이 되어있는 부분을 말하는것 같은데 이걸 어떻게 이용하는지 궁금합니다
-
미해결모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
코렙 강의 자료 위치
코렙 강의 파일을 찾을 수 없다는데 어떻게 해야되나요? 죄송합니다. 요청한 파일이 없습니다.올바른 URL을 사용하고 있는지와 파일이 존재하는지 확인하세요. 이렇게 떠요!
-
해결됨최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
positional embedding 학습이 잘 안되는 문제
cifar10 말고 다른 이미지셋을 가지고 학습을 시켜보았는데, 시각화를 해 보니 수업에서 보여주셨던 것과는 다르게 positional embedding 학습이 잘 안되었습니다. 어디를 봐야할지 조언을 부탁드려도 될까요?
-
미해결모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
KorQuad 데이터셋에서 context
안녕하세요 강사님KorQuad 데이터셋을 Llama2 모델에 활용하기 위해서 context는 제거를 하시고 단순하게 Q와 A로 구성된 데이터셋을 구성하였는데 context를 유지해서 학습하는 방법은 없어서 적용하는 건가요? 아니면 LLM의 학습에는 적합하지 않아서 사용하지 않는건가요?GPT등의 모델을 파인튜닝 한다고 했을때도 context는 제거하는게 맞는 건가요??
-
미해결모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
안녕하세요 P-tuning 관련 질문있습니다.
좋은강의 감사드리며 P-tuning 관련해서 질문이 있습니다.먼저 해당 기법이 적용된 모델로 추론시에 질문이 모델에 들어가면 모델에서 질문을 임의로 변경하여 추론한다고 생각하면 되겠죠??그리고 프롬프트 인코더(LSTM)의 어떤값을 임베딩 벡터로 사용하는 건가요?? 그림을 봤을땐 LSTM의 입력과 출력값은 독립적이고 히든레이어의 출력값이 임베딩 벡터로 사용되는 것으로 보이는데 맞나요?
-
미해결모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
GPT3의 퓨샷러닝과 파인튜닝에 대해 질문있습니다.
안녕하세요 강사님, 좋은 강의 감사드리며 두가지 질문이 있습니다.일반적으로 GPT 3.5를 그냥 사용한다고 할때, 퓨샷러닝이 학습때 사용되는 기법이 아니라고 이해하였는데 그러면 제가 GPT에게 "영어로 번역해줘"라고 타이핑하면 제 눈에는 안보이지만 GPT 자체적으로 예시를 몇가지 만들고 해당 내용을 바탕으로 추론 결과를 출력한다고 이해하는게 맞을까요?GPT3 학습시 사용되지 않은 데이터에 대해서(특정 산업군 지식이라던지) 적절한 정보를 출력하는 LLM을 만들고자 한다면 파인튜닝이 필수적이라고 생각하였는데 맞나요??
-
미해결모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
GPT1과 GPT2 학습 차이
안녕하세요 강사님 좋은 강의 감사드립니다.GPT2파트쪽 강좌를 들으면서 GPT1에서 설명하신 모델이 헷갈려서 문의드립니다.GPT1의 경우 마지막 출력으로 다음 토큰에 대한 소프트맥스 값과 TASK에 대한 소프트맥스 값이 출력되고 각 레이블 값에 의해 학습되는 것이라 이해하였는데 해당 모델 구조가 그림상으론 같이 표현되어 있는데 처음에 비지도학습시엔 토큰에 대한 예측값만으로 학습하고 파인튜닝시엔 두가지 출력을 모두 활용하여 학습한다고 이해하는 것이 맞나요?? 또한, GPT2에선 테스크에 대한 소프트맥스값으로 학습한다는 개념이 빠지고 오로지 다음 토큰에 대해서만 학습한다는 개념이 맞을까요?
-
해결됨딥러닝 이론 + PyTorch 실무 완전 정복
2-8 fully connected NN answer 코드 중 torch.nn.Linear 질문드립니다!
안녕하세요. 강의 잘 듣고있습니다 :D아래 코드에서 torch.nn.Linear에 해당하는 부분이 강의서 말씀해주신 aggregation에 해당되는 부분일까요? 편의상 bias 벡터는 생략된걸까요..? class Model(torch.nn.Module) : def __init__(self) : super(Model, self).__init__() self.layers = torch.nn.Sequential( # 첫번째 레이어 torch.nn.Linear(in_features = 128, out_features = 64, bias = True), # 첫번째 레이어의 activation 함수 torch.nn.Tanh(), # 두번째 레이어 torch.nn.Linear(in_features = 64, out_features = 16, bias = True), # 두번째 레이어의 activation 함수 torch.nn.Tanh(), # 세번째 레이어 torch.nn.Linear(in_features = 16, out_features = 1, bias = True), # 세번째 레이어의 activation 함수 torch.nn.Sigmoid() ) def forward (self, x) : return self.layers(x)
-
해결됨딥러닝 이론 + PyTorch 실무 완전 정복
ToTensor와 DataLoader관련질문드립니다!
안녕하세요! 이론적 이해가 아직까지는 잘되나 코드에서 잘 이해가 가지않는 부분이 있어 질문드립니다~ToTensor에서 왜 0~255를 0~1값으로 스케일링 하는 이유는 무엇인가요?DataLoader 에서 데이터를 미니배치로 넘기면 가로,세로 길이가 32로 바뀌는 이유는 무엇인가요? squeeze 함수를 찾아보니 길이가 1인 차원이 없는 행 백터, 열백터, 스칼라 배열을 삭제한다고 하는데, 아래에서 사용되는 이유는 무엇인가요?train_features, train_labels = next(iter(train_dataloader)) # train_features.size()는 64개로 세분화된 미니배치 크기, 채널, 가로, 세로 길이를 보여준다. print("Feature batch shape : {}".format(train_features.size())) # train_labels.size()도 미니배치 크기만큼 있는 것을 확인할 수 있다. print("Labels batch shape : {}".format(train_labels.size())) img = train_features[0].squeeze() # squeeze() 길이가 1인 차원이 없는 행 백터, 열백터, 스칼라 배열을 삭제한다. label = train_labels[0] plt.imshow(img.permute(1,2,0)) plt.show print("Label : {}".format(labels_map[label.item()]))
-
미해결모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
Fine-tuning 모델 성능 지표
llama2 를 fine-tuning 했을때, 다른 모델들 처럼 f1 스코어나 혹은 다른 성능 지표를 이용해 성능을 정량화 할 수 있나요?어떤 방법이 있고 어떻게해야 fine-tuning 한 모델의 성능을 정량적으로 지표화 할 수 있을까요?
-
미해결처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part4]
섹션 7-4 당뇨병
당뇨병 문제에서 직접 이상치 제거하는 게 손실 함수 줄이는데 도움이 될거라고 생각했는데 오히려 너무 커져버려서 왜 그런 건지 궁금합니다. 또 직접 제거하는 방식 말고 다르게 이상치 탐지하는 게 딥러닝에는 따로 있나요?
-
해결됨딥러닝 이론 + PyTorch 실무 완전 정복
13 표준화에 관한 질문
1.위의 그림에서 weight가 정규분포(Gaussian distribution)를 따르기 때문에 각 layer의 input의 분포도 정규분포를 따른다고 말씀해주셨는데 그 이유가 궁금합니다..2.표준화(Z~N(0,1))를 위해서는 확률분포가 정규분포여야 한다고 알고 있습니다..그래서 batch normalization의 위의 식에서 x가 정규분포를 가져야 한다고 생각했는데 학습 데이터셋은 직접 정규분포를 가지게 넣는다고 가정하더라도 그 다음에 있는 convolutional layer의 weight가 gradient descent에 의해 업데이트 되어 더이상 정규분포를 따르지 않으면 출력값이 정규분포를 따르지 않을수도 있지 않을까요...?
-
해결됨딥러닝 이론 + PyTorch 실무 완전 정복
Jupyter Notebook환경 관련 질문
9강 [실습] PyTorch 기초 - Tensor 강의에서 질문 있습니다.Lesson/inflearn_practicals 폴더에 아무 파일도 들어있지 않은데, 폴더가 원래 구성이 되어 있는 것이 아니고 파일을 직접 다운로드해서 폴더를 알아서 구성하는건가요?Jupyter notebook 상에서 강사님처럼 section이 모두 뜨지 않아 질문 드립니다.