模型
包含 Outlines 中所有集成模型的模块。
我们按提供者而不是主题(补全、聊天补全、扩散模型等)将模型分组到子模块中,并在代码库的其他地方使用路由函数。
exllamav2
ExLlamaV2Model
表示一个 exl2
模型。
源代码位于 outlines/models/exllamav2.py
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 |
|
prepare_generation_parameters(prompts, generation_parameters, sampling_parameters, structure_logits_processor, **exllamav2_params)
准备生成参数。
exllamav2
使用不同的默认值
源代码位于 outlines/models/exllamav2.py
reformat_output(output, sampling_parameters)
此函数的目的是将 exllamav2 的输出格式重新格式化为 outlines 的输出格式。
对于 exllamav2,它主要只接受列表或字符串(它们也用元组进行 cfg 采样,但目前我们先忽略这一点)。exllamav2 的逻辑是
- 如果提示是字符串,则返回字符串。这与 outlines 相同
- 如果提示是列表,则返回列表。这与 outlines 的输出不同,在 outlines 中,如果列表只有一个元素,则预期输出字符串。
- 没有 num_samples 这个概念,因此提示需要根据 num_samples 的值重复多次。然后,函数会输出一个列表的列表。
源代码位于 outlines/models/exllamav2.py
exl2(model_path, draft_model_path=None, max_seq_len=None, cache_q4=False, paged=True, max_chunk_size=None)
加载 ExLlamaV2 模型。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
model_path
|
str
|
模型目录的路径。 |
必需 |
device
|
加载模型的设备。对于 GPU 传入 'cuda',对于 CPU 传入 'cpu' |
必需 | |
max_seq_len
|
Optional[int]
|
最大序列长度。默认为 None。 |
None
|
scale_pos_emb
|
位置嵌入的缩放因子。默认为 None。 |
必需 | |
scale_alpha_value
|
Scale alpha 值。默认为 None。 |
必需 | |
no_flash_attn
|
禁用 Flash Attention。默认为 None。 |
必需 | |
num_experts_per_token
|
每个 token 的专家数量。默认为 None。 |
必需 | |
cache_q4
|
bool
|
使用 Q4 缓存。默认为 False。 |
False
|
tokenizer_kwargs
|
tokenizer 的额外关键字参数。默认为 {}。 |
必需 | |
gpu_split
|
"auto",或以 GB 为单位的每 GPU VRAM 分配。Auto 将使用 exllama 的自动拆分功能 |
必需 | |
low_mem
|
启用 VRAM 优化,可能牺牲速度 |
必需 | |
verbose
|
如果需要调试语句则启用 |
必需 |
返回值
类型 | 描述 |
---|---|
一个 `ExLlamaV2Model` 实例。
|
|
引发
类型 | 描述 |
---|---|
如果未安装 `exllamav2` 库,则引发 `ImportError`。
|
|
源代码位于 outlines/models/exllamav2.py
246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 |
|
llamacpp
LlamaCpp
表示由 llama-cpp-python
库提供的模型。
我们包装来自提供模型库的模型,以便在 Outlines 中为它们提供相同的接口,并允许用户在不同提供者之间轻松切换。此类包装了 llama-cpp-python
库中的 llama_cpp.Llama
类。
源代码位于 outlines/models/llamacpp.py
131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 |
|
generate(prompts, generation_parameters, structure_logits_processor, sampling_parameters, **llama_cpp_params)
使用 llama-cpp-python
生成文本。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
prompts
|
Union[str, List[str]]
|
一个提示或提示列表。 |
必需 |
generation_parameters
|
GenerationParameters
|
一个 |
必需 |
logits_processor
|
生成文本时使用的 logits 处理器。 |
必需 | |
sampling_parameters
|
SamplingParameters
|
一个 |
必需 |
llama_cpp_params
|
Unpack[LlamaCppParams]
|
可以传递给 |
{}
|
返回值
类型 | 描述 |
---|---|
生成的文本。
|
|
源代码位于 outlines/models/llamacpp.py
prepare_generation_parameters(generation_parameters, sampling_parameters, structure_logits_processor, **llama_cpp_params)
准备生成参数。
llama-cpp-python
使用不同的默认值
源代码位于 outlines/models/llamacpp.py
148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 |
|
stream(prompts, generation_parameters, structure_logits_processor, sampling_parameters, **llama_cpp_params)
使用 llama-cpp-python
流式生成文本。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
prompts
|
Union[str, List[str]]
|
一个提示或提示列表。 |
必需 |
generation_parameters
|
GenerationParameters
|
一个 |
必需 |
logits_processor
|
生成文本时使用的 logits 处理器。 |
必需 | |
sampling_parameters
|
SamplingParameters
|
一个 |
必需 |
llama_cpp_params
|
Unpack[LlamaCppParams]
|
可以传递给 |
{}
|
返回值
类型 | 描述 |
---|---|
返回字符串的生成器。
|
|
源代码位于 outlines/models/llamacpp.py
LlamaCppTokenizer
基类: Tokenizer
源代码位于 outlines/models/llamacpp.py
llamacpp(repo_id, filename=None, **llamacpp_model_params)
从 llama-cpp-python
库加载模型。
我们使用 Llama.from_pretrained
类方法,可以直接从 HuggingFace hub 下载模型,而不是要求用户指定已下载模型的路径。仍然可以通过直接初始化 llama_cpp.Llama
来加载本地模型。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
repo_id
|
str
|
模型仓库的名称。 |
必需 |
filename
|
Optional[str]
|
用于匹配仓库中模型文件的文件名或 glob 模式。 |
None
|
llama_cpp_model_params
|
Llama 特定的模型参数。有关完整列表,请参阅 |
必需 |
源代码位于 outlines/models/llamacpp.py
mlxlm
MLXLM
表示一个 mlx_lm
模型
源代码位于 outlines/models/mlxlm.py
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 |
|
generate_step(prompt, temp, top_p, sampler, logits_processor)
改编自 https://github.com/ml-explore/mlx-examples/blob/4872727/llms/mlx_lm/utils.py#L129
根据模型给定的提示生成 token ID 的生成器。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
prompt
|
array
|
输入提示。 |
必需 |
temp
|
Optional[float]
|
采样的温度,如果为 0 则使用 argmax。 |
必需 |
top_p
|
Optional[float]
|
核采样,值越高表示模型考虑的可能性较低的词越多。 |
必需 |
sampler
|
str
|
由 SequenceGeneratorAdapter 定义的采样器字符串 |
必需 |
logits_processor
|
OutlinesLogitsProcessor
|
在采样前增强 logits。 |
必需 |
源代码位于 outlines/models/mlxlm.py
stream(prompts, generation_parameters, logits_processor, sampling_parameters)
使用 mlx_lm
生成文本。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
prompts
|
Union[str, List[str]]
|
一个提示或提示列表。 |
必需 |
generation_parameters
|
GenerationParameters
|
一个 |
必需 |
logits_processor
|
生成文本时使用的 logits 处理器。 |
必需 | |
sampling_parameters
|
SamplingParameters
|
一个 |
必需 |
返回值
类型 | 描述 |
---|---|
生成的文本。
|
|
源代码位于 outlines/models/mlxlm.py
mlxlm(model_name, tokenizer_config={}, model_config={}, adapter_path=None, lazy=False)
从 mlx_lm
库实例化模型及其 tokenizer。
签名改编自 https://github.com/ml-explore/mlx-examples/blob/4872727/llms/mlx_lm/utils.py#L422
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
参数
|
path_or_hf_repo (Path):加载模型的路径或 huggingface 仓库。tokenizer_config (dict, 可选):tokenizer 的特定配置参数。默认为空字典。model_config(dict, 可选):模型的特定配置参数。默认为空字典。adapter_path (str, 可选):LoRA 适配器路径。如果提供,则将 LoRA 层应用于模型。默认值: |
必需 |
返回值
类型 | 描述 |
---|---|
一个 `MLXLM` 模型实例。
|
|
源代码位于 outlines/models/mlxlm.py
openai
与 OpenAI API 集成。
OpenAI
表示 OpenAI API 的对象。
源代码位于 outlines/models/openai.py
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 |
|
__call__(prompt, max_tokens=None, stop_at=None, *, system_prompt=None, temperature=None, samples=None)
调用 OpenAI API 生成文本。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
prompt
|
Union[str, List[str]]
|
将用于提示模型的字符串或字符串列表 |
必需 |
max_tokens
|
Optional[int]
|
要生成的最大 token 数 |
None
|
stop_at
|
Optional[Union[List[str], str]]
|
字符串或字符串数组,生成到这些字符串时将停止生成。 |
None
|
system_prompt
|
Optional[str]
|
位于用户提示之前的系统消息内容。 |
None
|
temperature
|
Optional[float]
|
用于采样 token 的温度值 |
None
|
samples
|
Optional[int]
|
为每个提示生成的补全数量 |
None
|
stop_at
|
Optional[Union[List[str], str]]
|
API 将在生成的文本中停止的字符串,最多 4 个。 |
None
|
源代码位于 outlines/models/openai.py
__init__(client, config, system_prompt=None)
创建一个 OpenAI
实例。
此类支持标准 OpenAI API、Azure OpenAI API 以及依赖 OpenAI 客户端的兼容 API。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
client
|
API 异步客户端的一个实例。 |
必需 | |
config
|
一个 |
必需 |
源代码位于 outlines/models/openai.py
OpenAIConfig
数据类
表示 OpenAI API 的参数。
信息最后获取于 2023/11/20。我们在下方记录了 OpenAI API 特有的属性。Outlines 并非支持所有这些属性。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
model
|
str
|
模型名称。可在 OpenAI 网站上找到可用模型。 |
''
|
frequency_penalty
|
float
|
介于 2.0 和 -2.0 之间的数字。正值根据 token 在文本中出现的现有频率惩罚新 token, |
0
|
logit_bias
|
Dict[int, int]
|
修改指定 token 出现在补全中的可能性。介于 -100(禁止)和 +100(仅允许)之间的数字。 |
dict()
|
n
|
int
|
为每个提示返回的补全数量。 |
1
|
presence_penalty
|
float
|
类似于 frequency penalty。 |
0
|
response_format
|
Optional[Dict[str, str]]
|
指定模型必须输出的格式。 |
None
|
seed
|
Optional[int]
|
具有相同 |
None
|
stop
|
Optional[Union[str, List[str]]]
|
API 将在生成的文本中停止的字符串,最多 4 个。 |
None
|
temperature
|
float
|
介于 0 和 2 之间的数字。值越高,输出越随机;值越低,输出越确定。 |
1.0
|
top_p
|
int
|
介于 0 和 1 之间的数字。核采样的参数。 |
1
|
user
|
str
|
终端用户的唯一标识符。 |
str()
|
源代码位于 outlines/models/openai.py
error_handler(api_call_fn)
处理 OpenAI API 错误和 API 密钥缺失。
源代码位于 outlines/models/openai.py
generate_chat(prompt, system_prompt, client, config)
异步
调用 OpenAI 的聊天补全 API。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
prompt
|
str
|
用于开始生成的提示。以“user”角色传递给模型。 |
必需 |
system_prompt
|
Union[str, None]
|
系统提示,在用户提示之前以“system”角色传递给模型。 |
必需 |
client
|
API 客户端 |
必需 | |
config
|
OpenAIConfig
|
一个 |
必需 |
返回值
类型 | 描述 |
---|---|
一个包含模型响应和使用统计信息的元组。
|
|
源代码位于 outlines/models/openai.py
tokenizer
Tokenizer
基类: Hashable
, Protocol
源代码位于 outlines/models/tokenizer.py
convert_token_to_string(token)
将 token 转换为其等效字符串。
例如,这对于 BPE tokenizers 非常有用,其中空格由特殊字符 Ġ
表示。这可以防止将包含 Ġ
的原始 token 与字符串匹配。
源代码位于 outlines/models/tokenizer.py
decode(token_ids)
transformers
TransformerTokenizer
基类: Tokenizer
表示 transformers
库中模型的 tokenizer。
源代码位于 outlines/models/transformers.py
Transformers
表示一个 transformers
模型。
源代码位于 outlines/models/transformers.py
129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 |
|
forward(input_ids, attention_mask, past_key_values=None)
计算通过 transformer 模型的正向传递。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
input_ids
|
LongTensor
|
输入的 token ID。必须是一维或二维。 |
必需 |
attention_mask
|
LongTensor
|
注意力掩码。必须是一维或二维。 |
必需 |
past_key_values
|
Optional[Tuple]
|
一个包含每个注意力头缓存的键和值张量的元组的元组。 |
None
|
返回值
类型 | 描述 |
---|---|
计算出的 logits 以及新的缓存键和值张量。
|
|
源代码位于 outlines/models/transformers.py
generate(prompts, generation_parameters, logits_processor, sampling_parameters)
使用 transformers
生成文本。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
prompts
|
Union[str, List[str]]
|
一个提示或提示列表。 |
必需 |
generation_parameters
|
GenerationParameters
|
一个 |
必需 |
logits_processor
|
Optional[OutlinesLogitsProcessor]
|
生成文本时使用的 logits 处理器。 |
必需 |
sampling_parameters
|
SamplingParameters
|
一个 |
必需 |
返回值
类型 | 描述 |
---|---|
生成的文本
|
|
源代码位于 outlines/models/transformers.py
stream(prompts, generation_parameters, logits_processor, sampling_parameters)
临时的流替代,实现了 stream() 签名和等效行为,但在生成完成之前不会 yield。
TODO:在 https://github.com/huggingface/transformers/issues/30810 完成后实现
源代码位于 outlines/models/transformers.py
get_llama_tokenizer_types()
获取所有需要 work-around 的 Llama tokenizer 类型/类。
如果无法导入它们,则创建一个 dummy 类。
源代码位于 outlines/models/transformers.py
transformers(model_name, device=None, model_kwargs={}, tokenizer_kwargs={}, model_class=None, tokenizer_class=None)
从 transformers
库实例化模型及其 tokenizer。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
model_name
|
str
|
模型名称,列在 Hugging Face 模型页面上。 |
必需 |
device
|
Optional[str]
|
模型应加载到的设备。如果提供,此参数将覆盖 |
None
|
model_kwargs
|
dict
|
一个字典,包含加载模型时要传递给 |
{}
|
tokenizer_kwargs
|
dict
|
一个字典,包含加载 tokenizer 时要传递给 |
{}
|
返回值
类型 | 描述 |
---|---|
一个 `TransformersModel` 模型实例。
|
|
源代码位于 outlines/models/transformers.py
transformers_vision
TransformersVision
基类: Transformers
源代码位于 outlines/models/transformers_vision.py
generate(prompts, media, generation_parameters, logits_processor, sampling_parameters)
使用 transformers
生成文本。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
prompts
|
Union[str, List[str]]
|
一个提示或提示列表。 |
必需 |
media
|
Union[List[Any], List[List[Any]]]
|
一个 List[PIL.Image] 或 List[List[PIL.Image]] |
必需 |
generation_parameters
|
GenerationParameters
|
一个 |
必需 |
logits_processor
|
Optional[OutlinesLogitsProcessor]
|
生成文本时使用的 logits 处理器。 |
必需 |
sampling_parameters
|
SamplingParameters
|
一个 |
必需 |
返回值
类型 | 描述 |
---|---|
生成的文本
|
|
源代码位于 outlines/models/transformers_vision.py
transformers_vision(model_name, model_class, device=None, model_kwargs={}, processor_kwargs={}, tokenizer_class=None, processor_class=None)
从 transformers
库实例化模型及其 tokenizer。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
model_name
|
str
|
模型名称,列在 Hugging Face 模型页面上。 |
必需 |
model_class
|
用于从 |
必需 | |
device
|
Optional[str]
|
模型应加载到的设备。如果提供,此参数将覆盖 |
None
|
model_kwargs
|
dict
|
一个字典,包含加载模型时要传递给 |
{}
|
processor_kwargs
|
dict
|
一个字典,包含加载处理器时要传递给 |
{}
|
返回值
类型 | 描述 |
---|---|
一个 `TransformersModel` 模型实例。
|
|
源代码位于 outlines/models/transformers_vision.py
vllm
VLLM
表示一个 vLLM 模型。
我们包装来自提供模型库的模型,以便在 Outlines 中为它们提供相同的接口,并允许用户在不同提供者之间轻松切换。此类包装了 vllm
库中的 vllm.LLM
类。
源代码位于 outlines/models/vllm.py
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 |
|
generate(prompts, generation_parameters, logits_processor, sampling_parameters, *, sampling_params=None, use_tqdm=True)
使用 vLLM 生成文本。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
prompts
|
Union[str, List[str]]
|
一个提示或提示列表。 |
必需 |
generation_parameters
|
GenerationParameters
|
一个 |
必需 |
logits_processor
|
生成文本时使用的 logits 处理器。 |
必需 | |
sampling_parameters
|
SamplingParameters
|
一个 |
必需 |
sampling_params
|
Optional[SamplingParams]
|
一个 |
None
|
use_tqdm
|
bool
|
一个布尔值,用于在推理时显示进度条 |
True
|
返回值
类型 | 描述 |
---|---|
生成的文本,形状为
|
|
一个批次和多个样本,列表的形状为
|
|
这是一个包含多个序列但只有一个样本的批次,列表的形状为
|
|
|
|
一个字符串。
|
|
源代码位于 outlines/models/vllm.py
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
|
stream(*args, **kwargs)
返回文本生成器。
vllm.LLM
尚不支持流式传输。
TODO:自行实现流式传输功能。
源代码位于 outlines/models/vllm.py
adapt_tokenizer(tokenizer)
调整 tokenizer 以用于编译 FSM。
Outlines tokenizer 的 API 与 transformers
略有不同。此外,我们需要处理 Llama tokenizer 缺失的空格,才能为该模型编译 FSM。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
tokenizer
|
PreTrainedTokenizerBase
|
模型的 tokenizer。 |
必需 |
返回值
类型 | 描述 |
---|---|
PreTrainedTokenizerBase
|
调整后的 tokenizer。 |
源代码位于 outlines/models/vllm.py
vllm(model_name, **vllm_model_params)
加载 vLLM 模型。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
model_name
|
str
|
要从 HuggingFace hub 加载的模型名称。 |
必需 |
vllm_model_params
|
vLLM 特定的模型参数。有关完整列表,请参阅 vLLM 代码:https://github.com/vllm-project/vllm/blob/main/vllm/entrypoints/llm.py |
{}
|