目录
lorax.client
客户端对象
class Client()
用于调用LoRAX实例的客户端
示例:
from lorax import Client
client = Client("http://127.0.0.1:8080")
client.generate("Why is the sky blue?", adapter_id="some/adapter").generated_text
' Rayleigh scattering'
result = ""
for response in client.generate_stream("Why is the sky blue?", adapter_id="some/adapter"):
if not response.token.special:
result += response.token.text
result
' Rayleigh scattering'
__init__
def __init__(base_url: str,
headers: Optional[Dict[str, str]] = None,
cookies: Optional[Dict[str, str]] = None,
timeout: int = 60)
参数:
- base_url (
str): LoRAX实例的基础URL - headers (
Optional[Dict[str, str]]): 额外的请求头 - cookies (
Optional[Dict[str, str]]): 请求中包含的Cookies - timeout (
int): 超时时间(秒)
生成
def generate(prompt: str,
adapter_id: Optional[str] = None,
adapter_source: Optional[str] = None,
merged_adapters: Optional[MergedAdapters] = None,
api_token: Optional[str] = None,
do_sample: bool = False,
max_new_tokens: int = 20,
best_of: Optional[int] = None,
repetition_penalty: Optional[float] = None,
return_full_text: bool = False,
seed: Optional[int] = None,
stop_sequences: Optional[List[str]] = None,
temperature: Optional[float] = None,
top_k: Optional[int] = None,
top_p: Optional[float] = None,
truncate: Optional[int] = None,
typical_p: Optional[float] = None,
watermark: bool = False,
response_format: Optional[Union[Dict[str, Any],
ResponseFormat]] = None,
decoder_input_details: bool = False,
details: bool = True) -> Response
根据给定的提示,生成以下文本
参数:
- prompt (
str): 输入文本 - adapter_id (
Optional[str]): 应用于基础模型的适配器ID,用于请求 - adapter_source (
Optional[str]): 适配器来源("hub", "local", "s3", "pbase") - merged_adapters (
Optional[MergedAdapters]): 为请求应用于基础模型的合并适配器 - api_token (
Optional[str]): 用于访问私有适配器的API令牌 - do_sample (
bool): 启用对数采样 - max_new_tokens (
int): 生成token的最大数量 - best_of (
int): 生成best_of个序列并返回token对数概率最高的那个 - repetition_penalty (
float): 重复惩罚参数。1.0表示无惩罚。详见此论文获取更多细节。 return_full_text (bool): 是否在生成文本前添加提示词 - seed (
int): 随机采样种子 - stop_sequences (
List[str]): 如果生成了stop_sequences中的任一成员,则停止生成token - temperature (
float): 用于调节对数概率分布的值。 - top_k (
int): 保留用于top-k过滤的最高概率词汇标记的数量。 - top_p (
float): 如果设置为小于1,则只保留概率总和达到top_p或更高的最小概率词元集合用于生成。 - truncate (
int): 将输入标记截断至给定大小 - typical_p (
float): 典型解码质量 更多信息请参阅Typical Decoding for Natural Language Generation - watermark (
bool): 使用A Watermark for Large Language Models进行水印处理 - response_format (
Optional[Union[Dict[str, Any], ResponseFormat]]): 可选的格式规范,用于约束生成的文本,例如:{ "type": "json_object", "schema": { "type": "string", "title": "response" } } - decoder_input_details (
bool): 返回解码器输入令牌的对数概率和ID - details (
bool): 返回生成token的token对数概率和id
返回:
Response- 生成的响应
generate_stream
def generate_stream(prompt: str,
adapter_id: Optional[str] = None,
adapter_source: Optional[str] = None,
merged_adapters: Optional[MergedAdapters] = None,
api_token: Optional[str] = None,
do_sample: bool = False,
max_new_tokens: int = 20,
repetition_penalty: Optional[float] = None,
return_full_text: bool = False,
seed: Optional[int] = None,
stop_sequences: Optional[List[str]] = None,
temperature: Optional[float] = None,
top_k: Optional[int] = None,
top_p: Optional[float] = None,
truncate: Optional[int] = None,
typical_p: Optional[float] = None,
watermark: bool = False,
response_format: Optional[Union[Dict[str, Any],
ResponseFormat]] = None,
details: bool = True) -> Iterator[StreamResponse]
给定一个提示,生成以下令牌流
参数:
- prompt (
str): 输入文本 - adapter_id (
Optional[str]): 应用于基础模型的适配器ID,用于请求 - adapter_source (
Optional[str]): 适配器来源 (hub, local, s3) - merged_adapters (
Optional[MergedAdapters]): 为请求应用于基础模型的合并适配器 - api_token (
Optional[str]): 用于访问私有适配器的API令牌 - do_sample (
bool): 启用对数采样 - max_new_tokens (
int): 生成token的最大数量 - repetition_penalty (
float): 重复惩罚参数。1.0表示无惩罚。详见此论文获取更多细节。 return_full_text (bool): 是否在生成文本前添加提示词 - seed (
int): 随机采样种子 - stop_sequences (
List[str]): 如果生成了stop_sequences中的任一成员,则停止生成token - temperature (
float): 用于调节对数概率分布的值。 - top_k (
int): 保留用于top-k过滤的最高概率词汇标记的数量。 - top_p (
float): 如果设置为小于1,则只保留概率总和达到top_p或更高的最小概率词元集合用于生成。 - truncate (
int): 将输入标记截断至给定大小 - typical_p (
float): 典型解码质量 更多信息请参阅Typical Decoding for Natural Language Generation - 水印 (
bool): 使用A Watermark for Large Language Models进行水印处理 response_format (Optional[Union[Dict[str, Any], ResponseFormat]]): 可选的格式规范,用于约束生成的文本,例如:{ "type": "json_object", "schema": { "type": "string", "title": "response" } } - details (
bool): 返回生成标记的token对数概率和ID
返回:
Iterator[StreamResponse]- 生成的令牌流
AsyncClient 对象
class AsyncClient()
异步客户端,用于调用LoRAX实例
示例:
from lorax import AsyncClient
client = AsyncClient("https://api-inference.huggingface.co/models/bigscience/bloomz")
response = await client.generate("Why is the sky blue?", adapter_id="some/adapter")
response.generated_text
' Rayleigh scattering'
result = ""
async for response in client.generate_stream("Why is the sky blue?", adapter_id="some/adapter"):
if not response.token.special:
result += response.token.text
result
' Rayleigh scattering'
__init__
def __init__(base_url: str,
headers: Optional[Dict[str, str]] = None,
cookies: Optional[Dict[str, str]] = None,
timeout: int = 60)
参数:
- base_url (
str): LoRAX实例的基础URL - headers (
Optional[Dict[str, str]]): 额外的请求头 - cookies (
Optional[Dict[str, str]]): 请求中包含的Cookies - timeout (
int): 超时时间(秒)
生成
async def generate(prompt: str,
adapter_id: Optional[str] = None,
adapter_source: Optional[str] = None,
merged_adapters: Optional[MergedAdapters] = None,
api_token: Optional[str] = None,
do_sample: bool = False,
max_new_tokens: int = 20,
best_of: Optional[int] = None,
repetition_penalty: Optional[float] = None,
return_full_text: bool = False,
seed: Optional[int] = None,
stop_sequences: Optional[List[str]] = None,
temperature: Optional[float] = None,
top_k: Optional[int] = None,
top_p: Optional[float] = None,
truncate: Optional[int] = None,
typical_p: Optional[float] = None,
watermark: bool = False,
response_format: Optional[Union[Dict[str, Any],
ResponseFormat]] = None,
decoder_input_details: bool = False,
details: bool = True) -> Response
根据给定的提示,异步生成以下文本
参数:
- prompt (
str): 输入文本 - adapter_id (
Optional[str]): 应用于基础模型的适配器ID,用于请求 - adapter_source (
Optional[str]): 适配器来源 (hub, local, s3) - merged_adapters (
Optional[MergedAdapters]): 为请求应用于基础模型的合并适配器 - api_token (
Optional[str]): 用于访问私有适配器的API令牌 - do_sample (
bool): 启用对数采样 - max_new_tokens (
int): 生成token的最大数量 - best_of (
int): 生成best_of个序列并返回token对数概率最高的那个 repetition_penalty (float): 重复惩罚参数。1.0表示无惩罚。详见此论文获取更多细节。 return_full_text (bool): 是否在生成文本前添加提示词 - seed (
int): 随机采样种子 - stop_sequences (
List[str]): 如果生成了stop_sequences中的任一成员,则停止生成token - temperature (
float): 用于调节对数概率分布的值。 - top_k (
int): 保留用于top-k过滤的最高概率词汇标记的数量。 - top_p (
float): 如果设置为小于1,则只保留概率总和达到top_p或更高的最小概率词元集合用于生成。 - truncate (
int): 将输入标记截断至给定大小 - typical_p (
float): 典型解码质量 更多信息请参阅Typical Decoding for Natural Language Generation - watermark (
bool): 使用A Watermark for Large Language Models进行水印处理 - response_format (
Optional[Union[Dict[str, Any], ResponseFormat]]): 可选的格式规范,用于对生成的文本施加特定格式,例如:{ "type": "json_object", "schema": { "type": "string", "title": "response" } } - decoder_input_details (
bool): 返回解码器输入令牌的对数概率和ID - details (
bool): 返回生成token的token对数概率和id
返回:
Response- 生成的响应
generate_stream
async def generate_stream(
prompt: str,
adapter_id: Optional[str] = None,
adapter_source: Optional[str] = None,
merged_adapters: Optional[MergedAdapters] = None,
api_token: Optional[str] = None,
do_sample: bool = False,
max_new_tokens: int = 20,
repetition_penalty: Optional[float] = None,
return_full_text: bool = False,
seed: Optional[int] = None,
stop_sequences: Optional[List[str]] = None,
temperature: Optional[float] = None,
top_k: Optional[int] = None,
top_p: Optional[float] = None,
truncate: Optional[int] = None,
typical_p: Optional[float] = None,
watermark: bool = False,
response_format: Optional[Union[Dict[str, Any],
ResponseFormat]] = None,
details: bool = True) -> AsyncIterator[StreamResponse]
给定一个提示,异步生成以下令牌流
参数:
- prompt (
str): 输入文本 - adapter_id (
Optional[str]): 应用于基础模型的适配器ID,用于请求 - adapter_source (
Optional[str]): 适配器来源(hub中心库、local本地、s3存储) - merged_adapters (
Optional[MergedAdapters]): 为请求应用于基础模型的合并适配器 - api_token (
Optional[str]): 用于访问私有适配器的API令牌 - do_sample (
bool): 启用对数采样 - max_new_tokens (
int): 生成token的最大数量 - repetition_penalty (
float): 重复惩罚参数。1.0表示无惩罚。详见此论文获取更多细节。 return_full_text (bool): 是否在生成文本前添加提示词 - seed (
int): 随机采样种子 - stop_sequences (
List[str]): 如果生成了stop_sequences中的任一成员,则停止生成token - temperature (
float): 用于调节对数概率分布的值。 - top_k (
int): 保留用于top-k过滤的最高概率词汇标记的数量。 - top_p (
float): 如果设置为小于1,则只保留概率总和达到top_p或更高的最小概率词元集合用于生成。 - truncate (
int): 将输入标记截断至给定大小 - typical_p (
float): 典型解码质量 更多信息请参阅Typical Decoding for Natural Language Generation - watermark (
bool): 使用A Watermark for Large Language Models进行水印处理 - response_format (
Optional[Union[Dict[str, Any], ResponseFormat]]): 可选的格式规范,用于约束生成的文本,例如:{ "type": "json_object", "schema": { "type": "string", "title": "response" } } - details (
bool): 返回生成标记的token对数概率和ID
返回:
AsyncIterator[StreamResponse]- 生成的令牌流