본문 바로가기
728x90

Study (Data Science)/NLP25

Langchain / Retriever 참고 : https://wikidocs.net/234016문맥 압축 검색기 ContextualCompressionRetriever검색 시스템에서 직면하는 어려움 중 하나는 데이터를 시스템에 수집할 때 어떤 특정 질의를 처리해야 할지 미리 알 수 없다는 점입니다.이는 질의와 가장 관련성이 높은 정보가 많은 양의 무관한 텍스트를 포함한 문서에 묻혀 있을 수 있음을 의미합니다.이러한 전체 문서를 애플리케이션에 전달하면 더 비용이 많이 드는 LLM 호출과 품질이 낮은 응답으로 이어질 수 있습니다.ContextualCompressionRetriever 은 이 문제를 해결하기 위해 고안되었습니다.아이디어는 간단합니다. 검색된 문서를 그대로 즉시 반환하는 대신, 주어진 질의의 맥락을 사용하여 문서를 압축함으로써 관련.. 2024. 5. 23.
Langchain / Splitter 참고: https://velog.io/@dlsrks0631/LangChain-3.-RAGLangChain - Text SplittersText Splitter는 토큰 제한이 있는 LLM이 여러 문장을 참고해 답변할 수 있도록 문서를 분할하는 역할이다.여러개의 문서를 더 작은 단위로 나눈 chunking을 통해 chunk들이 만들어지고 임베딩 벡터로 변환되는 과정을 거치고 사용자 질문을 하나의 임베딩 벡터로 수치화하는 과정을 거친다. 그것과 가장 유사한 수치를 벡터 스토어에서 찾고 이 임베딩 벡터에 해당하는 chunk와 사용자의 질문이 합쳐져서 최종 prompt가 완성되고 이 prompt를 통해 LLM이 답변을 한다. 또한 chunk 하나당 하나의 vector가 매칭이 된다. vector store안에 있.. 2024. 5. 23.
Langchain / Document_loader # pdf or docx를 확장자 기준으로 나눠 한번에 로드하는 코드from langchain_community.document_loaders import Docx2txtLoader, PyPDFLoaderfrom langchain.document_loaders import DirectoryLoaderdef doc_loader(file_path): _, file_ext = os.path.splitext(file_path) if file_ext.lower() == 'docx': txt_loader = DirectoryLoader(os.path.dirname(file_path), glob=os.path.basename(file_path), loader_cls=Docx2txtLoader) docu.. 2024. 5. 23.
데이터를 많이 줄래, 에포크를 많이 줄래? many data vs. many epochs 학습이 잘되게 하는 법은 데이터를 늘이거나, 에포크를 늘이거나.즉 학습할 지식이 많거나, 반복학습으로 잘 익히거나.지식을 더 때려 넣을것이냐 vs 학습을 더 많이 시킬것이냐.정답은? 지식을 많이 주고, 에포크를 낮추는게 더 좋았다.(N = data 수, D = diversity. 10개로 1번 학습하면 d=1, 10번 학습하면 d=0.1) 그럼 데이터셋을 확장하려고 한다면, 어떻게 다양성을 증가시킬 수 있는가? 더 다양한 소스에서 데이터를 수집하거나, 다양한 언어로 수집하거나, 라벨링된 데이터를 추가로 수집하거나, 데이터셋 내의 불균형 문제를 해결해서 특정 클래스에 치우치는 것을 줄이거나, 혹은 생성모델이나 코드로 augmentation할 수 있다.하지만 우.. 2024. 5. 21.
PDF file - RAG 0. 라이브러리 및 모듈 임포트!pip install docx==0.2.4!pip install langchain==0.1.16!pip install langchain_community==0.0.32!pip install langchain_core==0.1.42!pip install langchain_openai==0.1.3!pip install numpy==1.23.5!pip install pandas==2.2.2!pip install faiss-cpu doc2txt pypdf langchain_pineconefrom langchain_community.document_loaders import Docx2txtLoader, PyPDFLoaderfrom langchain.document_loaders i.. 2024. 5. 21.
프롬프트 엔지니어링 Book Summary (저자: 반병현) 개념 정리 프롬프트 컴퓨터가 사용자에게 보여주는 문구 프롬프트 엔지니어링 AI가 사용자에게 보여주는 응답을 잘 할 수 있게 엔지니어링 하는 것 가스라이팅이나 제일브레이크 시도 역시 우리 입맛에 맞도록 AI의 응답을 수정하기 위한 것 (단순하게 질문 잘하는 방법이 아님) 태스크 프롬프트 (Task Prompt) AI에게 업무를 지시하는 것. 평문형 태스크 프롬프트 "아재개그는 즐거워" 영어로 번역해줘. 하이퍼파라미터형 테스크 프롬프트 Task: translation (Korean->English) "아재개그는 즐거워" 이 외에도 인코더기반 Task: 요약, 분석, 감정분석 디코더기반 Task: 텍스트확장 (한두문장 주고 이 문장을 토대로 확장된 작문작업 하는것) 아주 잘함. 특히 요약은 어텐션 주력분야라 .. 2023. 12. 6.
Transformer까지의 모델들 5분에 정리하기 (word2vec / seq2seq / attention) word2vec 인코더만 붙여놓은 상태 빈칸맞추기, 어울리는 단어 찾기 할 . 수있음 seq2seq 인코더와 디코더를 붙였음 단어가 아닌 문장의 의미를 이해하여 latent space에 매칭시켜 디코더로 다른언어 번역이 용이 latent space 의 크기가 고정되어있다는 한계가 있었음 인코더의 성능이 좋아지면, AI의 이해력이 좋아지고, 디코더의 성능이 좋아지면, AI의 표현력이 좋아진다. 그럼, 그냥 인코더를 여러개 쓰고, 디코더를 여러개쓰면 이해력과 표현력이 좋아지지 않을까? 어텐션 넣어서? 잠깐, Attention이란? rough하게 그려보면, 우리나라 사람들은 너무 잘 이해할 수 있음. I'll book the hotel within 3 days. 1.2. 3. 4. 5. 6. 7. 8. 나는 .. 2023. 12. 6.
BERT 2023. 3. 22.
Transformer 4 - GPT / BERT / 그 외 파생모델들 GPT(Generative Pre-trained Transformer) 언어모델(Language Model) 마지막 단어를 생성해내는 것을 잘해서 문장 생성에 뛰어남 단방향 attention을 사용 Transformer의 Decoder를 사용 BERT(Bidirectional Encoder Representations from Transformers) 마스크 언어모델(Masked Language Model) 문장 중간의 빈칸에 들어갈 단어를 잘찾아서 문장의 의미를 추출하는데 뛰어남 양방향 attention을 사용 Transformer의 Encoder를 사용 https://ratsgo.github.io/nlpbook/docs/language_model/bert_gpt/#gpt BERT & GPT prati.. 2023. 3. 14.
Transformer 3 - Residential Add / Normalization Residual Connection 2015 ResNet에서 소개된 잔차연결을 적용함. ResNet 잠깐 알아보기 Q9. 상식적으로 56개의 레이어를 갖는 네트워크는 20개의 레이어를 갖는 네트워크보다 성능이 좋아야 합니다. 하지만 그렇지 않았죠! 이유가 무엇인가요? >>네트워크가 깊어질 수록 Optimize(Train)하는 것이 어렵기 때문에, 얕은 네트워크가 더 좋은 성능을 보이게 된다. Q10. Residual Block은 굉장히 간단한 수식으로 표현이 가능합니다. 수식을 적어보세요. >>y = f(x) + x https://itrepo.tistory.com/36 (7) ResNet (Residual Connection) ResNet (2015)¶ ResNet은 2015년도 ILSVRC 에서 우승을.. 2023. 3. 14.
728x90