跳至内容

目录

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] - 生成的令牌流