GPT4ALL私有化部署 04 | 参数详解

时间:2024-10-23 08:30:33

GPT4ALL私有化部署 02 | 初尝试
在初尝试文章中,提到了如何使用gpt4all进行对话,使用到了以下代码:

from gpt4all import GPT4All
model = GPT4All(model_name='orca-mini-3b.ggmlv3.q4_0.bin')
with model.chat_session():
    response = model.generate(prompt='hello', top_k=1)
    response = model.generate(prompt='write me a short poem', top_k=1)
    response = model.generate(prompt='thank you', top_k=1)
    print(model.current_chat_session)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

其中需要注意的一共有三个方法:

  • GPT4All()
  • model.chat_session()
  • ()

GPT4ALL方法

官方介绍Constructor
Parameters:

  • model_name (str) – Name of GPT4All or custom model. Including “.bin” file extension is optional but encouraged.
  • model_path (Optional[str]) – Path to directory containing model file or, if file does not exist, where to download model. Default is None, in which case models will be stored in ~/.cache/gpt4all/.
  • model_type (Optional[str]) – Model architecture. This argument currently does not have any functionality and is just used as descriptive identifier for user. Default is None.
  • allow_download (bool) – Allow API to download models from . Default is True.
  • n_threads (Optional[int]) – number of CPU threads used by GPT4All. Default is None, then the number of threads are determined automatically.

这是 GPT4All 类的构造函数,用于创建一个新的 GPT4All 对象。以下是每个参数的详细解释:

  • model_name:GPT4All 或自定义模型的名称。包括 “.bin” 文件扩展名是可选的,但建议这样做。
  • model_path:包含模型文件的目录的路径,或者,如果文件不存在,下载模型的位置。默认为 None,在这种情况下,模型将存储在 ~/.cache/gpt4all/。
  • model_type:模型架构。这个参数目前没有任何功能,只是用作用户的描述性标识符。默认为 None。
  • allow_download:允许 API 从 下载模型。默认为 True。
  • n_threads:GPT4All 使用的 CPU 线程数。默认为 None,然后线程数将自动确定。

这个构造函数的主要目的是初始化 GPT4All 对象,包括加载或下载模型,设置模型类型和线程数等。

chat_session方法

官方介绍Context manager to hold an inference optimized chat session with a GPT4All model.
Parameters:

  • system_prompt (str) – An initial instruction for the model.
  • prompt_template (str) – Template for the prompts with {0} being replaced by the user message.

这是一个上下文管理器,用于与 GPT4All 模型进行优化的推理聊天会话。以下是每个参数的详细解释

  • system_prompt:模型的初始指令。这通常是一个开放式的问题或者一个未完成的句子,模型会根据这个提示生成文本。
  • prompt_template:提示的模板,其中 {0} 将被用户消息替换。这是一个字符串模板,用于构造传递给模型的提示。例如,如果模板是 "User said: {0}",并且用户的消息是 "Hello",那么传递给模型的提示将是 "User said: Hello"

这个上下文管理器的主要目的是管理与模型的聊天会话,包括初始化会话、处理用户输入和生成模型响应。在 with 语句中使用此上下文管理器可以确保在会话结束时正确地清理资源。

generate方法

官方介绍Parameters:

  • prompt (str) – The prompt for the model the complete.
  • max_tokens (int) – The maximum number of tokens to generate.
  • temp (float) – The model temperature. Larger values increase creativity but decrease factuality.
  • top_k (int) – Randomly sample from the top_k most likely tokens at each generation step. Set this to 1 for greedy decoding.
  • top_p (float) – Randomly sample at each generation step from the top most likely tokens whose probabilities add up to top_p.
  • repeat_penalty (float) – Penalize the model for repetition. Higher values result in less repetition.
  • repeat_last_n (int) – How far in the models generation history to apply the repeat penalty.
  • n_batch (int) – Number of prompt tokens processed in parallel. Larger values decrease latency but increase resource requirements.
  • n_predict (Optional[int]) – Equivalent to max_tokens, exists for backwards compatibility.
  • streaming (bool) – If True, this method will instead return a generator that yields tokens as the model generates them.
    如果为 True,则此方法将返回一个生成器,该生成器在模型生成令牌时生成令牌。
  • callback () – A function with arguments token_id:int and response:str, which receives the tokens from the model as they are generated and stops the generation by returning False.

这些参数是用于配置 GPT4All 模型生成文本的选项。以下是每个参数的详细解释:

  • prompt:模型需要完成的提示。这通常是一个开放式的问题或者一个未完成的句子,模型会根据这个提示生成文本。
  • max_tokens:模型生成的最大令牌数。令牌可以是一个字、一个词或者一个标点符号。
  • temp:模型的温度。较大的值会增加模型的创造性,但会降低事实性。
  • top_k:在每一步生成时,从最可能的 top_k 个令牌中随机采样。如果设置为 1,则为贪婪解码。
  • top_p:在每一步生成时,从最可能的令牌中随机采样,这些令牌的概率加起来为 top_p。
  • repeat_penalty:对模型进行重复惩罚。较高的值会导致较少的重复。
  • repeat_last_n:在模型的生成历史中,应用重复惩罚的范围有多远。
  • n_batch:并行处理的提示令牌数。较大的值会降低延迟,但会增加资源需求。
  • n_predict:等同于 max_tokens,存在是为了向后兼容。
  • streaming:如果为 True,则此方法将返回一个生成器,该生成器在模型生成令牌时生成令牌。
  • callback:一个带有参数 token_id:int 和 response:str 的函数,该函数在模型生成令牌时接收令牌,并通过返回 False 来停止生成。