跳到主要内容

使用 llama.cpp 在 Astra 上运行 LLM

本教程将指导你如何在 Synaptics Astra™ Machina™ 上使用 SL1680 处理器,原生运行 TinyLlama 模型,使用 llama.cpp

备注

本教程兼容所有 SL16xx 开发板。尽管推理性能可能有所不同,但步骤在所有处理器上均相同。

此外,llama.cpp 不仅支持 LLaMA 模型;它还支持诸如 Phi3、Mistral、TinyLlama 等其他模型,使其成为多种机器学习应用的多功能工具。

官方 GitHub 仓库 查看更多 llama.cpp 的详细信息。

先决条件

你可以在 Machina 开发板上原生编译该二进制文件,因为我们在 OOBE(开箱即用)镜像 v1.2.0 及以上版本中已支持所需的软件包和编译器。

如果你更喜欢交叉编译(在主机上构建二进制文件以便自定义),请按照 交叉编译 llama.cpp 教程中的步骤操作。

第一步:生成 llama.cpp 的二进制文件

你可以在 Machina 上原生生成 llama.cpp 的二进制文件,只需在 Machina 上打开终端或通过 SSH 连接 Machina,然后从 GitHub 克隆 llama.cpp 仓库并构建 llama-cli 二进制文件:

llama-cli 的二进制文件将被创建在 ~/build/bin/ 目录下。这个二进制文件将帮助你运行支持的模型。

第二步:下载 llama.cpp 支持的模型

你可以运行任何在 llama.cpp GitHub Repo 仓库 支持模型部分提到的模型。确保它们采用 GGUF 格式。

你可以从 Hugging Face. 获取 TinyLlama 1.1 Billion 模型。在本教程中,我们将使用 TinyLlama 的量化模型 tinyllama-1.1b-chat-v1.0.Q4_0.gguf。请将其下载到开发板上。

wget https://huggingface.co/TheBloke/TinyLlama-1.1B-Chat-v1.0-GGUF/resolve/main/tinyllama-1.1b-chat-v1.0.Q4_0.gguf

第三步:在 Machina 开发板上运行 llama.cpp

模型下载完成并成功构建二进制文件后,你现在可以在 llama.cpp 文件夹中运行 TinyLlama 模型:

./build/bin/llama-cli -m tinyllama-1.1b-chat-v1.0.Q4_0.gguf -p "Tell me about Synaptics Incorporated" -n 128

你在 Astra Machina 开发板上将会看到如下输出:

.. ..

Synaptics Inc. Is a leading provider of touch controller solutions for the consumer, industrial, and enterprise markets. They specialize in touch controllers, sensors, and other technologies for advanced display and robotics applications.

Synaptics has a global presence, with operations in 30 countries and a workforce of 1,000 employees. They have a strong focus on innovation, with a portfolio of over 2,000 patents and patents pending.

Synaptics offers a wide range of touch controller solutions, including surface touch controllers

llama_perf_sampler_print: sampling time = 12.89 ms / 156 runs ( 0.08 ms per token, 12101.47 tokens per second) llama_perf_context_print: load time = 469.69 ms llama_perf_context_print: prompt eval time = 2417.15 ms / 28 tokens ( 86.33 ms per token, 11.58 tokens per second) llama_perf_context_print: eval time = 14311.09 ms / 127 runs ( 112.69 ms per token, 8.87 tokens per second) llama_perf_context_print: total time = 27692.10 ms / 155 tokens

恭喜你

你已成功使用 llama.cpp 在你的 Astra Machina 开发板上运行了 TinyLlama 模型。你现在可以继续尝试其他模型,或将 llama.cpp 集成到你的项目中。有关更高级的用法和选项,请参考llama.cpp GitHub repository.

想要进一步了解在边缘设备上运行 LLM 的更多信息,可阅读 LLMs Optimized for the Edge 博客。 另请查看 Llama 3.2 for AI Assistants on Edge Devices ,在 Astra 上尝试 Llama 模型。

如果你更喜欢交叉编译(在主机上构建二进制文件以便自定义),请继续查看下一个教程中的步骤。