// generate.h — генерация текста с KV-кэшем #pragma once #include "checkpoint.h" #include #include namespace xt { struct GenConfig { int max_new_tokens = 200; float temperature = 0.8f; // <= 0 => greedy int top_k = 40; // 0 => выключить float top_p = 0.95f; // >= 1 => выключить int seed = -1; // -1 => случайный bool stream = true; // печатать по мере генерации int repeat_penalty = 1; // штраф за повтор (окно = 64) }; std::string generate(const Params& p, const Tokenizer& tok, const std::string& prompt, const GenConfig& gc, std::vector* out_ids = nullptr); // Батч из нескольких промптов — переиспользует один набор весов std::vector generate_batch(const Params& p, const Tokenizer& tok, const std::vector& prompts, const GenConfig& gc); } // namespace xt