使用llama.cpp 在推理MiniCPM-1.2B模型

llama.cpp 是一个开源项目,它允许用户在C++中实现与LLaMA(Large Language Model Meta AI)模型的交互。LLaMA模型是由Meta Platforms开发的一种大型语言模型,虽然llama.cpp本身并不包含LLaMA模型的训练代码或模型权重,但它提供了一种方式来加载预先训练好的模型,并使用它们进行文本生成等任务。

特点

  • 轻量级:相比于使用Python和深度学习框架如PyTorch或TensorFlow,llama.cpp是一个纯C++实现,可以更轻松地部署到资源受限的环境中。
  • 独立性:它不需要依赖于复杂的外部库,这使得它在某些情况下更容易集成到现有系统中。
  • 可移植性:由于它是用C++编写的,因此理论上可以在任何支持C++的平台上运行。

使用方法

获取源码

首先,你需要从GitHub获取llama.cpp的源代码:

git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
安装依赖
sudo apt install build-essential ninja-build cmake
编译

然后,你需要编译项目。这通常涉及安装必要的依赖项(如CMake),然后运行编译命令:

cmake -GNinja -Bbuild_ninja
cmake --build build_ninja
下载模型
sudo apt install git git-lfs
git clone https://www.modelscope.cn/OpenBMB/MiniCPM-1B-sft-q4_1-gguf.git
运行示例

一旦编译完成,你可以尝试运行一些控制台示例程序来测试模型的功能。例如,你可以执行一个简单的交互式聊天程序:


build_ninja/bin/llama-cli -m ../MiniCPM-1B-sft-q4_1-gguf/MiniCPM-1B-sft-q4_1.gguf -cnv --chat-template gemma
加载模型

llama.cpp提供了加载预先训练好的模型的方法。你需要将模型文件下载到本地,并通过API指定路径加载模型。

文本生成

使用加载的模型,你可以通过输入提示(prompt)来生成文本。API提供了设置生成参数(如prompt、最大长度等)的方法。

注意事项

虽然llama.cpp提供了一个有趣的方式来使用预训练的语言模型,但在实际应用中还需要注意以下几点:

  • 模型许可:确保你有权合法地使用你想要加载的模型。
  • 性能限制:尽管llama.cpp是为资源受限的环境设计的,但它可能在高性能计算环境中不如专门优化过的框架高效。
  • 维护和支持:考虑到这是一个相对较小的项目,可能没有像大公司支持的框架那样的活跃社区或官方支持。
根据提供的引用信息,你遇到的问题是在编译过程中出现了错误。具体来说,错误信息是"\k_quants.h(145): error C2059: 语法错误:“)”"。根据提供的引用,这个错误可能是在编译GPU版本的llama.cpp文件时出现的,并且与选项'gpu-architecture'的值为'native'有关。 解决这个问题的步骤如下: 1. 首先,查看编译错误的具体位置,即\k_quants.h文件的第145行。 2. 在该行附近检查代码,查找是否有语法错误,例如缺少分号或括号不匹配等。 3. 如果代码没有明显的语法错误,可以考虑检查编译选项和环境设置是否正确。特别是关于选项'gpu-architecture'的值,确保它被正确定义和使用。 4. 如果是Makefile文件导致的问题,则需要修改Makefile源码,确保编译选项被正确设置。 5. 重新编译代码并进行测试,确保问题已经解决。 请注意,以上步骤仅供参考,具体解决方法可能因个人环境和代码情况而异。建议仔细检查错误信息和相关代码,结合实际情况采取相应的解决措施。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [【AI实战】llama.cpp量化cuBLAS编译;nvcc fatal:Value ‘native‘ is not defined for option ‘gpu-...](https://blog.csdn.net/zengNLP/article/details/131576986)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [ubuntu下编译时遇到的错误及解决方式](https://blog.csdn.net/weixin_30267691/article/details/94986381)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

telllong

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值