Maison > développement back-end > Tutoriel Python > Parlons de la façon de concevoir une excellente application de rappel ?

Parlons de la façon de concevoir une excellente application de rappel ?

王林
Libérer: 2023-04-24 18:49:09
avant
1120 Les gens l'ont consulté

Dans ce guide, nous aborderons quelques façons avancées et intéressantes d'utiliser l'ingénierie des indices pour effectuer des tâches utiles et plus avancées.

Veuillez noter que cette section est en fort développement. Sujet :

  • Génération de données
  • Modèle de langage assisté par programme
  • Cahier Python

1. Génération de données

LLM possède de puissantes capacités de génération de texte. L’utilisation de stratégies d’incitation efficaces peut guider le modèle pour produire des réponses meilleures, plus cohérentes et plus factuelles. LLM est également particulièrement utile pour générer des données utiles à la réalisation de diverses expériences. Par exemple, nous pouvons l'utiliser pour générer des échantillons rapides pour un classificateur de sentiments comme celui-ci :

Swift :

Produce 10 exemplars for sentiment analysis. Examples are categorized as either positive or negative. Produce 2 negative examples and 8 positive examples. Use this format for the examples:
Q: <sentence>
A: <sentiment>
Copier après la connexion

Sortie :

Q: 我刚得到了有史以来最好的消息!
A: 积极的

Q: 我们刚刚在工作中得到了加薪!
A: 积极的

Q: 我为今天所取得的成就感到非常自豪。
A: 积极的

Q: 我度过了有史以来最好的一天!
A: 积极的

Q: 我非常期待周末的到来。
A: 积极的

Q: 我刚收到了有史以来最好的礼物!
A: 积极的

Q: 我现在非常开心。
A: 积极的

Q: 我很幸运有这么一支了不起的家庭。
A: 积极的

Q: 外面的天气很阴暗。
A: 消极的

Q: 我刚得到了一些可怕的消息。
A: 消极的
Copier après la connexion

C'est très utile. Nous utilisons cet exemple pour un test différent dans une autre partie du guide.

2. PAL (Program-Assisted Language Model)

Gao et al. (2022) ont proposé une méthode pour utiliser le LLM pour lire des questions en langage naturel et générer des programmes comme étape de raisonnement intermédiaire. Le modèle de langage assisté par programme (PAL) créé diffère des invites de chaîne de pensée dans la mesure où, au lieu d'utiliser un texte de forme libre pour parvenir à une solution, il décharge les étapes de la solution vers un environnement d'exécution de programmation, tel que l'interpréteur Python.


Parlons de la façon de concevoir une excellente application de rappel ?


Regardons un exemple utilisant LangChain et OpenAI GPT-3. Nous souhaitons développer une application simple capable d'interpréter les questions posées et de fournir des réponses en tirant parti de l'interpréteur Python.

Plus précisément, nous souhaitons créer une fonction qui permet d'utiliser LLM pour répondre à des questions qui nécessitent de comprendre des dates. Nous fournirons des conseils pour le LLM, y compris quelques exemples tirés d'ici.

Voici les importations dont nous avons besoin :

import openai
from datetime import datetime
from dateutil.relativedelta import relativedelta
import os
from langchain.llms import OpenAI
from dotenv import load_dotenv
Copier après la connexion

Configurons d'abord quelque chose :

load_dotenv()
Copier après la connexion

Configuration de l'API

openai.api_key = os.getenv("OPENAI_API_KEY")
Copier après la connexion

pour LangChain

os.environ["OPENAI_API_KEY"] = os.getenv("OPENAI_API_KEY")
Copier après la connexion

Configurer l'instance de modèle :

llm = OpenAI(model_name='text-davinci-003', temperature=0)
Copier après la connexion

Configurer des invites + des questions :

question = "Today is 27 February 2023. I was born exactly 25 years ago. What is the date I was born in MM/DD/YYYY?"

DATE_UNDERSTANDING_PROMPT = """
# Q: 2015 is coming in 36 hours. What is the date one week from today in MM/DD/YYYY?

# If 2015 is coming in 36 hours, then today is 36 hours before.

today = datetime(2015, 1, 1) - relativedelta(hours=36)

# One week from today,

one_week_from_today = today + relativedelta(weeks=1)

# The answer formatted with %m/%d/%Y is

one_week_from_today.strftime('%m/%d/%Y')

# Q: The first day of 2019 is a Tuesday, and today is the first Monday of 2019. What is the date today in MM/DD/YYYY?

# If the first day of 2019 is a Tuesday, and today is the first Monday of 2019, then today is 6 days later.

today = datetime(2019, 1, 1) + relativedelta(days=6)

# The answer formatted with %m/%d/%Y is

today.strftime('%m/%d/%Y')

# Q: The concert was scheduled to be on 06/01/1943, but was delayed by one day to today. What is the date 10 days ago in MM/DD/YYYY?

# If the concert was scheduled to be on 06/01/1943, but was delayed by one day to today, then today is one day later.

today = datetime(1943, 6, 1) + relativedelta(days=1)

# 10 days ago,

ten_days_ago = today - relativedelta(days=10)

# The answer formatted with %m/%d/%Y is

ten_days_ago.strftime('%m/%d/%Y')

# Q: It is 4/19/1969 today. What is the date 24 hours later in MM/DD/YYYY?

# It is 4/19/1969 today.

today = datetime(1969, 4, 19)

# 24 hours later,

later = today + relativedelta(hours=24)

# The answer formatted with %m/%d/%Y is

today.strftime('%m/%d/%Y')
# Q: Jane thought today is 3/11/2002, but today is in fact Mar 12, which is 1 day later. What is the date 24 hours later in MM/DD/YYYY?

# If Jane thought today is 3/11/2002, but today is in fact Mar 12, then today is 3/1/2002.

today = datetime(2002, 3, 12)

# 24 hours later,

later = today + relativedelta(hours=24)

# The answer formatted with %m/%d/%Y is

later.strftime('%m/%d/%Y')

# Q: Jane was born on the last day of Feburary in 2001. Today is her 16-year-old birthday. What is the date yesterday in MM/DD/YYYY?

# If Jane was born on the last day of Feburary in 2001 and today is her 16-year-old birthday, then today is 16 years later.

today = datetime(2001, 2, 28) + relativedelta(years=16)

# Yesterday,

yesterday = today - relativedelta(days=1)

# The answer formatted with %m/%d/%Y is

yesterday.strftime('%m/%d/%Y')

# Q: {question}

""".strip() + 'n'
Copier après la connexion
llm_out = llm(DATE_UNDERSTANDING_PROMPT.format(question=question))
print(llm_out)
Copier après la connexion
exec(llm_out)
print(born)
Copier après la connexion

Ce sera sortie suivante : 27/02/1998

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:51cto.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal