跳到主要内容

大型语言模型

LLM的局限性

LLM是功能强大的工具,具有多种用途,但其输出可能包含不准确、偏见或安全问题。

大型语言模型(LLM)是在大量文本上训练的模型,能够理解和生成类人语言,帮助完成如回答问题、撰写内容或总结文本等任务。

大型语言模型(LLM)是诸如OpenAI的ChatGPT等流行服务的基础。让我们现在就在Synaptics Astra上运行一个LLM吧!

备注

本指南假设您已熟悉Astra开发板的设置。如未设置,请参考设置教程

信息

本快速指南兼容所有SL16xx开发板。虽然推理性能可能有所不同,但所有Astra SL系列处理器的操作步骤均一致。

运行Gemma和Qwen等LLM

Gemma 3(2.7亿参数)和Qwen 1.5(5亿参数)是为边缘设备设计的紧凑高效LLM。它们的轻量级架构使其能够在资源有限的硬件上顺畅运行,例如配备4GB内存的Synaptics Astra SL1680。

安装 llama-cpp-python

要在Astra开发板上运行LLM,我们将使用llama-cpp-python包,它为Georgi Gerganov的llamacpp提供了方便的Python绑定。

我们已为Astra Yocto Linux SDK预编译了llama-cpp-python

某些AI模型操作需要SQLite3。Astra SDK OOBE v1.7及以上版本已预装SQLite3。若为旧版本,请使用以下命令安装:

运行Gemma 3 -270M模型

Gemma 3 270M是一款紧凑型、拥有2.7亿参数的模型,专为任务特定微调而设计,具备强大的指令遵循和文本结构能力,并已完成相关训练。

coco

要启动Gemma 3模型的交互式聊天会话,请使用:

python3 -m llm.gemma

您也可以通过示例仓库运行其他大型语言模型,如Qwen:

python3 -m llm.qwen

qwen

您可以通过修改examples/llm/qwen.py/中的response_stream来更改LLM回答的问题:

response_stream = llm.create_chat_completion(
messages=[{"role": "user", "content": "请介绍一下Synaptics公司?"}], #根据需要修改"content"
stream=True # 启用流式输出
)

运行Deepseek等LLM

DeepSeek R1因其基准测试接近OpenAI的o1模型以及更高效的训练过程而备受关注。完整的DeepSeek R1模型拥有6710亿参数,推理需>1TB内存,目前嵌入式设备无法运行。但DeepSeek也发布了多款适合边缘设备的R1模型蒸馏版本。

DeepSeek R1 Distill Qwen2.5 1.5B

我们关注DeepSeek R1在边缘AI推理中的实际应用,因此将介绍DeepSeek R1 Distill Qwen2.5 1.5B——DeepSeek R1发布的最小模型,可在Synaptics Astra SL1680上流畅运行。

名称释义
DeepSeek R1一个开放权重模型,使用强化学习激励链式思考(CoT)推理
Distill知识蒸馏的结果,即从大型预训练教师模型(此处为DeepSeek R1)训练出较小的学生模型
Qwen2.5阿里巴巴的Qwen2.5 Math模型作为蒸馏学生模型
1.5B1.5B参数是Qwen学生模型的规模

以下命令可下载DeepSeek R1 Distill Qwen2.5 1.5B并运行推理:

python3 -m llm.deepseek

经过详细解释后,最终会回复正确结果:

最终答案: \[ \boxed{504} \]

代码示例在DeepSeek R1蒸馏模型上运行AIME问题,可在examples/llm/deepseek.py/中修改:

problem = "一个等腰梯形内切圆与其四条边都相切。圆的半径为3,梯形面积为72。梯形的两条平行边长度分别为r和s,且r不等于s。求r^2 + s^2。"
response_stream = llm.create_chat_completion(
messages=[{"role": "user", "content": problem}],
stream=True
)

其他资源

更多高级实操教程,请访问下一节:教程。