|
オタクトーク 01 背景 技術の急速な発展に伴い、人工知能分野における大規模モデリング技術への注目が高まっています。大規模モデルの広範な応用を通じて、様々な場面におけるその巨大な潜在力と価値を目の当たりにしてきました。大規模モデリング技術の発展は、業界全体のイノベーションと変革を推進するだけでなく、人工知能に対する私たちの理解と期待にも変化をもたらしています。 大規模言語モデル(LLM)とは、数千億(あるいはそれ以上)のパラメータを持つ言語モデルを指します。これらのモデルは通常、大規模なデータセットを用いて学習され、性能と汎化能力を向上させます。大規模モデルの出現は、計算能力とデータの可用性の向上という恩恵を受けており、研究者はより複雑で強力なモデルを構築し、様々な現実世界の問題を解決できるようになります。 OpenAIのChatGPTやBaiduのWenxin Yiyanといった大規模言語モデルは、自然言語の理解と生成能力が向上しています。膨大なテキストデータで学習されたこれらのモデルは、言語の文法、意味、文脈情報を捉えます。これにより、質問への回答、説明の提供、テキスト生成、対話において、より正確かつ流暢に処理できるようになります。さらに、これらのモデルの公開は大きな注目を集めています。大規模言語モデルの技術開発は、AIコミュニティ全体に大きな影響を与え、AIアルゴリズムの開発と利用方法を根本的に変えました。 Wenxin Yiyan の AI 機能を Baidu アプリの動的投稿機能に統合することで、ユーザーにはよりインテリジェントでパーソナライズされたサービスを提供できるようになり、著者は作成の難易度とコストを削減し、作成効率を高め、独自のコンテンツをより良く作成できるようになります。 02 下の画像は、Baidu アプリの「更新を公開」セクションでの AI テキスト作成の例を示しています。 コンテンツ入力 AI生成の詩 AI生成の詩が完成しました。 2.1 全体的なアーキテクチャ Baidu AppのAI搭載コンテンツ作成ツールは、Baiduの「文心一言」アシスト作成機能をベースとしています。ユーザーの入力に基づいて、継続、書き直し、プロンプトなどを含むコピーをインテリジェントに生成します。 ビジネス全体は3つの層に分かれています。 1. 最上層はビジネス層であり、モバイルデバイス、H5、ミニプログラムに実装された AI 支援作成、AI メモなどが含まれます。 2. 中間層は戦略層であり、プロンプトテンプレート構成機能、入出力戦略制御機能、構成情報管理機能などを提供します。 3. 基盤層は、文心易眼やリスク管理サービスなどの基本サービスから構成されます。 2.2 全体のプロセス ビジネスレイヤーは、Baijiahao Creator Brainサービスを呼び出し、アカウント権限、機能権限、プロンプトテンプレート設定などの情報を取得します。権限に基づいて、日々の更新、AI詩作、旅行などの機能タイプを表示します。ユーザーはテキストを入力し、Creator Brainのテキスト生成インターフェースにアクセスします。Creator Brainはアカウント、権限、テンプレート情報を検証します。権限検証に合格すると、リスク管理単語リストにアクセスし、入力情報を管理してリスク管理を行います。最後に、Creator Brainはプロンプトとユーザーが入力した質問を携えて、Yiyanサービスにアクセスし、AIによって磨き上げられたテキストを取得します。 03 3.1 プロンプト プロンプトとは、大規模な機械学習モデルに与えられる指示または質問であり、対応する回答または出力を生成するためのガイドとなります。通常、プロンプトは必要な情報またはタスクを説明するテキスト文字列であり、モデルにコンテキストとガイダンスを提供し、目的の応答を生成するのに役立ちます。例えば、Wenxin Yiyan大規模モデルに基づく対話、テキスト生成、その他のタスクにおいて、プロンプトはモデルが出力を生成するためのガイドとなります。適切に設計されたプロンプトは、モデルがユーザーの意図をより正確に理解し、関連性のある有用な回答を生成するのに役立ち、真の産業的/社会的価値を有します。優れた高品質のプロンプトを作成するには、私たちの理解と想像力を最大限に活用し、大規模モデルの能力を動員して作業効率を向上させる必要があります。 3.1.1 プロンプトの基本定義簡単に言えば、プロンプトとは、大きなモデルが自らを表現するためのテキストによる説明です。 プロンプト式 = タスク + 本文の生成 + 詳細 (オプション) + フォーム (オプション)。 タスク: 詩を書くなど、モデルが実行することが予想されるタスクの種類。 件名: 夏についての詩を書くなど、生成されるオブジェクト。 詳細: 表情などの詳細な出力が含まれていますか? フォーマット: レイアウト、コンテンツスタイル 優れたプロンプトは通常、次の 3 つの基準を満たしています。 明確な表現:モデルが優れたコンテンツを生成できるだけでなく、一般の人々にもその意味を理解できるように、わかりやすく、簡潔で明確である必要があります。 高い汎用性: メインの単語を変更した後でも、同様のタスクで優れたパフォーマンスを発揮します。 安定した生成: 同じプロンプト語が使用される場合、複数回生成されるコンテンツは十分に安定しています。 高品質のプロンプト + 大規模なモデル = 高品質のコンテンツ。 3.1.2 プロンプトの設定Baiduアプリのダイナミックパブリッシャーは、AIを活用した複数のコンテンツ作成機能を提供します。各機能には、ユーザーの質問に回答し、カスタマイズされたコンテンツを提供するための説明が組み込まれています。以下のカテゴリーをご用意しています。 全文の書き込みを続行します: 大規模なモデルでは、ユーザー向けに書き込みを続行するために簡潔な言語を使用する必要があります。 全文書き換え:メインモデルは記事の書き換えアシスタントとして、文法エラーを修正し、ユーザーのコンテンツを磨くことが求められます。 毎日の更新: 大規模なモデルでは、ユーザー入力に基づいて短い毎日の更新を書き込む必要があります。 AI 生成詩: ユーザーが入力したテーマに基づいて短い詩を生成する大規模なモデルです。 製品の推奨: 生き生きとした文体で製品の推奨文を書きます。 旅行と旅: 大規模なモデルでは、ユーザーが自分の経験や観察を表現できるように旅行記を書く必要があります。 3.2 リスク管理 悪意のあるプロンプトの挿入、プロンプト語句の改ざん、モデルによる予期せぬ結果の誘導を防ぐため、プロンプトに防御指示を追加します。そのため、制作プロセス全体を通して以下の予防措置を実施しています。
3.3 SSEプロトコル チャットのスムーズさと応答性を向上させるため、Wenxin Yiyan はサーバーサイドプッシュ技術として SSE を採用しています。SSE はサーバーからクライアントにイベントを送信できるため、WebSocket やロング/ショートポーリング技術と比較して、プッシュ機能をより簡単に実装できます。 応答ヘッダーには次の内容を含める必要があります。 コンテンツタイプ: text/event-stream; 文字セット=utf-8キャッシュコントロール: no-cache, no-transform接続: keep-aliveX-Accel-Buffering: no クライアントはHTTP GETリクエストを介してサーバーとの接続を確立し、text/event-streamタイプのデータを受信するように指定します。サーバーはリクエストを受信した後、すぐに応答を返すのではなく、接続を開いたままにして、ユーザーの入力に基づいて応答を生成します。応答を生成した後、サーバーは応答をイベントとしてクライアントに送信し、接続を開いたまま次の入力を待ちます。イベントを受信すると、クライアントはイベント内のデータを解析し、チャットインターフェースに表示します。クライアントとサーバーは、クライアントが接続を閉じるかサーバーでエラーが発生するまで、同じ接続を介して継続的にデータを交換できます。 SSEは他のソリューションと比較して使いやすく、新しいコンポーネントは不要で、既存のバックエンド言語とフレームワークのみを必要とします。SSEは既存のHTTPプロトコルを完全に再利用するため、既存のプロキシサーバーや認証技術上で直接実行できます。SSEはブラウザにネイティブのEventSourceオブジェクトを提供するため、サーバーから送信されるイベントのリッスンと処理が容易です。SSEは切断後の再接続とメッセージトレースをサポートし、データの整合性と一貫性を確保します。 3.4 グラデーションフロー表示コンポーネント クライアントは、サーバーから返されたデータに基づいて、ストリーミング形式でデータを表示します。このプロセスは、初期待機、表示、表示終了という複数の段階に分かれています。これらの状態遷移において、表示されるコンテンツのスタイルも変化します。 初期待機: カーソルが表示され、点滅する必要があります。 プレゼンテーション中:カーソルが点滅しながらテキストが1つずつ表示されます。 プレゼンテーションの終了: 完全なテキストが表示され、カーソルが非表示になります。 3.4.1 カスタムテキストビューAndroidを例に挙げると、初期化プロセスはまず待機状態と表示状態の2つの状態から構成されます。これはAndroidのEditTextコンポーネントと非常によく似ています。しかし、EditTextコンポーネントはカーソル表示、フォーカス取得、キーボードポップアップ、編集無効化といった複数のイベントの組み合わせを処理する必要があるため、機能の純粋性が低く、互換性の問題が発生する可能性があります。そのため、TextViewを継承したカスタムViewを使用して実装することにしました。 考慮する必要があるのは、文字を順番に表示すること、テキストのグラデーション、カーソルの 3 つの点だけです。 単語ごとの表示
グラデーションテキスト
override fun updateDrawState(tp: TextPaint?) { tp ?: return val leadingWidth = tp.measureText(includingText, 0, gradientStart) val gradientWidth = tp.measureText(includingText, gradientStart, gradientEnd) val lineGradient = LinearGradient(leadingWidth, 0f, gradientWidth, 0f, intArrayOf(startColorInt, endColorInt), floatArrayOf(0f, 1f), Shader.TileMode.CLAMP ) tp.shader = lineGradient} カーソル
override fun draw(canvas: Canvas, text: CharSequence?, start: Int, end: Int, x: Float, top: Int, y: Int, bottom: Int, paint: Paint) { cursorPaint.alpha = (alpha * 255).toInt().coerceAtMost(255) canvas.drawRoundRect(x, top.toFloat(), x + width, bottom.toFloat(), rx, ry, cursorPaint)} オタクトーク 04 要約 本稿では、Wenxin Yiyanなどの大規模モデルに基づくAIテキスト生成の実装の基本プロセスについて簡単に説明します。これは、コンテンツ作成とAIを組み合わせた最初の試みでもあります。生成AIイノベーションの応用が進むにつれて、画像や動画に基づいたよりユニークな機能が次々とリリースされるでしょう。どうぞご期待ください。 |
百度アプリ投稿におけるAIテキスト作成の実践
関連するおすすめ記事
-
AIGC時代のビジネスロジック変革
-
MicrosoftのBingが突然、大規模なアップデートをリリースしました!待つ必要もなく、誰でも使えるようになり、画像とテキストで回答が完成しました。ネットユーザーからは「ChatGPTは最終兵器を繰り出すしかないのか?」という声が上がっています。
-
A2M人工知能イノベーションサミットがいよいよ開幕!66社が参加し、大規模モデルのベンチマーク事例を公開します。
-
Llama-2 vs. Llama-3: ミニベンチマーク(三目並べ)を使った大規模モデルの評価
-
データ配信の変革:研究開発からセルフサービス型生産・運用への道
-
2023年12月26日火曜日のモーニングポスト