PAL (Models de llenguatge assistits per programa)
Gao et al., (2022) (opens in a new tab) presenta un mètode que utilitza LLMs per llegir problemes en llenguatge natural i generar programes com a passos intermedis de raonament. Anomenats models de llenguatge assistits per programa (PAL), difereix de l'encadenament de pensaments en el sentit que, en lloc d'utilitzar text de forma lliure per obtenir una solució, delega el pas de la solució a un temps d'execució programà tic, com un intèrpret de Python.

Font de la imatge: Gao et al., (2022) (opens in a new tab)
Anem a veure un exemple utilitzant LangChain i OpenAI GPT-3. Estem interessats a desenvolupar una aplicació senzilla que sigui capaç d'interpretar la pregunta que es planteja i proporcionar una resposta aprofitant l'intèrpret de Python.
EspecÃficament, estem interessats a crear una funcionalitat que permeti l'ús de l'LLM per respondre preguntes que requereixin comprensió de dates. Proporcionarem a l'LLM un avÃs que inclogui alguns exemples adoptats d'aquà (opens in a new tab).
Aquestes són les importacions que necessitem:
import openai
from datetime import datetime
from dateutil.relativedelta import relativedelta
import os
from langchain.llms import OpenAI
from dotenv import load_dotenv
Configurem primer algunes coses:
load_dotenv()
# Configuració de l'API
openai.api_key = os.getenv("OPENAI_API_KEY")
# per a LangChain
os.environ["OPENAI_API_KEY"] = os.getenv("OPENAI_API_KEY")
Configurar l'instà ncia del model:
llm = OpenAI(model_name='text-davinci-003', temperature=0)
Configurar el prompt + pregunta:
question = "Avui és 27 de febrer de 2023. Vaig néixer exactament fa 25 anys. Quina és la data en què vaig néixer en MM/DD/YYYY?"
DATE_UNDERSTANDING_PROMPT = """
# (Rest of the prompt code, but translated to Catalan)
""".strip() + '\n'
llm_out = llm(DATE_UNDERSTANDING_PROMPT.format(question=question))
print(llm_out)
exec(llm_out)
print(born)
Això produirà el següent resultat: 02/27/1998