Python API
注意:此 API 處於預覽階段,可能會有所更改。
安裝和匯入
Python API 由 onnxruntime-genai Python 包提供。
pip install onnxruntime-genai
import onnxruntime_genai
Model 類
載入模型
從磁碟上的資料夾載入 ONNX 模型和配置。
onnxruntime_genai.Model(model_folder: str) -> onnxruntime_genai.Model
引數
model_folder:模型和配置在磁碟上的位置
返回值
onnxruntime_genai.Model
Generate 方法
onnxruntime_genai.Model.generate(params: GeneratorParams) -> numpy.ndarray[int, int]
引數
params:(必填)由GeneratorParams方法建立。
返回值
numpy.ndarray[int, int]:一個二維 numpy 陣列,其維度等於傳入的批次大小和令牌序列的最大長度。
裝置型別
返回模型配置執行的裝置型別。
onnxruntime_genai.Model.device_type
返回值
str:一個描述載入模型將執行的裝置的字串
Tokenizer 類
建立分詞器物件
onnxruntime_genai.Model.Tokenizer(model: onnxruntime_genai.Model) -> onnxruntime_genai.Tokenizer
引數
model:(必填)透過Model()載入的模型
返回值
Tokenizer:分詞器物件
編碼
onnxruntime_genai.Tokenizer.encode(text: str) -> numpy.ndarray[numpy.int32]
引數
text:(必填)
返回值
numpy.ndarray[numpy.int32]:一個表示提示的令牌陣列
解碼
onnxruntime_genai.Tokenizer.decode(tokens: numpy.ndarry[int]) -> str
引數
numpy.ndarray[numpy.int32]:(必填)一個生成的令牌序列
返回值
str:已解碼的生成的令牌
批次編碼
onnxruntime_genai.Tokenizer.encode_batch(texts: list[str]) -> numpy.ndarray[int, int]
引數
texts:輸入列表
返回值
numpy.ndarray[int, int]:已分詞字串的批次
批次解碼
onnxruntime_genai.Tokenize.decode_batch(tokens: [[numpy.int32]]) -> list[str]
引數
- tokens
返回值
texts:一批解碼文字
建立分詞器解碼流
onnxruntime_genai.Tokenizer.create_stream() -> TokenizerStream
引數
無
返回值
onnxruntime_genai.TokenizerStream 分詞器流物件
TokenizerStream 類
此類的作用是累積下一個可顯示字串(根據分詞器的詞彙表)。
解碼方法
onnxruntime_genai.TokenizerStream.decode(token: int32) -> str
引數
token:(必填)要解碼的令牌
返回值
str:如果已累積可顯示字串,此方法返回該字串。否則,此方法返回空字串。
GeneratorParams 類
建立一個 Generator 引數物件
onnxruntime_genai.GeneratorParams(model: Model) -> GeneratorParams
填充令牌 ID 成員
onnxruntime_genai.GeneratorParams.pad_token_id
EOS 令牌 ID 成員
onnxruntime_genai.GeneratorParams.eos_token_id
詞彙量大小成員
onnxruntime_genai.GeneratorParams.vocab_size
input_ids 成員
onnxruntime_genai.GeneratorParams.input_ids: numpy.ndarray[numpy.int32, numpy.int32]
設定模型輸入
onnxruntime_genai.GeneratorParams.set_model_input(name: str, value: [])
設定搜尋選項方法
onnxruntime_genai.GeneratorParams.set_search_options(options: dict[str, Any])
嘗試使用最大批處理大小進行圖捕獲
onnxruntime_genai.GeneratorParams.try_graph_capture_with_max_batch_size(max_batch_size: int)
Generator 類
建立一個 Generator
onnxruntime_genai.Generator(model: Model, params: GeneratorParams) -> Generator
引數
model:(必填)用於生成的模型params:(必填)控制生成的一組引數
返回值
onnxruntime_genai.Generator Generator 物件
生成是否完成
onnxruntime_genai.Generator.is_done() -> bool
返回值
當所有序列達到最大長度或已達到序列末尾時返回 true。
計算 logits
模型執行一次迭代。
onnxruntime_genai.Generator.compute_logits()
獲取輸出
返回模型的輸出。
onnxruntime_genai.Generator.get_output(str: name) -> numpy.ndarray
引數
name:模型輸出的名稱
返回值
numpy.ndarray:一個多維陣列,表示模型輸出。陣列的形狀是輸出的形狀。
示例
以下程式碼返回模型的輸出 logits。
logits = generator.get_output("logits")
生成下一個令牌
使用當前 logits 集和指定的生成器引數,透過 Top P 取樣計算下一批令牌。
onnxruntime_genai.Generator.generate_next_token()
獲取下一個令牌
onnxruntime_genai.Generator.get_next_tokens() -> numpy.ndarray[numpy.int32]
返回值
numpy.ndarray[numpy.int32]:最新生成的令牌
獲取序列
onnxruntime_genai.Generator.get_sequence(index: int) -> numpy.ndarray[numpy.int32]
index:(必填)要返回的批次中序列的索引
Adapter 類
建立
使用已載入的模型建立一個 Adapters 物件。
model = ...
adapters = og.Adapters(model)
引數
model:將與介面卡一起使用的模型
返回值
一個 Adapter 物件
載入
將介面卡從磁碟載入到記憶體中的 Adapter 物件。
onnxruntime_genai.Adapters(file: str, name: str) -> None
引數
file:從磁碟載入介面卡的位置name:介面卡的名稱
返回值
無
設定活動介面卡
在 Generator 物件上設定活動介面卡。
onnxruntime_genai.Generator(adapters: Generators::Adapters, adapter: str) -> None
引數
adapters:介面卡物件,已將標識的介面卡載入到其中adapter:要設定為活動的介面卡名稱
返回值
無