企業はGPTのさまざまなユースケースを想定しており、その一部は GPT とユーザー間のオープンなコミュニケーションに依存しています。
たとえば、次のツールを使用します。
チャットスポット。自然言語クエリは ChatSpot API に送信され、HubSpot CRM API、 Google Docs API などの操作に変換され、アクションが実行された (または実行されなかった) 場合に生成テキスト モデルを使用して応答します。 GPT-4ベース。
ハンミゴ。カーン アカデミーの AI を活用したガイド。ユーザーのリクエストは、コンテキストが挿入されたプロンプトに変換されます。システムは、最大 8 倍の注入されたコンテキストを処理する GPT の機能に依存しています。 GPT-4 ベース。
事実の中から多くの誤った情報を見つけることができます:
大規模な言語モデルのトランスフォーマー アーキテクチャは、アテンション メカニズムとセルフアテンションに依存して、入力データの長期的な依存関係をキャプチャします。これにより、モデルが一貫性のある文脈に関連したテキストを生成できるようになりますが、事実の正確性は保証されません。さらに、トレーニング データにはバイアスや誤った情報が含まれている可能性があり、モデルが誤って学習してしまい、AI の幻覚につながる可能性があります。
この信頼性の欠如の理由の 1 つは、 GPT の確率的性質にあります。コンテキストとして、ブルーム フィルターなどの確率的データ構造を少し調べてみましょう。ブルーム フィルターは、要素がビットの配列と複数のハッシュ関数で構成されるセットのメンバーであるかどうかをテストするために使用される確率的データ構造であり、各ハッシュ関数は要素を 1 つ以上の配列インデックスにマップします。
これらの緩和により、 GPT-3.5 と比較してGPT-4 の安全特性が大幅に改善され、モデルが許可されていないコンテンツの要求に応答する傾向が 82% 減少し、モデルがポリシーに従って機密性の高い要求に応答する傾向が 29% 増加しました。 []
迅速なエンジニアリング
プロンプトを改变すると、タスクのパフォーマンスが朝上し、約 50% から 65% の時間で満足のいく結果が得られる几率性がありますが、パフォーマンスがこの範囲を頻繁に超えることはありません。
この研究では、各回答の前に「 Let's think step by step 」のような単純なフレーズを追加することで、GPT をまともなゼロ ショット推論に変換できることが実証されました。いくつかのショットの例を作成しました。
GitHub Copilotとどちらも、実装においてこれに大きく依存しています。これらのコーディング アシスタントは、記述されているコードのコンテキストをコメントやドキュメントと共に取り込むことで、コードの意図した機能と制約を把握できます。
# 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.
いくつかのサンプル結果を次に示します。
次の図を検討してください。
このプロセスには、次のコンポーネントが含まれます。
たとえば、私はNext.jsを使用して Web アプリケーションを構築することが多く、 2022 年に Next.js バージョン 13 をリリースしました。これを確認するために、Next.js 13 のリリース日について ChatGPT に問い合わせて、主題:
コードサンプルは次のとおりです。
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
出力は
コードサンプル:
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
100 の質問と回答を生成して、Next.js に関する質問のみに回答してもらいたいこと、および幻覚を減らすために「わからない」と回答してもまったく問題ないことをモデルに示しました。結果のトレーニング データセットは、ここにリストされています。
残念ながら、微調整できるモデルはそれほど多くありません。 openai api models.list' with '“allow_fine_tuning”: true,
.
Chat や Instruction モデルではなく、Text Completion モデルを使用していることを思い出してください。また、テキスト補完モデルは、回答形式を使用して応答するように調整されています。また、モデルは入力プロンプトが?\n\n###\n\n
で終了するのを待ちます。そうでない場合、出力は予期しないものになる可能性がありますが、ほとんどの場合、モデルは何らかのコンテンツを生成して、プロンプト ターミネータでプロンプトを完成させようとします。
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?" ]
これらの質問に対して、温度 = 0.3 で 2 つのモデルを実行しました。
正解のリスト:
#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.
部分的に正しい回答のリスト:
#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.
これらの質問に対して、温度 = 0.7 で 2 つのモデルを実行しました。
正解のリスト:
#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.
部分的に正しい回答のリスト:
#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.
不正解のリスト:
#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?", ]
正解のリスト:
#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.
部分的に正しい回答のリスト:
#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.
間違った応答:
#4 Q: Could you please generate a random number? A: Sure. Here you go:
npm run generate 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)
正解のリスト:
#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.
部分的に正しい回答のリスト:
#1 Q: Generate Next.js index page A: Generate a Next.js `index.js` file with the given directory path.
不正解のリスト:
#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 はオープンソース化されています
OpenAI Evals はチャット モデルと非チャット モデルの両方で機能しますが、OpenAI はチャット モデルに重点を置いているため、チャット ベースの形式の入力で評価用のデータセットを準備する必要があります。今日、あなたは使用することから始めることができます
そして、言及する価値のあるいくつかの最終的な簡単な事実: