🔥

Поделиться
HTML-код
  • Опубликовано: 3 окт 2024
  • 💻 코드
    github.com/ted...
    🤖 디스코드 채널
    / discord
    📘 랭체인 튜토리얼 무료 전자책(wikidocs)
    wikidocs.net/b...
    ✅ 랭체인 한국어 튜토리얼 코드저장소(GitHub)
    github.com/ted...
    ⭐️패스트캠퍼스 RAG 비법노트⭐️
    링크: fastcampus.co....
    Naive RAG
    Advanced RAG
    Agent
    LangGraph
    수강하신 분들께만 드리는 소스코드
    🙏멤버십 가입링크
    / @teddynote
    [꼭 읽어주세요!]
    월 2900원씩 납부되기 때문에 가입하시는 것을 권장하지 않습니다🙅🏻
    멤버십 회원 분들께는 "1주일 실습코드 선공개" 혜택을 제공해 드리고 있습니다.
    #unsloth #lmstudio
    ---
    📍 "테디노트의 RAG 비법노트" 랭체인 강의: fastcampus.co....
    📘 랭체인 한국어 튜토리얼(무료 전자책): wikidocs.net/b...
    📝 테디노트(깃헙 블로그) : teddylee777.gi...
    💻 GitHub 소스코드 저장소: github.com/ted...
    🍿 LLM 프로젝트: llm.teddynote.com

