ChatGPT の原則とフロントエンド現場での実践 | JD Cloud 技術チーム

1. ChatGPT の概要

ChatGPTの人気

Web アプリケーションとして、ChatGPT は 2022 年 12 月にリリースされて以来、3 か月足らずで月間アクティブ ユーザー数が 1 億人に達しました。これ以前は、1億MAUに到達するのに最速記録保持者は9か月かかった。

ChatGPT のアンチクライミング

https://chat.openai.com ChatGPT は、さまざまなポリシーや設定の問題により、現在中国ではアクセスできません。また、非常に人気があるため、エージェント、クローラー、その他の形式を通じて ChatGPT を体験するユーザーが多数います。

OpenAIはネットワークサービスに特化した企業ではないため、アンチクローリングはサードパーティ企業のCloudFlareに委託している。

CloudFlare は現在、16% を占める世界最大の CDN サービス プロバイダーですが、OpenAI のトラフィックは CloudFlare の上位 2 位を占めています。

ChatGPTのタイピング効果

ChatGPT の出力は、逐語的出力のタイピング効果であり、SSE (SeverSideEvent) サーバー プッシュ テクノロジに適用されていることがわかります。SSE サービスの Chrome DevTools ネットワークのスクリーンショット:

SSE は、一般的な Websocket を次のように比較します。

では、このタイピング効果は意図的なものなのでしょうか、それとも偶然なのでしょうか?

2. ChatGPT の中心原理

ChatGPT は、Chat、G、P、T の 4 つの部分に分解できます。フォローアップのコンテンツの前に、機械学習で理解しやすいいくつかの概念を追加しましょう。

1. モデル: いわゆるモデルは、本質的には y=ax+bx^2 のようなプログラム (関数) であり、a と b はパラメーターです。たとえば、GPT3 のパラメーター量は 175B であり、次のようなプログラムです。パラメータ数 1,750 億 ChatGLM -6B のパラメータ量は 60 億です。

2. 機械学習: 私たちが通常記述する関数は、人間が制御するロジックとパラメーターですが、機械学習は、機械がパラメーターを特定の方法 (トレーニング) で確認することを指します。特定のパラメーターを持つ関数を見つけるプロセスは、通常、次の 3 つのステップで構成されます。

  • 関数セットを決定します。記事内の一般的な CNN、RNN、Transform などのすべてのパラメーターが関数セットである可能性をすべて網羅するようにしてください。
  • データ: データセットを通じて評価関数を取得する方法は、良いか悪いかによって決まります。
  • 実行プロセスのパラメータ: 各バッチで各関数が実行される回数、実行の最大数など。これらのパラメータは一般に「スーパーパラメータ」と呼ばれ、関数内のパラメータ(アルゴリズムエンジニアは一般に)とは異なります。自虐的なパラメータ調整エンジニアのことを指しますが、これは「スーパー パラメータ」です)

生成ワード ソリティア

ChatGPT は本質的には再帰的に実行される生成関数です。2 つの例を見てみましょう:

Case1:大根と緑黄色野菜

大根と緑の野菜という4つの単語を見たとき、何を思い浮かべますか?

それぞれにそれぞれの愛がある可能性が高いと思います。

GPT に与えられると、GPT は次の単語の確率がこれら 4 つの単語とカンマに基づいてそれぞれ推測されます。

すると GPT は再び大根と緑の野菜を自身に入力し、次の単語が高確率で出てくると推測します。

これが、ChatGPT がテキストを逐語的に出力する理由です。この形式は、LLM 操作の基本原理に最も一致しています。ユーザー エクスペリエンスの観点からは、ユーザーは最初の単語をより速く見ることができ、そのエクスペリエンスは、読むというよりもチャットに近いものになります。それはわざとです。ここで最初の結論が得られます。

ChatGPT (モデル/Fn) の動作原理は、毎回テキスト (前回返された内容を含む) を入力し、次の 1 単語を予測することです。

Case2: オタク

[オリジナル] フロントエンド テクノロジー 10 年レビュー記事から例を取り上げます。

この例では、なぜ出力が「いじめっ子のよう」になるのでしょうか?

