[LLM 101] LLM 초보를 위한 Llama SFT 강의 (feat. ChatApp Poc)
안녕하세요 코랩 실습 과정 중 하드웨어 가속기 선택할 때 V100이 비활성화 되어있을경우 어떤 것을 선택해야 하는지 문의 드립니다. 아울러 모델튜닝 실습 중 tokenizer.default_chat_template 부분에서 에러가 뜨는데 다음 단계로 넘어갈 수 있도록 하는 방법이 있을까요? 이후 패스하고 넘어간다고 해도 PEFT - LoRA부분에서도 에러가 뜹니다. 혹시 위 부분에서 pip install flash-attn===1.0.4 부분을 처리하지 않아서 오류가 난 것일까요?
모두를 위한 대규모 언어 모델 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() 오류 발생 부분은 위의 파트이고 오류의 내용은 아래와 같습니다 혹시 수정된 코드를 받을 수 있을까요?
모두를 위한 대규모 언어 모델 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 최신버전에서는 재학습 시키는 방법이 변경되었을까요?
모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
llama 3 fine-tuning 을 위해 데이터셋을 구축하고 있습니다. 제가 가지고 있는 데이터는 마크다운 형식의 데이터 셋인데요, 현재 강의에서 사용하는 SFT 형식의 데이터 셋은 ### 를 통해 Instruction 과 Response 를 구분하고 있기 때문에 마크다운 형식의 데이터가 제대로 학습이 되지 않습니다. 제가 가지고 있는 데이터의 예시는 다음과 같습니다. [{"text": "### Instruction: ## 제목입니다. \n ### 소제목 입니다. \n 콘텐츠 입니다. 다음 내용에 이어질 말은 무엇일까요? ### Response: 다음 내용에 이어지는 응답입니다."}, ... ] 이와 같은 데이터를 학습시키고 Response 를 받으면 다음과 같은 응답을 받게 됩니다.: Input: ## 제목 \n ### 소제목 \n 다음 내용은? Ouput: 내용은 다음과 같습니다: \n ### Instruction: ## 다음에 들어갈 제목 \n 컨텐츠 ..~~~ ### Response: ## 소제목 ~~~ 이런식으로 "Instruction" 과 "Response" 도 마크다운 형식의 데이터로 인식하여 거의 모든 답변에 "### Instruction:" 와 "### Response:" 라는 텍스트가 추가되어 나타납니다. 1. 이러한 마크다운 형식의 데이터를 가지고 있는 경우 Instruction 과 Response 를 어떻게 구분 할 수 있을까요? [{"system": " ", "Instruction": " ", "Response": " "}, ... ] 이러한 형식의 데이터로 학습 시킬 순 없을까요? SFT 형태의 데이터가 아닌 다른 형태의 데이터로 학습시키는게 좋을까요?
모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
안녕하세요. 수업 잘 듣고 있습니다. 감사합니다. Llama3 모델 알려주시는 부분에서 모델 성능은 너무 좋은데요 논문 요약을 위한 fine tuning이 끝난 모델에 input을 넣고 response를 받기까지 3분이 걸린다고 말씀하셨는데, 너무 느려서요. 왜 느린 것인지, 혹시 이를 더 빨리할 수 있는 방법으로 어떤 것을 활용할 수 있는지 알려주시면 감사하겠습니다.
모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
안녕하세요 강의 내용을 기반으로 실습을 잘 진행 해보고 있습니다. 허깅페이스에서 하나의 모델을 다운받아 테스트를 해보려고 하는데, 모델명.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 답변 부탁드리겠습니다. 감사합니다.
모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
고스트 어텐션 한국어로 말해라, 아인슈타인처럼 말해라 와 같이 모델이 일관성을 유지해야 하는 말에 대해 자꾸 몇번 더 대화를 나누면 일관성을 잃어버려서 고스트 어텐션을 적용했다 고스트 어텐션은 인물: 아인슈타인 언어: 한국어 와같이 저장하는데 이걸 이용하는 방법은 잘 모르겠다 어디서 이용되는건지 모르겠습니다. 제가 생각했을때 이용될 수 있는 방법은 이런 파라미터를 이후에 오는 모든 파라미터앞에 붙인것 처럼 입력된다--> 이건 위에서 대조한 예시로 나온것 같은데 이러면 둘이 충돌이 일어날 상황이 생겨서 안한다고 한것 같고 인물, 언어 와 같은 카테고리를 적용한 것을 미리 파인튜닝 해둔 후 위의 프롬프트가 나오면 그 파인튜닝 된 것을 불러온다? --> 이건 너무 경우도 많고 복잡할 것 같습니다. 선생님이 간단하다고 해서 이것도 아닌것 같습니다. 고스트 어텐션이 실제로 gpts를 이용할때 프롬프트로 저장, 고정이 되어있는 부분을 말하는것 같은데 이걸 어떻게 이용하는지 궁금합니다
모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
안녕하세요 강사님 KorQuad 데이터셋을 Llama2 모델에 활용하기 위해서 context는 제거를 하시고 단순하게 Q와 A로 구성된 데이터셋을 구성하였는데 context를 유지해서 학습하는 방법은 없어서 적용하는 건가요? 아니면 LLM의 학습에는 적합하지 않아서 사용하지 않는건가요? GPT등의 모델을 파인튜닝 한다고 했을때도 context는 제거하는게 맞는 건가요??
모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
좋은강의 감사드리며 P-tuning 관련해서 질문이 있습니다. 먼저 해당 기법이 적용된 모델로 추론시에 질문이 모델에 들어가면 모델에서 질문을 임의로 변경하여 추론한다고 생각하면 되겠죠?? 그리고 프롬프트 인코더(LSTM)의 어떤값을 임베딩 벡터로 사용하는 건가요?? 그림을 봤을땐 LSTM의 입력과 출력값은 독립적이고 히든레이어의 출력값이 임베딩 벡터로 사용되는 것으로 보이는데 맞나요?
모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
안녕하세요 강사님, 좋은 강의 감사드리며 두가지 질문이 있습니다. 일반적으로 GPT 3.5를 그냥 사용한다고 할때, 퓨샷러닝이 학습때 사용되는 기법이 아니라고 이해하였는데 그러면 제가 GPT에게 "영어로 번역해줘"라고 타이핑하면 제 눈에는 안보이지만 GPT 자체적으로 예시를 몇가지 만들고 해당 내용을 바탕으로 추론 결과를 출력한다고 이해하는게 맞을까요? GPT3 학습시 사용되지 않은 데이터에 대해서(특정 산업군 지식이라던지) 적절한 정보를 출력하는 LLM을 만들고자 한다면 파인튜닝이 필수적이라고 생각하였는데 맞나요??
모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
안녕하세요 강사님 좋은 강의 감사드립니다. GPT2파트쪽 강좌를 들으면서 GPT1에서 설명하신 모델이 헷갈려서 문의드립니다. GPT1의 경우 마지막 출력으로 다음 토큰에 대한 소프트맥스 값과 TASK에 대한 소프트맥스 값이 출력되고 각 레이블 값에 의해 학습되는 것이라 이해하였는데 해당 모델 구조가 그림상으론 같이 표현되어 있는데 처음에 비지도학습시엔 토큰에 대한 예측값만으로 학습하고 파인튜닝시엔 두가지 출력을 모두 활용하여 학습한다고 이해하는 것이 맞나요?? 또한, GPT2에선 테스크에 대한 소프트맥스값으로 학습한다는 개념이 빠지고 오로지 다음 토큰에 대해서만 학습한다는 개념이 맞을까요?