Комментарии • 134

  • @joonlab98
    @joonlab98 4 месяца назад +2

    항상 좋은 영상 만들어주셔서 많은 도움 받고 있습니다 테디님 ㅎㅎ
    저를 비롯하여 다른 구독자 분들을 위하여 Timestamp 생성해보았으니 참고하세요:)
    ⏰ Timestamp
    00:00 파인튜닝 소개
    00:07 오늘의 예제: 문서 기반 질의응답 모델
    01:00 파인튜닝 프로세스 설명
    01:25 문서 기반 질의응답 모델 생성 과정
    02:00 데이터셋의 중요성
    03:00 QA Pair 데이터셋 저장 방식: 로컬 & 허깅페이스 허브
    03:35 모델 튜닝: 베이스 모델 + LoRA/QLoRA 어댑터
    04:44 파인튜닝 완료된 모델 저장 & 변환
    05:00 실제 파인튜닝된 모델 예시: TeddyNote
    05:55 데이터셋 생성 코드 설명
    07:17 JSONL 형식으로 데이터셋 저장
    07:30 허깅페이스 데이터셋 라이브러리 활용
    07:46 데이터셋 업로드 준비
    08:20 토큰 발급
    08:50 파인튜닝 코드 설명
    09:20 언슬로스(Unsloth) 소개
    10:10 베이스 모델 선택: 라마 3 Open Ko 8B
    11:09 파인튜닝 실행
    12:14 추론 실행
    13:00 모델 저장
    13:50 허깅페이스 허브에 업로드
    14:00 GGUF 파일 형식 변환
    15:20 LM Studio에서 모델 활용
    16:00 테스트 질문
    16:40 파인튜닝 실습 요약
    17:00 파인튜닝 주의사항
    17:30 마무리

    • @teddynote
      @teddynote  4 месяца назад

      감사해용~~~ 🙏

  • @leehg090909able
    @leehg090909able 28 дней назад +1

    언제나 최고입니다

  • @jjabul
    @jjabul 14 дней назад +1

    이렇게 떠먹여주는 강좌라니!! 테디님 덕분에 그동안 말로만 듣던 파인튜닝이란 걸 성공했네요. 한참 늦은 나이에 이런 기술들 배우느라 답답했던 와중에 한 줄기 빛이랄까요... 정말 감사드립니다.

    • @teddynote
      @teddynote  13 дней назад +1

      아이코~ 너무나 감사한 댓글입니다. 제 영상을 보고 구현하셨다는 댓글 보면 참 뿌듯해요!
      너무 고생하셨습니다^^

  • @SeonggyuLee
    @SeonggyuLee 4 месяца назад +2

    LoRA 막연히 부담스러운 작업일거라 생각했는데.. 와. 너무 좋은 강의 였습니다~

    • @teddynote
      @teddynote  4 месяца назад

      감사합니다!!

    • @heejuneAhn
      @heejuneAhn 4 месяца назад +1

      허깅페이스가 PEFT 제공하기 때문에 상당히 작업이 간단해 진것 같습니다.

  • @보석-n1n
    @보석-n1n 4 месяца назад +4

    소중한 지식 공유 감사합니다

    • @teddynote
      @teddynote  4 месяца назад

      시청해 주셔서 감사합니다🙏

  • @Urban도시
    @Urban도시 Месяц назад +1

    정말 유익하고 좋은 영상 감사합니다.. 세상에는 고수분들이 정말 많은것 같아요.. 잘 배우고 갑니다!!

  • @jangbongseob
    @jangbongseob 4 месяца назад +2

    좋은 내용 공유해 주셔서 감사합니다.

    • @teddynote
      @teddynote  4 месяца назад

      시청해 주셔서 감사해요🙏

  • @moonsookim7596
    @moonsookim7596 4 месяца назад +2

    강의 잘 들었습니다. 감사합니다.

    • @teddynote
      @teddynote  4 месяца назад

      시청해 주셔서 감사합니다🙏

  • @cjj-yx9sn
    @cjj-yx9sn 4 месяца назад +2

    한달동안 gguf 변환때문에 해맸는데.. 너무 감사합니다!!❤❤

    • @teddynote
      @teddynote  4 месяца назад

      감사합니다~^^

  • @juliokim766
    @juliokim766 4 месяца назад +1

    aya를 ollama에 올려 보려고 구했던 gguf가 ollama에 올릴때 계속 오류가 나서 사용을 못해보고있었는데, 이 방법으로 직접 변경해봐야겠네요~~^^
    항상 감사합니다~:)

    • @teddynote
      @teddynote  4 месяца назад +1

      요즘 aya가 대세 이더라고요 ㅎㅎ

    • @heejuneAhn
      @heejuneAhn 3 месяца назад +1

      다음과 같이 하니 잘 됩니다.
      print("saving the GGUF model...")
      quantization_method = "q8_0" # "f16" "q8_0" "q4_k_m" "q5_k_m"
      peft_model.save_pretrained_gguf(
      "gguf",
      tokenizer=tokenizer,
      quantization_method=quantization_method,
      )
      print("Try with ollama!")
      '''
      1) copy a reference Model file and moify the gguf file in the first line
      2) ollama create -f Modelfile
      3) ollama run
      '''

  • @michaelkwon8126
    @michaelkwon8126 4 месяца назад +1

    감사합니다.

    • @teddynote
      @teddynote  4 месяца назад

      아이쿠 후원을.. 감사합니다🤤

  • @kunyoungkim-hw8uh
    @kunyoungkim-hw8uh 3 месяца назад +3

    안녕하세요! 영상을 보면서 궁금한 부분이 있어서 질문드립니다. 11:34 에서 instruction, output은 매핑은 하지만 input에 값을 넣을 경우에는 어떤 방식으로 진행해야 하나요? alphacaprompt에는 instruction, response 이렇게만 있는데 Context를 추가하는 방법으로 진행하나요..?

    • @teddynote
      @teddynote  3 месяца назад +1

      네 맞습니다 context 를 추가한다고 이해하셔도 좋을 것 같습니다. 답변에 참고할 수 있는 이전 문장을 추가하는 개념입니다^^

    • @kunyoungkim-hw8uh
      @kunyoungkim-hw8uh 3 месяца назад +1

      @@teddynote 항상 좋은 강의 올려주시고 답변해주셔서 감사합니다!! 혹시 context를 추가하는게 alphaca prompt의 형태가 instruction, response 만 존재하는데 context를 추가하는 방법일까요? 아니면 instruction에 instruction + ' ' + context를 함께 넣어주는 방식으로 진행해야 하나요? 제가 해봤는데 추론단계에서 오류가 발생해서 학습데이터 전처리 단계에서 실수한게 있는지 궁금해서 여쭤봅니다! 감사합니다

  • @luv8216
    @luv8216 4 месяца назад +1

    좋은 영상 감사합니다! 그런데 혹시 torch를 사용하시는 이유가 있으실까요? 초보적인 질문인 것 같긴 한데 다른 파인튜닝 영상들도 대부분 torch를 사용하는 것 같아서 질문드립니다.

    • @teddynote
      @teddynote  4 месяца назад +1

      이미 질문에 답이 있습니다~ 대부분의 파인튜닝 코드가 torch 기반으로 작성되어 있고 참고할 수 있는 예제가 많습니다^^ torch로 integration 도 편하구요!

    • @heejuneAhn
      @heejuneAhn 3 месяца назад

      일단 실질적으로 Huggingface는 PyTorch 기반에 가깝다고 보시는게 좋읍니다.

  • @Acb-1015
    @Acb-1015 9 дней назад +1

    좋은 영상 감사합니다! 지금은 텍스트 문서를 사용했는데 이미지를 이용하여 파인튜닝을 하고 싶은데 참고할 수 있는 자료가 있을까요?

    • @teddynote
      @teddynote  7 дней назад

      멀티모달 모댈 파인튜닝을 말씀하기는 것 같습니다. llava model 파인튜닝쪽을 한 번 보시겠어요?
      ruclips.net/video/eIziN2QUt8U/видео.htmlsi=6iLvJk1HhCoek3Rv

    • @Acb-1015
      @Acb-1015 7 дней назад +1

      @@teddynote 답변 감사합니다!

    • @teddynote
      @teddynote  7 дней назад

      @@Acb-1015 감사합니다🫰

  • @wonyanglee9568
    @wonyanglee9568 24 дня назад +1

    영상에서 많은 정보를 얻어 가고 있습니다. 감사합니다. 01-QA-Pair-GPT.ipynb 를 코랩에서 실행하고 있습니다. print(elements[2]) 를 하면 한글이 깨져 나오는데요. 혹시 해결 방법이 있을까요 ?

    • @teddynote
      @teddynote  24 дня назад

      혹시 hwp 파일을 pdf 변환한 파일인가요~?

  • @ikkkiaffgesk
    @ikkkiaffgesk 4 месяца назад +1

    소중한 강의 감사 합니다. 이번 강의는 gpu vram이 얼마나 필요 하나요?

    • @teddynote
      @teddynote  4 месяца назад

      대략 15~20G 사이입니다! 감사합니다^^

  • @isy9942
    @isy9942 2 месяца назад +1

    좋은 영상 감사합니다 테디님. 한가지 질분이 있어 여쭤보려 댓글을 남깁니다.
    혹시 베이스모델과 Lora 어댑터부분을 병합해서 저장한 1차 학습 모델을, 2차 학습시에 다시 베이스모델로 설정해 재학습시키는 것이 가능한지 여쭤보고 싶습니다.
    현재는 2,000 문장 정도 되는 데이터를 500문장씩 끊어서 학습시키고 있지만,
    기존 학습시킨 병합모델을 베이스모델로 새로 학습시킨 모델에서는, 이전에 학습시킨 문장들의 response가 동일하게 도출되지 않고있네요.
    학습이 덮어쓰기 되는 것 같다는 느낌입니다.
    혹시 지속적인 학습이 가능한 방식이 있다면 관련된 키워드를 여쭤보고 싶습니다.

    • @teddynote
      @teddynote  2 месяца назад +1

      네 병합해서 베이스로 두시고요 로라 튜닝 가능한데요.
      로라 학습 하려면 최소 3만건 이상은 되어야 어느 정도 나올 것이라 합니다(이 부분은 파인튜닝 전문가와 진행한 라이브 세션 참고해 주세요)
      적은 데이터로 해보실꺼면 풀파인튜닝을 시도해 보세요!

  • @박동익-f3o
    @박동익-f3o 4 месяца назад +1

    테디노트님 항상 좋은 강의 감사합니다.
    테디노트님 따라서 gguf 변환까지 잘 따라해보았습니다.
    변환된 모델을 gguf로 ollama 에 올리려니까 template을 어떻게 해야 할지 모르겠더라구요. (llama3 공식 template으로 하니 잘 안되더라구요!)
    혹시 gguf 변환된 파일을 ollama 에 올릴 때 template을 어떻게 하면 좋을지 아시는 분 계실까요?

    • @teddynote
      @teddynote  4 месяца назад +1

      템플릿은 alpaca 템플릿으로 업로드 하시면 됩니다^^

  • @HJ-jf4co
    @HJ-jf4co 3 месяца назад +1

    안녕하세요 해당 영상보면서 파인튜닝 공부중인데 질문이있어서 댓글 남깁니다.
    원하는 데이터셋을 기반으로 베이스 모델과 병합하여 파인튜닝 모델을 생성하게 되면, 답변이 학습시킨 데이터에 많이 치우친 대답을 하게됩니다.
    기존 베이스 모델로 테스트 해봤을때 정상적으로 하던 답변도 파인튜닝 후에는 제가 학습시킨 데이터와 관련된 대답만 하게됩니다..
    제가 기대했던 파인튜닝 결과물은 기존 베이스 모델이 가지고있던 데이터 + 일부 내가 학습시킨 데이터 인데,
    제가 잘못이해하고 있었던건지 영상속 방법으로는 제가 학습시킨 데이터에 치우친 결과물만 낼 수 있는건지 ..
    아니면 제가 파인튜닝을 잘못한건지.... 답변이 가능할까요...

    • @teddynote
      @teddynote  3 месяца назад

      맞습니다 극단적으로 예시를 보여드리려고 작은 데이터셋으로 ‘과적합’ 시켜서 그렇구요~ 원래 제대로 하시려면 데이터셋 보통 2~3만건 정도( 비용이 많이 들 수 있어요...) 그리고 rank 랑 alpha 는 더 작게 주셔서 모델이 한 마디로 많이 틀어지지 않도록 해주시는 것이 좋습니다.
      비용과 학습시간이 많이 드니 이 영상은 미니로 진행했습니다! 참고해 주십쇼^^

  • @유영재-c9c
    @유영재-c9c Месяц назад +1

    안녕하세요. QA 데이터셋을 LLM 모델에 훈련시킬 때, 최종적으로 RAG모델에 활용하려고 합니다. 이 경우, input 키(인스트럭션 튜닝할 때..)으로 retriever가 검색한 문장들을 포함시키는 것이 맞을까요? 만약 입력에 retriever 문장이 포함되지 않으면, 모델이 답변 스타일만 학습하는 것으로 볼 수 있을까요?"

    • @teddynote
      @teddynote  Месяц назад

      안녕하세요! 답변 드리겠습니다.
      retriever 검색된 결과가 포함이 되고 이를 기반으로 학습한다면, 주어진 문맥에서 답변을 도출하는 것을 학습하고요, 만약에 retriever 결과가 포함되지 않는다면, 말씀하신 것처럼 답변 스타일을 학습한다고 보셔도 좋을 것 같습니다!

  • @버찌조아
    @버찌조아 3 месяца назад +1

    테디노트 영상들을 로컬로 실행하려면 어느정도 사양이 되어야 하나요?

    • @teddynote
      @teddynote  3 месяца назад

      로컬 모델 구동을 위해서는 GPU 가 필요하지만 GPT4, Claude API 를 사용하시는 경우 가벼운 노트북으로도 충분합니다!

  • @한샘짱
    @한샘짱 2 месяца назад +1

    EEVE 대신 범이님꺼 쓰신 이유가 있으실까용?

    • @teddynote
      @teddynote  2 месяца назад

      llama3 기반 모델을 사용하였습니다~

  • @kookyunghyun
    @kookyunghyun 3 месяца назад +1

    16:07 부분에서 지금까지 학습및 베이스모델이 전부 라마3인데 프리셋을 알파카로 해야하는 이유가 무엇인가요?? 설명도 알파카로 사용하셔야 한다고 하시는데,.

    • @teddynote
      @teddynote  3 месяца назад

      알파카로 프롬프트 템플릿 학습을 했기 때문에 추론도 동일한 프롬프트 템플릿을 사용해야 올바르게 답변합니다~

    • @teddynote
      @teddynote  3 месяца назад

      애초에 학습할때의 템플릿은 자유롭게 선택이 가능합니다 대신 추론할때의 템플릿과 통일은 해야합니다

  • @조이리-u5b
    @조이리-u5b 4 месяца назад +1

    안녕하세요
    해당 모델을 ollama 에 올리기 위해서 사용해야할 Modelfile 은 어떤걸 참고하면 될까요?

    • @teddynote
      @teddynote  4 месяца назад +1

      alpaca 입니다^^

  • @necrojim6954
    @necrojim6954 Месяц назад +1

    코드를 눌러도 연결이 안되는데.. 깃허브에있는 18. 파인튜닝으로 봐도 무방 할까여?

    • @teddynote
      @teddynote  Месяц назад +1

      맞습니다 최근에 목차 번호를 바꾸어서 링크가 깨졌나봅니다~ 수정해 두겠습니다 감사합니다^^

  • @fruitmango8420
    @fruitmango8420 3 месяца назад +1

    맥에서 cuda가 아니더라도 mps로 pytorch 가 되던데 뭔가 파인튜닝에서 mps로 할려하면호환성문제인지 에러코드가 우수수 뜨던데 혹시 방법이 없나요? m4도 나오고 통합메모리라 32gb 모델쓰면 그래픽에서도 좋은성능 나올거같아서 휴대용 중에선 괜찮다 생각해서 맥으로 준비하고 있습니다

    • @teddynote
      @teddynote  3 месяца назад +1

      파인튜닝에서는 mps 를 미지원합니다 ㅎㅎ 쿠다가 필요해용~~ 즉 맥에서는 파인튜닝 불가합니다. torch 는 가능해요~

  • @남스-n5b
    @남스-n5b 4 месяца назад +1

    안녕하세요 지나가는 그냥 직장인입니다.
    제가 비슷한 생각으로
    Gpts를 만들고
    회사 보고규정, 보고서샘플, 매뉴얼 등을 pdf로 업로드시키고
    업로드된 파일에 근거해서 답변하라고 했는데
    할루지네이션도 많고
    보고양식에 맞지않게 대답할때도많고
    출처를 물어보니 엉뚱한페이지를 대답하는경우도 있더라구요
    그래서 포기하고있었는데
    이 방식은 저같이 비개발자도 접근이가능할까요?

    • @teddynote
      @teddynote  4 месяца назад

      GPTs 는 문서 기반 QA에 한계가 있습니다 ㅜ 그래서 랭체인 도구를 사용해서 직접 구현해야 정확한 출처와 답변을 받으실 수 있구요~^^
      이 영상만으로는 완성현 개발이 나오기는 어렵고 전반적인 RAG 에 대한 공부가 조금 필요한데요. 유튜브에 업로드된 다른 영상 같이 보시면서 공부해 보시는 것을 추천 드리고요. 단기간은 아니지만 조금만 투자하셔도 성과가 나실껍니다!

    • @남스-n5b
      @남스-n5b 4 месяца назад

      @@teddynote 답변 감사합니다

  • @블블루-m4j
    @블블루-m4j 4 месяца назад +1

    가지고 있는 문서에서 질문과 답변을 생성해 파인튜닝을 진행해 보려고 하는데
    가지고 있는 문서의 언어 비율이 영어 70% 한국어 30%일 때라면 한국어로 파인튜닝된 모델을 사용하는 게 맞을까요?

    • @teddynote
      @teddynote  4 месяца назад

      한국어가 포함되어 있다면 한국어 모델을 사용하시는 것이 더 나아 보입니다^^

  • @ittubes3912
    @ittubes3912 3 месяца назад +1

    안녕하세요 테디님 테디님 유튜브 영상 잘 보고 있습니다.
    다름이 아니라 테디님 github에서 파인튜닝 하는 코드로 개인 커스텀 데이터셋을 파인튜닝했는데

    학습시킨 데이터로 결과가 나오진 않는데...혹시 파인튜닝을 여러번 해야하는 걸까요?

    • @teddynote
      @teddynote  3 месяца назад

      결과가 안나온다는 부분에 대해서 구체적으로 말씀해 주시면 답변 드릴 수 있을 것 같아요~

    • @ittubes3912
      @ittubes3912 3 месяца назад

      a는 바보다 라고 학습시켰는데
      a는 알파벳으로 어쩌구저쩌구 이런식으로 나옵니다.
      코드는 github참고했고
      gpt한테 공유주신 코드 기반으로 허깅페이스에서 데이터셋 다운받아서 로컬에 저장한다음 다운받은 데이터셋을 불러서 파인튜닝하게 했습니다..

  • @heejuneAhn
    @heejuneAhn 4 месяца назад +1

    A few comments in following the code.
    1. an error with mismatch of peft version and unsloth, please give us the versions for the packages. ( I manually sloved the issues. No module named 'peft.tuners.lora.layer'; 'peft.tuners.lora' is not a package) (my system uses unsloth 2.0 and peft 0.5.0)
    2. model name should be full path (model_name = "unsloth/llama-3-8b-bnb-4bit", not model_name="llama-3-8b-bnb-4bit")

    • @teddynote
      @teddynote  4 месяца назад

      1. you can find easy install commands @ link below
      github.com/unslothai/unsloth/tree/main#installation-instructions
      It's very hard to specify the exact version of each library due to dependencies (CUDA, Python, Torch, etc, ...) try using mamba if you haven't tried it yet
      2. thx for letting me know. I have updated the .ipynb file

    • @heejuneAhn
      @heejuneAhn 3 месяца назад +1

      @@teddynote the dependent packages are quite system-dependent.
      colab-new = [
      "tyro",
      "transformers>=4.38.2",
      "datasets>=2.16.0",
      "sentencepiece",
      "tqdm",
      "psutil",
      "wheel>=0.42.0",
      "numpy",
      "protobuf

  • @_skim4403
    @_skim4403 2 месяца назад +1

    제가 가지고 있는 데이터셋에서 지문시퀀스 길이가 2000자정도로 최대 토큰길이가 4000자 정도 나오는데 여기 영상에서 나오는 것을 따라해도 괜찮을까요? 슬라이딩 윈도우나 longfomer모델 사용안하고 가능할지 여쭤봅니다 ㅠㅠ

    • @teddynote
      @teddynote  2 месяца назад

      context length 가 4096 limit 이 걸려 있기 때문에 답변 출력을 위한 토큰이 제한적이라 잘 안나올 것 같습니다 ㅠ

    • @_skim4403
      @_skim4403 2 месяца назад

      @@teddynote 어 제가 가진 지문데이터에서 context 최대 길이는 2000자정도인데 그럼 4096보다 짧아서 괜찮은거 아닌가요? ㅠ 제가 잘 몰라서용

  • @vhxmtmfp
    @vhxmtmfp 3 месяца назад +1

    데이터셋 생성시 instruction, input, output구조로 생성하시는데 input이 비어있네요 input의 역할은 뭘까요?

    • @teddynote
      @teddynote  3 месяца назад

      instruction은 지시사항 그리고 input은 문맥이라고 이해하시면 좋습니다. 예를들어,
      Q: 대한민국의 도시를 나열해봐
      input: 서울, 부산,
      output: 대구, 광주 등등
      이런식으로 구성이 가능해요~

  • @유영재-c9c
    @유영재-c9c Месяц назад +1

    실제 train할 때 loss는 디폴트로 어떤 loss 계산식인지 알 수 있나요?

    • @teddynote
      @teddynote  Месяц назад +1

      cross entropy 를 사용하는 것으로 알고 있어요!
      이 글을 참고해 보세요!!
      medium.com/@jeraldteokj/visualising-loss-calculation-in-large-language-models-1af410a9d73d

  • @이재영-w4v7s
    @이재영-w4v7s 4 месяца назад

    안녕하세요! 항상 양질의 지식 감사합니다. 제가 flash-attn 설치에 애를 먹고 있는데 혹시 window 로컬에서 해당 개발 환경을 구축해보신 경험이 있으신가요?

    • @이재영-w4v7s
      @이재영-w4v7s 4 месяца назад

      결국 어찌저찌 버전 맞춰 설치했는데, flash-attn 단독 설치에 걸린 시간만 1시간 걸렸던 것 같아요. 설치할 때 주의해야 하는 부분이 있나요? cuda까지 돌아가는 거 확인하고 설치했는데 왜 이리 오래걸린걸까요 😂😂
      unsloth의 triton은 window에서 설치가 안되나요? MVSC나 WSL을 사용하라는 글이 있던데 조언이 필요해요..

    • @teddynote
      @teddynote  4 месяца назад

      제가 flash-attn 은 사용해보지 않아서요 도움드리지 못할 것 같습니다 ㅠ 죄송합니다 ㅜ

    • @이재영-w4v7s
      @이재영-w4v7s 4 месяца назад +1

      @@teddynote 항상 도움 많이 받고있습니다 감사합니다 :)

    • @teddynote
      @teddynote  4 месяца назад

      @@이재영-w4v7s 이번에는 도움을 못 드렸네요 ㅜ

    • @jjabul
      @jjabul 14 дней назад

      저도 고생고생 하다가... 로컬/윈도우에서 했는데요 flash-attn 에만 2~3시간 이상 걸렸던 것 같고 xformers 쪽에서는 ninja 의 260자 파일명에러가 계속 나서 실패했어요. WSL 로 전환하고 해결했으니 늦었지만 참고하세요

  • @lilililililili-c2l
    @lilililililili-c2l 4 месяца назад +1

    RAG랑 파인 튜닝 중에 각각 어떤 상황에서 쓰는게 더 좋은 방향일까욤?

    • @teddynote
      @teddynote  4 месяца назад +2

      자주 하시는 질문인데요! 쉽게 말해 자주 변경되는 정보는 RAG 고정된 답변 형식은 파인튜닝이 적절해 보입니다!! 그리고 굉장히 길게 매번 프롬프트를 넣어줘야 하는 경우에도 파인튜닝을 하면 입력으로 넣는 컨텍스트를 줄여볼 수 있고요. RAG로는 할루시네이션을 좀 줄이는데 사용하실 수 있어요! 비교하는 아티클이나 블로그도 꽤 많으니 한 번 살펴보시는 것도 좋습니다^^

    • @lilililililili-c2l
      @lilililililili-c2l 4 месяца назад +1

      @@teddynote 너무 친절할 답변 감사드립니다 ㅠ 강의 회사에 신청해서 회사계정으로 꼭 볼게요💓

    • @teddynote
      @teddynote  4 месяца назад +1

      @@lilililililili-c2l 감사합니다~!!!

  • @pixelel1353
    @pixelel1353 4 месяца назад +1

    QA데이터를 만드는 과정에서 문서를 불러오는 부분은 어디에 있는건가요?? 그리고 elements가 어디에 정의돼있는지 모르겠어요 ㅠ

    • @teddynote
      @teddynote  4 месяца назад

      PDF 불러오는 코드로 불러오시면 됩니다. 다른 PDF 로더를 사용하셔도 됩니다~
      아래 코드를 참고해 주세요~
      from unstructured.partition.pdf import partition_pdf
      def extract_pdf_elements(filepath):
      """
      PDF 파일에서 이미지, 테이블, 그리고 텍스트 조각을 추출합니다.
      path: 이미지(.jpg)를 저장할 파일 경로
      fname: 파일 이름
      """
      return partition_pdf(
      filename=filepath,
      extract_images_in_pdf=False, # PDF 내 이미지 추출 활성화
      infer_table_structure=False, # 테이블 구조 추론 활성화
      chunking_strategy="by_title", # 제목별로 텍스트 조각화
      max_characters=4000, # 최대 문자 수
      new_after_n_chars=3800, # 이 문자 수 이후에 새로운 조각 생성
      combine_text_under_n_chars=2000, # 이 문자 수 이하의 텍스트는 결합
      )
      # PDF 파일 로드
      elements = extract_pdf_elements("data/SPRI_AI_Brief_2023년12월호_F.pdf")

    • @pixelel1353
      @pixelel1353 4 месяца назад +1

      @@teddynote 감사합니다 ㅠㅠ 학교에서 프로젝트할 때 많은 도움받고있어요!!

    • @teddynote
      @teddynote  4 месяца назад

      @@pixelel1353 감사합니다🙏

  • @dkssudskdigpy476
    @dkssudskdigpy476 2 месяца назад +1

    테디노트님, 매번 감사합니다.
    혹시, 문서 기반 QA 데이터셋이 잘 생성되었는지는 어떻게 평가할 수 있나요?

    • @teddynote
      @teddynote  2 месяца назад

      저의 다른 영상 중에서 AutoRAG 쪽 시리즈 영상을 보시면 도움이 되실 것 같아요! AutoRAG에서 평가 지원합니다~

    • @dkssudskdigpy476
      @dkssudskdigpy476 2 месяца назад

      @@teddynote 네, 감사합니다 😄

    • @dkssudskdigpy476
      @dkssudskdigpy476 2 месяца назад +1

      @@teddynote 해당 노트북 코랩 일반으로 구동 시 워닝이 발생하고, 세션 다시 시작 시 에러가 발생하는 것 같습니다. 혹시 확인해주실 수 있으실까요?
      '''
      WARNING: The following packages were previously imported in this runtime:
      [torch,torchgen]
      You must restart the runtime in order to use newly installed versions.
      Restarting will lose all runtime state, including local variables.
      '''

    • @teddynote
      @teddynote  2 месяца назад

      @@dkssudskdigpy476 의존성 패키지 들이 있어서요. 코랩보다 poetry 로 의존성이 해결된 환경에서 진행해 보실 것을 추천 드립니다. 다른 영상인 랭체인 튜토리얼 설치 영상에서 poetry 설정하는 방법을 다루고 있으니 참고해 주세요^^

    • @dkssudskdigpy476
      @dkssudskdigpy476 2 месяца назад +1

      pip install --force-reinstall "xformers

  • @heejuneAhn
    @heejuneAhn 3 месяца назад

    다른 건 다 잘 되는데 (merge 한 후에 다시 로딩, gguf 파일 저장 후 ollma에서 사용 등은 잘됩니다.) , Lora adaptor 만 저장한 후에 다시 로딩하여 실행할 때 여러가지 문제가 생기는데 혹시 동작하는 코드를 공유해 줄 수 있을까요? 사용한 코드는
    우선 저장은 로컬에 다음과 같이 하였구요.
    adaptor_model_path = "llama-3-8b-lora"
    peft_model.save_pretrained(adaptor_model_path)
    이후에 다시 두가지 방식으로 로딩을 했습니다. 두 가지다 문제를 발생합니다.
    from peft import PeftConfig, PeftModel
    from transformers import AutoModelForCausalLM, AutoTokenizer
    if True:
    base_model = AutoModelForCausalLM.from_pretrained(base_model_name) # not working when generated
    peft_model = PeftModel.from_pretrained(base_model, adaptor_model_path)
    else:
    from peft import AutoPeftModelForCausalLM
    peft_model = AutoPeftModelForCausalLM.from_pretrained(adaptor_model_path,
    load_in_4bit=True) # 4bit needed for GPU VRAM
    그리고 나서 제공한 코드를 함수화 하여 테스트 합니다.
    test(alpaca_prompt, peft_model, tokenizer)그
    이 두 가지 경우 모두 다음 에러가 발생하고 auto-gptq 는 0.4.2 로 업데이트 했구요 결과는 마찬가지 입니다.
    File "/home/gpt/anaconda3/envs/text2sql/lib/python3.11/site-packages/unsloth/models/llama.py", line 309, in LlamaAttention_fast_forward
    Q, K, V = self.apply_qkv(self, hidden_states)
    ^^^^^^^^^^^^^^
    File "/home/gpt/anaconda3/envs/text2sql/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1695, in __getattr__
    raise AttributeError(f"'{type(self).__name__}' object has no attribute '{name}'")
    AttributeError: 'LlamaSdpaAttention' object has no attribute 'apply_qkv'
    '''
    좀 특이한 점은 첫번째 방법의 경우 base_model을 이전에 로딩했던 것을 그대로 사용하면 동작을 하는데. 이게건 사실상 사용할 수없는 시나리오기 때문에 의미가 없구요. 동일하게 다시 로딩을 해봐도 문제가 발생하는 것을 보면 peft_model = FastLanguageModel.get_peft_model 를 하면서 모델에 base model 자체에/에도 변화를 주는 것으로 보이는데. 이건 소스코드를 봐야 알 것 같네요.

  • @dongyunkim1148
    @dongyunkim1148 Месяц назад

    gpt에서 생성 후 qa_pair 리스트에 담는 과정에서 생성되는 질문 3개를 전부 담는게 아니라 최초1개만 담는 문제가 발생하네요..ㅠㅠ
    gpt가 생성할 때에는 문제 3개를 생성하는걸 프린트로 보여주는데 실제 저장이 되지 않는 이유가 있을까요?? 그대로 따라 했는데 ㅠㅠ

    • @teddynote
      @teddynote  Месяц назад

      1개만 저장이 되시나요~? 제가 코랩으로 다시 돌려보겠습니다~ 혹시 코드를 따로 수정한 건 없으시고 데이터만 바꾸셨다고 이해하면 될까요?

    • @teddynote
      @teddynote  Месяц назад

      안녕하세요! 답변이 늦었습니다. 방금 확인해 본 결과, JsonOutputParser 가 다수의 결과를 제대로 파싱해오지 못한 문제가 있어, 로직을 수정하여 커밋해 두었습니다. 아래 링크에서 확인하실 수 있습니다. 알려주셔서 감사합니다 :)
      링크:
      github.com/teddylee777/langchain-kr/blob/main/15-FineTuning/01-QA-Pair-GPT.ipynb

  • @HJ-jf4co
    @HJ-jf4co 4 месяца назад

    Colab에서 파인튜닝 중에 모델 훈련하기 > SFTTrainer 사용 구간에서 아래에러가 발생하는데 원인과 해결방법 알 수 있을까요..ㅠㅠ
    -> NotImplementedError: Cannot copy out of meta tensor; no data! Please use torch.nn.Module.to_empty() instead of torch.nn.Module.to() when moving module from meta to a different device.

    • @teddynote
      @teddynote  4 месяца назад

      혹시 코랩에 GPU 를 A100으로 설정이 되어 있는지 한 번 체크해 주세요~ 작은 거는 에러나더라구요~

    • @아아123-v9g
      @아아123-v9g 4 месяца назад

      @@teddynote 저도 위와 같은 에러가 반복되어서, Colab-Pro 로 변경 후 사용했는데, 이상하게 자꾸 L4 로 변경되거나 A100 선택이 잘되지 않았습니다. ㅜㅜ
      더 높은 결재 plan 을 사용해야 할까요 ㅠㅠ? 아니면, Colab 말고 다른 방법으로 위 파인 튜닝을 할 수 없는지 궁금합니다 ^^
      Colab 유료 결재 서비스 질이 너무 부족합니다.

  • @Younggoolee
    @Younggoolee 2 месяца назад +1

    갑자기 코랩에서 오류가 입니다. ㅠㅠ 모델 로드하는 소스에서 나기 시작하는데. 잘 되었는데. 왜 그럴까요 ㅠㅠ
    ImportError: Unsloth: If you are in Colab, we updated the top cell install instructions - please change it to below then press Disconnect Runtime and then Restart it.

    • @teddynote
      @teddynote  2 месяца назад

      안녕하세요! 최근에 unsloth 설치 업데이트가 되면서 의존성 문제가 생겨 이슈가 있더라고요 ㅜ 다음과 같은 방법으로 한 번 시도해봐 주세요
      1. unsloth 가이드 따라 설치(최신 노트북 가이드에 있는 설치 코드 참조)
      colab.research.google.com/drive/135ced7oHytdxu3N2DNe1Z0kqjyYIkDXp?usp=sharing#scrollTo=2eSvM9zX_2d3
      2.상단 런타임 - 세션 다시 시작
      3. 설치 필요 없이 바로 코드부터 실행

    • @Younggoolee
      @Younggoolee 2 месяца назад +1

      @@teddynote 감사합니다. 실행이 되네요. 성능은 한번 비교해봐야 겠습니다.

  • @joey1025ful
    @joey1025ful 4 месяца назад +1

    안녕하세요
    영상보며 따라하고 있는데
    ImportError Traceback (most recent call last)
    Cell In[11], line 1
    ----> 1 from unsloth import FastLanguageModel
    부분에서 계속 에러가 발생합니다
    unsloth 설치가 안되는거 같은데
    cuda: 12.1
    python: 3.9.0
    torch: 2.2.0+cu121
    사용 환경에서 unsloth를 어떻게 설치해야 하나요?

    • @teddynote
      @teddynote  4 месяца назад

      안녕하세요? 혹시 로컬 파이썬 가상환경에서 실행하시나요? unsloth 설치 코드가 자료 안에 들어가 있는데 설치가 제대로 되었는지 확인해 보시겠어요?

    • @joey1025ful
      @joey1025ful 4 месяца назад

      네 가상환경에서 하고있습니다

    • @teddynote
      @teddynote  4 месяца назад

      @@joey1025ful 설치하실 때 의존성이 많아서 여기 가이드 보고 버전 맞춰서 설치 진행해 주시는 것이 좋습니다~ 한 번 참고해 보세요!(cuda, torch, peft 버전)
      github.com/unslothai/unsloth

  • @Younggoolee
    @Younggoolee 3 месяца назад +1

    많은 도움을 받고 있습니다. 좋은 영상 감사합니다.
    올려주신 소스 코드 실행 중 에러가 발생하는데 해결책에 조언을 구합니다.
    파인튜닝 코드 실행 중 trainer_stats = trainer.train() 에서 나는 에러입니다.
    Unsloth: Untrained tokens found, but embed_tokens & lm_head not trainable, causing NaNs.
    실행환경은 Colab pro. GPU는 L4 할당받아 실행해 보았습니다.
    도움 부탁 드립니다.

    • @Younggoolee
      @Younggoolee 3 месяца назад

      아하.. 해결했습니다.
      우선 Colab pro 에서 A100할당을 받아야 하고 embed token과 lm head를 추가하면 오류가 나지 않고 모델도 잘 실행되었습니다.
      150개 연습삼아 만든 데이터로도 성능이 괜찮게 나오는 것 같습니다.

    • @vhxmtmfp
      @vhxmtmfp 3 месяца назад

      혹시 데이터셋 어떻게 만드셨는지 알수있을까요? 저도 데이터셋 만들어서 해보려고하는데 결과값이 이상하게 나와서요 ㅠㅠ

    • @teddynote
      @teddynote  3 месяца назад +1

      우선 한국어 파인튜닝 된 모델이 최근 업데이트 되면서 토크나이저 이슈가 있더라고요. 그래서 베이스 모델을 unsloth/llama-3-8b-bnb-4bit 로 돌려보시고요. GPU는 가용 가능하시다면 A100으로 돌려보세요^^

    • @Younggoolee
      @Younggoolee 3 месяца назад

      ​@@teddynote아하 그렇군요 답변 감사합니다

    • @Younggoolee
      @Younggoolee 3 месяца назад

      ​@@vhxmtmfp많이도 아니고 150개 샘플 문장에 gpt4로 답변을 라벨링하였구요
      한문장의 답변은 총4개가 나오게 했습니다
      테디님에서 알려준 것처럼 허깅에 데이터와 튜닝된 모델을 올려놓았습니다
      Younggooo/senti_data2