ONNX Runtime generate() C# API

注意:此 API 处于预览阶段,可能会发生变化。

概述

Model 类

构造函数

public Model(string modelPath)

Generate 方法

public Sequences Generate(GeneratorParams generatorParams)

Tokenizer 类

构造函数

public Tokenizer(Model model)

Encode 方法

public Sequences Encode(string str)

Encode batch 方法

public Sequences EncodeBatch(string[] strings)

Decode 方法

public string Decode(ReadOnlySpan<int> sequence)

Decode batch 方法

public string[] DecodeBatch(Sequences sequences)

Create stream 方法

public TokenizerStream CreateStream()

TokenizerStream 类

Decode 方法

public string Decode(int token)

GeneratorParams 类

构造函数

public GeneratorParams(Model model)

设置搜索选项(double)

public void SetSearchOption(string searchOption, double value)

设置搜索选项(bool)方法

public void SetSearchOption(string searchOption, bool value)

尝试以最大批处理大小进行图捕获

 public void TryGraphCaptureWithMaxBatchSize(int maxBatchSize)

设置输入 ID 方法

public void SetInputIDs(ReadOnlySpan<int> inputIDs, ulong sequenceLength, ulong batchSize)

设置输入序列方法

public void SetInputSequences(Sequences sequences)

设置模型输入

public void SetModelInput(string name, Tensor value)

Generator 类

构造函数

public Generator(Model model, GeneratorParams generatorParams)

Is done 方法

public bool IsDone()

计算 logits

public void ComputeLogits()

生成下一个 token 方法

public void GenerateNextToken()

获取序列

public ReadOnlySpan<int> GetSequence(ulong index)

设置活动适配器

在此 Generator 实例上设置活动适配器。

using var model = new Model(modelPath);
using var genParams = new GeneratorParams(model);
using var generator = new Generator(model, genParams);
using var adapters = new Adapters(model);
string adapterName = "..."

generator.SetActiveAdapter(adapters, adapterName);

参数

  • adapters:先前创建的 Adapter 对象
  • adapterName:要激活的适配器名称

返回值

void

异常

出错时抛出异常。

Sequences 类

Num sequences 成员

public ulong NumSequences { get { return _numSequences; } }

[] 运算符

public ReadOnlySpan<int> this[ulong sequenceIndex]

Adapter 类

此 API 用于加载和切换微调适配器,例如 LoRA 适配器。

构造函数

构造 Adapter 类实例。

using var model = new Model(modelPath);

using var adapters = new Adapters(model);

参数

  • model:先前构造的模型类

Load Adapter 方法

从磁盘加载适配器文件。

string adapterPath = Path()
string adapterName = ...

adapters.LoadAdapter(adapterPath, adapterName);

参数

  • adapterPath:适配器文件在磁盘上的路径
  • adapterName:一个字符串标识符,用于在后续方法中引用适配器

返回值

void

Unload Adapter 方法

从内存中卸载适配器文件。

adapters.UnLoadAdapter(adapterName);

参数

  • adapterName:要卸载的适配器名称

返回值

void

异常

出错时抛出异常。