llama.cpp Sampling API

llama.cpp Sampling API

llama.cpp
https://github.com/ggerganov/llama.cpp

1. Sampling API

/home/yongqiang/llm_work/llama_cpp_25_01_05/llama.cpp/include/llama.h

    //
    // Sampling API
    //
    // Sample usage:
    //
    //    // prepare the sampling chain at the start
    //    auto sparams = llama_sampler_chain_default_params();
    //
    //    llama_sampler * smpl = llama_sampler_chain_init(sparams);
    //
    //    llama_sampler_chain_add(smpl, llama_sampler_init_top_k(50));
    //    llama_sampler_chain_add(smpl, llama_sampler_init_top_p(0.9, 1));
    //    llama_sampler_chain_add(smpl, llama_sampler_init_temp (0.8));
    //
    //    // typically, the chain should end with a sampler such as "greedy", "dist" or "mirostat"
    //    // this sampler will be responsible to select the actual token
    //    llama_sampler_chain_add(smpl, llama_sampler_init_dist(seed));
    //
    //    ...
    //
    //    // decoding loop:
    //    while (...) {
    //        ...
    //
    //        llama_decode(ctx, batch);
    //
    //        // sample from the logits of the last token in the batch
    //        const llama_token id = llama_sampler_sample(smpl, ctx, -1);
    //
    //        // accepting the token updates the internal state of certain samplers (e.g. grammar, repetition, etc.)
    //        llama_sampler_accept(smpl, id);
    //        ...
    //    }
    //
    //    llama_sampler_free(smpl);
    //
    // TODO: In the future, llama_sampler will be utilized to offload the sampling to the backends (e.g. GPU).
    // TODO: in the future, the entire sampling API that uses llama_model should start using llama_vocab
    //
  • Autoregressive generation

/home/yongqiang/llm_work/llama_cpp_25_01_05/llama.cpp/examples/simple/simple.cpp

/home/yongqiang/llm_work/llama_cpp_25_01_05/llama.cpp/src/llama-sampling.h
/home/yongqiang/llm_work/llama_cpp_25_01_05/llama.cpp/src/llama-sampling.cpp

References

[1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

相关推荐
Yongqiang Cheng3 天前
Georgi Gerganov - ggml - llama.cpp - whisper.cpp
llama.cpp·ggml·whisper.cpp·georgi gerganov
带电的小王21 天前
llama.cpp:PC端测试 MobileVLM -- 电脑端部署图生文大模型
llm·llama.cpp·vlm·mobilevlm·图生文
AI.愚人自愈1 个月前
【2024 Dec 超实时】编辑安装llama.cpp并运行llama
llm·llama.cpp
沉下心来学鲁班2 个月前
欺诈文本分类检测(十八):基于llama.cpp+CPU推理
人工智能·语言模型·分类·cpu·llama.cpp
幽影相随3 个月前
构建llama.cpp并在linux上使用gpu
llm·llama.cpp
telllong4 个月前
使用llama.cpp 在推理MiniCPM-1.2B模型
c++·llama·llama.cpp
shizidushu4 个月前
Docker下使用llama.cpp部署带Function calling和Json Mode功能的Mistral 7B模型
docker·语言模型·llama·llama.cpp·mistral-7b
穷人小水滴4 个月前
(章节 3.1) 本地运行 AI 有多慢 ? 大模型推理测速 (llama.cpp, Intel GPU A770)
人工智能·llama·llama.cpp·a770·vulkan·gnu/linux·sycl
穷人小水滴5 个月前
编译运行 llama.cpp (vulkan, Intel GPU SYCL)
ai·gpu·intel·llama.cpp·a770·vulkan·sycl