在免费 Google Colab 实例上运行 LLaMA-13B 模型,并测试 LangChain 的多种功能,如聊天应用和代理。所有组件均基于开源项目,完全免费。
环境准备与 LLaMA.cpp
LLaMA.cpp 是一个有趣的开源项目,最初为 Macbook 设计,现已支持 CUDA、OpenCL 及 Apple 硅,甚至树莓派。它纯 C/C++ 编写,无外部依赖,且能与 LangChain 连接,无需 OpenAI 密钥即可测试其功能。Google Colab 提供免费访问具有 12 GB RAM 和 16 GB VRAM 的 Python 笔记本,适合在此运行。
安装库很简单,只需在使用 pip 之前启用 LLAMA_CUBLAS:
!CMAKE_ARGS="-DLLAMA_CUBLAS=on" FORCE_CMAKE=1 pip3 install llama-cpp-python
!pip3 install huggingface-hub
!pip3 install sentence-transformers langchain langchain-experimental
!huggingface-cli download TheBloke/Llama-2-7b-Chat-GGUF llama-2-7b-chat.Q4_K_M.gguf --local-dir/content --local-dir-use-symlinks False
首次测试我使用了 7B 模型。这里安装了 huggingface-hub 库以自动下载 GGUF 格式的模型,同时安装了 LangChain 库用于后续测试。
加载模型并测试是否正常:
from langchain.llms import LlamaCpp
from langchain.callbacks.manager import CallbackManager
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
n_gpu_layers = 40
n_batch = 512
callback_manager = CallbackManager([StreamingStdOutCallbackHandler()])
llm = LlamaCpp(
model_path="/content/llama-2-7b-chat.Q4_K_M.gguf",
temperature=0.1,
n_gpu_layers=n_gpu_layers,
n_batch=n_batch,
callback_manager=callback_manager,
verbose=True,
)
模型加载后,一行代码即可测试:
llm("What is the distance to the Moon? Write the short answer.")
这里使用了 StreamingStdOutCallbackHandler,以获得类似 ChatGPT 的平滑流式输出。关于资源,由于 4 位量化,7B 模型很好地符合 Google Colab 免费限制,仅需约 1.6GB RAM 和 4.2GB VRAM,理论上几乎可在任何预算 PC 上运行。使用 Google Colab,我们甚至可以完全免费运行一个 13B 模型,只需更改下载命令中的 URL:
!huggingface-cli download TheBloke/Llama-2-13B-chat-GGUF llama-2-13b-chat.Q4_K_M.gguf --local-dir/content --local-dir-use-symlinks False
该模型需要更多资源,但仍足够用于免费实例。
LangChain 集成
LangChain 是为开发语言模型驱动应用程序而设计的开源 Python 框架。理论上它是跨平台的,但官方文档示例多针对付费 API。利用 LLaMA.cpp 可以零成本学习此库。

