Как создать согласованный ответ между различными подсказками в vertex-ai

Я пытаюсь запустить приведенный ниже код в блокноте Colab, где меняются регион и субрегион, существует 21 зона, определенная СОООН, и мне нужен список стран для каждой зоны.

Я пытаюсь понять, почему «Западная Европа» не дает результатов, а «Восточная Европа» дает какой-то(раз) список стран. В других регионах та же проблема, пока мне не удалось создать список стран в регионах. Моя основная проблема в том, что иногда результаты не возвращаются, а когда, например, форматирование удаляется, результаты в ответах не совпадают, поэтому построение базы данных стран невозможно (слишком много исключений).

      import vertexai
from vertexai.language_models import TextGenerationModel

vertexai.init(project="XXXXXXXXXXXXXXXXXXX", location="us-central1")
parameters = {
    "max_output_tokens": 512,
    "temperature": 0,
    "top_p": 0.8,
    "top_k": 40
}
model = TextGenerationModel.from_pretrained("text-bison@001")
response = model.predict(
    ""

    "The United Nations geoscheme is a system which divides 249 countries and territories in the world into six regional, 17 subregional, and nine intermediate regional groups. It was devised by the United Nations Statistics Division (UNSD) based on the M49 coding classification.
    
    input: Geographical Region
    output: country=[]
    
    input: Hi Bard, which countries in \"Europe\" are part of the subregion \"Western Europe\", as defined by the UNSD?
    output:
    """,
        **parameters
    )
    print(f"Respo

nse from Model: {response.text}")

Создание списка стран по регионам должно быть простой задачей, и мне хотелось бы понять, что я делаю не так. Любое понимание этой проблемы высоко ценится.

1 ответ

Проблема решена, это было непросто, но эта запись в блоге дает хорошее представление:https://blog.gopenai.com/fundamental-prompt-engineering-guide-with-vertex-ai-palm-api-c9f307413d85

Я использовал подсказки самосогласованности, предписывая коду отформатировать структуру JSON, чтобы сохранить ответ и обеспечить согласованность для следующего вопроса в цикле. Код по-прежнему ломался в нескольких местах, но это произошло потому, что вопрос не давал ответа (пустой JSON); переформулировав вопрос для случаев, когда результаты не были возвращены, я получил полный список стран для регионов, но не все страны и дубликаты.

Почему это важно? Он показывает (в качестве индикатора), в каких регионах модели будет сложно найти релевантную информацию для вопросов конкретно для этой страны.

Мои следующие шаги: прямая подсказка пропущенным странам, чтобы узнать, есть ли информация о стране, например, к какому субрегиону, по определению СОООН, принадлежит {страна}?

Для дубликатов мне придется разработать аналогичный тест, чтобы увидеть, можно ли вернуть правильный субрегион.

Другие вопросы по тегам