DACON AI Competition - 재정정보 AI 검색 알고리즘 경진대회
중앙정부 재정 정보에 대한 검색 기능을 개선하고 활용도를 높이는 질의 응답 알고리즘 개발
source pdf 마다 Vector DB 를 구축한 뒤 langchain 리이브러리와 llama-2-ko-7b 모델을 사용하여 RAG 프로세스를 통해 추론하는 과정을 담고 있다.
PDF 문서 추출 과정
7월 31일 (수) , [Feat] 베이스코드 테스트 By 김건우 모델 자체는 큰 편, PDF 문서 추출할 때, 청크 조절하고 Vector DB 어떻게 구축할 지 고려한다. 결론적으로, 문서 검색 그리고 문서 추출 부분을 어떻게 할지 결정해야 함 => PDF 파일 추출 시, 청크 크기를 문단 단위로 추출 해볼 것.
8월 1일 (목) https://bcho.tistory.com/1404 해당 문서에 따르면 LLM 모델 자체는 입력 벡터가 큰편이다. -> 페이지를 넣는게 오히려 정확도 측면에 우수 할 수있다. 하지만, 이외로 시나리오에 따라 여러 청킹 기법이 유리할 수 있는데 본 문서에는 그러한 기법이 나와있다. (확인해 볼 것)
해당 글에서는 텍스트 검색(FTS)을 통해서 검색된 문서 + 임베딩 검색(벡터 서치)을 통해서 검색된 문서를 합해서 정확도를 랭킹한 후에, 그 결과를 프롬포트에 활용하는 방식.
이 때, 2가지 서치 결과를 합쳐햐 하는데 이 방법을 Ensemble 이라고 한다. Ensemble 에는 크게 Begging 과 Boosting 방식이 있다. FTS + 벡터 서치를 결합 할때, Boosting 알고리즘을 활용하는 것이 좋다. https://bcho.tistory.com/1354#comment14704807 -> Boosting 문서
8월 18일 (일) 요약 : 임베딩 성능을 어떻게 증가할 것인가? Langchain => PDF 추출, LLAMA 모델 자체가 입력 프롬프트 사이즈가 크기 때문에 Chuck 를 크게해도 상관이 없음
Embedding => 추출한 청크를 AI 에 맞게 수치화 *** 임베딩 성능을 어떻게 증가할 것인가?
=> sentence_transformers 라이브러리 사용하여 임베딩을 생성
텍스트 전처리 공백, 특수 문자 제거
FAISS 라이브러리 파라미터 변경 nlist : 데이터셋을 나눌 클러스터의 개수 nprobe : 탐색할 클러스터의 개수를 지정
6 commits
Jupyter Notebook
98.2%
Python
1.8%
DACON AI Competition - 재정정보 AI 검색 알고리즘 경진대회
중앙정부 재정 정보에 대한 검색 기능을 개선하고 활용도를 높이는 질의 응답 알고리즘 개발
source pdf 마다 Vector DB 를 구축한 뒤 langchain 리이브러리와 llama-2-ko-7b 모델을 사용하여 RAG 프로세스를 통해 추론하는 과정을 담고 있다.
PDF 문서 추출 과정
7월 31일 (수) , [Feat] 베이스코드 테스트 By 김건우 모델 자체는 큰 편, PDF 문서 추출할 때, 청크 조절하고 Vector DB 어떻게 구축할 지 고려한다. 결론적으로, 문서 검색 그리고 문서 추출 부분을 어떻게 할지 결정해야 함 => PDF 파일 추출 시, 청크 크기를 문단 단위로 추출 해볼 것.
8월 1일 (목) https://bcho.tistory.com/1404 해당 문서에 따르면 LLM 모델 자체는 입력 벡터가 큰편이다. -> 페이지를 넣는게 오히려 정확도 측면에 우수 할 수있다. 하지만, 이외로 시나리오에 따라 여러 청킹 기법이 유리할 수 있는데 본 문서에는 그러한 기법이 나와있다. (확인해 볼 것)
해당 글에서는 텍스트 검색(FTS)을 통해서 검색된 문서 + 임베딩 검색(벡터 서치)을 통해서 검색된 문서를 합해서 정확도를 랭킹한 후에, 그 결과를 프롬포트에 활용하는 방식.
이 때, 2가지 서치 결과를 합쳐햐 하는데 이 방법을 Ensemble 이라고 한다. Ensemble 에는 크게 Begging 과 Boosting 방식이 있다. FTS + 벡터 서치를 결합 할때, Boosting 알고리즘을 활용하는 것이 좋다. https://bcho.tistory.com/1354#comment14704807 -> Boosting 문서
8월 18일 (일) 요약 : 임베딩 성능을 어떻게 증가할 것인가? Langchain => PDF 추출, LLAMA 모델 자체가 입력 프롬프트 사이즈가 크기 때문에 Chuck 를 크게해도 상관이 없음
Embedding => 추출한 청크를 AI 에 맞게 수치화 *** 임베딩 성능을 어떻게 증가할 것인가?
=> sentence_transformers 라이브러리 사용하여 임베딩을 생성
텍스트 전처리 공백, 특수 문자 제거
FAISS 라이브러리 파라미터 변경 nlist : 데이터셋을 나눌 클러스터의 개수 nprobe : 탐색할 클러스터의 개수를 지정
6 commits
Jupyter Notebook
98.2%
Python
1.8%