Llamafile嵌入¶
在本地运行LLM的最简单方法之一是使用llamafile。 llamafiles将模型权重和specially-compiled版本的llama.cpp
捆绑到一个单个文件中,可以在大多数计算机上运行,而无需任何额外的依赖。它们还配备了一个嵌入的推理服务器,提供一个API来与您的模型进行交互。
设置¶
- 从HuggingFace下载一个llamafile
- 使文件可执行
- 运行文件
下面是一个展示所有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上监听。
In [ ]:
Copied!
%pip install llama-index-embeddings-llamafile
%pip install llama-index-embeddings-llamafile
In [ ]:
Copied!
!pip install llama-index
!pip install llama-index
In [ ]:
Copied!
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])
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])