묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨강화학습 입문에서 Deep Q-learning/Policy Gradient까지
정책 반복 알고리즘 구현 에서 정책 업데이트 메모리 문제
선생님 #3. 정책 개선 #policy_stable <- true policy_stable = True old_pi = pi #각 s에 대해: for s in range(num_states): # pi_s <- argmax_a(sum(p(s',r|s,a)*[r + gamma*V(s')])) new_action_values = np.zeros(num_actions) for a in range(num_actions): for prob, s_, r, _ in transitions[s][a]: new_action_values[a] += prob * (r + GAMMA * V[s_]) new_action = np.argmax(new_action_values) pi[s] = np.eye(num_actions)[new_action] if old_pi.all() != pi.all(): policy_stable = False여기 최적 정책을 업데이트 하는 과정을 디버깅 하는 과정에서 old.pi = pi 에서 메모리를 공유 해서 pi[s]를 업데이트를 같이 해서 무조건 아래서 if old_pi.all() != pi.all():구문은 True가 나오게 되어 있는데 의도한 바는 old_pi = copy.deepcopy(pi) 로 코드를 바꾸는게 맞나요?
-
해결됨강화학습 입문에서 Deep Q-learning/Policy Gradient까지
반복 정책 평가 실습 알고리즘에서 이론과 코드가 헷갈려서요.
이렇게 기존의 V 테이블을 가지고 새로운 V` 을 구하는데 while True: #delta <- 0 delta = 0 #각 s에 대해 반복: for s in range(num_states): #v <- V(s) old_value = V[s] new_value = 0 #업데이트 규칙 : V(s) = sum(pi(a|s)*sum(p(s,a)*[r + gamma*v(s')])) for a, prob_action in enumerate(policy[s]): # s', r에 대해 합산 for prob, s_, reward, _ in transitions[s][a]: new_value += prob_action * prob * (reward + GAMMA * V[s_]) V[s] = new_value #delta <- max(delta|v - V(s)|) delta = max(delta, np.abs(old_value - V[s]))V[s] = new_value여기 실습 코드에서는 바로 V[s]을 업데이트 합니다.예를 들면9번 타일 상태 값에서 오른쪽 action을 해서 10번의 다음 상태 값을 가지고 계산 합니다.그리고 9번이 상태 값이 업데이트 됩니다.그리고 나서 10번에서 왼쪽의 action의 상태 값을 구할때 이미 업데이트된 9번의 상태 값을 가지고 상태를 업데이트 합니다. 기존 ppt 에서 설명은 기존의 V를 가지고 있다가 기존의 V를 업데이트 하지 않은 채로새로운 V` 테이블을 계산 하고 V 을 V` 로 교체 하는것으로 표현 되고 있습니다. https://cs.stanford.edu/people/karpathy/reinforcejs/gridworld_dp.html 해당 사이트의 코드는ppt 에서 배운 대로 V를 V` 로 교체 하는것으로 되어 있습니다. 실습 처럼 바로 값을 업데이트 하는게 맞는건지 ppt 처럼 스왑 하는게 맞는건지어느것이 맞는건지 잘모르겠습니다.
-
해결됨[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
사전 학습 모델에서의 layer 변경에 대한 질문
안녕하세요 강사님, 강의 잘 보고 있습니다.다름이 아니라, pretrained model에서 강의에서와 같이(1) model의 feature extraction 부분에서 Conv2d의 kernel_size를 줄이고 (2) model의 fully connected layer에서 출력 크기를 10으로 줄인 부분에서 의문이 있어서 글을 남기게 되었습니다.(2)의 경우는 사실 fully connected layer가 복잡한 구조..?를 가지지는 않는다고 생각하여 다시 학습하는 데 별로 문제가 없다고 생각합니다.하지만, (1)의 경우, 모델의 초반에서 아예 kernel size를 변경했고, 모델 프리징 강의에서 언급하신 바와 같이 그렇게 바꾸게 되면 임의의 랜덤 값으로 가중치가 초기화된다고 말씀하셨는데..! 그렇다면 Imagenet 모델로 사전 학습한 것이 의미가 있는건지 살짝 의문이 듭니다ㅠㅠ사전 학습 모델의 목적이 그대로 웨이트를 사용한다는 것보다 모델의 구조를 가져온다는 것이라면 납득이 되지만, 사전 학습에서의 가중치가 transfer learning 될 때 어떻게 사용되고 변하는지를 잘 몰라서 이런 궁금증이 생긴 것 같습니다..항상 좋은 강의 감사합니다!!
-
해결됨딥러닝 차세대 혁신기술 - 물리 정보 신경망 입문과 Pytorch 실습
안녕하세요? PINNs 입문공학자 입니다.
안녕하세요? 저는 열수력해석 알고리즘을 개발 중인 Thermal Engineer 입니다. 다중배관에 대한 수력학적 해석 알고리즘을 다루는데, 현재는 배관 내부의 유동해석을 regression 기법을 활용한 근사해를 구하는 방법을 활용중입니다.현재 알고리즘은 1 phase 해석은 어느 정도 수행하지만, 2 phase(non-slip condition) 해석에서 많은 난제가 있었습니다.(음함수 발생 등) 그래서 해당 문제를 머신러닝 기법을 활요하면 좋지 않을까 해서 PINNs에 관심을 갖게 되었습니다. 서론이 길었네요.. 나비에 스톡스 equation에 대한 예제를 pytorch로 구현해서 해를 구하는 방법은 해보신적 있으신지 궁금합니다. 제가 풀려는 문제의 핵심 방정식은 나비에 스톡스 equation에 종속되어 있거든요! 잘아시겠지만, PINNs이 정착해서 가장 각광받을 분야는 열/유체 분야가 될 것 같은데, 이에 대해서는 어떻게 생각하시는 지 궁금합니다^^ 감사합니다. 다른 강의들도 쭉 ~ 따라가며 강사님처럼 해당 분야 speciality를 갖고 싶네요 ^^
-
해결됨딥러닝 이론 + PyTorch 실무 완전 정복
Auto Differentiation에서 computational Graph 질문있습니다
안녕하세요, 좋은 강의 준비해주셔서 감사드립니다.딥러닝에 대한 흥미가 점점 더 깊어지는 중입니다!한가지 간략히 질문드리고 싶습니다.노드의 정의 문제와 관련된거 같은데요.. computation graph에서의 노드는 x, w, h, y, L 전부를 의미하는 반면, Neural network에서의 노드는 x, h, y, L이라고 이해하면 될까요?미리 감사드립니다.
-
해결됨딥러닝 이론 + PyTorch 실무 완전 정복
Section 3 이론 classification Loss function 질문
안녕하세요.Section 3 이론 classification Loss function 질문있습니다.ground truth는 각 class별 실제 확률값이라고 하셨는데, 실제 데이터에서 우리가 주어진 정보는 해당 observation이 어떤 클라스를 가지는지 label정보만 주어집니다. (확률이 아님)각 loss function별 비교를 위해 설명해주신부분은 이해가 되었으나, 실제로 모델이 학습할때 class별 ground truth 확률값을 모르는 상황에서 어떻게 학습이 되는지 궁금합니다.혹시라도 강의 후반에 관련 내용이 나온다면 미리 죄송하다는 말씀 드립니다.감사합니다.
-
해결됨딥러닝 차세대 혁신기술 - 물리 정보 신경망 입문과 Pytorch 실습
2. 미분방정식에서 n이 뭐죠 ?
t - 시간x - x축상의 위치n ?
-
해결됨딥러닝 이론 + 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 핵심 트랜스포머까지) [데이터분석/과학 Part3]
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 핵심 트랜스포머까지) [데이터분석/과학 Part3]
차원 출력 관련 문의
주피터 노트북 "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을 만들고자 한다면 파인튜닝이 필수적이라고 생각하였는데 맞나요??