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 来停止生成。