「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がコードのエラーを特定して解決する方法のテスト

この記事は、データサイエンスブログマラソンの一環として公開されました。

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セクションに移動します。

コード生成を非コーディングアプローチで行います。最初に、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!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

AI研究

このAIリサーチはGAIAを紹介します:一般AIの能力の次のマイルストーンを定義するベンチマーク

FAIR Meta、HuggingFace、AutoGPT、GenAI Metaの研究者は、論理思考や多様性のハンドリングなどの基本的なスキルを必要とする...

AI研究

このAI論文は、MITが化学研究のために深層学習モデルのスケーリングを探究しています

MITの研究者は、化学のための生成的事前トレーニングモデル(ChemGPT)とグラフニューラルネットワークフォースフィールド(G...

AI研究

Amazon AlexaのAI研究者がQUADRoを発表:QAシステムの向上に向けた画期的なリソースで、440,000以上のアノテーション付きの例があります

人工知能(AI)と機械学習(ML)の能力は、あらゆる可能な産業に進出することを成功裏に可能にしました。最近では、大規模言...

AI研究

東京理科大学の研究者は、材料科学におけるこれまで知られていなかった準結晶相を検出する深層学習モデルを開発しました

物質における新しい結晶構造を発見する探求は、電子から製薬まで幅広い産業において重要な意味を持ち、科学的な探求の中核と...

機械学習

機械学習信頼性の向上:異常性がモデルのパフォーマンスと不確実性の定量化を向上させる方法

オブジェクトがそのカテゴリーの他のアイテムに似ている場合、それは典型的と見なされます。例えば、ペンギンは普通でない鳥...

AI研究

このAI研究は、単一の画像を探索可能な3Dシーンに変換する、パノラマニックNeRF(PERF)を紹介します

NeRFは、2D画像から3Dシーンの再構築と視点合成を行うためのディープラーニング技術です。正確な3D表現を構築するには、通常...