Llamafile 임베딩

Llamafile 임베딩

로컬에서 LLM을 실행하는 가장 간단한 방법 중 하나가 llamafile을 쓰는 거예요. llamafile은 모델 가중치와 특별히 컴파일된 llama.cpp 버전을 하나의 파일로 묶어서, 추가 의존성 없이 대부분의 컴퓨터에서 실행할 수 있어요. 임베딩 추론 서버도 내장되어 있어서 모델과 상호작용할 수 있는 API를 제공해요.

출처: 문서

본문

설정 (Setup)

  1. HuggingFace에서 llamafile을 다운로드한다.
  2. 파일을 실행 가능하게 만든다.
  3. 파일을 실행한다.

3가지 설정 단계를 모두 보여주는 간단한 bash 스크립트예요.

터미널 창

# HuggingFace에서 llamafile 다운로드
wget https://huggingface.co/jartine/TinyLlama-1.1B-Chat-v1.0-GGUF/resolve/main/TinyLlama-1.1B-Chat-v1.0.Q5_K_M.llamafile


# 파일을 실행 가능하게 만든다. Windows에서는 파일 이름을 ".exe"로 끝나게 바꾸면 된다.
chmod +x TinyLlama-1.1B-Chat-v1.0.Q5_K_M.llamafile


# 모델 서버 시작. 기본적으로 http://localhost:8080 에서 수신한다.
./TinyLlama-1.1B-Chat-v1.0.Q5_K_M.llamafile --server --nobrowser --embedding

모델의 추론 서버는 기본적으로 localhost:8080에서 수신해요.

%pip install llama-index-embeddings-llamafile
!pip install llama-index
from llama_index.embeddings.llamafile import LlamafileEmbedding


embedding = LlamafileEmbedding(
    base_url="http://localhost:8080",
)


pass_embedding = embedding.get_text_embedding_batch(
    ["This is a passage!", "This is another passage"], show_progress=True
)
print(len(pass_embedding), len(pass_embedding[0]))


query_embedding = embedding.get_query_embedding("Where is blue?")
print(len(query_embedding))
print(query_embedding[:10])