랭체인 파라미터
https://littlefoxdiary.tistory.com/124
https://huggingface.co/spaces/upstage/open-ko-llm-leaderboard
- 찾아보니, HuggingFace LLM leaderboard 한국어 embedding에 특화된 모델이 있음
- chunk_size, chunk_overlap 방법
중요성 : 문서를 나눠 chunk별로 처리, 긴 문서를 그냥 나누면 정보 상실 될 수 있음. 따라서 chunk를 나눌 때 독립적으로 의미를 갖도록 나눠야 한다.
langchain이 제공하는 최적 크기 결정 방식이 있음. (1) 단순하게 나누기(CharacterTextSplitter) (2) 문자 단위로 나누기 - separator : 특정 문자열을 기준으로 나눌 수 있음 (비워두면 각 글자를 기준으로 분할) - (*중요) chunk_size : 청크의 길이 - (*중요) chunk_overlap : 청크 사이에 중복으로 포함될 문자 수 - length_function : 청크의 길이를 계산하는 함수 -> python의 len함수 사용.
-> chunk_size, chunk_overlap 잘 입력하면 텍스트의 의미적 연속성 유지하면서도 작은 단위로 분할 가능.(3) 의미적으로 나누기(RecursiveCharacterTextSplitter) : seperator를 굳이 지정하지 않아도 잘 나눠줌. (['\n\n', /\n', '', "]) 문자 순서대로 사용하여 텍스트 분할 -> 분할된 청크들이 chunk_size 보다 작아질 때까지 반복.
*** 현재 수집한 리뷰 데이터의 특징**
- 한국어.
- 리뷰의 길이가 제각각.
- 글의 의미가 명확히 드러남.
*** 적합해 보이는 파라미터**
- 한국어 -> 한국어에 특화된 HuggingFace 의 embedding 모델 쓰면 좋을 듯합니다.
- 리뷰의 길이가 제각각 -> chunk_size의 설정이 중요할 것 같습니다. 리뷰의 길이를 python len함수로 출력하고, 가장 긴 리뷰의 길이를 기준으로 설정하면 되지 않을까요?
- 글의 의미가 명확히 드러남 -> chunk_overlap의 설정이 중요할 것 같습니다. chunk간 일관성을 유지하기 위한 파라미터이지만, 애초에 글의 의미가 명확히 나타나는 텍스트리뷰라면, chunk_overlap은 낮게 설정해도 되지 않을까요?
LLM을 효과적으로 사용할 수 있도록 돕는 프레임워크. 다양한 데이터 소스와 통합을 지원
주요 기능
랭체인을 활용한 리뷰 라벨링을 위한 과정
https://velog.io/@ji1kang/랭체인LangChain과-함께-LLM-활용하기-1-프롬프팅-인풋아웃풋-포맷팅-작업-줄이기
랭체인 라벨링을 위한 방법 https://everyshare.co.kr/langchain-embeddings/
Embedding 방법
: 임베딩은 텍스트 데이터를 벡터 형태로 변환하여 머신 러닝 모델이 이해할 수 있게 함. LangChain에서는 다양한 임베딩 모델을 지원
Amazon : e-커머스 데이터와 사용자 리뷰에 최적화. 상품 설명과 리뷰 사이의 상관관계를 파악하는 데 뛰어난 능력을 보이며, 추천 시스템과 검색 엔진 최적화에 주로 사용
HuggingFace : 매우 정교한 언어 이해를 필요로 하는 작업에서 주로 활용 -> Hugging Face Inference API를 통해 임베딩 모델에 접근 가능 → 한국어에 특화된 모델을 가져오면 되지않을까싶음
https://teddylee777.github.io/huggingface/bert-kor-text-classification/
ko-sbert-nli : 자연어 추론(Natural Language Inference, NLI) 작업에 적합하도록 튜닝. 이는 한국어 문장이나 문단의 의미를 벡터화하는 데 특화