Ingegneria rapida, OpenAI e modalità
I prompt e la progettazione dei prompt sono parte integrante delle implementazioni LLM (Large Language Model) di successo. La bellezza degli LLM sono le variazioni di risposta, che creano un senso di vivacità…. Tuttavia, queste variazioni possono diventare troppo grandi e trasformarsi in dati falsi e imprecisi. Questo fenomeno è spesso indicato come allucinazione .
I prompt possono essere migliorati tramite:
- Supervisione e osservabilità
- Compilazione rapida accurata
- Struttura rapida
Stephen Broadhurst ha recentemente presentato un ottimo discorso all'European Chatbot Summit sulla supervisione e l'osservabilità dal punto di vista LLM. Puoi leggere di più sui principi di base qui .
Compilazione rapida accurata
Per un'interfaccia di conversazione in tempo reale basata su LLM (chatbot/voicebot), è possibile seguire un approccio a pochi colpi per fornire all'LLM un contesto e una guida sufficienti per rispondere in modo accurato all'interno del contesto di dialogo corrente.
La sfida consiste nel costituire/compilare accuratamente il prompt in tempo reale da fonti di dati spesso disparate, per l'invio a un LLM.
Puoi leggere di più sull'architettura per tale implementazione qui .
Struttura rapida
La struttura e la compilazione rapide sono della massima importanza. Puoi leggere ulteriori informazioni sui principi di base dell'ingegneria dei prompt qui .
La generazione di testo è una meta capacità di modelli linguistici di grandi dimensioni e la progettazione rapida è la chiave per sbloccarla. Non puoi parlare direttamente con un Modello Generativo, non è un chatbot. Non puoi richiedere esplicitamente a un modello generativo di fare qualcosa. Ma piuttosto hai bisogno di una visione di ciò che vuoi ottenere e imitare l'inizio di quella visione. Il processo di imitazione è indicato come prompt design, prompt engineering o casting.
I prompt devono mantenere il contesto ed essere contestualmente accurati. Una buona struttura di base è mostrata di seguito:
Un esempio Python di come apparirà un tale prompt per un'implementazione OpenAI:
prompt = """Answer the question as truthfully as possible using the provided text, and if the answer is not contained within the text below, say "I don't know"
Context:
The men's high jump event at the 2020 Summer Olympics took place between 30 July and 1 August 2021 at the Olympic Stadium.
33 athletes from 24 nations competed; the total possible number depended on how many nations would use universality places
to enter athletes in addition to the 32 qualifying through mark or ranking (no universality places were used in 2021).
Italian athlete Gianmarco Tamberi along with Qatari athlete Mutaz Essa Barshim emerged as joint winners of the event following
a tie between both of them as they cleared 2.37m. Both Tamberi and Barshim agreed to share the gold medal in a rare instance
where the athletes of different nations had agreed to share the same medal in the history of Olympics.
Barshim in particular was heard to ask a competition official "Can we have two golds?" in response to being offered a
'jump off'. Maksim Nedasekau of Belarus took bronze. The medals were the first ever in the men's high jump for Italy and
Belarus, the first gold in the men's high jump for Italy and Qatar, and the third consecutive medal in the men's high jump
for Qatar (all by Barshim). Barshim became only the second man to earn three medals in high jump, joining Patrik Sjöberg
of Sweden (1984 to 1992).
Q: Who won the 2020 Summer Olympics men's high jump?
A:"""
openai.Completion.create(
prompt=prompt,
temperature=0,
max_tokens=300,
top_p=1,
frequency_penalty=0,
presence_penalty=0,
model=COMPLETIONS_MODEL
)["choices"][0]["text"].strip(" \n")
Based on the context provided:
Relevant facts:
{Add relevant facts and context here}
Conditions:
{Place any relevant conditions here}
Answer:
Based on the context provided:
Relevant facts:
{Add relevant facts and context here}
Reasoning:
{Add reasoning and conditiosn here}
Answer:
OpenAI sta anche applicando la struttura del modello tramite il loro parco giochi, considera il codice Python di seguito per la modalità di modifica OpenAI :
import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
response = openai.Edit.create(
model="text-davinci-edit-001",
input="We is going to the market.",
instruction="Fix the grammar.",
temperature=0.7,
top_p=1
)
Ecco tre viste del parco giochi, sotto hai visto il modello della modalità chat OpenAI:
La modalità o modello di inserimento OpenAI:
E infine la modalità Modifica:
Sicurezza
OpenAI è alla ricerca di migliorare la sicurezza, la qualità e la coerenza quando si tratta di risultati LLM.
La sicurezza viene affrontata tramite ChatML , in particolare considerando gli attacchi di tipo " prompt injection " .
Questo approccio aggiunge struttura ai prompt, questo non solo nega gli attacchi di prompt injection, come accennato in precedenza.
Ma, aggiungendo una buona struttura ai prompt ( ingegneria del prompt ), l'allucinazione può essere ampiamente negata.
Di seguito puoi vedere il formato mostrato in precedenza, ma questa volta viene imposta la struttura OpenAI ChatML:
E sotto come apparirà la modalità chat o il modello nel codice Python:
[{"role": "system",
"content" : "You are ChatGPT, a large language model trained by OpenAI. Answer as concisely as possible.\nKnowledge cutoff: 2021-09-01\nCurrent date: 2023-03-02"},
{"role": "user",
"content" : "How are you?"},
{"role": "assistant",
"content" : "I am doing well"},
{"role": "user",
"content" : "What is the mission of the company OpenAI?"}]
Attualmente sono il Chief Evangelist @ HumanFirst . Esploro e scrivo di tutte le cose all'intersezione tra intelligenza artificiale e linguaggio; che vanno da LLM , chatbot , voicebot , framework di sviluppo, spazi latenti incentrati sui dati e altro ancora.

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































