Zdefiniowanie celu bota.

0

Chciałbym aby mój bot jezykowy znał swój cel na razie zdefiniowałem tylko:

def get_program_goal():
    return "Podanie prawidłowej odpowiedzi na zadane pytania oraz odpowiednie odpowiadanie na zapytania."

program_goal = get_program_goal()

ale chce aby program_goal ingerował w generowaną odpowiedź. Oto fragment programu odpowiadający za generowaną odpowiedź:

def generate_response(input_text, model, word_to_index, index_to_word):
    input_tensor = torch.tensor([word_to_index[word] for word in input_text.split()], dtype=torch.long)
    output = model(input_tensor.unsqueeze(0)).squeeze(0)
    _, predicted_indices = torch.max(output, dim=1)
    predicted_words = [index_to_word[index.item()] for index in predicted_indices]
    response = " ".join(predicted_words)
    return response
0

Nie jestem pewien, czy o to ci chodzi, ale w przypadku wielu modeli ogólny (systemowy) prompt i pytanie użytkownika są po prostu sklejane w jedno, a model robi po prostu przewidywanie dalszej części tekstu. Co najwyżej format i tokeny kończące wypowiedź są ustalone, żeby sam sobie nie wygenerował dalszych pytań.

Np. dla Vicuny (1.1) to wygląda jakoś tak:

Jesteś botem, który odpowiada na pytania. Twoim zadaniem jest podanie prawidłowej odpowiedzi na zadane pytanie.

USER: Ile jest 2+2?
ASSISTANT: 

I on generuje od "ASSISTANT: " dalej, a przestaje w momencie napotkania np. znów "USER: ".

1 użytkowników online, w tym zalogowanych: 0, gości: 1