
--- README.md
+++ README.md
... | ... | @@ -1,10 +1,11 @@ |
1 | 1 |
# RAG-minimal-example |
2 | 2 |
모든것에 On-Premise에서 작동하는 Retrival Argmented Generation의 최소 예제입니다. |
3 |
-회사내의 워크스테이션에서 작동하는 vLLM서버를 통하여 언어모델을 작동하고, 개인 컴퓨터에서 임베딩 모델이 작동됩니다. |
|
3 |
+회사내의 워크스테이션에서 작동하는 vLLM서버를 통하여 언어모델을 작동하고, 개인 컴퓨터에서 임베딩 모델이 작동됩니다. 따라서 서버가 닫혀있으면 작동하지 않습니다. 이 경우 윤영준 주임에게 요구하여 서버를 다시 여는 방법, 그리고 원한다면 코드를 조금만 수정하여 OpenAI 나 Claude등의 api를 사용하거나, 심지어는 LlamaCPP를 통한 완전한 로컬 LLM 구동이 가능합니다. 자세한 내용은 LLAMA INDEX 개발 문서를 참조해주세요. |
|
4 |
+ |
|
4 | 5 |
vector db 는 postgresql 의 extension인 pgvector를 사용하고 있으며 이에 대한 설치 방법은 해당 프로젝트 github 페이지를 참고하시길 부탁드립니다. https://github.com/pgvector/pgvector |
5 | 6 |
데이터 베이스 설정은 db_config.json을 수정하여 진행합니다. |
6 | 7 |
data 폴더에 넣고 싶은 파일(pdf, word, hwp)를 넣고 document_embedding.py를 실행하면 서버위에 data 폴더 안에 있는 파일의 텍스트를 모두 임베딩합니다. 실행시마다 설정된 table을 리셋하고 새로 임베딩을 빌드하는 방식이기 때문에 파일이 많으면 오래 걸릴 수 있습니다. vector db의 특성상 하나의 새로운 element를 삽입하면 search tree를 다시 지어야 하기 때문에 프로토타입단계에서는 이것으로 마무리하고, 차후 Cassnadra 5.X로 넘어가 고도화 할 계획입니다. (PG vector는 임베딩을 relational 처럼 다룰 수 있게 하지만, 이때문에 상당한 성능의 희생을 감수하였습니다.) |
7 | 8 |
또한 document_load_embedding.py 는 새로 임베딩을 실행하지 않고 vector db에서 임베딩을 불러와 검색하는 방식입니다. |
8 | 9 |
기본 설정된 embedding 파일은 한국어를 지원합니다. LLM(Mixtral)또한 한국어를 지원하지만 때때로 영어로 대답하는 문제가 있으며 이는 LLAMA INDEX상에서 기본적으로 하고 있는 프롬프트 엔지니어링이 모두 영어여서 그럴 수 있습니다. (이 문제는 gpt3.5-turbo도 가지고 있는 문제입니다) |
9 | 10 |
또한 Mixtral의 근본적인 한계로써, 영단어의 한국어 음차를 이상하게 읽는 문제가 있습니다. |
10 |
-한국어의 완벽한 지원을 위해서는 상당히 많은 수의 LLAMA INDEX 프롬프트 엔지니어링을 다시, 또 새로 만들어야 할 것으로 보입니다. 이를 위해 DSPy를 사용할 예정에 있습니다.(파일 끝에 줄바꿈 문자 없음) |
|
11 |
+한국어의 완벽한 지원을 위해서는 상당히 많은 수의 LLAMA INDEX 프롬프트 엔지니어링을 다시, 또 새로 만들어야 할 것으로 보입니다. 이를 위해 DSPy를 사용할 예정에 있습니다. |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?