전체 글 55

[논문]QLoRA: Efficient Finetuning of Quantized LLMs

LLM Fine-Tuning에 대해 찾아보다 QLoRA를 접한 후 공부가 필요하다 느껴 관련 논문을 리뷰해보고자 한다하지만 그 전에 'Quantization' 양자화에 대한 것도 공부해야 한다...(역시 공부는 공부를 부르고...)들어가기에 앞서..※ Quantization 양자화정확하고 세밀한 단위의 입력값 → 단순화한 단위값(경량화)즉, 정보를 표현하는 데 필요한 비트의 수를 줄여주는 것ex) 인공신경망에서, 가중치 매개변수(weight) & 활성 노드 연산(activation function) 양자화      → lower-bit의 수학연산 & 신경망 중간 계산값 양자화 ※ 장단점메모리 액세스↓ 연산량↓ 전력 효율성↑but 압축되는 과정에서 채널의 수가 줄어드는 만큼 정보가 손실됨정확도가 기존 모델..

Coding/Study 2024.08.22

[AI]RAG 기본 이론&실습(3)

https://hoooa.tistory.com/67 [AI]RAG 기본 이론&실습(2)https://hoooa.tistory.com/65 에서 정리했던 RAG의 기본 파이프라인(Data Load, Text Split, Indexing, Retrieval, Generation)을 한층 자세하게 들어가보자~ [AI]RAG 기본 이론&실습(1)RAG에 대해선 이전에 아주 짧게 다뤄hoooa.tistory.com에 이어서  마지막 RAG 정리글!4. Vector Store임베딩 벡터를 효육적으로 저장&검색하는 시스템(DB) - 벡터 저장: 고차원 임베딩 벡터(텍스트/이미지/소리 등)를 처리 가능한 데이터 저장 구조 필요- 벡터 검색: 저장벡터 중 사용자 쿼리에 가장 유사한 벡터를 찾는 과정, ex) 코사인 유사..

Coding/Study 2024.08.05

[error]ModuleNotFoundError: No module named 'pillow_heif'

https://hoooa.tistory.com/67 에서 UnstructuredPDFLoader 실습하던 중 만난 오류,,from langchain_community.document_loaders import UnstructuredPDFLoaderpdf = '/content/drive/MyDrive/재정정보경진대회/data/train_source/1-1 2024 주요 재정통계 1권.pdf'loader = UnstructuredPDFLoader(pdf, mode='elements')pages = loader.load()print(len(pages))pages[20].page_content[:10]pillow_heif 처음 들어보는 모듈인데 뭘까..찾아봐도 모르겠던 와..

Coding/Study 2024.08.01

[AI]RAG 기본 이론&실습(2)

https://hoooa.tistory.com/65 에서 정리했던 RAG의 기본 파이프라인(Data Load, Text Split, Indexing, Retrieval, Generation)을 한층 자세하게 들어가보자~ [AI]RAG 기본 이론&실습(1)RAG에 대해선 이전에 아주 짧게 다뤄봤어서 공부가 필요한 상황,,,경진대회 문제라도 제대로 풀려면 해야된다 아자아자!!! (이제는 더 이상 물러설 곳이 없다)  https://hoooa.tistory.com/58에 이어서 Langhoooa.tistory.com 1. Data Load불러오고자 하는 데이터의 형태에 따라 다양한 Document Loader를 활용할 수 있음!웹 문서 WebBaseLoader 특정 웹 페이지에서 문서를 가져오기import b..

Coding/Study 2024.08.01

[AI]RAG 기본 이론&실습(1)

RAG에 대해선 이전에 아주 짧게 다뤄봤어서 공부가 필요한 상황,,,경진대회 문제라도 제대로 풀려면 해야된다 아자아자!!! (이제는 더 이상 물러설 곳이 없다)  https://hoooa.tistory.com/58에 이어서 LangChain과 관련된 RAG를 공부 및 실습해보고자 한다! 코드를 크게 변경하지 않고도 모델 교체/대체 가능≫ 언어모델 용도" data-og-host="hoooa.tistory.com" data-og-source-url="https://hoooa.tistory.com/58" data-og-url="https://hoooa.tistory.com/58" data-og-image="https://scrap.kakaocdn.net/dn/bWidDH/hyWKJ63dRE/Mntw8oAFa..

Coding/Study 2024.08.01

[error]ValidationError: 1 validation error for ChatOpenAI

https://wikidocs.net/231375 랭체인 LLM 실습 도중 오류 발생Parameters {'presence_penalty', 'frequency_penalty', 'stop'} should be specified explicitly. Instead they were passed in as part of `model_kwargs` parameter. (type=value_error)# LLMfrom langchain_openai import ChatOpenAIparams = {# 기본 파라미터 "temperature": 0.7, "max_tokens": 100,}kwargs = {# 선택 파라미터 "frequency_penalty": 0.5, "presence_pena..

Coding/Study 2024.08.01

[AI]LangChain 기본 이론&실습(3)

LangChain이 제공하는 언어 모델 두 가지 ※ LLM단일 요청에 대한 복잡한 출력 생성 ex) 문서 요약, 질문 답변 생성, etc텍스트 문자열 in → 텍스트 문자열 out+표준화된 인터페이스 → 다양한 LLM 제공 업체 간 호환성 → 유연한 모델 전환/다중 LLM 통합 가 ※ ChatModel사용자와의 상호작용을 통한 연속적 대화 관리 ex) 챗봇메시지 리스트 in → 하나의 메시지 out대화의 맥락을 유지하며 적절한 응답 생성+다양한 모델 제공 업체/작동 모드※ LLM 모델 파라미터-Temperature: 생성된 텍스트의 다양성 조정- Max Tokens: 생성할 최대 토큰 수(텍스트 길이 제한)- Top P(Probability): 생성 과정에서 특정 확률 분포 내 상위 P% 토큰만 고려- ..

Coding/Study 2024.07.31

[AI]LangChain 이론&실습(2)

※ 프롬프트사용자와 언어 모델 간의 대화 속 질문/요청 형태의 입력문→ 프롬프트 템플릿 중요 ※ 작성 원칙- 명확성&구체성: 질문이 모호해서는 안 됨- 배경 정보 포함: 문맥을 이해할 수 있도록 정보 제공 → Hallucination↓ 응답 관련도↑- 간결성: 불필요한 정보 B, 최대한 간결하게 G- 열린 질문: 예/아니오 B, 많은 정보를 제공받을 수 있도록 열린 질문 G- 명확한 목표: 얻고자 하는 정보/결과를 정확하게 정의- 언어/문체: 맥락에 적합하게  ※ 프롬프트 템플릿(PromptTemplate)단일문장 or 간단한 명령 == 문자열 기반"langchain_core.prompts" 모듈의 "PromptTemplate" 클래스 사용PromptTemplatefrom langchain_core.pr..

Coding/Study 2024.07.31