Llamafile 嵌入技术¶
在本地运行大型语言模型(LLM)最简单的方法之一是使用 llamafile。llamafile 将模型权重和经过特殊编译的 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])