묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
학습 중지 후 재학습 방법(autotrain 최신 버전)
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 최신버전에서는 재학습 시키는 방법이 변경되었을까요?
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
LLM이 답변하지 못함
코드도 동일하고 retrieved_docs 의 내용이 k값에 따라 강사님과 다르다고 쳐도,ai_message = qa_chain({"query": query})에서 LLM의 답변이{'query': '연봉 5천만원인 거주자의 소득세는 얼마인가요?', 'result': '해당 질문에 대한 정보는 주어진 문서에서 직접적으로 찾을 수 없습니다. 연봉 5천만원인 거주자의 소득세를 계산하려면 추가적인 세법 정보와 공제 항목 등을 고려해야 합니다. 정확한 소득세 금액은 세무 전문가나 관련 세무 계산기를 통해 확인하는 것이 좋습니다.'}이렇게 나오는건 뭔가 잘못된건가요?
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
답변에 Source 추가하기
안녕하세요 강사님답변에 마지막에 참고한 문서의 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는 반복문을 통해서 떠내는 방식으로 구현해보았는데 절대 올바른 방법은 아닌 것 같아서요..
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
Chroma 사용하여 vector db로 저장할때 오류
vscode에서 jupyter:restart kernel 했는데도 에러가 납니다.
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
모델 ID 오류가 발생했습니다.. ㅠㅠ
강의 시작하고 얼마 안돼서 오류가 발생하는 것을 확인할 수 있었습니다.음... 일단 GPT랑 커뮤니티에서 찾아보고는 있는데, 아직 해결되지 않았습니다...해당 문제로 인해서 에러가 발생하고 있습니다 ㅜ.ㅜ추가로 현재 커널 충돌 발생하는 부분 첨부 드립니다.다시 한번 추가 드립니다.아래 출력문에서 강사님은 (metadata={'source': './tax.docx'}가 없이 page_content가 출력이 되시는데 제가 docx 부분에서 잘못 스플릿 한 건가요..?
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
retrievalQA
retrievalQA에 대해 지속적인 오류가 발생하고 있습니다.해결을 위해서 create_Retrieval_chain을 사용해 보았지만 invoke부분에서 오류가 계속 발생 되고 있습니다.이를 해결 할 수 있는 방법이 있나요?
-
미해결프로젝트로 배우는 Python 챗봇 & RAG - LangChain, Gradio 활용
Tavily 검색 도구, CrewAI Sequential Agent 활용 방법 (실습) 수업자료.
안녕하세요! " Tavily 검색 도구, CrewAI Sequential Agent 활용 방법 (실습) "수업에서, dependencies를 제공된 수업자료에서 붙여넣으면 된다고 하셨는데, 제공된 수업자료에는 dependency 부분이 없습니다..수업자료는 test.ipynb밖에 없는데 해당 ipynb 파일에는 dependency 목록이 없어서 인강을 보고 tool poetry dependancies를 직접 쳐야 하는건지 난감한 상황이에요. 시간되실 때, 부디 회신 문의드립니다. 감사합니다.
-
해결됨딥러닝 이론 + PyTorch 실무 완전 정복
Normalization 질문
안녕하세요, 수업 설명 감사드립니다. cnn이 아닌 일반적인 fully connected NN (multi-layer perceptron) 에서 혹시 batch/instance/layer normalization 을 어떻게 계산하는지 설명을 부탁드려도 될까요 (그림으로 표현해 주시면 더 좋을거 같습니다.)MLP에서라면 small c가 특정 hidden layer의 node/unit에 대응될거 같고 large C가 layer 전체를 표현할거 같은데, H,W는 무엇인지 이해가 잘 되지 않습니다. 특히, MLP에서 instance normalization의 평균/분산을 구할 수가 있을지 궁금합니다 (단일 값 하나일거 같은데..)강사님께서는 어떻게 생각하시는지 알려주시면 감사드리며, 제가 잘못 이해한 부분이 있으면 코멘트 부탁드리겠습니다. 추가로 하나만 더 질문드리고 싶습니다.강의안에서 x_nhwc는 벡터일까요? 아니면 scalar 값일까요? Normalization의 경우에 feature간 (예, 인풋 변수) 평균도 구하는지, element-wise로 구하는지 궁금해서 여쭤봅니다.바쁘실텐데 시간내주셔서 미리 감사드립니다.
-
미해결프로젝트로 배우는 Python 챗봇 & RAG - LangChain, Gradio 활용
OPENAI_API_KEY 인식중에 에러가 발생하네요,
안녕하세요. .env에서 OPENAI_API_KEY 설정도 제대로 했어요. 실행시 이미지 같은 에러는 어떻게 해야 할까요? 혹시나 해서 openaai에서 api상태도 확인했는데 사용 가능 상태이거든요.
-
미해결모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
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 형태의 데이터가 아닌 다른 형태의 데이터로 학습시키는게 좋을까요?
-
해결됨딥러닝 이론 + PyTorch 실무 완전 정복
Section 7 [Activation Function의 종류] Softmax logit 분포와 Entropy 질문이 있습니다
안녕하세요 선생님해당 강의 마지막 참고사항: what is entropy 부분에서 Temperature가 낮을수록 softmax logit의 분포가 쏠리면 Entropy가 감소하게 되는 것이 아닌지 궁금합니다! 확인해주셔서 감사합니다!
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
create_retrieval_chain, Custom LCEL 을 사용해서 chain을 구성하면 코드가 어떻게 되는지 보고 싶습니다.
from langchain.chains import RetrievalQA qa_chain = RetrievalQA.from_chain_type( llm, retriever=database.as_retriever(), chain_type_kwargs={"prompt": prompt} ) 이 예제 코드에서 create_retrieval_chain, Custom LCEL 을 사용해서 chain을 구성한 코드를 보고싶습니다.
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
database.as_retriever 의 결과가 다릅니다.
코드가 똑같은데도 불구하고database.as_retriever 의 결과값이 다를 수 있을까요?as_retriever 함수에 최소 k=5을 넣어야 제55조 항목이 검색됩니다.tax_with_markdown.docx 파일은 제공해주신 파일이고혹시나 싶어서 pinecone index테이블도 삭제했다가 다시 생성해서 바로 찍은 결과입니다. 아래는 제 코드입니다.from langchain_community.document_loaders import Docx2txtLoader from langchain_text_splitters import RecursiveCharacterTextSplitter text_splitter = RecursiveCharacterTextSplitter( chunk_size=1500, # 각 텍스트 조각의 최대 크기 chunk_overlap=200, # 텍스트 조각 간의 중복 길이 ) # .docx 파일을 로드하고 텍스트를 분할. loader = Docx2txtLoader('./tax_with_markdown.docx') document_list = loader.load_and_split(text_splitter=text_splitter) document_list[52] from dotenv import load_dotenv from langchain_openai import OpenAIEmbeddings # 환경 변수를 로드합니다. load_dotenv() # OpenAI 임베딩 모델을 설정합니다. embedding = OpenAIEmbeddings(model='text-embedding-3-large') import os from pinecone import Pinecone from langchain_pinecone import PineconeVectorStore # Pinecone 인덱스 이름을 설정합니다. index_name = 'tax-markdown-index' # 환경 변수에서 Pinecone API 키를 가져옴 pinecone_api_key = os.environ.get("PINECONE_API_KEY") # Pinecone을 초기화 pc = Pinecone(api_key=pinecone_api_key) # from_documents()`를 사용하여 새 인덱스 생성 database = PineconeVectorStore.from_documents(document_list, embedding, index_name=index_name) query = '연봉 5천만원인 직장인의 소득세는?' retriever = database.as_retriever(search_kwargs={'k': 5}) retriever.invoke(query) 쿼리를 날린 결과를 찍어보면5번째에서 제55조가 나옵니다.아래는 결과값 일부입니다.[Document(metadata={'source': './tax_with_markdown.docx'}, page_content='나. 그 밖의 배당소득에 대해서는 100분의 14\n\n3. Document(metadata={'source': './tax_with_markdown.docx'}, page_content='차. 외국정부(외국의 지방자치단체와 연방국가인 외국의 지방정부 Document(metadata={'source': './tax_with_markdown.docx'}, page_content='1. 「공익신탁법」에 따른 공익신탁의 이익\n\n2. Document(metadata={'source': './tax_with_markdown.docx'}, page_content='저. 대통령령으로 정하는 복리후생적 성질의 급여\n\n4
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
확장프로그램 어떤거 쓰시나요?
사진처럼 어떤 파라미터가 들어가는지 보여주는 확장프로그램이 어떤건가요? 저는 Python, Jupyter, Pylance 확장프로그램이 설치되어 있습니다.
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
LangSmith로 평가시 0, 1 점수 대신 더 세분화된(예: 5단계) 점수 사용
오늘 라이브 강의 잘 들었습니다! 고맙습니다.LangSmith에서 rag-answer-vs-reference로 평가하는데 각 항목의 점수가 0,1로만 나와서 아쉽네요. 더 세분화된(예: 5단계) 점수로 평가하려면 어떻게 바꿔야 할지 궁금합니다. 그리고 실제로 사용하실 때 몇 단계 평가를 많이 쓰시나요?
-
미해결LLM 데이터 분석 - 웹 크롤링부터 추천 시스템까지
강의동영상이 잘못 업로드 된거 같아요
안녕하세요. 강의 듣던 중에 제목과 다른 영상이 있어서 문의 드려요.섹션 5 - 프로젝트 2"Youtube 동영상 댓글분석 - LLM 모델로 감성 분류 및 평점 예측" 동영상이"Youtube 상품 리뷰 영상에서 상품정보를 추출, 요약" 과 동일한 영상입니다.잘못 업로드 된거 같아요확인 부탁드립니다.
-
해결됨딥러닝 이론 + PyTorch 실무 완전 정복
Section 3 [실습] PyTorch로 구현해보는 Loss Function의 Cross Entropy 구현 관련하여 질문이 있습니다.
안녕하세요 선생님,batch_size = 16 n_class = 10 def generate_classification(batch_size=16, n_class=10): pred = torch.nn.Softmax()(torch.rand(batch_size, n_class)) ground_truth = torch.argmax(torch.rand(batch_size, n_class), dim=1) return pred, ground_truth def CE_loss(pred, label): loss = 0. exp_pred = torch.exp(pred) # 이 부분 관련 질문이 있습니다. for batch_i in range(len(pred)): for j in range(len(pred[0])): if j == label[batch_i]: print(pred[0], j) loss = loss + torch.log(exp_pred[batch_i][j] / torch.sum(exp_pred, axis=1)[batch_i]) return -loss / len(pred)CE loss를 구현하는 과정에서 exp_pred = torch.exp(pred) 행이 왜 필요한 것인지 궁금합니다!exp를 취해주는 이유는 모델의 출력값 logits에 exp를 적용해 각 클래스에 대한 예측값을 양수로 변환한다고 알고 있는데generate_classification위에서 이미 softmax를 취해서 확률분포로 변환해주기 때문에 음수 값은 나오지 않는데 왜 exp를 적용해주어야 하는지 모르겠어서 여쭤봅니다!
-
미해결LLM 데이터 분석 - 웹 크롤링부터 추천 시스템까지
LLM 기능 사용시에 라이브러리 에러 문제
안녕하세요, 선생님 강의 잘 듣고 있습니다.공유 해 주신 코드를 실행 할 때 LLM 기능 사용할 때 에러가 발생되서 실행이 되지 않습니다. 에러코드 첨부 드립니다. ---------------------------------------------------------------------------RateLimitError Traceback (most recent call last)Cell In[14], line 29 26 # Chain 27 llm_chain = prompt | llm | output_parser---> 29 response = llm_chain.invoke({"text": text}) 31 responseFile ~\miniconda3\envs\study\Lib\site-packages\langchain_core\runnables\base.py:2499, in RunnableSequence.invoke(self, input, config) 2497 try: 2498 for i, step in enumerate(self.steps):-> 2499 input = step.invoke( 2500 input, 2501 # mark each step as a child run 2502 patch_config( 2503 config, callbacks=run_manager.get_child(f"seq:step:{i+1}") 2504 ), 2505 ) 2506 # finish the root run 2507 except BaseException as e: 생략 ~ 해결 방법이 있을까요?
-
해결됨딥러닝 이론 + PyTorch 실무 완전 정복
Section 3의 [이론] Regression task의 Loss: L1, L2, Huber, Log Cosh Loss "미분가능"관련 에서 질문이 있습니다.
안녕하세요 선생님!Section 3의 [이론] Regression task의 Loss: L1, L2, Huber, Log Cosh Loss 에서 질문이 있습니다."미분 가능"에 대해서 궁금한 점이 있는데,MAE loss처럼 0에서 미분이 불가능 한 경우에는 gradient를 계산할 수 없는데 어떻게 해당 loss를 사용할 수 있는 것인가요?또 Huber loss는 한 번만 전 구간 한번만 미분가능하고,Log Cosh loss는 전 구간 2번 이상 미분가능하다고 말씀해주셨는데한 번만 미분 가능한 것보다 2번 이상 미분가능한 것의 장점이 무엇인가요?확인해주셔서 감사합니다!
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
R.A.G를 통한 구현의 Scope 문의
저는 R.A.G를 통한 LLM 챗봇을 개발을 하기위해 본 강의를 수강하기 시작했는데 너무 유읙합니다. 이럴 경우에도 embedding을 해서 R.A.G를 통해 retrieve가 가능한지 여쭤보고 싶어요.데이터 크롤링 (컬럼 중에 리뷰데이터)의 데이터를 전처리해서 바로 Embedding을 통해 vector database에 넣어서 RAG를 활용할 수 있나요?결과물에 대한 시나리오는 User가 챗봇에게 피부관련 사진 또는 문제에 대해서 고민을 입력하면 특정 논문 (강사님 강의에서 tax 파일과 같은 의미)을 기반으로 답변을 주게 되며 동시에 특정 쇼핑몰의 화장품의 리뷰들을 요약해주며 해당 제품을 추천하는 형태의 서비스입니다.지금 생각으로는 데이터크롤링을 통해 긁어온 모든 자료들을 embedding해서 RAG할 수 있을 것 같은데 그것에 가능한지 궁금합니다.