ウェブサイト検索

わずか 6 行のコードでパーソナル コーディング アシスタントを構築


導入

最近では、多くの企業が AI コーディング アシスタントを使用して製品リストの定型コードを自動化し、開発者がより複雑な機能に取り組むことができるようにしています。最近、Devin (世界初の完全自律型 AI ソフトウェア エンジニア) が発足しました。プロンプトに基づいたコード行の生成から、デバッグ、アプリケーションのデプロイ、さらには新たな課題を解決するための新しいテクノロジーの学習に至るまで、幅広いコーディング タスクを処理できるように設計されています。クローズドソース製品の世界で有能なアシスタント AI の他の例には、Github の CoPilot Chat などがあります。しかし、オープンソースの代替手段を使用したい場合はどうでしょうか?

この記事には、オープン ソース モデル CodeLlama を使用して、LLM を利用したコード アシスタントを実装するための実践的なチュートリアルが含まれています。このモデルはHuggingFaceで入手可能です。

このコード アシスタントに質問すると、コード スニペットを使用して自然言語で回答します。

コードラマとは何ですか?

Code Llama は、2023 年 8 月に Meta によってリリースされました。このモデルは、Llama 2 の基礎に基づいて構築されており、コードを生成する目的に特別に微調整されています。当初、このモデルは、コード固有のデータセットで Llama 2 をトレーニングすることによって開発されました。研究や商用利用には無料でご利用いただけます。

コードまたは自然言語を含むプロンプトは、コードに関するディスカッションを使用してコードを生成することにより、モデル応答で提供できます。 Code Llama は開発者にとって非常に役立つツールであり、コーディングの生産性を向上させます。 Python、C++、Java、PHP、Typescript (Javascript)、C#、Bash など、現在使用されている一般的な言語のほとんどをサポートしています。

最近、Perplexity AI は Code Llama の 34B パラメーター バージョンを統合し、ユーザーがテキストベースのプロンプトを通じてコードを生成するためのプラットフォームを作成しました。

Code Llama 7B のその他の代替案

この記事では、Code LLaMa 7 B を使用してコード アシスタントを構築するためのデモを実装しました。ただし、このモデルには他にもいくつかの代替案があり、それらを次に示します。

  • Code Llama(およびそれより大きなバージョン 13B、34B、70B): コード補完とコード要約に推奨されます。
  • Code Llama-Python (7B、13B、34B、70B): Python コードの生成と理解に特化しています。これは、Python および PyTorch を使用する開発者にとって特に役立ちます。
  • Code Llama-Instruct (7B、13B、34B、70B): これは、安全で有益な応答に重点を置いているため、Code Llama でのコード生成に推奨される選択肢です。

デモ

依存関係のインストール

pip install transformers
from transformers import pipeline

codegen_pipeline の作成

# Load the codegen model
codegen_pipeline = pipeline("text-generation", model="codellama/CodeLlama-7b-hf")

プロンプトの定義

# Define your prompt
prompt = """Write Python code to implement Random Forest algorithm with Scikit-Learn libraryProvide clear comments for each code section, explaining its purpose and functionality.Explain the code with proper explanation and its purpose
"""

このプロンプトは、Scikit-Learn ライブラリを使用してランダム フォレスト アルゴリズムを実装する Python コードの生成を要求します。コードの各セクションを説明するコメントも付いています。

コードの生成

# Generate code based on the prompt using beam search
generated_code = codegen_pipeline(prompt, max_length=400, temperature=0.7, truncation=True, num_beams=5)

パラメータは次のとおりです。

  • max_length=40: これにより、生成されるテキストの最大長が 400 トークンに制限されます。
  • 温度=0.7: 出力のランダム性を制御します。温度が低いほどランダムな出力が少なくなり、モデルの信頼性が高まりますが、その世代ではより保守的になります。
  • truncation=True: これにより、モデルの出力が max_length を超えた場合、この制限内に収まるように切り詰められます。
  • num_beams=5: 生成プロセスに 5 つのビームによるビーム検索を使用します。ビーム検索は、各ステップで最も可能性が高いと考えられる固定数のシーケンスを追跡するテキストを生成するための戦略であり、より高品質の出力につながります。
# Print the generated code
for completion in generated_code:
   print(completion['generated_text'])

✍️

課題: さまざまなプログラミング言語でコードを生成するさまざまなモデルを実行して、パフォーマンスを比較してみます。試用できるモデルは、Tabby、Codey、Mixtral 8X7 B、CodeGen、Code、T5、および CodeGee X、StarCoder です。

コーディングアシスタントの将来の機能強化

  • バグの検出と防止: 生成中に潜在的なバグや脆弱性を特定するコード分析機能により、コードの品質が大幅に向上する可能性があります。生成中のリアルタイム分析を実装して、構文エラー、論理的矛盾、潜在的なセキュリティ脆弱性を特定できます。
  • セキュリティと安全性: コード アシスタントは、セキュリティ違反や悪用につながる可能性のあるコード パターンを認識するようにトレーニングできます。コード アシスタントは、SQL インジェクション、バッファ オーバーフロー、クロスサイト スクリプティング (XSS) などのセキュリティ脆弱性につながる可能性のあるパターンのコードをスキャンできます。 。これらの潜在的な問題を強調することで、開発者に展開前にコードを確認して修正するよう促します。

コードアシスタントの統計

Gartner は、2028 年までにエンタープライズ ソフトウェア エンジニアの 75% がワークフローに AI コーディング アシスタントを組み込むと予測しています。これは、2023 年初頭に報告された 10% 未満から大幅に増加しています。

AI コーディング アシスタントの導入はすでに順調に進んでおり、ビジネスおよびテクノロジーの専門家の 57% が組織での導入を認めています。

ベイン・アンド・カンパニーによると

ソース

Bain and Company によると、導入者の 75 % が、使用している AI コーディング アシスタントに満足しています。

コーディングアシスタントの製品例

  • Github CoPilot と CoPilot Chat: Github copilot は継続的に改善されており、開発者コミュニティで最も有名なコード アシスタントです。GitHub Copilot の最新バージョンには、AI チャットボット、コード生成、オートコンプリート、nline チャットボックス、CLI オートコンプリート、その他の GitHub を含むさまざまな機能があります。コードの検索と理解に役立つベースの機能。
  • Codeium: Codeium は、インテリジェントなオートコンプリート、AI チャットボット、コンテキスト認識型コード生成などの開発者向け機能を使用して、開発エクスペリエンスを向上させるための無料のソリューションを提供します。これは安全であり、GitHub コパイロットと同様に高速な応答を提供します。
  • Blackbox AI: Blackbox AI は、開発者がより良いコードを作成できるように支援するコーディング アシスタントです。コード補完、ドキュメント化、デバッグに関するリアルタイムの提案を提供します。
  • Studio Bot: Studio Bot は、Bard とよく似た大規模な言語モデル (Codey、PaLM-2 ベース) に基づいています。これにより、コード生成、デバッグ、アルゴリズム改善、コード補完、API 更新などの幅広い機能を提供できるようになります。

最後に

AI を活用したコーディング アシスタントは急速に不可欠なツールになりつつあります。退屈なタスクを自動化し、コードを生成することで、AI 開発者はソフトウェア開発の創造的な側面に専念できるようになります。 この記事では、コード アシスタントのエキサイティングな世界を探求し、Meta の Code Llama のパワーを紹介しました。 Code Llama を使用して、ランダム フォレスト アルゴリズムの Python コードを生成する基本的なデモを構築しました。