全文からすると、ここの本体はフロントエンド技術のはずですが、フロントエンド技術を単純に考えれば小学生のような感覚で「普及」と「普及」を考えることができます。以下の文章は「教育」と「賞賛」であると推測するが、「いじめ」とは考えにくい。

ここで「いじめ」が出てきますが、これは主に前の記事のいじめによるものです (たとえば、これらのキーワードの影響はフロントエンド テクノロジよりもはるかに大きいです。したがって、2 番目の結論が得られます。

生成言語モデルでは、上記の単語が遠くにあるほど、生成される結果への影響は小さくなります。

ワードソリティア VS クローズ

GPT ライクな BERT の補足ですが、いずれも後述する Transform 構造に基づいており、比較すると次のようになります。

注意メカニズムを変える

事例3:オアシス

この場合、オアシスの出現は、最近の新しいオアシスの探索によるものではなく、3 文前の砂漠とラクダによるものです。ここで、有名な Transform 構造について触れなければなりません。これは、2017 年に Google が論文「Attending is all you need」で最初に提案した一種のニューラル ネットワーク構造です。その中心となるのはセルフ アテンション メカニズムであり、長い問題を解決するために使用されます。 -用語の問題 距離テキストの重み付けの問題。

著者は機械学習の専門家ではないので、ここからは説明しませんが、関連する論文や解説記事を読むことをお勧めします。

事前トレーニング済みの事前トレーニング

これまでのテキスト ソリティア モードを通じて、大量のデータを入力した事前トレーニング モデルは、一般的な言語能力を備えています。ここでの事前トレーニングには 2 つの意味があります。

  • さまざまな一般的な NLP タスク (分類、並べ替え、帰納など) を完了できる
  • 少し微調整したトレーニングにより、ドメイン固有の言語タスクを完了できます (ゼロから始める必要はありません)。

チャットダイアログ(Finetuningにより実現)

事前トレーニングは人間の監督なしで行われるため、トレーニング資料が包括的であるため、一般的なモデルは必ずしもチャットの形式でテキストを返すわけではありません。たとえば、私が「今日は天気が悪い」と言った場合、それは歴史に基づいています。経験: 今日の悪い天気を表現するには次の方法があります。チャットのように私に文句を言う代わりに、この文のさまざまな表現を出力します。以下は、今日の悪天候に対する OpenAI の GPT3 モデルの出力です。

GPT3 出力をチャットのようにするには、特定の質問と回答の構造によるコーパス トレーニングなど、微調整 (微調整) トレーニングを行う必要があります。

チャットができるようになった後、オンラインに行きたい場合は、モデルに足かせを付けなければならず、人間の価値観と矛盾する内容には回答できません。そうでないと資本主義の鉄拳がやって来ます。

OpenAI は、ChatGPT 回答の品質を向上させ、手動ラベル付けと集中トレーニングを通じてその価値傾向を修正します。この内容についてさらに詳しく知りたい場合は、ChatGPT の背後にあるアルゴリズム モデルについて学ぶことができます。

3.ChatGPTの応用

OpenAI は、49 の一般的な ChatGPT アプリケーション シナリオを公式に提供しました:
https://openai.com/blog/chatgpt

一般に、次のように分類できます。

  • コピーライティング
  • まとめ
  • コードの書き方
  • 言語美化 / 言語間変換
  • ロールプレイ

フロントエンド開発の学生にとって、最も懸念されるのはそのコード能力です。taro 再構築プロジェクトの小さなプログラムで ChatGPT の機能を体験しました。

1. アプレットのテンプレート構文を理解し、ts の taro コンポーネントを変換できる

2. アプレット ページのロジックを理解し、小道具を修正します。

アプレットのページロジックpage.jsはindex.wxmlから独立しており、純粋なwxmlで生成されたtaroコンポーネントを取得した後、page.jsのコードをマージします。

3. 知識を補い、類推によって独自の文法を教えることができます。

HiBox Fusion ChatGPT

このような優れた能力はどのようにして身に付けられるのでしょうか?

HiBox 自体がログイン、Webview のカスタマイズ、およびリモート設定を行う機能を備えているのと同じように、最初に VSCode プラグインを考えました。その後、ChatGPT を HiBox に統合し (クールすぎる)、Node エンドは ChatGPT のインターフェイスに接続されます。これは、Webview A チャット ウィンドウのフロントエンドを通じて実現され、構成システムを通じて一般的に使用されるプロンプトを統合するため、フロントエンド開発は VSCode を通じて ChatGPT の機能を簡単に使用できます。全体的な構造は次のとおりです。

データ ソースに関しても、クローラー バージョンの ChatGPT から API プロキシ サービスに段階的に切り替えられており、プロキシ サービスは GPT3.5 のモデル機能に接続されており、全体的なエクスペリエンスは ChatGPT に非常に近くなります。プロキシサービスドキュメント:
https://joyspace.jd.com/pages/yLnDY3B5UJ1rXP8UYrN6

HiBox の ChatGPT は現在、erp ログインのみで無料で使用できます。その他の使用方法とインストール方法は次のとおりです: HiBox クイック スタート

プライベートドメインデータの統合

ChatGPT を使用する過程で、次の 2 つの問題にも気づきました。

  • 会社の機密コードと情報は ChatGPT に送信できません
  • ChatGPT が学習していない水滴テンプレートなど、特定の分野における機密性の低い知識

最初に思い浮かぶのは、微調整を使用してプライベート ドメイン データを大規模言語モデル (LLM) に統合し、それをプライベート化して会社のサーバーに展開して、あらゆるコードやドキュメントをそこに送信できるようにすることです。次の 2 つの方法を試しました。

GPT3の微調整

1 つは、OpenAI 公式 Web サイトに記載されている GPT3 の微調整インターフェイスを介してプライベート ドメイン データを OpenAI に渡すことです。OpenAI はサーバーでトレーニングを微調整し、それを OpenAI サーバーにデプロイします。プロセス全体はブラックです。箱。

ChatGLM-6B 微調整

2 つ目は、清華社のオープンソース ChatGLM-6B を基本モデルとして使用し、同社の Jiushu プラットフォーム上の GPU マシンを申請し、LORA を通じてプライベート ドメイン データを微調整して LORA の重みを取得し、それを自分でデプロイするというものです。プロセスは完全に民営化されています。

GPT3.5言語チェーン

一般に、上記 2 つの方法では、導入後の推論効果では GPT3.5-API の効果を得ることが難しいため、最終的にプラグインのナレッジベースを埋め込む方法を試しました。オープンソースのラングチェーンを使用して、ドキュメントの切り取り、ベクトル化されたストレージ、ベクトル化されたマッチングなどを処理します。データは引き続き OpenAI に公開されます。

4. LLMの現状と展望

LLM爆発

実際、GPT3 が 20 年後に登場した後、機械学習の責任者のほとんどがこのルートの実現可能性に気づき、積極的にフォローアップしました。

ここでは特に Baidu についてお話しますが、公開されている信頼できる文書によると、Baidu は2019 年という早い時期にErnieを立ち上げました(Google Bard と比較すると、Ernieと bard はアニメ マペットの 1 組の兄弟です)。中国がLLMにアクセスへ。Google と同様に、Baidu も BERT の後継路線を取っています。2018 ~ 2019 年の時点では、GPT 世代が登場したばかりであり、GPT の第 1 世代はあらゆる面で BERT に劣っており、Baidu と Google はトップクラスです。同じ検索エンジンでは降水量が多いため、選択されたルートは BERT です。

最近では、アルパカ シリーズや国内の大型言語モデルも爆発的に増えています。

LLM アプリケーションのステータスと傾向

プラットホーム

LLM のロールプレイング機能は、人間とコンピュータの相互作用の次の変革のキーポイントになる可能性があります。OpenAI はまた、プラグイン モデルも開始しました。プラグインを通じて、ユーザーは航空券を購入し、読みたい記事を検索できます。自然言語チャット。これは AppStore リリースと同様の iPhone の瞬間であると言う人もいます。

自動運転、機能統合

Auto-GPTやlangchainなどと同様に、ChatGPTは特性のテンプレートに同意することで、特定のコマンドを実行するテキストを返すことができます。例えば、ChatGPTで検索に同意する場合は、[search:検索内容]を返し、次に、クライアント側で通常のマッチングを渡します/ [search:(.*?)]/、対応するコンテンツを取得して検索し、結果を ChatGPT に返して最終的な答えを整理します。

ダミーの例:

1. user: 深圳明天的天气怎么样?
2. chatgpt(触发知识限制2021年,返回约定的搜索格式):[search:2023年4月27日的深圳天气]
3. user接收到正则匹配触发搜索,打开无头浏览器搜索百度并取第1条结果:2023年4月27日星期四深圳天气:多云,北风,风向角度:0°风力1-2级,风速:3km/h,全天气温22℃~27℃,气压值:1006,降雨量:0.0mm,相对湿度:84%,能见度:25km,紫外线指数:4, 日照...
4. user(将搜索的内容连带问题第二次发给ChatGPT): 深圳明天的天气怎么样?可参考的数据:2023年4月27日星期四深圳天气:多云,北风,风向角度:0°风力1-2级,风速:3km/h,全天气温22℃~27℃,气压值:1006,降雨量:0.0mm,相对湿度:84%,能见度:25km,紫外线指数:4, 日照...
5. chatgpt(根据问题和上下文,输出人类语言的表达): 深圳明天的天气还可以,整体多云为主,气温22℃~27℃

マルチモーダル

4月にリリースされたGPT4ではすでに画像認識機能が備わっており、以下のケースはホストが一貫したデザイン案でフロントエンドページを生成するプロセスです。典型的な「フロントエンドが停止した」瞬間:

LLM の制限

ChatGPT のテクノロジは強力であることがわかりましたが、その限界についても慎重に検討する必要があり、これは基本的に、履歴データに基づいた人間のテキスト出力機能の経験的な模倣です。

たとえば、ChatGPT は 4 桁の掛け算がまったくできません。2 つのキー情報に等しい 6 と 7 を掛ける確率が高いです。答えは 2 で終わります。2 つのキー情報 4 に従って、3 を掛けます。で答えが得られますが、1から始まり途中のランダム性が全く正解に収束しないのはChatGPTでもGPT4でも同じ状況です。

別の例として、特にニッチで一般人にとって間違いやすい専門分野の知識について質問すると、ほとんどの一般人の間違った回答に基づいて間違った回答も出力されます。

たとえば、V8 Promise ソース コードの包括的な解釈では、実際、Promise については何も知りませんが、この記事の非常に奇妙なトピックでは、次のコードは何を出力しますか?

Promise.resolve().then(() => {
    console.log(0);
    return Promise.resolve(4)
}).then(res => {
    console.log(res);
})

Promise.resolve().then(() => {
    console.log(1);
}).then(() => {
    console.log(2);
}).then(() => {
    console.log(3);
}).then(() => {
    console.log(5);
}).then(() => {
    console.log(6);
})

ほとんどの人は次のように答えます: 0、1、4、2、3、5、6
GPT3.5 の答え:
0、1、4、2、3、5、6 GPT4 の答え: 0、1、2、3、4 、5、6

GPT-4の答えだけが正しいのですが、たとえ答えが正しくても、その具体的な分析は間違っています。なぜなら、ある場面で似たような答えを学習したかもしれないが、「理解」していないからであり、その後の分析内容も間違っています。ほとんどの人が誤りやすい分析と同じ

終わり

最後に、流浪の地球2の周哲志のセリフをエンディングとして使用します。

AI の到来については、戦略的に過大評価すべきではない、AI 自体には限界がある、楽観的に考え、フロントエンドはそう簡単には死なない、戦略的に AI の発展を重視し注目し、我々の社会に応用してみよう。仕事や生活、テクノロジーの変化 個人の意志では潮流は変わりません。

徹夜で書くのは大変ですし、暗号も簡単ではありませんが、このクラスメイトを見かけたらぜひ「いいね!」をお願いします♪(・ω・)ノ

著者: 京東リテール 陳龍徳

コンテンツソース: JD Cloud 開発者コミュニティ

{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/u/4090830/blog/8881118