모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
지금 fine tuning 단계에서 어떤 데이터셋을 기존의 Llama에 학습을 추가로 시켜서 정보를 더 추가하는 방법 부분을 학습하고 있습니다. 혹시 이 반대와 같은 경우가 가능할까요? 예를들어서 Llama모델에서 한국어로 이루어진 모든 데이터를 전부 제거한다. 이런식의 define tuning이 되는 방법이 있는지 궁금합니다.
안녕하세요. 항상 친절하고 자세하게 강의해주셔서 재미있게 배우고 있습니다. 다름이 아니라, 본 강의에서 설명해주신 Negative Entropy의 의미에 대해 제가 확실하게 이해한 것이 맞는지 질문하려고 글을 남깁니다. [질문 1] 먼저, 아래에 제가 이해한 내용이 맞을까요? KL Div. Loss에서 negative entropy는 오직 Y_i,c에 대한 항으로만 이루어져 있고 Y_hat과는 전혀 상관이 없으므로 모델의 성능과는 관계 없는 항입니다. 따라서, 학습 데이터셋의 확률 분포 측면에서 생각했을 때, negative entropy가 높을 수록 학습 난이도가 낮은 데이터셋(예: 강아지 vs. 선인장 분류 데이터)이라 생각할 수 있고, 학습 난이도가 쉬우면 쉬울 수록 이 negative entropy 항의 값은 증가합니다. [질문 2] 그렇다면, negative entropy 값이 높을 때(=학습 데이터셋 난이도가 낮을 때) KL Div에서 전체적인 loss 값도 커지게 되는데요. Loss 값이 커지면 결과적으로 모델이 학습할 때 더 큰 폭으로 gradient descent를 수행하게 되어서 좋은 것인가요? KL Div에서 negative entropy를 더해주는 것이 모델 학습과 정확히 어떤 관련이 있는지 잘 이해가 가지 않습니다. 감사합니다!
안녕하세요. 선생님의 강의로 머신러닝 및 딥러닝에 관심을 갖게 되었습니다. 다름이 아니고, CIFAR100 dataset에 대해서 VGGNet이라는 모델을 이용해 훈련을 시켜보고 있는데, 제가 궁금한 것은 Softmax의 Input의 정밀도를 어디까지 유지하면 모델이 잘 학습될 수 있을까?입니다. 아래의 코드는 training부분입니다. 첫 번째 사진처럼 모델을 훈련시키는데, model(images)를 통해 나온 실제 output을 이용하면 모델이 잘 학습이 되는데 (마지막 epoch의 validation accuracy 55, Top-5 Test Accuracy 80%정도), 이 output을 rounding을 하면 소숫점 아래 20째자리까지 반올림을 해서 높은 정밀도를 유지해도 모델 학습이 아예 되지 않는 (모든 epoch가 끝나도 Validation Accuracy가 1%남짓) 문제가 발생합니다. 이러한 문제가 왜 발생하는지, 어떻게 하면 해결할 수 있을지 또 제가 궁금한 Softmax layer에서 요구하는 최소 Input 정밀도에 대해 다른 방법으로 측정할 수 있을지 궁금합니다 ㅠㅠ 감사합니다
안녕하세요 선생님 강의 잘 보고 있습니다 구글넷의 인셉션 모듈 설명 중에 MAX pooling이 포함되어 있는데요 보통 max pooling은 인풋의 사이즈를 줄이는 것으로 알고 있는데 그러면 다른 컨볼루션이 통과된 아웃풋과 사이즈가 달라져서 concat이 안되는 거 아닌가요? 아니면 여기에 포함된 컨볼루션들은 max pooling과 같은 stride를 같는 걸까요?
안녕하세요 선생님 강의 정말 잘 보고 있고요 제 많은 질문들에도 너무 성심성의껏 답변 달아주셔서 감사합니다 ㅎㅎ BatchNorm이 설계된 의도는 internal covariate shift를 해결하기 위해 제안되었다는 것은 이해했습니다. 하지만 실제로는 그렇지 않고 optimization surface를 매끄럽게 해서 학습이 잘된다라고 설명하신 것까지 들었습니다. 제가 이해한 바로는 활성화 함수에 들어가는 입력의 분포를 조정해서 학습이 잘되는 위치? 분포를 학습하는 것으로 이해했는데요 (sigmoid로 예시를 든다면 더 이상 업데이트가 되지 않아도 될 정도라면 기울기가 saturate되는 부분으로 혹은 업데이트가 많이 되어야 한다면 0부근으로 이동시키는 등의) 정확히 어떤 원인에 의해 surface가 매끄러워지는 효과를 가지게 되는 것인지 궁금합니다..!
안녕하세요 선생님 강의 정말 잘 보고 있습니다. Layer Normalization을 보는 중에 입력 데이터를 Normalization하는 것을 통해 scale이나 shift에 robust하게 되는 것까진 이해했습니다. 이런 효과가 왜 이미지보다 언어 모델에 더욱 효과적인지 이유를 알 수 있을까요?
[Pytorch] 파이토치를 활용한 딥러닝 모델 구축 섹션 5 CNN(Convolutional Neural Network, 합성곱 신경망) 실습 - CNN model (LeNet-5) Mnist Dataset 분류 강의 중 15분 15초 부분 code 실행 시 이미지가 출력되지 않습니다. local(jupyter notebook) 에서도 online(colab) 에서도 모두 출려되지 않습니다. 어떻게 하면 되는지요?
섹션 다양한 Optimizer 정리하기 중 딥러닝으로 Regression 문제 적용해보기 (House Price Kaggle 문제) 강의에서 오류가 발생합니다. 강의에 나오는 code 중 아래 부분을 실행하면 RuntimeError 가 발생합니다. 이 부분이 문제라고 나옵니다. --> loss = torch.sqrt(loss_function(y_minibatch_pred, y_minibatch)) RuntimeError: The size of tensor a (1460) must match the size of tensor b (256) at non-singleton dimension 1 - 아 래 - for index in range(nb_epochs): indices = torch.randperm(X_train_tensor.size(0)) x_batch_list = torch.index_select(X_train_tensor, 0, index=indices) y_batch_list = torch.index_select(y_train_tensor, 0, index=indices) x_batch_list = x_batch_list.split(minibatch_size, 0) y_batch_list = y_batch_list.split(minibatch_size, 0) epoch_loss = list() for x_minibatch, y_minibatch in zip(x_batch_list, y_batch_list): y_minibatch_pred = model(x_minibatch) loss = torch.sqrt(loss_function(y_minibatch_pred, y_minibatch)) epoch_loss.append(loss) optimizer.zero _grad() loss.backward() potimizer.step() if index % 100 == 0: print(index, sum(epoch_loss) / len(epoch_loss))
여기서 네트워크를 구성할 때 맨 마지막에 sigmoid를 태운 후에 마지막에 또 Softmax를 태우는데, 이렇게 할 거면 애초부터 네트워크의 마지막단을 sigmoid가 아닌 softmax를 태우면 되는 거 아닌가요? 왜 sigmoid를 거친 후에 softmax를 태워야 하는 것인지 알 수 있을까요?
모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
안녕하세요 수업노트의 코드를 실행했을때 Assistant's Response message value 에서 중간 풀이 과정이 출력되지 않는데 동영상과 차이가 뭘까요? ㅇ 동영상 Value = "I need to solve the equation 3x + 11 = 14 . Can you help me?" Value = "Sure, Jane Doe! To solve the eqation 3x + 11 = 14 for x, We need to isolate x on the one side of eqation. Here's how we can do it step by step. Subtract 11 from both sides of the eqation to get '3x' by itself on one side. That leaves us with '3x = 14 - 11' Simplify the right side of equation to find out what '3x' equation. Divide both sides of the equation by 3 to solve for 'x' Let's do the calculation" Value = "The solution to the equation '3x + 11 = 14' is x = 1" ㅇ 실습코드 value='The solution to the equation \\(3x + 11 = 14\\) is \\(x = 1\\).') 'I need to solve the equation 3x + 11 = 14 . Can you help me?'
안녕하세요! 이번에 금융권 핀테크 기업으로 이직하면서 강화학습을 직무에 활용할 수 있을까하여 공부하고 있는 사람입니다. import gymnasium as gym import numpy as np import pprint # SFFF (S: 시작점, 안전) # FHFH (F: 얼어있는 표면, 안전) # FFFH (H: 구멍, 추락) # HFFG (G: 목표, 프리스비 위치) # LEFT = 0 # DOWN = 1 # RIGHT = 2 # UP = 3 map = "4x4" SLIPPERY = False # 결정론적 환경 #SLIPPERY = True # 확률적 환경 # FrozenLake-v1 환경을 생성합니다. # desc: None이면 기본 맵을 사용합니다. # map_name: 사용할 맵의 이름을 지정합니다. # is_slippery: True이면 미끄러운 표면(확률적 환경)을 사용하고, False이면 결정론적 환경을 사용합니다. env = gym.make('FrozenLake-v1', desc=None, map_name=map, is_slippery=SLIPPERY) GAMMA = 1.0 # 감가율 (discount factor), 미래 보상의 현재 가치 THETA = 1e-5 # 정책 평가의 종료 조건, 변화가 이 값보다 작으면 평가 종료 num_states = env.observation_space.n # 환경의 상태(state) 개수 num_actions = env.action_space.n # 환경에서 가능한 행동(action) 개수 transitions = env.P # 상태-행동 전이 확률 (state-action transition probabilities)s) 강의로는 36강, 자료로는 015_DP_frozenlake_policy _evaluation.p y 상에서 질문이 있습니다. 여기서 THETA가 1E-5인데, 이는 정책 평가의 종료 조건이라고 되어있었습니다. 이 때, 모든 그리드에서의 변화량 중 단 하나의 값이라도 THETA보다 작아지면 평가가 종료되는 것인지, 모든 그리드의 변화량이 THETA보다 작아지면 평가가 종료되는 것인지 궁금합니다.
안녕하세요 선생님 시간과 체력이 더 많았으면 좋겠다는 생각이 들 정도로 강의를 너무 재밌게 보고 있습니다 Mini batch Gradient Descent 이론 편에서 Mini batch Size에 비례하지 않는다는 설명을 보았는데요. 물론 병렬처리를 하기 때문에 정비례하지 않겠지만 GPU에 올릴 수 있는 최대 데이터양이 100개라고 가정한다면 미니배치를 200, 300, .. 이런 식으로 키운다면 미니 배치크기에 따라 비례하는 것은 맞지 않나요? 혹시 제가 잘못 생각하고 있다면 말씀해주세요 감사합니다!