Started inference engine

This commit is contained in:
Tim O\'Neil committed 2025-09-13 12:45:42 -07:00
1 parent d89095e49b
commit 7797629673
61 files changed
+7832 -200

No files matched your search

+54
View File
@@ -0,0 +1,54 @@
#pragma once
#include "../core/tensor.hpp"
#include <vector>
#include <random>
#include <algorithm>
#include <numeric>
namespace lm {
class Sampler {
public:
virtual ~Sampler() = default;
virtual int sample(const Tensor& logits) = 0;
};
class GreedySampler : public Sampler {
public:
int sample(const Tensor& logits) override;
};
class RandomSampler : public Sampler {
public:
RandomSampler(float temperature = 1.0);
int sample(const Tensor& logits) override;
private:
float temperature_;
std::mt19937 gen_;
};
class TopKSampler : public Sampler {
public:
TopKSampler(int k, float temperature = 1.0);
int sample(const Tensor& logits) override;
private:
int k_;
float temperature_;
std::mt19937 gen_;
};
class TopPSampler : public Sampler {
public:
TopPSampler(float p, float temperature = 1.0);
int sample(const Tensor& logits) override;
private:
float p_;
float temperature_;
std::mt19937 gen_;
};
} // namespace lm