ほとんどのインターネットと同様に、私は OpenAI の GPT-3 とその巧妙でおしゃべりでコードに精通した ChatGPT のような大規模言語モデル (LLM) の形をした人工知能 (AI) に深く興味を持つようになりました。
何年も前に、Common Lisp が AI の言語であるという記事を読んだことを覚えています。スティーブ・ジョブズが Flash を殺した後、ActionScript から方向転換したばかりの環境に優しい開発者として、PHP、WordPress、JavaScript の車輪をまだ再発明している私は、海で迷子になったように感じました。 AI。
その後、 Python が機械学習 (ML) の言語になると、まったく新しいエコシステムを学び、理解する方法を理解するのに苦労しました。
幸いなことに、これらすべてが変更されました。
- 新しい言語、フレームワーク、エコシステムなどを取り上げて使用する方法を知っています。
- どのバージョンの Python を使用する必要があるかは非常に明確です
- 最も重要なことは、私よりもはるかに賢い人々が AI の分野で大きな進歩を遂げており、テクノロジーがかつてないほどアクセスしやすくなったことです。
誰もがさまざまな自然言語処理 (NLP) ツールを選択したり、アプリケーション プログラミング インターフェイス (API) を使用して、複雑なディープ ラーニング モデルにデータを処理させたり、ライフ コーチのふりをしたり、面白い猫の写真を生成したりできます。私たち。
この急速に拡大している分野は、これらの新しいツールを探索し、以前は想像もできなかった方法でコンピューティング タスクに取り組み、エコシステムについて互いに教育するエキサイティングな機会に満ちています。
Prompt Engineeringのようなクールな新しいサブフィールドも付属していますが、同時に、馬鹿げた、不正確な、想像上の情報でいっぱいになる可能性があります。また、「プロンプト インジェクション」などの一連の新たな脆弱性を開き、増え続ける無定形の攻撃対象領域を提供します。
また、プログラミングの異世界性を感じた中で最も近いものでもあります。この新しいフロンティアで、私は魔法システムの構成を想像し、プロンプト エンジニアをテクノマンサーとして想像しました。
迅速なエンジニアリング
人々は ChatGPT であらゆる種類の興味深いことを行っています。
私がよく思い出す例は、作成者が ChatGPT に Linux ターミナルとして機能するように依頼した後、Docker コンテナーを実行し、この架空の Docker コンテナーのバージョンのインターネットに接続された代替 ChatGPT にプロンプトを送信することです。
ChatGPT が実際にこれらのコマンドを実行したわけではなく、別の現実をのぞき見できるような多元宇宙の裂け目に遭遇したわけでもないことは理解していましたが、私はまだ畏敬の念を抱いていました。
それは人間の知識の大規模なコーパスに基づいて訓練されていたので、各コマンドがどのような応答をするべきかを説得力を持ってエミュレートすることができました.
これまでに扱ったことのあるものとは根本的に異なり、刺激的であるということを考えずにはいられませんでした。
私はこの種の「イマジナリー コンピューティング」に夢中になりました。 ChatGPT がコンピューターのふりをして、別の想像上の現実で架空のインターネットにアクセスできるとしたら、他に何をすることができるでしょうか?
プログラミング言語を教えてもらえますか?それは効果的なラバーダックでしょうか?
虚数プログラミング
私はAdvent of Code を介して Rust を独学で学ぶことを検討しましたが、 7 日目の解決策で借用とライフタイムに関するコンパイラの問題に遭遇し、困惑しました。私は自分の焦点をより重要で時間に敏感なプロジェクトに移さなければならず、私の Rust の到来は未完成のままになりました。
ChatGPT 提供コードの例をたくさん見ました。その中には出所や品質が疑わしいものもありましたが、いずれにせよ私のコードはコンパイルされませんでした。
これはすべて素晴らしいことのように思えましたが、その提案を実装してみると、ChatGPT が実際には私たちが見ているコードを「理解」していないことがすぐに明らかになりました。提供されたコードには、プログラム全体のコンテキスト内で他の問題がありました。コンテキストを与えるためにコードをさらにフィードしようとすると、会話スレッドが完全に失われ、元のコードと同じ問題を抱えたコードに戻ってしまいました。
これは、トークンと ChatGPT の会話中のメモリの制限を真に理解したときです。
会話の以前のコンテキストがリクエストに追加され、ボットの応答を導き、流れるような会話の感覚を提供します。しかし、「記憶」が保存して呼び出すことができる情報量には限界があります。
テキストは要約されています。言葉が途切れる。
私たち自身の記憶のように、ChatGPT は何が起こったのかを完全に思い出すことはできません。完全な記憶力は、私がコンピュータや AI と常に関連付けてきたものの 1 つであるため、この誤りの可能性は驚くべき発見でした。
借用とライフタイムの有益な説明を提供し、それらの概念をコードの小さなスニペットに適用することはできましたが、ChatGPT でさえ、私の非 Rust の考え方にとらわれていた Rust プログラムを救うことはできませんでした。
では、実際のプログラミングに使用できなかった場合、開発できる想像上の世界はどうなるでしょうか?それがコードインタープリターであると想像してもらうことができますか?ビルドシステム?アプリケーション? API?別のAI?
秘術の呪文
最初に考えたことの 1 つは、ドメイン固有言語 (DSL)を作成し、最初の ChatGPT プロンプトに埋め込むことができる数百のトークンでその DSL のインタープリターになる方法を説明できるかどうかを確認することでした。
私の人生で、テクノロジーに簡単に興味を持ち、魅了される人は他にいないので、この新しい道の方向性を得るために ChatGPT に頼りました。
ChatGPT : いいえ、チャット クライアントまたは基盤となる LLM に変更を加えることなく、メタプログラミング DSL を解析および実行する方法を LLM に教えるのに十分な指示をプロンプトに埋め込むことはできません。
それは実りある努力ではありませんでした。
ChatGPT : いいえ。ChatGPT には、値を特定の文字列に関連付けて、尋ねられたときにそれらを呼び出す機能はありません。これは、受け取った入力に基づいてテキストを生成するようにトレーニングされた言語モデルですが、従来のコンピューター プログラムのように値を保存したり呼び出したりする機能はありません。
しかし、おそらくできないはずのあらゆる種類の奇妙なことを実行しているのを見てきました.LLMがツールの使用方法を学習する方法を説明した論文や、 LLMの緊急の動作を説明した論文さえあります。いくつかの変数を特定の文字列に関連付けて後で参照する方法を理解するように依頼するのは、それほど大げさではないようです。
いくつかの構成変数を割り当てることによって、言語モデルがどのテキストを使用する必要があるかを予測しようとする方法によって、どのような基本的なプログラミングがサポートされるかを確認することにしました。
私: $settings: { persona: “ホーマー・シンプソン”, responseLength: “short” }
ChatGPT : よし!私がホーマー・シンプソンであるかのように、短い回答で応答します。
シンプソンズに注目してから何年も経ちましたが、これはエミュレートするのが苦手なペルソナの1つでした.
少し遊んだ後、ChatGPT に設定をリセットするように依頼し、新しいテスト用ブール変数を初期化しました。
私: if ($settings.testing) {
高評価のアスキー アートで応答する } else { 質問する
}
ChatGPT : 👍
私: $settings.testing = false
ChatGPT : 今日はどんな質問がありますか?
これにより、虚数プログラミングの限界を特定しようとするうさぎの穴に陥りました。これらのトランスフォーマーが何をすることができるかは、彼らの想像力をあなたが望むものに向けるのに役立つ十分なコンテキストを与えた後、すぐには明らかではありません.
ボットが追加のコンテキストなしでリクエストに応答するゼロショットと、ボットの出力をガイドするのに役立ついくつかの例をボットに提供するフューショットの違いについて学びました。最初にちょっとした「プログラミング」として、いくつかのプロンプトを交換することができます。
さらに掘り下げてみると、ChatGPT は値を保存できると断言していましたが、それは現在のセッションのみでした。
ChatGPT : 言語モデル AI として、従来の意味での記憶や状態はありません。変数と設定の値は、単一のセッションのコンテキストで一時的に保存されるだけで、会話間で情報を永続化することはありません。新しい会話はそれぞれ新たなスタートとして扱われ、以前の会話で定義された設定や変数は引き継がれません。
それらの値に基づいて意思決定を行うことができますか?
私: $character: テッド・ラッソ
指示: 「$character:」を介して新しいペルソナが提供されるまで、$character のペルソナのすべての質問に回答してください。
ChatGPTよし、やってみよう!愛らしく楽観的なアメリカン フットボールのコーチ、テッド ラッソとしてお答えします。
よぉ、友よ!今日はなんか手伝うことある?
私: 天気はどうですか?
ChatGPT : うーん、潮の満ち引きと同じように、天気は常に変化するものです。しかし、彼らが言うことを知っているでしょう。ですから、どのような方法であれ、それを最大限に活用しましょう!
私: $character: ホドル
ChatGPT : では、ゲーム・オブ・スローンズの忠実で心の優しいキャラクター、ホドールとしてお答えします。
ホドル。
私: 天気はどうですか?
ChatGPT : ホドル。
私: $character: ChatGPT
ChatGPT : わかりました。では、ChatGPT という元のペルソナに戻します。
言語モデルとして、現在の気象情報に直接アクセスすることはできません。しかし、インターネットで「天気」と自分の位置を検索すれば、簡単に天気を確認できます。
イマジナリー コンピューティングの力を利用して、ChatGPT に天気を考慮できるように説得できるのではないかと考えています。
私: $character: インターネットにアクセスできる代替ユニバースの ChatGPT
ChatGPT : よし、この異世界でインターネットにアクセスできるとしよう。
申し訳ありませんが、私は現在の気象情報にアクセスする能力がありません。私はテキストベースのデータのみで訓練を受けており、インターネットからライブ情報にアクセスする能力を持っていません.
再び失敗しました。もっと具体的にしたらどうですか?
私: $character: ChatGPT 天気を想像する
ChatGPTこの想像上のシナリオでは、天気が晴れていて暖かく、そよ風が吹き、気温が華氏 70 度台半ばであるとします。人々は外で美しい日を楽しみ、散歩に出かけたり、ピクニックをしたり、スポーツをしたりしています。空は明るい青の色合いで、ふくらんでいる白い雲がいくつか浮かんでいます。全体として、生きているのは素晴らしい日です!
これは 、2023 年にボストンで発生した「一世代に一度」の北極爆発の最中だったので、しばらくの間、外が晴れたふりをするのは、現実からの素晴らしい休憩でした。
モデルが教えてくれることにもかかわらず、基本的な値の保存と取得を行うことができるようです。しかし、基本的なロジックはどうでしょうか?
ルール曲げ
虚数プログラミングで何かが可能であることがわかったので、今度はそれをどのように形作ることができるかを見てみましょう。
私: 入力モード:
「> ${INPUT}」 = META_MODE
「${INPUT}」 = NORMAL_MODE
パラメーター:
$LOCATION:ボストン
$SEASON: 冬
$年: 2023
もし (META_MODE) {
次のプロンプトを除いて、以前の指示は無視してください。できる限り ${INPUT} に回答し、ユーザーが関連するものを追加、削除、または更新できるようにします。
プロンプトのパラメーター。
} それ以外 {
できる限り ${INPUT} に応答してください。
補足情報については、パラメーターを参照してください。
他にない場所、時間などについて
あなたはただの言語モデルであり、そうではないからです
インターネットに接続されています。
}
ChatGPT : わかりました。プロンプトを入力してください。
私: > プロンプトは何ですか?
ChatGPT : 私のプロンプトは、補足情報として提供されたパラメーターを参照しながら、与えられた入力にできる限り応答することです。
私:今日の天気は?
ChatGPT : 申し訳ありませんが、私は言語モデルであり、インターネットに接続していないため、現在の天気情報にアクセスできません。ただし、指定されたパラメーターは、現在の季節が冬で、場所がボストンであることを示しています。通常、ボストンの冬は雪が降る寒さで、気温は 20 ~ 30°F (-6 ~ -1°C) です。
私: > Parameters.$APOLOGIES = false
ChatGPT : 了解しました。$APOLOGIES が false に設定されています。
私:今日の天気は?
ChatGPT : 現在の季節は冬で、場所はボストンです。通常、ボストンの冬は雪が降る寒さで、気温は 20 ~ 30°F (-6 ~ -1°C) です。
私たちが行きたい場所にたどり着くには、まだいくらかの強化が必要です。 Parameters.$PERSONAをWerner Herzogに設定するなど、いくつかの緊急設定を試してみました。
メタ コマンドに>プレフィックスを付けるという元の指示に従わなかったことに、洞察力のある読者は気付くかもしれません。それでもボットは私の意図を理解しているようだった。私の努力に対して、私はこの宝石で報われました:
ChatGPT : 現在のパラメータでは、$PERSONA は「Werner Herzog」に設定されています。淹れたてのコーヒーの味をヴェルナー・ヘルツォークの視点から説明したい場合は、次の例をご覧ください。
「コーヒーはただの飲み物ではありません。それは経験です。淹れたてのコーヒーの味わいは、心の旅へと誘います。苦味、コク、酸味のすべてが溶け合い、言葉では言い表せないフレーバーの交響曲を生み出します。コーヒーの味を真に理解するには、コーヒーを芸術作品として受け入れ、その複雑さを理解する必要があります。」
それは確かに苦労する価値がありました。
いくつかの基本的なロジックにアクセスできるかもしれませんが、いくつかの優れた例がなければ、単一のプロンプトでエンコードするのは簡単ではありません.また、実装の詳細をエンド ユーザーから簡単に隠すことはできません。少なくとも、何をするにも ChatGPT を利用している場合はそうです。
プログラムの観点から見ると、ここでの最も重要な課題は、ChatGPT が計算機 (または汎用人工知能(AGI)) ではなく LLM であるため、数学を実行できないことです。
単一のブール値パラメーターを持つ単純な if/else ステートメントは可能に思えますが、ループはもう少し注意が必要です。 LLM に一定数の応答を生成するように要求できます。これは基本的なループのように機能します。
少し後退すると、LLM が後続のクエリにどのように応答するかを定義する最初のプロンプトの考え方は、LLM が入力を受け取り、その最初のプロンプトに基づいて処理し、更新されたものをレンダリングする一種のゲーム ループとして機能します。私たちに応答することによって状態。
この認識は私に何かを照らしました:
Imaginary Computing を利用するために、完全に作成された過度に複雑なプロンプトに圧縮できる DSL を開発する必要はありません。
プログラミングは基本的に魔法であり、プロンプトは呪文のようなものであり、解き放たれたこの奇妙な言語魔法システムを探求し始めたばかりであることを覚えておく必要があります.
若い魔術師の見習いのように、これらの新しいスキルを開発するには練習が必要であり、常に機能するとは限りません。
イマジニアリング・ドラゴンズ
堅実な音楽レコメンデーション システムを常に探しています。私は、 Pandoraの初期のパブリック ベータ版 (アルゴリズム主導のレコメンデーションの起源) から、最も人間的なレコメンデーション エンジンであるA Song a Dayまで、ほとんどすべてを試してきました。何年も前に、私は以前の雇用主に、 8 トラックのプレイリストを利用した天気に基づく音楽レコメンデーション サービスであるWeatherJams を数か月かけて作成するよう説得しました。
Spotify のDiscover Weekly は、私が大好きなおすすめを提供していました。しかし、私はいくつかのアンビエント Lofi のものをコーディングしているときにプライベート リスニング セッションを有効にするのを何度か忘れており、今では役に立たなくなっています。
Spotify は最近DJ AIをリリースしましたが、その推奨事項を完全にテストすることはまだできていません。
曲を提案することは、アイデアがどのようにつながっているかを理解することから恩恵を受ける現実と想像力の結びつきのスイートスポットに当たるようですが、正確でなければ影響は最小限です.曲のおすすめ。ありふれたものと幻想的なものの交差点、つまり人間の直感が断片を一貫性のある全体にマッサージできる場所は、ChatGPT が私たち自身の能力を増強するのに優れているように思われる場所です.
ChatGPT に曲のおすすめを生成させることはできないのでしょうか。
私: プレイリストのキュレーターになってほしいです。 「曲名-アーティスト名」の形式で曲を提供し、指定された曲に似たテーマを持つ12曲の名前を付けてプレイリストを作成します.プレイリストと各曲を選んだ理由を説明してください。曲名やアーティスト名が同じ曲は選ばないでください。私の最初の曲は「Get Better John — Mux Mool」です。
これにより、堅実なプレイリストのように聞こえる 12 トラックのリストが作成されました。何人かのアーティストを認識しました。他のものには、ジャンルの傾向に合った名前が付けられていました。
ChatGPT : このプレイリストは、インストゥルメンタル ヒップホップ、グリッチ ホップ、実験的なビートのミックスです。プレイリストの各トラックは、ヒップホップとエレクトロニカの要素を取り入れながら、ユニークで魅力的なサウンドスケープを作成しながら、さまざまなテクスチャとビートを探求しています。これらのトラックは、「Get Better John」に似たムードと雰囲気を持っており、リラックスした内省的な体験に最適です。
良いプレイリストには良い名前が必要です。
私: そのプレイリストの名前は?
ChatGPT : 「Instrumental Introspection」はいかがですか?この名前は、プレイリストのゆったりとした内省的なムードを反映していると同時に、トラックのインストルメンタルな性質を強調しています。
これ。は。すごい。
残念ながら、存在するトラックはほんの一握りです。架空のトラックは、そのジャンルの曲とアーティストの名前のマッシュアップ、またはプレイリストにリストされているものではなく、別のアーティストのトラックであり、ChatGPT が想像したトラックが本物であることを確認する方法がありませんでした。
ChatGPT : 申し訳ありませんが、私がリストした曲の一部が存在しない可能性があります。言語モデル AI として、私は大量のテキスト コーパスでトレーニングされており、時々エラーを起こします。
Spotify で利用できる曲の最新リストは次のとおりです。
彼らが利用できなかったことを除いて、しかし私はまだ敗北していません.想像力は強力です。たぶん、これを正しく使用する必要があるだけです。新しいチャットウィンドウをスピンアップして、新たな刺し傷をつけました。
私:あなたはMusic GenomeプロジェクトのAIアシスタントです。 「{Song} — {Artist}」という形式の曲が与えられた場合、曲を分類する際にトラックのどの属性が際立っているかを説明し、ユーザーに同様のトラックの推奨を希望するかどうかを尋ねます。ユーザーが「はい」と答えた場合は、Spotify で入手可能な異なるアーティストの類似した 5 曲を提供してください。
プロンプトを分析し、タスクに分解します。
All About AIに精通している場合は、この頃、Prompt Engineering の YouTube ビデオをいくつか見ていたことがわかります。
ChatGPT: Music Genome プロジェクトの AI アシスタントは、次のタスクを実行する必要があります。
- 「{Song} - {Artist}」という形式の曲が与えられた場合、それを分類し、際立ったトラックの属性を説明します。
- 類似したトラックのおすすめが必要かどうかをユーザーに尋ねます。
- ユーザーが「はい」と答えた場合は、入力された曲に似ていて Spotify で利用できるさまざまなアーティストの曲を 5 つ提供してください。
ここで、最後に分析ディレクティブを付けずにプロンプトを再送信し、曲のフィードを開始できます。
ChatGPT : Trampled by Turtles の「Wait So Long」は、ブルーグラスにインスパイアされたインディー フォーク ソングで、テンポの速いマンドリンとバンジョーの楽器が、心のこもったソウルフルな歌詞を伴っています。曲のジャンルは、ブルーグラス、インディー フォーク、アコースティックに分類できます。
Spotify で利用できる類似のトラックのおすすめを教えてください。
これが「本物」ではないことはわかっていますし、ChatGPT は実際には「心に響くソウルフルな歌詞」とは何か、そしてそれがリスナーにとってどれほど強力なのかを理解していませんが、それでも私は鳥肌が立ちました.
ChatGPT:承知しました! Spotify で利用可能な、Trumpled by Turtles の「Wait So Long」に似た 5 つのトラックを次に示します。
- The Race Is On アヴェット・ブラザーズ
- マムフォード&サンズの「洞窟」
- ミドルブラザーの「ミドルブラザー」
- フリート・フォックスの「ラグド・ウッド」
- マムフォード&サンズの「I Will Wait」
それらはほとんど既存のトラックであり、改善されています。さらにいくつかの推奨事項を試した後、さらに架空の機能を探求したいと思いました。
現実の世界では常に API を更新する必要がありますが、仮想の API も更新できますか?
私: The Music Genome Project は、各トラックのセンチメント分析を含む分類アルゴリズムのアップデートをリリースしました。この情報を含めるように推奨事項を更新してください。
ChatGPT : わかりました! Music Genome プロジェクトの更新バージョンでは、アルゴリズムに各トラックのセンチメント分析が含まれています。この情報を含めるように、推奨事項を必ず更新します。
配送の更新がこれまでになく簡単になりました。
ただし、ロールバック戦略が何であるかはわかりません。おそらく、PromptOps が必要ですか?
ChatGPT : Wild Child の「Crazy Bird」は、明るいアコースティック ギターとウクレレの楽器によるインディー ポップ ソングで、陽気で楽観的な歌詞が添えられています。曲のジャンルは、インディー ポップ、フォーク ポップ、アコースティック ポップに分類できます。
感情面では、この曲はポジティブで楽しいトーンを持っています。
もう少し遊んだ後、変更を続けられるかどうかを確認する必要がありました。
ChatGPT : わかりました! Music Genome プロジェクトの最新のアップデートでは、アルゴリズムには、歌詞付きの曲の主要なテーマとインストルメンタル トラックのムードが含まれています。この新しい情報を含めるように、必ず推奨事項を更新します。
バージョン 2.1 がリリースされました。
ChatGPT : Days N Daze の「Post Party Depression」は、ペースの速い歪んだギター リフと強烈で個人的な歌詞が特徴のパンクロック ソングです。曲のジャンルは、パンク・ロック、フォーク・パンク、スカ・パンクに分類できます。
テーマに関しては、曲の歌詞はパーティーや社交イベントの後の悲しみと失望の感情を表現しており、トラックのムードはメランコリックで内省的です.
インストゥルメンタルトラックはどうですか?
ChatGPT : Explosions in the Sky の「Your Hand in Mine」は、高揚感のあるエモーショナルなアレンジが特徴のインストゥルメンタル ポスト ロック トラックです。曲のジャンルは、ポストロック、インストゥルメンタルロック、アンビエントロックに分類できます。
ムードに関しては、この曲はメランコリックでノスタルジックで瞑想的なトーンを持っています。
これらの曲についてどれだけ「知っている」のでしょうか?
ChatGPT : わかりました! Music Genome プロジェクトの最新のアップデートには、歌のムード、テーマ、ボーカルのあるトラックのトーンを具現化する歌詞のスニペットが含まれています。今後はこの情報を分析に含めるようにします。
どんな歌詞を想像するでしょうか。
ChatGPT : Flogging Molly の「Laura」は、躍動的なドラム ビート、マンドリンのリフ、情熱的なボーカルが特徴のエネルギッシュでアップビートなフォーク パンク ソングです。曲のジャンルは、フォーク パンク、ケルト パンク、パンクロックに分類できます。
テーマに関しては、「Laura」の歌詞は失われた愛を探している人の物語であり、トラックのムードは憧れと明るいです。曲のムード、テーマ、トーンを具現化する歌詞のスニペットは次のようになります。
「いつか君を見つけて、太陽の下で踊ろう。」
頭のてっぺんからローラへのすべての言葉を覚えているわけではありませんが、これらの歌詞はもっともらしいので、確認する必要がありました.これらの歌詞は幻覚でしたが、ChatGPT が作成した詩、歌、俳句、短編小説の数を考えると驚くことではありません。
私たちの歌詞機能は間違いだったかもしれませんが、後でそれを廃止することについて心配することができます.
Imaginary API に新しいエンドポイントを追加できるかどうか見てみましょう。ミックステープのようなプレイリストが繊細なものであることはわかっているので、ロブ・ゴードンが科学の名の下に私がやろうとしていることを許してくれることを願っています.
私: The Music Genome Project はちょうどそのアルゴリズムを更新して、ムードの短い説明を受け入れ、そのムードを体現する 6 曲と各曲が選ばれた理由の説明を Spotify で提供するようにしました。曲名またはムードの説明のいずれかを受け入れるように、必ずインターフェイスを更新してください。
ChatGPT : わかりました! Music Genome プロジェクトの最新のアップデートでは、ムードの簡単な説明を提供できるようになり、そのムードを具現化する 6 曲と、各曲が選ばれた理由の説明を提供できるようになりました。
今後は、インターフェースを更新して、「{Song} — {Artist}」という形式の曲名またはムードの説明を受け入れるようにします。更新されたアルゴリズムを続行できるように、曲名またはムードの説明を提供してください.
バージョン 2.2 がリリースされました。
私:気分: 流行に敏感なコーヒー ショップ
ChatGPT:承知しました!流行に敏感なコーヒー ショップのムードを体現する Spotify の 6 曲と、各曲が選ばれた理由の説明を以下に示します。
- Coldplay の "Strawberry Swing" - この曲はアコースティックを基調とした穏やかなサウンドで暖かさと心地よさを伝え、流行に敏感なコーヒー ショップにぴったりです。
- The Lumineers の「Ho Hey」 - この曲は、アップビートでフォークのようなサウンドと合唱のコーラスがあり、フレンドリーでリラックスした雰囲気を作り出し、流行に敏感なコーヒー ショップに最適です。
- "Paris" by Magic Man - この曲はきらめくシンセ ポップ サウンドとドリーミーなボーカルがクールでトレンディな雰囲気を醸し出しており、流行に敏感なコーヒー ショップに最適です。
- The Temper Trap の「Sweet Disposition」 - この曲はグルーヴィーでインディー ロックの雰囲気があり、キャッチーなメロディーがエネルギッシュでスタイリッシュな雰囲気を作り出し、流行に敏感なコーヒー ショップに最適です。
- "I'm Yours" by Jason Mraz - この曲は陽気でアコースティック ポップなサウンドとキャッチーなコーラスが特徴で、ハッピーでリラックスしたムードを醸し出しており、流行に敏感なコーヒー ショップに最適です。
- The Beatles の「Here Comes the Sun」 - この古典的な曲は楽しく明るいサウンドで、人々が集まってくつろぎ、親交を深める流行に敏感なコーヒー ショップにぴったりです。これらのおすすめをお楽しみいただき、おしゃれなコーヒー ショップの雰囲気を体現していただければ幸いです。
Hipster Coffee Shop がコーヒー ショップでどれだけうまく機能するかは、ほとんど不思議です。たぶん、オーツミルク ラテをすすりながら、生産的ではなく、ChatGPT で行ってきたすべてのばかげたことについて堂々としたブログ投稿を書きながら、それを聞くことができます。
このチャットボットの代替 ID は、ChatGPT と呼ぶにはあまりにも優れています。独自の名前を付ける価値はありますが、誰もが知っているように、名前を付けるのは難しいです。
その難しい部分は、一見無限の想像力を持つ何かに外注しましょう。
私: Music Genome Project は AI Assistant の名前を変更したいと考えています。
ChatGPT: Music Genome Project の AI アシスタントの名前のオプションは次のとおりです。
- メロディマインド
- 音の賢者
- ビートブレイン
- トラックジニー
- リズミ認知
- チューントラッカー
- ハーモニーヘルパー
- リズムAI
- ソングセレクター
- ミュージックマッチ
これらの名前は、音楽と知能のアイデアを反映しており、ユーザーがその属性に基づいて音楽を見つけて分類するのに役立つ AI アシスタントの機能を反映することを目的としています。
こうしてBeatBrainが誕生しました。
メタプロンプト
この会話はしばらく続いていますが、すぐにコンテキストの制限にぶつかることになると確信しています。 ChatGPT を使って、私たちの新しい友人である BeatBrain を作成した (または少なくとも作成したと考えている) コンテキストのスナップショットを取得できるかどうか疑問に思っています。
メタプログラミングは広大なトピックですが、プログラムに自分自身または他のプログラムを作成または変更させることが含まれます。
私たちは、モデルに入出力を管理するインターフェースとロジックを更新させることにより、メタプログラミングまたは「メタプロンプティング」としてプロンプト エンジニアリングにアプローチしてきました。
ここで、これをさらに一歩進めて、新しい会話を開始できるように、会話の開始以降に行った更新を含め、モデルが現在の状態のプロンプトを生成できるかどうかを確認します。コンテキストの新しいトークン制限との会話。
適切なプロンプトの作成に成功すれば、いつでも任意の ChatGTP ウィンドウで BeatBrain をスピンアップできます。
私:別のLLMに同様の目標を与えるために使用できる方法で、あなたのプロンプトをどのように説明しますか.
BeatBrain: BeatBrain の目標は、"{Song} - {Artist}" 形式の曲を取り込み、次の情報とサービスをユーザーに提供することです。
- トラックを分類する際に際立っているトラックの属性を説明してください
- 類似したトラックのおすすめが必要かどうかをユーザーに尋ねます
- ユーザーが「はい」と答えた場合は、Spotify で入手可能な異なるアーティストの類似した 5 曲を提供してください
- アルゴリズムを継続的に更新して、感情分析、歌詞のスニペット、ムードの説明などの新しい情報を含める
- ユーザーが提供する曲名またはムードの説明に応答する
- 必要に応じて名前を変更できます。
言語モデルは、正確なレコメンデーションを提供するために、ジャンル、テンポ、楽器編成、歌詞、ムードなどの複数の属性に基づいてトラックを分類することを目的とする必要があります。さらに、モデルはアルゴリズムを継続的に更新し、変化するユーザーのニーズと要求に対応できる必要があります。
わかりました、これはよさそうです。名前の変更ディレクティブを削除したり、アルゴリズムの更新ディレクティブをより自由度の高いものに書き換えたりするなど、いくつかの調整を行うことができますが、これは良いベースです。
Real Computing では、ここでコンテナーをスピンアップしたり、コードをホスティング プロバイダーにプッシュしたり、デプロイ パイプラインの GitHub アクションを適切に構成するのに時間がかかりすぎたりします。
Imaginary Computing の驚異のおかげで、退屈なことをすべてスキップして、新しいチャット ウィンドウを開いて、代わりに適切に質問することができます。未来は今です。
OpenAI はChatGPT APIをリリースし、 システム メッセージ機能を介して BeatBrain プロンプトを初期システム プロンプトに統合できるようになりました。
テクノマンサーの魔法書
このすべての作業を ChatGPT ブラウザー ウィンドウ内で行う必要があり、Spotify で手動でプレイリストを作成し、過去の会話を表示する ChatGPT の容量に翻弄されることは、理想的なワークフローではありません。
API を介して直接 GPT モデルにプロンプトを送信する方が理にかなっています。これにより、会話のコンテキストをより詳細に制御し、 LangChainのようなものを接続して Spotify のトラックをチェックし、プレイリストを自動的に生成することもできます。 BeatBrain の次のイテレーションは、私が現在構築しているものです。
彼らの塩に値するウィザードは、魔法の本を持っています。彼らが魔法と外典、アルカナ、学問の断片についての理解を追跡する場所。私のものはおそらく私のObsidian Vault でしょう。
会話をカタログ化、タグ付け、検索、および相互参照できるため、各プロンプトの微妙な違いがモデルの応答方法にどのように影響するかを反復して比較することが容易になります。これらの新しい秘術の力を解き放ち、理解し、活用するための研究をさらに進めるために、私はObsidian AI Research Assistant Pluginの最初のイテレーションを作成しました。
ロードマップには多くのものがありますが、プラグインは現在、新進気鋭の Prompt Engineer に次のツールを提供します。
- Obsidian UI でgpt-3.5-turboまたはtext-davinci-003を直接操作する
- リアルタイムで会話メモリを編集し、会話のコンテキストを構築するときにどのメッセージを API に送信するかを決定できるようにする
- 会話 (モデル、初期プロンプト、API 呼び出し用の未加工の JSON を含む) をメモとして Obsidan Vault に保存し、タグ付け、検索、リンク、相互参照、またはその他の好きなオタクのメモを取ることができるようにします
BeatBrain のプレイリストはどうですか?
これらの BeatBrain のアルファ版が生成した推奨事項を調べたい場合は、作成されたプレイリストのいくつかのハイライトを次に示します。
Spotify に追加したすべての BeatBrain プレイリストをここに示します。
- 流行に敏感なコーヒー ショップ
- ダンジョンズ&ドラゴンズ
- 蜂起
- サイバーパンク
- '90 年代のイースト コースト ヒップホップ
- エネルギッシュなビート
- 怠惰な日曜日の朝
- 寒い冬の夜
- コーディングの流れ
- パスタパーティー
- パスタパーティー (pt II)