ai-research - 🔞🔞🔞 【未成年者には適さない写真が含まれています】AIの探索と私の優れたプログラミング、絵画、執筆に基づく要約:StableDiffusion は、1つの画像を進化させることで新しい画像を生成できる強力な画像生成モデルです。 ChatGPT は Transformer ベースの言語生成モデルで、入力したトピックに適した記事を自動的に生成します。 Github Copilot は、日常のプログラミング活動を加速するインテリジェントなプログラミングアシスタントです。

(【🔞🔞🔞 内含不适合未成年人阅读的图片】基于我擅长的编程、绘画、写作展开的 AI 探索和总结:StableDiffusion 是一种强大的图像生成模型,能够通过对一张图片进行演化来生成新的图片。ChatGPT 是一个基于 Transformer 的语言生成模型,它能够自动为输入的主题生成合适的文章。而 Github Copilot 是一个智能编程助手,能够加速日常编程活动。)

Created at: 2023-02-19 09:22:52
Language: Jupyter Notebook

プログラミング、描画、書き込みに基づくAIの探索と要約(18禁止)– 2023年2月版

PS:この記事のグラフィック部分には、「現実世界の理由」のために年齢制限のある語彙がいくつか含まれており、未成年者は保護者が同伴する場合に読むことをお勧めします。

現在のノード(2023.02.22)に関する限り、私は伝統的な機械学習を一定期間研究してきましたが、深層学習やその他の分野は苦手なので、AI分野関連の語彙の多くは苦手です。

内容は主に、私が得意としていたプログラミング、ライティング、描画と組み合わされています。

  1. 絵画:テキスト2の画像。 安定した拡散と組み合わせて、画像の進化を伝えます。
  2. チャット2の記事によって書かれました。 ChatGPTを組み合わせて、特定のトピックに関するコンテンツ作成について話します。
  3. プログラミング:コメント2コード。 GitHub Copilot が日々のプログラミング活動を加速する方法と組み合わせることで。

一般的に、AIはキャプテンアメリカの強さに相当し、強いときは強く、弱いときは弱く、キーは実際にはプロンプトです。 したがって、プロンプトをより適切に改善し、プロンプトエンジニアリングを実装する方法は、AIの基盤をより適切に使用する方法です。

プロンプトは、GPTなどの自然言語処理モデルと対話するためのテキスト入力の形式です。 プロンプトは、モデルを起動し、プロンプトに関連する出力を生成するフレーズまたは文です。 この出力は、1 つの単語、文、または完全な段落にすることができます。 モデルの動作を制御して、特定の結果を生成できます。

したがって、プロンプトをより適切に改善し、プロンプトエンジニアリングを実装する方法は、AIの基盤をより適切に使用する方法です。 したがって、この記事では、以下について説明します。

  1. テキスト 2 の画像を使用して、プロンプトを進化させる方法を示す
  2. テキスト2の記事を使用して、十分なプロンプトの利点を示します
  3. GitHub Copliotとプロンプトを組み合わせて仕事を成し遂げる

PS:写真を撮ってくれた妻に感謝します。

グラフィック生成:写真を説明する方法は?

人間は最初の質問について考える必要があります:写真をどのように説明するか? 感情を気にせず、被写体、背景、色、構図などに焦点を当てます。

ここで、シナリオが思い浮かびます。

次に、テキストで抽象化します。 ここでは、安定した拡散と併せてお話しします。

テキストの説明: 最初の例

プロンプトを生成するには:

  • Phodal:写真を美しくするために、写真を説明する段落を書きたかったのです:スカートをはいた若い女性がカメラに背を向け、海沿いの夕日を眺め、太陽が地平線の下に届き、髪が風になびいています。
  • ChatGPT:この写真のシーンは魅惑的で、ドレスを着た若い女性が海のそばに立って、カメラに背を向けて、地平線の下の夕日を見つめています。 太陽は海面に沈み、金色の光が海に浸透し、まるでこの瞬間が時間の隅で凍っているかのように、海全体を照らしました。 女性の髪はそよ風にそっとなびき、シルエットは余韻で柔らかく温かかった。 彼女の視線は、まるで人生の意味と無限の未来を熟考するかのように、遠くを見つめていました。 この写真には深い意味合いがあり、人々に時間と自然の力を感じさせ、この壮大で美しい世界での自分の役割と意味について考えさせます。

英語に変換した場合:

流れるようなドレスを着た若い女性が海の端に立ち、カメラに背を向けて見つめている 夕日の輝き。 海はその壮大さの中で彼女の前に広がり、太陽はゆっくりと下に沈みます 地平線、水面に金色の光を投げかけます。 女性の髪はそよ風に優しく揺れ、彼女の特徴は柔らかくなります 夕日の暖かい色合いで。 彼女の視線は、まるで人生の意味と無限を熟考するかのように、遠くに固定されています 未来の可能性。

N回繰り返すと、必要な成功の画像が表示され、もちろん失敗します(ネガティブプロンプトフィルタリングの失敗が設定されていないため)。

失敗

ただし、さまざまな検索エンジンやNLPのキーワードに精通している場合は、上記のほとんどがナンセンスである可能性があることを知っておく必要があり、次の単語に還元して、などの特別なモデル単語を追加することができます。

black hair
hand before body
no hand
bodycon dress

顔のない女性の背面図、流れるドレス、海の端、背面図、カメラに向けられた背中、夕日の輝き、地平線の下の太陽、水上の金色の光、髪の揺れ 優しく、中国風の服、黒髪、

次に、AIが苦手なことなど、これらのことを行わないことを意味するいくつかの逆プロンプトを追加します:、など。 次に、より良いプロンプトを生成するなど、プロンプトを微調整し続けます。

bad hands
morbid

マジックプロンプトの使用など。

正確なコントロールグラフ:コントロールネットとの組み合わせ

生成されたポーズはランダムで制御できないため、ControlNetプラグインを導入しました-ボーンバインディング、正確なラインコントロール、ライン描画の色付け、深度マップ構造のパースペクティブに基づく正確な再描画など。 これで、作成を組み合わせて、スケッチしたり元の画像を入力したりするときなど、生成されたグラフィックスを調整し、期待する効果を生成できます。

最後に、結果の画像は次のとおりです。

オープンポーズ

記事を書き終えたら、プロンプトをもう一度修正しました。

砂浜に顔を立てない女性の背面図、ボディコブのフルスカート、海の端、カメラに背を向け、夕日の輝き、黒髪、夕焼けの赤から青のグラデーション空

対応する否定プロンプトは次のとおりです。

(((単純な背景)))、モノクロ、低解像度、悪い解剖学、悪い手、テキスト、エラー、指の欠落、余分な数字、少ない桁、トリミング、最悪の品質、低品質、標準品質、JPEG アーティファクト、署名、透かし、ユーザー名、ぼやけている、低解像度、悪い解剖学、悪い手、テキスト、エラー、余分な数字、少ない桁、トリミングされた、最悪の品質、低品質、通常の品質、JPEGアーティファクト 、署名、透かし、ユーザー名、ぼやけた、醜い、妊娠中、ボア、重複、病的、ミュート、トランスセクシュアル、雌雄同体、長い首、突然変異した手、描かれていない手、描かれていない顔、 突然変異,変形,ぼやけている,解剖学的構造が悪い,プロポーションが悪い,手足が奇形,余分な手足,クローン顔,変形,粗いプロポーション,(((腕が欠けている))),(((足が欠けている)))), (((余分な腕)) ),((余分な脚))),陰毛,ふっくら,足の悪さ,エラーの足,ユーザー名,ぼやけた,足の悪さ

効果は大丈夫です、それはまだ良いです。 次に、次のパラメータ調整(一般に錬金術として知られています)を使用して、さらに試行を行うことができます。

インペイントと組み合わせて、歪んだ部分を固定することもできます。

その他のモデルセット:18次元の世界を含む写真(<>は禁止)

ご存知のように、AI生成の品質はモデルと密接に関連しているため、高品質には優れたモデルが必要です。

https://civitai.com/ にはさらに多くのモデルがありますが、年齢制限やその他の理由により、公共の場所ではなく、安全な場所でのみ開くことをお勧めします。

実在の人物著作権のさまざまな理由により、このソフトウェアは2次元の世界で非常に人気があります。 以下は、モデルの品質を説明するための一般的なヒントであり、不快な言葉が含まれている可能性があり、現実世界を反映するためにここでシールドすることを意図したものではありません。

プロンプト:

モデル撮影スタイル、(ウェーブのかかった青い髪)、((半身の肖像画))、((おっぱい、巨大なおっぱい、巨大な胸を示す))、(( 雄大な青いドレスを着た美しいライトメイクの女性魔術師))、フォトリアリスティックなゲームCG、8K、エピック、(ブルーダイヤモンド ネックレスの超複雑な細部)、対称的な特徴、ミハイル・ヴルーベルによる楽しい、雄大な油絵、アテイ ガイラン、ジェレミー・マン、グレッグ・マンチェス、WLOP、チャーリー・ボウォーター、アートステーションでトレンド、CGSocietyでトレンド、複雑、 高ディテール、シャープフォーカス、ドラマチック、フォトリアリスティック、黒の背景、壮大なボリューメトリック照明、細かいディテール、 イラスト、(傑作、最高品質、高解像度)、雄大な城に立つ

否定的な手がかりの言葉

(((単純な背景)))、モノクロ、ローレゾ、悪い解剖学、悪い手、テキスト、エラー、指の欠落、余分な数字、少ない 数字、トリミング、最悪の品質、低品質、標準品質、JPEGアーティファクト、署名、透かし、ユーザー名、ぼやけ、 低解像度、悪い解剖学、悪い手、テキスト、エラー、余分な数字、少ない桁、トリミング、最悪の品質、低品質、普通 品質、JPEGアーティファクト、署名、透かし、ユーザー名、ぼやけた、醜い、妊娠している、ボア、重複、病的、ミュート、トラン Nsexual, 雌雄同体,長い首,突然変異した手,描き下手,顔の描き方,突然変異,変形,ぼやけ,悪い 解剖学,悪いプロポーション,奇形の手足,余分な手足,クローン顔,変形,グロスプロポーション,(((腕が欠けている))),(( 足が欠けている)))、(((余分な腕))))、(((余分な脚))))、陰毛、ふっくらとした、悪い足、エラーの足、ユーザー名、ぼやけた、悪い足、 低解像度、悪い解剖学、悪い手、テキスト、エラー、指の欠落、余分な数字、少ない桁、トリミング、最悪の品質、低 品質、通常の品質、JPEGアーティファクト、署名、透かし、ユーザー名、ぼやけ

AIが私たちのニーズを理解して説明するのに役立つ十分な豊富な説明:

より良い品質

上の図はAIによって生成されていますが、これも同じシナリオでブロックしなかった結果です-その理由は、ほとんどのモデルライブラリが18の禁止コンテンツをたくさん追加しているためです。

概要

それでは、人と絵を描く方法を考えてみましょう。

  • 詳細な記述子。
  • キャラクターのポーズ。
  • 豊富なモデル。
  • 繰り返し変更されるパラメーター。
  • 継続的なイテレーション。 (インペイント等により修正)

さて、記事はどうですか?

記事:特定のトピックについて考える方法は?

以前の安定した拡散の数え切れないほどの失敗と組み合わせると、まずChatGPTを実行するための適切なフレームワークを見つける必要があります。

コンテンツの内容を書く際には、STAR、ピラミッドの原則、5W1Hなど、さまざまなアイデアや原則があります。

STAR(シチュエーション、タスク、アクション、結果)をChatGPTとの会話の基礎として使用できます。

  1. 読者が問題をよりよく理解できるようにする状況またはコンテキストを説明してください。
  2. タスクまたは目標を説明し、何を達成する必要があるかを読者に伝えます。
  3. どのような方法、ツール、戦略など、あなたが取った行動を説明してください。
  4. 直面した課題や達成した結果など、結果を説明します。

このように、私たちの思考を広げることは、私たちにとっていくらかの助けになるでしょう。

状況:ChatGPTで記事を書く方法、ChatGPTで記事を書く方法は?

phodal:「ChatGPTで記事を書く方法、ChatGPTで記事を書く方法」というトピックに関する記事を書きたいです。

例:

しかし、そのようなコンテンツは私たちが望むものではありません。

そして、このタイトルでは、実際には、ChatGPTはすでに記事の書き方を理解しています、言い換えれば、人気のないトピックです、彼は知りません。 この時点で、より豊富なコンテキストを構築する必要があります。

懸念主導型

この時点で、ChatGPTによって与えられた手順はまだ間違っており、それらを修正し続ける必要があります。 したがって、最初に完全なコンテキストを与えることを検討できます。

より完全なコンテキストを構築する

ChatGPTの場合、明示的なプロンプトが必要です。

我想写一篇文章,主题是《如何用 ChatGPT 写一篇文章,以如何用 ChatGPT 写一篇文章》,文章的大纲是:

1. 先用 100 字介绍一下 ChatGPT
2. 以 Julia 作为可以以具体的案例为例,介绍如何使用 ChatGPT 写一篇博客大赛的参赛作品。这包括如何确定主题、如何撰写开头和结尾、如何组织文章结构等等。主题是:《Julia Dataframe 在大数据分析领域的使用》,大纲中包含:用 200 字介绍一下 Julia 语言历史;介绍如何使用 DataFrames.jl,并有个代码示例;对比一下 Python Pandas、Apache Spark Dataframe;小结。
3. 对本文的内容进行总结,并再次强调使用 ChatGPT 进行写作的好处。

帮我写一篇文章?

このようにして、より正確なコンテキストを提供し、例を見ることができます。

デモ

この例に基づいて、コンテンツがどのように書かれているかを考えることができます。

フレームワーク

ChatGPT自体がフレームワークを構築し、簡単なフィードバックループを構築するための便利なフレームワークに入ることができます。 それで、私は彼にDDDを教え始め、それからお互いから学び始めました:

DDDコパイロット

ただし、上の画像のように、ChatGPTはコンテキストを失うことがよくあります。

phodal: この TicketOrder アグリゲートにはどのような API を含める必要がありますか?

チケット注文アグリゲートには、次の API を含めることができます。

  1. createOrder(): 顧客情報、セッション情報、シート情報などのパラメーターを受け取り、一意の注文番号を返すことができる新しい注文を作成します。
  2. キャンセル注文(注文ID): 注文をキャンセルするには、注文番号を指定する必要があります。
  3. getOrder(orderId): 注文の詳細を取得するには、注文番号を指定する必要があります。
  4. 座席の予約 (showTimeId、seatIds): 特定のセッションで座席を予約するには、セッション番号と座席番号を指定する必要があります。
  5. 注文の確認(注文ID): 注文を確認すると、その時点で座席がロックされ、注文ステータスが確認済みに変更されます。
  6. payOrder(orderId、支払い情報):注文の支払いを行うには、注文番号と支払い情報を提供する必要があります。
  7. 払い戻し注文(orderId): 注文番号で返金する必要があり、注文ステータスが確定した場合にのみ行うことができます。
  8. updateOrder(orderId、updateInfo):注文情報を変更するには、顧客情報、セッション情報、座席情報などを更新でき、注文番号を提供し、コンテンツを更新する必要があります。

基本的なAPIは映画館予約ビジネスのニーズを満たすことができますが、特定の実装はビジネスシナリオとニーズに応じて洗練および調整する必要があります。

其它小建议:

相似的,与 Stable Diffusion 类似的是,AI 生成的内容经常出现各种问题,所以我们要注意:

  1. 保持自然的表达。ChatGPT 能够生成流畅的语句,但有时可能会出现奇怪或不合适的表达。在使用 ChatGPT 进行写作时,需要注意保持自然的表达方式。
  2. 适时修正错误。如果 ChatGPT 生成的内容不准确或有错误,应该及时进行修正,以保证文章的准确性和可读性。
  3. 多次修改和调整。ChatGPT 的输出结果虽然会自动进行语法纠错和编辑,但是为了保证文章质量,还是需要经过多次修改和调整,不断完善文章结构和内容。
  4. 保持简洁明了。在使用 ChatGPT 进行写作时,需要尽量保持简洁明了,避免使用过于复杂的句式和词汇,以便读者更好地理解文章内容。
  5. 注重原创性和独特性。尽管 ChatGPT 能够生成大量的文章,但是为了在博客大赛中脱颖而出,还需要注重文章的原创性和独特性,尽可能地突出自己的风格和思想。

考虑到 ChatGPT 的代码并不那么准确,让我们使用 GitHub Copilot 生成更多的内容。

代码生成:GitHub Copilot

GitHub Copilot 是 GitHub 2021 年 8 月推出的一个 AI 代码生成工具,它可以根据你的代码,生成更多的代码。

Samples

所以,对于 Markdown 本身来说,它也能提供一些帮助。当然了,在这方向它没有 ChatGPT 那么强大,经常会出现一些奇怪的重复代码。

但是,也并非不可用,我们可以使用它来生成一些代码片段,以便于我们进行修改。

完整示例:DDD + ChatGPT + Copilot

如结合 Chat GPT 我们可以完成代码的前置设计(当然有些不靠谱):

ChatGPT DDD

复制生成的 API,写行注释告诉 Copilot:,然后我们就有了:

convert to markdown table

API 描述 HTTP方法 URL 参数 返回值
创建订单 创建一个新的订单 POST /ticket-orders 创建订单信息 订单ID
查询订单 查询一个已存在的订单 GET /ticket-orders/{orderId} 订单ID 订单信息
取消订单 取消一个已存在的订单 DELETE /ticket-orders/{orderId} 订单ID 取消成功或失败信息
添加座位 向一个已存在的订单添加座位 POST /ticket-orders/{orderId}/seats 座位信息 座位添加成功或失败信息
移除座位 从一个已存在的订单中移除座位 DELETE /ticket-orders/{orderId}/seats/{seatId} 座位ID 座位移除成功或失败信息
查询可用座位 查询某个场次电影的可用座位 GET /cinema-schedule/{scheduleId}/available-seats 场次ID 可用座位信息

接下来,我们可以使用 Spring + Copilot 来生成一些代码片段,以便于我们进行修改:

github-copilot Sample

在有足够类相关信息的情况下,诸如于,我们提供一个注释:

@PostMapping
fun createTicketOrder(@RequestBody ticketOrder: TicketOrder): String {
    // check the schedule is valid, the seats are available, then create the order

}

它生成的代码会更加准确:

GitHub sample 4

而如果我们添加了对应的 Exception 的处理注释:,代码进一步转化为:

check the schedule is valid, the seats are available, then create the order, if the schedule is not valid, throw NotScheduleAvailableException

@PostMapping
fun createTicketOrder(@RequestBody ticketOrder: TicketOrder): String {
    // check the schedule is valid, the seats are available, then create the order, if the schedule is not valid, throw NotScheduleAvailableException
    // check the schedule is valid
    val schedule = cinemaScheduleService.getSchedule(ticketOrder.scheduleId)
    if (schedule == null) {
        throw NotScheduleAvailableException()
    }
    // check the seats are available
    val availableSeats = cinemaScheduleService.getAvailableSeats(ticketOrder.scheduleId)
    if (!availableSeats.containsAll(ticketOrder.seats)) {
        throw NotSeatAvailableException()
    }
    // create order
    return tickerOrderApplicationService.createOrder(ticketOrder)
}

在另外一些场景下,如果你的函数名和参数名都是英文,那么 Copilot 生成的代码也会更加准确:

GitHub sample 5

而在单元测试的场景下,Copilot 更加强大和智能,它能够根据你的测试代码,生成更多的测试代码。

其它:代码生成开源模型

我也尝试了下 Saleforce 的代码模型:https://huggingface.co/Salesforce/codegen-6B-mono,但是不能在我的 MBP 上跑上来,有些遗憾。

总结:AI 就像占卜

你可能无法预期输出的是啥,总会有各种惊喜。

而其实,与 AI 的 prompt 相似的是:和人类聊天的时候,我们也需要提供足够的上下文。所以,你需要一下 ChatGPT,他并不总是能理解你的上下文。

その他: Macbook Pro の苦情

同社が構成したMacbook Pro 2019にはAMDグラフィックカードが搭載されていますが、CUDAおよびROCmをサポートしていないため、CPUでのみ実行できます。

AIエコシステムは友好的ではありません

たとえば、PyTorch は以前 ROCm アクセラレーションをサポートしていました。

ロクム

現在のバージョンはもう動作しません:https://pytorch.org/get-started/locally/。

この記事に関連するリソース

AI生成画像:

コード モデルの関連付け:

コントロールネットは以下を強化します。