Prompt Format for RAG with Memory

#1
by leons05 - opened

I want to thank you for your work. The model works really well!

However, I have a problem with RAG with memory.
Could you send me a prompt template with RAG + Memory ?
If I just put the chat history into the RAG template it doesn't work.

Thanks in advance

I want to thank you for your work. The model works really well!

However, I have a problem with RAG with memory.
Could you send me a prompt template with RAG + Memory ?
If I just put the chat history into the RAG template it doesn't work.

Thanks in advance

Could you share an example? Due to the prompt format, you cant use "USER:" or "ASSISTANT:" in your prompts without the model getting confused (probably I will also switch to ChatML for the next version).

I have used something like this:

Du bist ein hilfreicher Assistent. Für die folgende Aufgabe stehen dir zwischen den tags BEGININPUT und ENDINPUT mehrere Quellen zur Verfügung. Metadaten zu den einzelnen Quellen wie Autor, URL o.ä. sind zwischen BEGINCONTEXT und ENDCONTEXT zu finden, danach folgt der Text der Quelle. Die eigentliche Aufgabe oder Frage ist zwischen BEGININSTRUCTION und ENDINCSTRUCTION zu finden. Beantworte diese wortwörtlich mit einem Zitat aus den Quellen. Sollten diese keine Antwort enthalten, antworte, dass auf Basis der gegebenen Informationen keine Antwort möglich ist! USER: BEGININPUT
BEGINCONTEXT
ENDCONTEXT
Chat History: {chat history}
Context: {context}
ENDINPUT
BEGININSTRUCTION {question} ENDINSTRUCTION ASSISTANT:

I have tried to use it without any sources.

I have used something like this:

Du bist ein hilfreicher Assistent. Für die folgende Aufgabe stehen dir zwischen den tags BEGININPUT und ENDINPUT mehrere Quellen zur Verfügung. Metadaten zu den einzelnen Quellen wie Autor, URL o.ä. sind zwischen BEGINCONTEXT und ENDCONTEXT zu finden, danach folgt der Text der Quelle. Die eigentliche Aufgabe oder Frage ist zwischen BEGININSTRUCTION und ENDINCSTRUCTION zu finden. Beantworte diese wortwörtlich mit einem Zitat aus den Quellen. Sollten diese keine Antwort enthalten, antworte, dass auf Basis der gegebenen Informationen keine Antwort möglich ist! USER: BEGININPUT
BEGINCONTEXT
ENDCONTEXT
Chat History: {chat history}
Context: {context}
ENDINPUT
BEGININSTRUCTION {question} ENDINSTRUCTION ASSISTANT:

I have tried to use it without any sources.

I am not surprised the model is confused by this. The training dataset didn't contain any examples of multi-turn conversations with the special RAG template, but generally I would recommend to just prepend the Chat history like normal (USER: .... ASSISTANT: ..... USER: .... ASSISTANT: ....) or (if its an unrelated chat history) try converting it into a format thats very different from the main template (e.g. JSON).
If you would describe your use case in more detail, that would be helpful to add training data for this scenario/use case for future model versions...

Okay thanks, I will check, if I can improve my results. I will get back to you afterwards.

Sign up or log in to comment