문서 Q & A에 대한 로컬로 CPU 추론에서 LLAMA 2 및 기타 오픈 소스 LLM을 실행
LLAMA 2, C 변압기, GGML 및 Langchain을 사용하여 CPU에서 양자화 된 오픈 소스 LLM 애플리케이션을 실행하기위한 명확하게 설명 된 가이드
DataScience에 대한 단계별 가이드 : https://towardsdatascience.com/running-llama-2-on-cpu- inference-for-document-qa-3d636037a3d8
문맥
- OpenAI의 GPT4와 같은 제 3 자 상업용 대형 언어 모델 (LLM) 공급 업체는 간단한 API 통화를 통해 LLM 사용을 민주화했습니다.
- 그러나 데이터 개인 정보 및 거주 규칙과 같은 이유로 팀이 자체 관리 또는 개인 모델 배포가 필요한 사례가 있습니다.
- Open-Source LLM의 확산은 우리를 위해 방대한 옵션을 열어서 이러한 타사 제공 업체에 대한 의존도를 줄였습니다.
- Open-Source LLMS 로컬 온-프레미스 또는 클라우드에서 호스팅하면 전용 컴퓨팅 용량이 핵심 문제가됩니다. GPU 사례는 명백한 선택으로 보일 수 있지만 비용은 예산을 넘어서 쉽게 급등 할 수 있습니다.
- 이 프로젝트에서는 문서 질문 및 답변 (Q & A)에 대한 로컬 CPU 추론에서 양자화 된 버전의 오픈 소스 LLM을 실행하는 방법을 발견 할 것입니다.

QuickStart
- https://huggingface.co/thebloke/llama-2-7b-chat-ggml에서 ggml 바이너리 파일을 다운로드하여
models/ 폴더에 배치했는지 확인하십시오. - 응용 프로그램에 사용자 쿼리를 구문 분석하기 위해 프로젝트 디렉토리에서 터미널을 시작하고 다음 명령을 실행하십시오.
poetry run python main.py "<user query>" - 예를 들어,
poetry run python main.py "What is the minimum guarantee payable by Adidas?" - 참고 :시를 사용하지 않으면 선불
poetry run 생략하십시오.

도구
- Langchain : 언어 모델로 구동되는 응용 프로그램 개발을위한 프레임 워크
- C 변압기 : GGML 라이브러리를 사용하여 C/C ++에서 구현 된 변압기 모델의 파이썬 바인딩
- FAISS : 밀도가 높은 벡터의 효율적인 유사성 검색 및 클러스터링을위한 오픈 소스 라이브러리.
- 문장-변환기 (All-Minilm-L6-V2) : 클러스터링 또는 시맨틱 검색과 같은 작업을위한 384 차원 밀도가 높은 벡터 공간에 텍스트를 포함시키기위한 오픈 소스 사전 훈련 된 변압기 모델.
- LLAMA-2-7B-Chat : 채팅 대화 용으로 설계된 오픈 소스 미세 조정 된 LLAMA 2 모델. 공개적으로 사용 가능한 교육 데이터 세트와 백만 명이 넘는 인간 주석을 활용합니다.
- 시 : 종속성 관리 및 파이썬 포장 도구
파일 및 내용
-
/assets : 프로젝트와 관련된 이미지 -
/config : LLM 응용 프로그램의 구성 파일 -
/data :이 프로젝트에 사용되는 데이터 세트 (예 : 맨체스터 유나이티드 FC 2022 연례 보고서 -177 페이지 PDF 문서) -
/models : GGML의 이진 파일 양자화 된 LLM 모델 (예 : LLAMA-2-7B-Chat) -
/src : LLM 애플리케이션의 주요 구성 요소, 즉 llm.py , utils.py 및 prompts.py 의 파이썬 코드 -
/vectorstore : 문서 용 Faiss Vector Store -
db_build.py : 데이터 세트를 수집하고 FAISS 벡터 저장소를 생성하는 Python 스크립트 -
main.py : Main Python 스크립트 응용 프로그램을 시작하고 명령 줄을 통해 사용자 쿼리를 전달합니다. -
pyproject.toml : toml 파일을 사용하여 사용 된 종속성의 어떤 버전 (시) -
requirements.txt : 파이썬 종속성 목록 (및 버전)
참조
- https://github.com/marella/ctransformers
- https://huggingface.co/thebloke
- https://huggingface.co/thebloke/llama-2-7b-chat-ggml
- https://python.langchain.com/en/latest/integrations/ctransformers.html
- https://python.langchain.com/en/latest/modules/models/llms/integrations/ctransformers.html
- https://python.langchain.com/docs/ecosystem/integrations/ctransformers
- https://ggml.ai
- https://github.com/rustformers/llm/blob/main/crates/ggml/readme.md
- https://www.mdpi.com/2189676