묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결프로젝트로 배우는 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할 수 있을 것 같은데 그것에 가능한지 궁금합니다.
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
이미지 데이터 학습 및 응답
안녕하세요 강사님먼저 훌륭한 강의 공유해주셔서 너무 감사합니다저는 지금 사내 위키를 크롤링해서 그 내용을 학습하고 이에 대한 내용을 GPT에게 질문했을 때 답변하는 챗봇을 개발하고 있습니다.가이드 문서에는 이미지 파일을 통한 예시와 함께 작성된 가이드 문서가 많은데 이를 어떻게 학습시키거나 이용자에게 뿌려줄 수 있을지 궁금합니다첨부된 GPT답변을 보시면 예제 스크린샷이라고 나오지만 제가 문제로 예상하는것은 위키가 로그인 된 사용자만 열람이 가능하기 때문에 이미지 링크 파일 또한 로그인되지 않은 상태에서는 접근이 불가능하기 때문입니다.혹시 답변에 도움이 될까 싶어 제가 구현한 단계를 마지막으로 질문 마치겠습니다크롤링(selenium)을 통해 wiki를 탐색하며 .txt파일로 긁어옵니다표 같은경우 강사님 조언대로 table -> markdowncode태그는 ```code``` 태그로 감싼다image데이터의 경우 src에서 파일 링크를 추출해서 text로 변환 (ex https://cdn.inflearn.com/public/files/courses/324145/9b8f6df3-8278-446f-b0da-394371126807/inflearn_python_07.png)DirectoryLoader로 파일들을 embedding해서 벡터화강의 따라가며 나머지 동일하게 구현
-
해결됨딥러닝 이론 + PyTorch 실무 완전 정복
Section 15 실습 중, lstm 클래스의 forward 함수 질문
안녕하세요, 먼저 좋은 강의 제공해 주셔서 감사하게 잘 듣고 있다는 감사 말씀 드리고 싶습니다.질문 사항은,수업 중 정의하신 lstm 클래스의 forward 함수를 아래와 같이 정의 하셨는데요,class LSTM(torch.nn.Module): def __init__(self, vocab_size, embedding_dim, hidden_dim, num_layers, n_classes) -> None: super(LSTM, self).__init__() self.vocab_size = vocab_size self.embedding_dim = embedding_dim self.embedding = torch.nn.Embedding(vocab_size, embedding_dim) self.lstm = torch.nn.LSTM(input_size=embedding_dim, hidden_size=hidden_dim, num_layers=num_layers, batch_first=True, dropout=0.2) self.fc = torch.nn.Linear(in_features=hidden_dim, out_features=num_classes) self.sigmoid = torch.nn.Sigmoid() def forward(self, x): x = self.embedding(x) x, (h_n, c_n) = self.lstm(x) x = torch.sum(h_n, dim=0) x = self.fc(x) return xforward 함수의 마지막 부분에서 fc를 통과한 x를 self.sigmod 함수에 통과 시키지 않고 return 하여도 되는건지 궁금합니다.
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
JSONLoader 관련 질문있습니다!
안녕하세요!강의를 듣고 docx를 가지고 RAG 설정하는 걸 배우고나서JSON파일을 가지고 RAG을 설정해보려고 하는데요, 이렇게 json을 로드하면 한글이 잘 출력이 됩니다.하지만, langchain의 JSONLoader를 이용해서 load and split을 하려고 하면해당 부분이 인코딩 되어 출력됩니다. 공식문서에서 해결방법을 찾지 못했는데, 혹시 강사님께서 해당 문제를 해결하는 방법에 대해서 알고 있으실까요?
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
docx에 표
안녕하세요! 강의 잘 듣고 있습니다강의에서 docx 내부의 표를 markdown으로 변경하셨던데,그러면 docx 문서를 전부 훑어서 모든 표를 markdown으로 일일이 수정해야할까요?혹시 좀 더 간편한 방법이 있는 건 아닌지 궁금하여 여쭤봅니다!
-
미해결프로젝트로 배우는 Python 챗봇 & RAG - LangChain, Gradio 활용
ffmpy 설치 실패, ChefBuildError
poetry add python-dotenv langchain langchain_openai gradio 입력하니 powershell에서 이렇게 나옵니다.ffmpy 설치 실패와 함께 ChefBuildError가 뜨는데 어떻게 해야 하나요?아래의 글은 제가 모두 시도해본 방법입니다. 그러나 해결되지 않았습니다. cache 삭제도 해봤습니다.-------------------------------------------------------해결 방법빌드 환경에 setuptools 설치setuptools가 현재 빌드 환경에 설치되어 있는지 확인하고, 설치되어 있지 않다면 설치합니다. 다음 명령어를 사용하여 setuptools를 다시 설치해보세요:pip install --upgrade setuptoolswheel 패키지 설치wheel 패키지도 설치되어 있어야 합니다. 아래 명령어로 설치해 보세요:pip install wheel패키지의 버전 확인ffmpy의 다른 버전을 시도해 볼 수 있습니다. ffmpy의 최신 버전이 문제를 해결할 수 있을지 확인해 보세요. 예를 들어, 최신 버전을 설치하려면:pip install ffmpypip install ffmpy==0.2.3
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
배포 마지막 에러가 발생하는데 왜 그럴까요?
안녕하세요!제가 파이썬 세팅을 처음해봐서 3.10으로 한것 같은데 정확하지 않습니다 ㅠㅠ우선 github repo는 private으로 해서 streamlit cloud에서 연결해서 사용중입니다.강의랑 똑같은 dot_env쪽 에러 발생해서pip freeze > requirements.txt 후 git commit 한 상태입니다.좋은 하루 되시고 답변 부탁드립니다.