用途:这是一个面向 llama.cpp C API 的参考型技能,帮助开发者查找函数、编写 C 代码、理解任务步骤,以及把旧代码迁移到当前 API。llama.cpp 本身是依赖极少、性能较高的 C/C++ LLM 推理实现。
主要能力:按类别整理的全部非弃用函数(资料称 b7631 版本共 172 个,分为 6 个文件);覆盖初始化与参数、模型加载与模型信息、上下文与 KV 缓存和状态管理、批处理与推理与分词与对话、25 种以上采样策略及后端采样 API,以及 LoRA、性能与训练等高级主题。另含 13 至 15 个完整工作流示例,涉及基础文本生成、对话、嵌入、批处理、多序列、LoRA、状态保存加载、自定义采样(XTC/DRY)、编码器-解码器模型、模型检测与内存管理。
核心对象:llama_model、llama_context、llama_batch、llama_sampler、llama_vocab、llama_memory_t。典型流程:llama_backend_init() 初始化,llama_model_load_from_file() 加载模型,llama_init_from_model() 创建上下文,llama_tokenize() 分词,llama_encode() 或 llama_decode() 处理,llama_sampler_sample() 采样,循环生成,最后按相反顺序释放资源。
最佳实践:使用默认参数函数(如 llama_model_default_params());检查返回值;按创建逆序释放资源;分词时处理动态缓冲区大小;创建后用 llama_n_ctx() 查询实际上下文长度;用 llama_vocab_is_eog() 判断生成结束。
常见问题:模型加载失败需检查路径、GGUF 格式、内存/显存并降低 n_gpu_layers;分词返回负值多为缓冲区过小;解码/编码返回非零需检查批初始化、上下文容量与位置范围;无输出可检查结束判断、采样器初始化并用 llama_log_set() 开启日志;性能问题可调 n_threads、n_gpu_layers、n_batch;Mistral 类 SWA 模型可用 ctx_params.swa_full=true,并用 llama_model_n_swa(model) 检测;逐序列状态加载需序列 ID 匹配。迁移要点:用 llama_model_load_from_file() 替代 llama_load_model_from_file(),llama_init_from_model() 替代 llama_new_context_with_model(),并用 llama_vocab_() 替代 llama_token_()。
限制:资料未提供该技能的具体安装方式、收费情况与运行平台信息。