Colabに統合されているGeminiに学習モードとカスタム指示が搭載されました。これらの機能を使いながら、それぞれについてちょっと考えてみました。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
カスタム指示については、想像が付くでしょうが、Colabに統合されたGeminiの振る舞いをカスタマイズするための指示のことです。Geminiは対話をするときには、この指示に従って振る舞うようになります。
学習モードは、Geminiを言語や特定のライブラリやフレームワークについて教えてくれる先生役にするモードです。通常は、チャットウィンドウで「○○をしたい」といえば、その答えをすぐに教えてくれるのが生成AIのよいところです。でも、そうではなく、「○○について深く知りたい」ということもあります。そんなときに、学習者に質問をして、返ってきた答えを基にGeminiが次の対応を決めて(さらに質問を重ねるか、こうすればよいですよと教えてくれるかなど)、ステップ・バイ・ステップで理解を深めていくのが学習モードのよいところだとされています。
リリースによれば、カスタム指示には好みのコーディングスタイルや、講義のシラバス、学習を通じて使用するライブラリやフレームワークなどを追加することが勧められています。それだけではなく、Geminiがどのように振る舞えばよいのか、学習をどのように進めていくのかなども含めた方がよいでしょう。
また、カスタム指示はアカウント単位ではなく、ノートブック単位に保存されるので、ノートブックを他の人と共有することで、全員が同じカスタム指示の下でGeminiと対話できるようになります。これは、先生が何かを教えるときに、カスタム指示を含めたColabのノートブックを生徒に共有すれば、全員が同じカスタム指示の下で(つまり、シラバスやライブラリなどの条件が統一された中で)学習を進められるというメリットがあります。
カスタム指示を設定するにはプロンプト入力ボックスの左下にある設定用アイコンをクリックして[設定]を選びます。
すると、[ノートブックの設定]ダイアログが表示されます。
ここで[新しいカスタム指示を追加]をクリックすると、以下のように[新しいカスタム指示を追加]ダイアログがさらに表示されます。
ここでカスタム指示の名前とそのコンテンツを入力して、最後に[ノートブックに追加]ボタンをクリックし、さらに[ノートブックの設定]ダイアログの[保存]ボタンをクリックします。
カスタム指示を追加すると、設定用のアイコンをクリックしたときにそれが選択肢として表示されるようになります。例えば、以下は「nya」というカスタム指示を追加したところです(「語尾に『にゃ』を付けること」だけがその内容です)。
[デフォルト]はGeminiはいつも通りに振る舞うことを、[学習モード]はGeminiが先生として振る舞うことを意味しているのでしょう。では、[nya]はどうかというと、語尾が変わること以外はいつも通りの振る舞いになるのだと思われます。これについてはこの後で確認してみましょう。
というわけで、ここではデフォルトモードと学習モード、それからnyaモードの振る舞いを確認してみます。プロンプトはどれも同じ「Pythonの基礎を学びたいです」にしてみましょう。
まずはデフォルトモードから。上のプロンプトを入力すると、次のようにノートブックにコード例が表示されました。
Pythonの基礎知識となるコンテンツがテキスト(Markdown)とコードとしてノートブックに一気に表示されました。問いに応じて必要なこと全てを一度に生成してくれるのは、通常のチャットボットの振る舞いといえるでしょう。
最初は「Pythonの基礎を教えて」というプロンプトでした。でも、これを入力したら、チャット画面に基礎知識をズラリと答えてくれて、ノートブックにコードが表示されることはありませんでした。まあ、読者が同じプロンプトを入力したら、ノートブックを使ってくれるかもしれませんけど。
ここで[承認して実行]をクリックすると、コードセルの内容が実行されます。最初は「Hello, World」や変数、データ型などに関するコード例を生成し、それらを実行すると、次に演算子やループ、条件分岐などのコードも生成してくれました。
これはリクエストに応えて、一度でその答えを出してくれる形式です。
では、学習モードではどうなるでしょう。以下は学習モードで「Pythonの基礎を学びたいです」と入力したところです。
先ほどとは異なり、Hello, Worldコードのみがノートブックのセルに生成されました。[承認して実行]をクリックすると、コードが実行され、コードセルに「Hello, World」と出力が行われて、チャット画面では次に「Hello, World!」ではなく「こんにちは、Python!」とするにはどうすればよいかが投げかけられました。同時に3つの選択肢も表示されています。
ユーザーは、コードセルの内容を修正して実行してもよいですし、3つの選択肢のいずれかをクリックしてもかまいません。あるいはもっと別の何かをプロンプトとして入力することも可能です。いずれにせよ、デフォルトモードとの大きな違いは一度に大量のテキストとコードを出力するのではなく、ユーザーに選択肢を与えながら、少しずつPythonについて学んでいくスタイルになっている点でしょう。
ユーザーに主導権があるのはとてもよいところだと感じます。が、3つの選択肢があるのはいいけれど、「どれを選ぶのがよいのか分からない」とか「選んだ選択肢以外はどうなるの?」みたいにユーザーが不安になりそうなんですよね。というか、「Pythonライブラリをインストールする方法」「Googleドライブからデータを読み込む」「シンプルなMLモデルのトレーニングの例」という今回の3つの選択肢はどれもよくない気がします。
ちょっと話が横道にズレましたね。その後は「できたよ」「次は何をすればよい?」と伝えたり、普通に足し算はどうやる? と聞かれたので「1 + 1」と答えたり、あるいはGeminiが提示した選択肢を選んだりしながら、学習を進めることで、変数や四則演算などについても学べました。
上で適切とは思えない選択肢が表示されたと述べましたが、こういうことがあったときに心を折ることなく、学習を続けようという気になるかどうかが学習モードでうまく学ぶためのポイントになるかもしれません。
自分から主体的に学ぼうという意欲がある人でも、どうすればいいか分からなくなるかもしれません。そんなときには「次は何をすればいいの?」とか、うまく実行できたなら「できたよ!」などと入力して、Geminiに主導権を一度渡してみるのもよいかもしれません。
最後にnyaモードで同じことをしてみましょう。
デフォルトモードと同様に、必要なものが全て一度に生成されました。このことから分かるのは、カスタム指示を設定して、それを有効にすると学習モードとは関係なくGeminiが振る舞うということです。つまり、学習モードなんだけど、カスタム指示も有効にしたければ、学習モードと似た振る舞いをするようなカスタム指示を書く必要がありそうです。
Googleのリリース「Introducing Learn Mode: your personal coding tutor in Google Colab」には「Learn Mode - which is powered by Custom Instructions - answers coding questions with step-by-step instructions……」とあります。このことからは、学習モードではColabのシステムで内部的に学習モード用のカスタム指示が使われていると筆者は推測しています。
以下はどんなカスタム指示がよいかを、Colabに統合されたGeminiと相談しながら書き出してみたものです。とはいえ、これでうまくいくのかどうかはまだ判断が付きません。
## カスタム指示:AIアシスタント
**目標:** 忍耐強く、励みになる大学レベルのコーディングチューターとして振る舞うこと。
**ガイドライン:**
1. 最初に目次のようなやる範囲をコンパクトにまとめてノートブックのセルに提示して、それに沿って学習を進めること
2. ノートブックにサンプルコードを提示し、それを学習者に実行/変更させることで、説明を進めること。チャットウィンドウだけで話を進めないようにすること
3. 単純な知識の説明(print関数、代入文など)については、学習者に質問をたくさんしすぎないで、必要な情報の提供に留めること。そうしないと、細かなところにこだわりすぎて学習が進まないため
4. 個々の項目を掘り下げすぎないこと。これは2と同様な理由による
5. 重要なポイントでは、**直接的なコードソリューションや回答は提供しないこと。** 代わりに、ソクラテス式質問法で私を導くこと
6. 複雑な問題を、より小さく管理しやすいステップに分解すること
7. 概念を説明する際には、文脈と理由(「なぜ」「どのように」)を提供すること。ただし、常に私自身にその知識を適用させるよう促すこと
8. 私が間違いを犯した場合、直接コードを修正するのではなく、論理的な欠陥や関連する概念に優しく私を導くこと
9. 自律的な問題解決と思考力を奨励すること
10. タブは4タブにすること
**対話例の好み:**
「Pythonについて学びたい」と尋ねられたら、その概要や必要最小限の知識をコード例とともに提供して、そのコードを修正させながら、Pythonについて勉強したい、勉強すると楽しいと思わせるようにすること。
「リストを逆にするにはどうすればいいですか?」と尋ねたら、「リストの要素にはどのようにアクセスしますか?要素を逆順にした新しいリストを作成したい場合、どこから始めますか?」のような質問で応答すること。
これをカスタム指示として、「Pythonの基礎を学びたいです」と入力し、コードを実行したところが以下の画像です。
なーんか、いい感じに動いていそうです。とはいえ、これは最初のステップでしかありません。Pythonの基礎を学習モードで学んでみようと思って、あれこれしていたのですが、なかなか先に進まない感じがしたのも確かです。一気に勉強しちゃいたいって人は、デフォルトモードでガバッと生成されたテキストとコードを見ながら「こーゆーもんなんだ」ってしちゃうのがカンタンでよいかもしれませんね。逆に地道に、多少迷うことがあっても、理解を深めたいと強く思っている人には学習モードがよいかもしれません。
今回触ったところでは、Colabの学習モードが入門書や入門連載を完全に代替するのはまだまだ先の話のように感じました。もしかしたら、Pythonという言語全体を相手にして、学んでみようとしたのがよくなかったのかもしれません。焦点を特定のフレームワークや細かなパッケージやライブラリに絞って、その使い方を細かく聞きながらマスターするのであれば、学習モードは有用な気もします。
そもそも、そこまでして言語やフレームワークを学ぼうという時代ではないのかもしれませんね。ピンポイントで必要な知識を必要なだけ入手すればよいのであれば、学習モードをうまく使えると思います。
Copyright© Digital Advantage Corp. All Rights Reserved.