用于运行多个聊天机器人之间对话实验的库。
项目描述
聊天聊天机器人
用于运行多个生成语言模型之间对话实验的库。
安装
从PiPy安装聊天聊天机器人
pip install chatting_chatbots
或直接从GitHub安装
pip install git+https://github.com/centre-for-humanities-computing/chatbot-conversations
用法
该软件包目前只能与PyTorch一起使用。
使用示例(在教程/示例.ipynb中查看)
import chatting_chatbots as cc
cc.Experiment(
population = {"John" : "gpt2", "Margaret" : "gpt2", "Alice" : "gpt2", "Bob" : "gpt2", "Eve" : "gpt2", "Charlie" : "gpt2", "Darwin" : "gpt2"},
cycles = 2,
initial_context="Hi. Why are you late?",
conversation_length=10,
verbose = True,
use_gpu=0,
use_files=False
).run()
实验参数
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
population | dict | 必需参数 | 一个字典,其中每个元素是一个代理,定义为“Agent_Name” : “Agent_Model”。模型可以是HuggingFace上可用的模型名称,或者是一个包含分词器和您已创建的模型的列表[tokenizer, model] 。 |
cycles | int | 1 | 对话周期数,其中每个周期是种群中的每个代理与其他代理交谈两次(开始对话一次,作为第二次交谈)。 |
initial_context | str | "Hello." | 第一个代理在对话中使用的初始上下文,即每个对话都以这个句子开始。 |
conversation_length | int | 10 | 对话的回合长度(不包括初始上下文)。 |
random_length | int | 0 | 长度随机变量;长度从均匀分布[conversation_length - random_length, conversation_length + random_length] 中选取。 |
training_args | TrainingArguments | None | 传递给HuggingFace Trainer() 类的TrainingArguments参数。如果为None ,则使用一些默认参数。 |
verbose | bool | False | 如果设置为True ,类将输出一些关于正在发生什么的额外文本。 |
use_files | bool | True | 如果设置为True ,在训练过程中,对话将被保存到output_path 目录下的文件中,并且将使用output_path 中的所有文件进行训练。否则,仅使用单个.run() 生成的对话。 |
use_gpu | int | -1 | 如果没有设置,则使用cpu,否则使用指定的gpu。 |
generation_parameters | list | None | 用于model.generate() 函数的参数列表(未测试)。如果未使用,则使用一些默认参数。 |
context_size | int | 600 | 每次生成应使用多少个标记。如果设置为0,则使用整个对话作为上下文。请注意,这容易导致崩溃,因为某些模型无法处理大型上下文。 |
full_conversation | bool | True | 如果设置为True ,则使用整个对话进行训练。如果设置为False ,则仅使用其他代理的文本进行训练。 |
batch_size | int | 128 | 用于训练的批次大小。如果实验因没有训练示例而崩溃,您应该降低此值或增加对话长度。 |
train_after_run | bool | True | 如果设置为True ,则在每次.run() 后对每个代理进行训练。 |
output_path | str | "outputs" | 对话文件应保存的路径。 |
cache_path | str | ".cache/huggingface/transformers" | 模型(如果从HuggingFace下载)应存储的路径。 |
可用函数
function | arguments | return | 描述 |
---|---|---|---|
conversation_generation() | str speaker_one, str speaker_two | str conversation | 生成speaker_one 和speaker_two 之间的对话。返回对话。请注意,说话人必须在Experiment 的群体中。 |
run() | - | - | 通过让每个代理与其他每个代理进行设定的周期数对话来运行实验,可选地之后进行训练。 |
train_participant() | str participant | - | 训练指定的参与者。请注意,参与者必须是Experiment 的population 的一部分。 |
return_model | str participant | model | 返回指定参与者的当前模型。 |
致谢
此软件包是在使用Name
项目模板创建的。