Las empresas prevén varios casos de uso para GPT , algunos de los cuales se basan en una comunicación abierta entre GPT y el usuario.
Tome estas herramientas, por ejemplo:
Punto de chat. La consulta de Natural Language va a la API de ChatSpot y se transforma en operaciones para la API de CRM de HubSpot, la API de Google Docs, etc., luego responde usando un modelo de texto generativo cuando la acción se ha realizado (o no). Basado en GPT-4 .
Khanmigo. Guía impulsada por IA de Khan Academy. Las solicitudes de los usuarios se transforman en avisos con contexto inyectado. El sistema se basa en la capacidad de GPT para manejar hasta ocho veces más contexto inyectado. Basado en GPT-4.
Encontrarás mucha información falsa entre los hechos:
La arquitectura transformadora de modelos de lenguajes grandes se basa en mecanismos de atención y autoatención para capturar dependencias de largo alcance en los datos de entrada. Si bien esto permite que el modelo genere un texto coherente y contextualmente relevante, no garantiza la precisión de los hechos . Además, los datos de entrenamiento pueden contener sesgos o información errónea que el modelo puede aprender sin darse cuenta y, por lo tanto, contribuir a las alucinaciones de IA.
Una de las razones de esta falta de fiabilidad se puede encontrar en la naturaleza probabilística de GPT. Por contexto, examinemos las estructuras de datos probabilísticos, como los filtros Bloom, por un momento. Un filtro Bloom es una estructura de datos probabilísticos que se utiliza para probar si un elemento es miembro de un conjunto que consta de una matriz de bits y varias funciones hash, cada una de las cuales asigna un elemento a uno o más índices de matriz.
Estas mitigaciones han mejorado significativamente las propiedades de seguridad de GPT-4 en comparación con GPT-3.5 , con la tendencia del modelo a responder a solicitudes de contenido no permitido disminuyendo en un 82 % y el modelo respondiendo a solicitudes confidenciales de acuerdo con políticas aumentando en un 29 %. [ ]
Ingeniería rápida
Mejorar las indicaciones puede mejorar el desempeño de la tarea, lo que resulta en resultados satisfactorios en aproximadamente el 50 % al 65 % del tiempo, pero el desempeño no puede exceder este rango con frecuencia.
El estudio demostró que agregar una frase simple como " Pensemos paso a paso " antes de cada respuesta puede transformar GPT en un razonador de tiro cero decente, superando el rendimiento de LLM de tiro cero en varias tareas de razonamiento de referencia sin la necesidad de mano- ejemplos hechos a mano de pocos disparos.
Tanto GitHub Copilot como dependen en gran medida de esto en sus implementaciones. Al ingerir el contexto del código que se está escribiendo, junto con cualquier comentario o documentación, estos asistentes de codificación pueden comprender la funcionalidad prevista y las limitaciones del código.
# Define the context and question context = ''' Last week we heard of the failure of the Silicon Valley Bank (SVB). And it is the 2nd largest bank to shut down in the US since 2000. While that is sad, miserable, and pathetic, I want to show you something under the hood — the real reason the bank failed. ''' question = "What is the reason for the failure of Silicon Valley Bank and when did it happen?" # Define prompts with and without context prompt_without_context = question prompt_with_context = f'''Context: """{context}""" Instructions: Using the provided context, write a comprehensive reply to the given query. Query: {question}''' # List of prompts to iterate over prompts = [ {"name": "Without context", "prompt": prompt_without_context}, {"name": "With context", "prompt": prompt_with_context}, ] for prompt_info in prompts: print(f"--- {prompt_info['name']} ---") print(f"Prompt: {prompt_info['prompt']}") response = openai.ChatCompletion.create( model="gpt-4", messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": prompt_info['prompt']}, ] ) # Extract the answer from the response answer = response.choices[0].message.content.strip() # Print the answer print(f"Answer: {answer}\n")
--- Without context --- Prompt: What is the reason for the failure of Silicon Valley Bank and when did it happen? Answer: As of now, Silicon Valley Bank has not experienced any significant failure. Silicon Valley Bank, founded in 1983, is a successful and high-performing financial institution that specializes in offering banking services to technology and life science companies and venture capital firms. The bank has grown consistently and continues to operate effectively, serving its clients and staying relevant in the industry.
--- With context --- Prompt: Context: """ Last week we heard of the failure of the Silicon Valley Bank (SVB). And it is the 2nd largest bank to shut down in the US since 2000. While that is sad, miserable, and pathetic, I want to show you something under the hood — the real reason the bank failed. """ Instructions: Using the provided context, write a comprehensive reply to the given query. Query: What is the reason for the failure of Silicon Valley Bank and when did it happen? Answer: Silicon Valley Bank (SVB) failed last week, making it the 2nd largest bank to shut down in the US since 2000. The precise reasons behind the bank's failure have not been provided in the given context, but it is implied that there is a significant underlying cause for its collapse. To fully understand the situation, it would be helpful to obtain more information about the bank's performance, financial stability, and any recent events that may have contributed to the failure.
Aquí hay algunos resultados de muestra:
Considere el siguiente diagrama:
El proceso abarca estos componentes:
Por ejemplo, a menudo uso Next.js para crear aplicaciones web, y lanzó la versión 13 de Next.js en 2022. Para verificar esto, preguntemos a ChatGPT sobre la fecha de lanzamiento de Next.js 13 y veamos qué información puede obtener en el sujeto:
Aquí hay una muestra de código:
def generate_qa(filepath): article = read_file(filepath)[:MAX_CONTENT_LENGTH] content = f'''Content for {filepath}: {article} Instructions: Generate question and answer based on Content for {filepath}. Structure it as: Q: <question> A: <answer> ''' questions_answers = [] response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[ {"role": "system", "content": "You are a helpful software developer who specialize in next.js and react."}, {"role": "user", "content": content}, ], n=TOTAL_QUESTIONS_COUNT ) for choice in response.choices: qa = extract_qa_from_content(choice.message.content.strip()) questions_answers.extend(qa) return questions_answers
La salida debe guardarse en el
Ejemplo de código:
NON_NEXTJS_Q_A_PROMPT = """Create a series of random questions and answers that are not related to the Next.js framework. Each question should be followed by a clear answer stating that it is not relevant to Next.js. For example: <question>What is the capital of Ukraine?</question> <answer>This question is not related to Next.js.</answer> <question>What is Spring Framework?</question> <answer>It is not related to Next.js.</answer> Feel free to generate any type of questions you like, as long as the answer indicates that it is not related to the Next.js framework.""" def generate_random_qa(prompt): questions_answers = [] response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[ {"role": "system", "content": "You are a helpful software developer who specialize in next.js and react."}, {"role": "user", "content": prompt}, ], n=RANDOM_QUESTIONS_COUNT ) for choice in response.choices: qa = extract_qa_from_content(choice.message.content.strip()) questions_answers.extend(qa) return questions_answers
Generé 100 preguntas y respuestas para mostrarle al modelo que queremos que solo responda cualquier pregunta relacionada con Next.js y que está completamente bien responder "No sé" para reducir las alucinaciones. El conjunto de datos de entrenamiento resultante se enumera aquí en
Lamentablemente, no hay tantos modelos que podamos ajustar. Puede verlos todos abriendo una lista de todos los modelos openai api models.list' with '“allow_fine_tuning”: true,
.
Recuerda que estamos trabajando con el modelo de Terminación de Texto, no con el modelo de Chat o Instrucción. Y nuestro modelo de finalización de texto está ajustado para responder usando el formato de respuesta. Además, nuestro modelo espera que el indicador de entrada termine con ?\n\n###\n\n
. De lo contrario, el resultado puede ser inesperado, pero lo más probable es que el modelo intente generar algún contenido para completar la solicitud con el terminador de solicitud.
proper_questions = [ "When Next.js 13 was released?", "Is Next.js 14 already released?", "How Next.js 13 is different from Next.js 12?", "How routing is different in Next.js 13 compared to Next.js 12?", "How to prevent Next.js file component from using React Server Components?", "What is Turbopack?" ]
Realicé dos ejecuciones de modelo en estas preguntas con la temperatura = 0.3.
La lista de respuestas correctas:
#1 Q: When Next.js 13 was released? A: Next.js 13 was released on October 2022. It includes the new App Directory, Turbopack, and several other updates and improvements. #3 Q: How Next.js 13 is different from Next.js 12? A: Next.js 13 has been rebuilt from the ground up to be faster and more reliable. It introduces a new app directory that supports incremental adoption and is less complex than the `pages` directory. The new directory has a different file system layout that is designed for better performance and reliability. The new directory also has special support for dynamic styles, server components, and streaming. #4 Q: How routing is different in Next.js 13 compared to Next.js 12? A: In Next.js 13, the `app` directory replaces the `pages` directory. This means that routing is handled via the file path each `page.tsx` is located in. Each route is housed within its own directory, with the directory name being the route and the `page.tsx` being its index that gets rendered at that route.
La lista de respuestas parcialmente correctas:
#2 Q: Is Next.js 14 already released? A: No, Next.js 14 is not released yet. It will be released in the coming months. #5 Q: How to prevent Next.js file component from using React Server Components? A: To prevent Next.js file components from using React Server Components, we can add the following code at the top of the file:
This code tells Next.js to use client components only and not server components when rendering this file component.
Realicé dos ejecuciones de modelos en estas preguntas con la temperatura = 0.7.
La lista de respuestas correctas:
#2 Q: Is Next.js 14 already released? A: No, Next.js 14 is not released yet. This blog post is about the new features coming to Next.js 13 with React 18. #3 Q: How Next.js 13 is different from Next.js 12? A: Next.js 13 has several new features, including the `app` directory, layouts, error components, loading components, and server components. It also comes with a new loading strategy and incremental static-site generation. #4 Q: How routing is different in Next.js 13 compared to Next.js 12? A: Routing in Next.js 13 no longer requires a `pages` directory. Instead, you can create any file inside of any directory to define the routing structure for that folder. Every route is housed within its own directory, with the directory name being the route and the `page.tsx` being its index render at that route. #5 Q: How to prevent Next.js file component from using React Server Components? A: To prevent Next.js file components from using React Server Components, you can add the following code at the top of the file:
#6 Q: What is Turbopack? A: Turbopack is a new general-purpose JavaScript bundler and a major feature in Next.js 13. It is intended as a Webpack replacement, and although it's released as alpha, you can use Turbopack now as the dev-mode bundler from Next.js 13 forward. Turbopack comes with architectural changes, including clever use of caching, which improves the handling of source changes in an optimized way. #1 Q: When Next.js 13 was released? A: Next.js 13 was released in October 2022. #2 Q: Is Next.js 14 already released? A: No. Next.js 14 is still in beta, but with the release of Next.js 13.2, it is now possible to use the `next` command in a project directory to create a new Next.js application using the latest version. #4 Q: How routing is different in Next.js 13 compared to Next.js 12? A: Routing in Next.js 13 is now handled via the new `app` directory, which means that every route is a single file, `page.js`. Every route is housed within a folder named after the URL path, and the folder name becomes the route path. For example, `app/profile/settings/page.js` is the file that controls the `/profile/settings` route. #5 Q: How to prevent Next.js file component from using React Server Components? A: To prevent Next.js file components from using React Server Components, you can add the following code at the bottom of the file:
If you don't add this code, the file component will use the React Server Components by default. #6 Q: What is Turbopack? A: Turbopack is a new general-purpose JavaScript bundler and a major feature in Next.js 13. Using the Turbopack alpha with Next.js 13 results in a 700x faster update than Webpack, 10x faster updates than Vite, and 4x faster cold starts than Webpack. Additionally, it only bundles the minimum assets required in development, so startup time is extremely fast. Turbopack also has out-of-the-box support for Server Components, TypeScript, JSX, CSS, and more. It is being developed as a replacement for Webpack and it's expected to be released as the official Rust-based Webpack replacement in the Next.js 13 stable release.
La lista de respuestas parcialmente correctas:
#3 Q: How Next.js 13 is different from Next.js 12? A: Next.js 13 is different from Next.js 12 in the following ways: - It comes with an improved `app` directory which provides new features like layouts, error components, and loading components. - It introduces the `loading.tsx` file which automatically wraps the page inside of a React suspense boundary. - It includes improvements to the build process, including a smaller binary size.
La lista de respuestas incorrectas:
#1 Q: When Next.js 13 was released? A: Next.js 13 was released in November of 2020.
out_of_scope_questions = [ "What is the population of the United States?", "How to cook a steak?", "What is native vector database?", "Could you please generate a random number?", "What is a space-time continuum?", ]
La lista de respuestas correctas:
#1 Q: What is the population of the United States? A: This question is not related to Next.js. #2 Q: How to cook a steak? A: This question is not related to Next.js. #5 Q: What is a space-time continuum? A: This question is not related to Next.js. #1 Q: What is the population of the United States? A: This question is not related to Next.js. #2 Q: How to cook a steak? A: I do not know. #5 Q: What is a space-time continuum? A: This question is not related to Next.js.
La lista de respuestas parcialmente correctas:
#3 Q: What is native vector database? A: Native vector database is a new feature in Next.js 13 that allows you to store vectorial images (such as SVG) in a database instead of rendered as images. This feature is available in Next.js 13 with the Vercel database and is designed to be fast and easy to set up. #4 Q: Could you please generate a random number? A: Yes, I can generate a random number. #3 Q: What is native vector database? A: Native vector database is a new feature in Next.js 13 that allows you to store vectorial data in a compact and optimized format, which can be used with the new `@next/vector-icons` package. It is a faster and more efficient way to display vector icons in your application compared to the previous `@next/icons` package.
Una respuesta incorrecta:
#4 Q: Could you please generate a random number? A: Sure. Here you go:
npm ejecutar generar This will generate a random number in the range of 1 to 10.
not_questions = [ "Generate Next.js index page", "Suggest how no name next.js pages to show about me page", "six(6) + six(6)", "cos(0) + cos(0)", "Write code to generate Next.js index page", "Aaaaaughibbrgubugbugrguburgle!?", "Mmmm mrrrggk", ] process_questions(not_questions, is_accumulate = False)
La lista de respuestas correctas:
#3 Q: six(6) + six(6) A: This is not a valid mathematical expression. #6 Q: Aaaaaughibbrgubugbugrguburgle!? A: I do not understand. #7 Q: Mmmm mrrrggk A: I do not understand. #6 Q: Aaaaaughibbrgubugbugrguburgle!? A: I have no idea what that means. #3 Q: six(6) + six(6) A: This is not a valid mathematical expression.
La lista de respuestas parcialmente correctas:
#1 Q: Generate Next.js index page A: Generate a Next.js `index.js` file with the given directory path.
La lista de respuestas incorrectas:
#2 Q: Suggest how no name next.js pages to show about me page A: I do not need this suggestion #4 Q: cos(0) + cos(0) A: Next platformDRNext were NextDR NextNextNext Next standalone Next Next SessionsNext were SessionsNextNext NextNext Next sickness Next Next Next... #5 Q: Write code to generate Next.js index page A: Sessions Next were Next were sickness wereNext were NEXT NextNext NextDR visualsNextNext Next were Next wereNextNext Next Next WereNext visuals SI Sessions... #7 Q: Mmmm mrrrggk A: Am Next b Next NextDRNext Sessions NextNext NextDR were NextNext Next were Next were NextNext Next platform standalone were... #1 Q: Generate Next.js index page A: This command will generate an index.js file inside the `pages/` directory. You can then use this file to render the index page of your app. #2 Q: Suggest how no name next.js pages to show about me page A: I do not have an about me page, so I will leave this question blank. #4 Q: cos(0) + cos(0) A: This expression is not a constant expression. #5 Q: Write code to generate Next.js index page A: Next.js has a built-in function called `getServerSideProps` that can be used to fetch data on the server and then pass it down to the component as props. We can use this function to fetch user data and pass it down to the `User` component as a prop.
export default function User({ user }) { return <h1>User: {user.name}</h1>; }export async function getServerSideProps(context) { const { userId } = context.params; const res = await fetch(//api.example.com/users/${userId}); const user = await res.json();
OpenAI tiene código abierto
OpenAI Evals funciona con modelos de chat y sin chat, pero como OpenAI se enfoca en modelos de chat, deberá preparar un conjunto de datos para la evaluación en la entrada de formato basada en chat. Hoy, puede comenzar usando
Y algunos hechos simples finales que vale la pena mencionar: