안녕하세요. langChain을 쓰지 않고 수동으로 split하는 부분 보여주시던 부분 관련해서 질문드립니다. 질문1. encode후에 chunk 묶고 다시 decode하는이유가 무엇인가요? 그냥 encode하지 않고 적절히 묶어 잘라도 되지 않나 싶은 생각을 했는데요. 그냥 text 기반으로 chunk를 묶어버리기만 하면 별로 의미있게 잘리지 않기때문이다..로 이해해야할까요? 질문2. 인코딩하면 해당 텍스트 token이 숫자로 변환되는것같던데요. 그 숫자가 정말 텍스트의 의미를 대체하여 의미를 갖게 되는건지? 아니면 그냥 키:값으로 저장시키고 그 키값으로 참조할수있게 바꿔놓는다는 의미인건지? 가 궁금합니다.
안녕하세요 강의에서는 docx문서를 활용해서 강의를 해주셨는데, 보니깐 langchain에서 PDF, 엑셀, json 등도 지원하여 활용할 수 있는 것 같았습니다. 문의 내용은, 공공데이터의 API 연동을 한 XML 파일 데이터를 pinecone에 저장 없이 학습시킬 수 있는지 문의드립니다!!
안녕하세요! 좋은 강의 너무 감사드립니다. 강의를 복습 차원에서 다시 한번 듣고 있는데, 몇가지 개선을 해보려고 합니다. 그중에서 채팅 답변 속도를 조금 더 빠르게 해보려고 하는데(몇번 사용을 해보는데 답변 생성 시간이 긴 것 같은 생각이 드네요), 혹시 추천해주실 방안이 있을까요?
안녕하세요, 우선 좋은 강의 만들어주셔서 감사하다는 말씀 먼저 드립니다. 조그마한 회사에 재직 중인 신입 개발자입니다. AI를 분야를 다루는 것은 처음이라 백그라운드 지식이 전혀 없는 상태임을 양해 부탁드립니다. 현재 강의를 완강하지는 못했지만, 질문이 있습니다. 저 말고 다른 분도 질문을 올리신 거 같긴 한데, 제가 궁금한 것은 현재 외부에 공개되는 것에 민감한 자료에 대해 llm이 잘 답변하는 것을 목표인 프로젝트를 맡게 되었는데요, 민감한 정보이다 보니, 클라우드 서버를 사용하지 않고, 직접 서버를 구매할 예정이라고 들었습니다. openAI의 api와 같은 외부 api 사용도 어려울 것으로 생각 됩니다. (외부 api를 사용해 rag를 구성하는 것에 대해서 민감하게 생각하시는 거 같습니다) 그래서 저와 같은 상황일 때는 임베딩 부분이나 vectorDB 구성을 어떻게 하는 것이 좋을까요? llm 모델은 llama3를 활용하면 문제가 없을 거 같은데, 정말 중요한 임베딩과 vectorDB 구성에서 고민이 많습니다. vectorDB는 AWS를 활용하지 않는 Chroma를 이용한다고 하더라도, 임베딩을 어떤 것을 사용하면 좋을지 고민이 됩니다. 감사합니다.
Langchain에서 제공해주는 rag-prompt 기능에 대해 설명해주셨는데요 하나 궁금한게 LLM마다 prompt의 처리도 다를 것으로 생각되는데 prompt를 잘 만들어주는게 langchain 내부적으로 사용한 target model에 맞추어 최적화해주는건가요 ? 아니면 서로 다른 LLM이더라도 공통적으로 최적화된 prompt가 존재할 수 있는건가요 ?
안녕하세요 4.3 강의를 기준으로 chat.py , llm.py 코드를 완료하여 chat.py 실행 시 위와 같이 bad request 오류가 나오는 데 원인을 모르겠습니다. 코드 오류는 아닌거 같은데 원인을 알 수 있을까요??? upstage 사용 중이고 pinecone 설정도 4096으로 하였습니다.
강사님, 본 강의 들으면서 정말 많은 도움을 받고 있습니다. normalization 에 대해서 이렇게 상세하게 설명해 준 온라인 강의는 본 적이 없네요 🙂 CNN 을 기반으로 하되 모델 파라메터도 엄청 크고, 데이터셋 크기도 매우 큰 경우, 예를 들어 3D Unet 을 구성해서 3차원의 고해상도 (256 x 256 x 256) 이미지를 input 과 output 으로 사용하다보니 GPU 메모리를 너무 많이 잡아먹어서 batch 에 복수의 샘플을 적용하지 못하고 하나의 batch 에 단일 샘플만 적용하는 경우를 study 하고 있는데요, BatchNormalization 을 적용했을 경우 오히려 학습이 잘 안 되는 것 같아서 Normalization layer 를 야예 제거한 후 모델 학습 진행 중이었습니다. 경험적으로 했던 것이었지만 본 강의를 보다 보니 그 이유가 조금 이해가 되기도 하는데요, 이와 같이 batch size 가 극단적으로 작은 경우에 Normalization layer 을 적용 안하는게 더 좋을 수 있나요? 혹은 설명해 주신 table 에 나와 있는 것 처럼 Group Normalization layer 나 Instance Normalization을 적용하는 것이 개념적으로 더 나은 방법일까요? (설명을 들었을 때는 Group Normalization 을 적용하는 것이 필요한 상황으로 이해가 되기도 하는데.. 제가 이해한 것이 맞는지 확인 부탁드립니다 ^^;) 그리고 Group Normalization 에서 "Group" 의 의미가 무엇인지 잘 와닿지가 않아서 (Batch 나 Width, Height, Sample Number 이외에 그룹이 될 수 있는 경우가 무엇인지가 잘 이해가 되지 않습니다.) ... 요 부분에 대해서 좀 더 설명해 주시면 감사드리겠습니다!
안녕하세요 강의를 따라 하나씩 실습해보고 있습니다. 사내의 데이터를 이용하여 RAG를 구현하고 있는중입니다. 질문은 추후 사내에 적용시킬때 chatGPT모델을 사용한다면 관련 내용이 외부 GPT로 전이될 가능성이있을까요? 가지고 있는 DB에서 어떤 개인의 정보를 요구했을때 보안상의 이유로 제공을 해주지 않는다고 답변이 나옵니다. 해결할 수 있는 방법이 있을까요?
모두를 위한 대규모 언어 모델 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 최신버전에서는 재학습 시키는 방법이 변경되었을까요?
코드도 동일하고 retrieved_docs 의 내용이 k값에 따라 강사님과 다르다고 쳐도, ai_message = qa_chain({"query": query}) 에서 LLM의 답변이 {'query': '연봉 5천만원인 거주자의 소득세는 얼마인가요?', 'result': '해당 질문에 대한 정보는 주어진 문서에서 직접적으로 찾을 수 없습니다. 연봉 5천만원인 거주자의 소득세를 계산하려면 추가적인 세법 정보와 공제 항목 등을 고려해야 합니다. 정확한 소득세 금액은 세무 전문가나 관련 세무 계산기를 통해 확인하는 것이 좋습니다.'} 이렇게 나오는건 뭔가 잘못된건가요?
안녕하세요 강사님 답변에 마지막에 참고한 문서의 source를 남겨 신뢰도를 올리려 합니다. prompt를 다음과 같이 추가했습니다 1. 모든 답변에는 직접적으로 참조한 자료의 목록을 추가해야 합니다. 최종 답변에 관련이 없는 자료는 제외합니다. 2. 답을 모를 경우 답을 지어내지 말고 [정확한 답을 찾을 수 없지만, 다음 링크를 확인해 보시기 바랍니다] 라고 말한 뒤 자료 링크를 목록으로 추가합니다. 문제는 출처를 남길 때 AI가 참고한 자료를 남길 때도 있지만 AI가 존재하지 않는 source를 문서내의 링크나 내용과 조합해서 만들어내는 일종의 hallucination이 발생하는 것 입니다 ( 정확한 원인은 모르겠습니다 ) 따라서 prompt 말고 직접 data에서 pick(answer)를 하지 않고 content속 metadata : souce를 꺼내고자 하는데 강의에서의 stream으로 응답주기 전에 answer 하단 부에 [출처 : 1. aaa, 2. bbb] 하기 위해서는 chain을 수정해야 할 까요? 지금으로서는 ai_response = final_chain.pick("answer").stream( { "question": user_message }, config={ "configurable": {"session_id": "abc123"} } ) ai_resource = final_chain.pick("context").invoke( { "question": user_message }, config={ "configurable": {"session_id": "abc123"} } ) 이렇게 두번 호출해서 resource는 반복문을 통해서 떠내는 방식으로 구현해보았는데 절대 올바른 방법은 아닌 것 같아서요..
강의 시작하고 얼마 안돼서 오류가 발생하는 것을 확인할 수 있었습니다. 음... 일단 GPT랑 커뮤니티에서 찾아보고는 있는데, 아직 해결되지 않았습니다... 해당 문제로 인해서 에러가 발생하고 있습니다 ㅜ.ㅜ 추가로 현재 커널 충돌 발생하는 부분 첨부 드립니다. 다시 한번 추가 드립니다. 아래 출력문에서 강사님은 (metadata={'source': './tax.docx'}가 없이 page_content가 출력이 되시는데 제가 docx 부분에서 잘못 스플릿 한 건가요..?