MPT-30B는 8k 컨텍스트 길이로 훈련된 강력한 오픈 소스 모델이며 원래 GPT-3보다 성능이 뛰어납니다. 발표
MPT-30B의 양자화 버전을 사용하면 인터넷 연결 없이 자신의 컴퓨터에서 비공개로 문서와 채팅할 수 있습니다.
32GB RAM 및 python 3.10
의 최소 시스템 사양입니다.
pip install poetry
git clone {insert github repo url}
poetry install
.env.example
파일을 .env
로 복사합니다. cp .env.example .env
python download_model.py
또는 여기를 방문하여 파일을 다운로드하세요. 그런 다음 루트 디렉터리에 models
폴더를 만들고 거기에 파일을 배치합니다.
기본적으로 이 저장소는 수집할 문서를 저장하는 source_documents
폴더입니다. 거기에 있는 문서를 당신의 것으로 바꿀 수 있습니다.
지원되는 문서 확장자는 다음과 같습니다.
.csv
: CSV,.docx
: Word 문서,.doc
: Word 문서,.eml
: 이메일,.epub
: EPub,.html
: HTML 파일,.md
: 마크다운,.pdf
: PDF(Portable Document Format),.pptx
: 파워포인트 문서,.txt
: 텍스트 파일(UTF-8),그런 다음 이 스크립트를 실행하여 수집합니다.
python ingest.py
출력은 다음과 같아야 합니다.
Creating new vectorstore
Loading documents from source_documents
Loading new documents: 100% | ██████████████████████ | 1/1 [00: 01< 00:00, 1.73s/it]
Loaded 1 new documents from source_documents
Split into 90 chunks of text (max. 500 tokens each)
Creating embeddings. May take some minutes...
Using embedded DuckDB with persistence: data will be stored in: db
Ingestion complete ! You can now run question_answer_docs.py to query your documents
로컬 벡터스토어가 포함된 db
폴더가 생성됩니다. 문서 크기에 따라 문서당 20~30초가 소요됩니다. 원하는 만큼 많은 문서를 수집할 수 있으며 모든 문서는 로컬 임베딩 데이터베이스에 축적됩니다. 빈 데이터베이스에서 시작하려면 db
폴더를 삭제하세요.
참고: 수집 프로세스 중에는 데이터가 로컬 환경을 벗어나지 않습니다. 임베딩 모델을 다운로드할 때 수집 스크립트를 처음 실행할 때를 제외하고는 인터넷 연결 없이 수집할 수 있습니다.
다음 스크립트를 실행하여 질문하고 문서에서 답변을 얻으세요.
먼저 명령줄을 로드합니다.
poetry run python question_answer_docs.py `
또는
make qa
둘째, Enter a question:
입력을 요청하는 명령줄이 나타날 때까지 기다립니다. 질문을 입력하고 Enter를 누르세요.
exit
입력하여 스크립트를 완료합니다.
참고: 컴퓨터 메모리, 프롬프트 요청, 소스 문서에서 반환된 청크 수에 따라 모델이 프롬프트에 응답하는 데 40~300초 정도 걸릴 수 있습니다.
인터넷 연결 없이도 챗봇을 사용할 수 있습니다.
[선택사항] 일반 챗봇 실행
문서와 채팅하고 싶지 않고 단순히 MPT-30b 챗봇과 상호 작용하고 싶다면 수집 단계를 건너뛰고 간단히 챗봇 스크립트를 실행할 수 있습니다.
poetry run python chat.py `
또는
make chat
여기에서 원본 템플릿에 대해 abacaj에게 공로를 인정합니다. 여기서 privateGPT 수집 논리 및 문서 지침에 대해 imartinez에게 공로를 인정합니다. 여기에서 MPT-30B GGML 모델에 대해 TheBloke에 공로를 인정합니다.