Есть ли способ позволить префиксу langchain.memory удалить ":" и сначала добавить только "[INST]" и добавить "[/INST]" в историю человека?

Я использую llama2, и его подсказки имеют формат, позволяющий модели знать о таком разговоре.

      [INST] {First_human_input} [/INST]
{First_model_output}
[INST] {Second_human_input}[/INST]

но память в langchain по умолчанию такая

      Human: First_input
AI: First_output
Human: Second_input

Несмотря на использование langchain по умолчанию, llama также может знать, но выводит сообщение «AI:». Я уже пытался установить ai_prefix и human_prefix, но «:» не могу удалить. Есть ли хороший способ решить?

1 ответ

Вы можете сделать это, расширив и переопределив метод save_context в классе ConversationStringBufferMemory.

          #extract from ConversationStringBufferMemory 
    #here you can custom separator instead of :
    human = f"{self.human_prefix}: " + inputs[prompt_input_key]
    ai = f"{self.ai_prefix}: " + outputs[output_key]
    self.buffer += "\n" + "\n".join([human, ai])
Другие вопросы по тегам