「Codey:Googleのコーディングタスクのための生成型AI」
「Codey:GoogleのAI」
イントロダクション
OpenAIが導入されて以来、彼らのトップクラスのGPTフレームワークをベースにした数々の生成AIおよび大規模言語モデルがリリースされてきました。その中には、ChatGPTという彼らの生成型対話AIも含まれています。対話型言語モデルの成功に続いて、開発者たちは常に、開発者がアプリケーションのコーディングを開発または支援することのできる大規模言語モデルを作成しようとしています。OpenAIを含む多くの企業が、それらのプログラミング言語を知っているLLM(Large Language Models)によって開発者がアプリケーションをより速く構築できるようにするために、これらのLLMを研究し始めています。GoogleはPaLM 2のファインチューニングモデルであるCodeyを開発しました。Codeyはさまざまなコーディングタスクを実行できるモデルです。
また、こちらも読んでみてください:GoogleがGPT-4効果に対処するためのPaLM 2
学習目標
- Codeyの構築方法の理解
- Google Cloud PlatformでのCodeyの使用方法の学習
- Codeyが受け入れられるプロンプトのタイプの理解
- Codey内のさまざまなモデルの探索と関与
- Codeyを活用して作業可能なPythonコードを生成する
- Codeyがコードのエラーを特定して解決する方法のテスト
この記事は、データサイエンスブログマラソンの一環として公開されました。
- 「Amazon SageMakerを使用して数千のMLモデルのトレーニングと推論をスケール化する」
- 「誤っていても、超伝導体の主張は進歩につながる可能性がある」
- 「MITのリキッドニューラルネットワークが、ロボットから自動運転車までのAI問題を解決する方法」
Codeyとは何ですか?
Codeyは、最近Googleによって構築およびリリースされた基礎モデルの一つです。CodeyはPaLM 2 Large Language Modelに基づいています。CodeyはPaLM 2 Large Language Modelのファインチューニングモデルです。高品質なコードとコーディングドキュメントの大規模なコーパスがCodeyにファインチューニングされています。Googleは、CodeyがPython、C、Javascript、Javaなどを含む20以上のプログラミング言語でコーディングできると主張しています。Codeyは、Google Colab、Android StudioなどのGoogle製品の強化に使用されました。
Codeyは3つの目的で構築されています。1つ目はコード補完です。Codeyは、あなたの書いたコードを分析し、それに基づいて貴重な提案を行うことができます。したがって、あなたが書いているコードの文脈を理解しています。2つ目はコード生成です。Codeyは、プロンプトが与えられた場合に、任意の言語で完全な作業可能なコードを生成することができます。最後に、コードとチャットすることができます。自分のコードをCodeyに提供し、コードに関連するCodeyとチャットすることができます。Codeyは、Google Cloud PlatformのVertex AIを介して一般の方々にも利用可能となっています。
また、こちらも読んでみてください:Googleの最先端医療AIであるMed-PaLM 2
Codeyの始め方
GoogleのCodeyを使うには、Google Cloud Platformでアカウントを作成する必要があります。Google Cloud Platformは、Googleが開発したモデルやGoogleによってファインチューニングされたオープンソースモデルをすべて保持するサービスであるVertex AIをホストしています。Googleは最近、PaLM 2、Codey、Chirp、Imagenなどを含む最新のGoogle基礎モデルを利用できるようにしました。GCPのユーザーはこちらでそれらを見つけることができます。
Google Cloud Platformでアカウントを作成した後、Vertex AI APIを有効にする必要があります。これには、API&サービス->ライブラリに移動し、Vertex AI APIを検索します。最初の画像でVertex AI APIを見ることができます。次に、それをクリックします。クリックすると、「APIを有効にする」と書かれた青いボックスが表示されます。青いボックスをクリックしてAPIを有効にします。これは、2番目の画像と似たような見た目になります。
この確認により、Chirp、Imagen、CodeyなどのGoogleの基礎モデルを含む、Googleが提供するAIサービスのいずれかを使用することができるようになります。
Codeyでのコード生成
このセクションでは、Codeyモデルを使用したコード生成を見ていきます。これには、すでにGCPでVertex AI APIを有効にしていることが前提条件となります。ここでのコードの解説はGoogle Colabで行われます。コードに入る前に、Codeyモデルで作業するために必要ないくつかのパッケージをインストールする必要があります。これはpipを使って行います。
!pip install shapely
!pip install google-cloud-aiplatform>=1.27.0
Shapleyとgoogle-cloud-aiplatformは、Codeyモデルで作業を開始するために必要な2つのパッケージです。これで、パッケージをインポートし、Googleアカウントを認証し、ColabがGCPの資格情報を使用してVertex AIからCodeyモデルを実行できるようにします。
from google.colab import auth as google_auth
google_auth.authenticate_user()
import vertexai
from vertexai.preview.language_models import CodeGenerationModel
vertexai.init(project="your_project_id", location="us-west1")
parameters = {
"temperature": 0.3,
"max_output_tokens": 1024
}
- まず、Google.colabパッケージからgoogle_authをインポートします。これは、Colabが私たちの認証情報を使用してCodeyモデルを実行するために必要です。
- 次に、Googleが作成したすべての機械学習およびAI関連モデルを含むパッケージであるvertexをインポートします。最後に、vertexaiからCodeGenerationModelもインポートします。
- 次に、プロジェクトでVertex AIを初期化します。ここでは、project変数にプロジェクトIDを指定し、location変数に任意の場所を指定し、これらの2つの変数をvertexaiのinit()メソッドに渡します。
- 事前にparametersを指定します。これには、モデルの創造性を示すtemperatureや、Large Language Modelによって生成される出力の長さを制限するmax_out_tokensなどのパラメータが含まれます。
このインポートされたモデル、つまりCodeGenerationModelを取り、プロンプトを渡してテストします。
プロンプト
code_model = CodeGenerationModel.from_pretrained("[email protected]")
response = code_model.predict(
prefix = """Write a code in Python to count the occurence of the
word "rocket" from a given input sentence using Regular Expressions""",
**parameters
)
print(f"Response from Model: {response.text}")
- ここでは、コード生成モデルを使用しています。Googleから事前学習済みモデルである「[email protected]」モデルを使用しています。このモデルは、プロンプトに基づいてコードを生成する責任を持っています。
- プロンプトを渡すために、それをモデルのpredict()関数に渡します。プロンプトはprefix変数に渡します。ここでは、モデルに対して正規表現を使用して与えられた入力文から単語「rocket」の出現回数をカウントするPythonコードを生成してもらいたいと思います。
- また、事前に定義したパラメータもpredict()関数に渡します。
- このコード生成モデルによって生成された応答はresponse変数に保存され、応答を取得するためにtextメソッドを呼び出します。
コードの出力は以下のようになります
提供したプロンプトの出力としてPythonコードが得られます。モデルは、指定したクエリに一致するPythonスクリプトを作成しました。これをテストする唯一の方法は、応答をコピーしてColabの別のセルに貼り付けて実行することです。ここでは、同じ出力が表示されます。
コードが実行される際に提供した文は「私たちは最初のロケットを打ち上げました。そのロケットは100%リサイクル材料で作られています。私たちは無事にロケットを宇宙に打ち上げました。」です。出力は正常に「rocket」という単語が3回出現していることを示しています。このように、CodeyのCodeGenerataionModelを使用して、単純なプロンプトを提供するだけで素早く動作するコードを作成することができます。
Codeyとのコードチャット
Code Chat機能を使用すると、コードを介してCodeyと対話することができます。Codeyにコードを提供し、コードに関してCodeyモデルとの対話を行うことができます。コードの動作方法を理解するために、または指定されたコードに対して代替手法が必要な場合など、様々な目的で使用することができます。エラーが発生した場合は、コードとエラーの両方を提供し、Codeyがエラーの解決策を提供します。これには、GCPのVertex AIに移動する必要があります。Vertex AIサービスで、Generative AI Studioの下のLanguageセクションに移動します。
Languageセクションへの移動
コード生成を非コーディングアプローチで行います。最初に、Vertex AI APIを使用してPythonでコード生成を行う方法を見てきました。次に、GCP自体でこの種のタスクを直接実行します。コードでCodeyとチャットするためには、青いボックス内の中央にあるCode Chatオプションを選択します。クリックして、以下のインターフェースに移動します。
ここでは、使用するモデルが「[email protected]」モデルであることがわかります。さて、私たちがすることは、以前に生成した正規表現コードにエラーを導入することです。そして、このエラーコードとエラーの原因をCode Chatに提供し、モデルが私たちのコードを修正するかどうかを確認します。Pythonの正規表現コードでは、re.findall()をre.find()に置き換えてコードを実行します。次のエラーが表示されます。
出力を見ると、re.find()メソッドの近くでエラーが発生していることがわかります。次に、この修正したコードとエラーを「Enter a prompt to begin a conversation」に渡します。Enterボタンを押すと、以下の出力が表示されます。
Codeyモデルが私たちのコードを分析し、エラーの場所を提案してくれました。さらに、修正されたコードを提供してくれました。このように、Code Chatはエラーを特定し、修正し、コードを理解し、最適なコードのプラクティスを提供することができます。
結論
この記事では、Googleが最近公開したFoundationモデルであるCodeyについて説明しました。CodeyはPaLM 2(Googleの自家製の生成型大規模言語モデル)の調整バージョンであり、高品質のコードで調整されているため、Python、Java、JavaScriptなどを含む20以上の異なるプログラミング言語でコードを書くことができます。CodeyモデルはVertex AIを介して簡単に利用でき、この記事で説明したように、GCPを介してアクセスするか、APIを介してVertex AI APIを使用してアクセスすることもできます。
詳細はこちら:ジェネレーティブAI:定義、ツール、モデル、利点など
この記事からの主なポイントは次のとおりです:
- CodeyはPaLM 2をベースにした調整モデルであり、堅牢かつ信頼性があります。
- Codeyは20以上の異なるプログラミング言語でコードを生成することができます。
- Codeyを使用すると、簡単なプロンプトからコードを生成したり、コード内のエラーを修正するためにモデルとチャットすることもできます。
- Codeyはコード解析を行い、有益な提案を行うCode Completion機能も提供します。
- CodeyはGCPで提供されるVertex AIのGenerative AI Studioから直接使用することができます。
よくある質問
この記事で表示されているメディアはAnalytics Vidhyaの所有ではなく、著者の裁量で使用されています。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles