🚀 CodeT5+ 220M Bimodal Models
CodeT5+は、エンコーダ・デコーダアーキテクチャを持つ新しいオープンコードの大規模言語モデルファミリーです。このモデルは、さまざまなモード(エンコーダのみ、デコーダのみ、エンコーダ・デコーダ)で柔軟に動作し、幅広いコード理解と生成タスクをサポートします。このモデルは以下の論文で紹介されています。
CodeT5+: Open Code Large Language Models for Code Understanding and Generation
著者: Yue Wang*, Hung Le*, Akhilesh Deepak Gotmare, Nghi D.Q. Bui, Junnan Li, Steven C.H. Hoi (*は同等の貢献を示します)
元のCodeT5ファミリー(ベース: 220M
、ラージ: 770M
)と比較して、CodeT5+は、span denoising、causal language modeling、contrastive learning、text-code matching などの多様な事前学習タスクで事前学習されており、単一モードのコードデータと二モードのコード・テキストデータの両方から豊富な表現を学習します。さらに、CodeGen のような既存のLLMを凍結してモデルコンポーネントを初期化する、シンプルで効果的な compute-efficient pretraining 方法を採用しており、モデルを効率的に拡張(2B
、6B
、16B
)することができます。また、「浅いエンコーダと深いデコーダ」のアーキテクチャを採用しています。さらに、Code Alpaca に従って自然言語の指示に合わせてインストラクションチューニングが行われています(InstructCodeT5+ 16Bを参照)。
🚀 クイックスタート
このモデルは AutoModel
機能を使用して簡単に読み込むことができ、CodeT5 のトークナイザーを使用し、3つの特殊トークン([ENC]
、[TDEC]
、[CDEC]
)が追加されています。このチェックポイントは、CodeT5+ 220Mモデルと、テキスト・コードマッチング用の投影層とitm_head層で構成されています。
基本的な使用法
from transformers import AutoModel, AutoTokenizer
checkpoint = "Salesforce/codet5p-220m-bimodal"
device = "cuda"
tokenizer = AutoTokenizer.from_pretrained(checkpoint, trust_remote_code=True)
model = AutoModel.from_pretrained(checkpoint, trust_remote_code=True).to(device)
📦 インストール
このチェックポイントは、github-codeデータセット の重複排除バージョンの厳格な許諾サブセットで学習されています。データは、許諾されたライセンス("mit"、"apache-2"、"bsd-3-clause"、"bsd-2-clause"、"cc0-1.0"、"unlicense"、"isc")のコードのみを残すように前処理されています。サポートされる言語は合計9種類で、以下の通りです。
c
、c++
、c-sharp
、go
、java
、javascript
、php
、python
、ruby
🔧 技術詳細
このチェックポイントは、最初の段階の事前学習で単一モードのコードデータで学習され、その後、提案された事前学習タスクの混合を使用して二モードのテキスト・コードペアデータで学習されます。詳細については、論文を参照してください。
📚 ドキュメント
評価結果
詳細については、論文と公式のGitHubリポジトリを参照してください。
BibTeXエントリと引用情報
@article{wang2023codet5plus,
title={CodeT5+: Open Code Large Language Models for Code Understanding and Generation},
author={Wang, Yue and Le, Hung and Gotmare, Akhilesh Deepak and Bui, Nghi D.Q. and Li, Junnan and Hoi, Steven C. H.},
journal={arXiv preprint},
year={2023}
}
倫理的な考慮事項
このリリースは学術論文のサポートのための研究目的のみです。当社のモデル、データセット、コードは、すべての下流の目的に特に設計または評価されていません。ユーザーは、このモデルをデプロイする前に、精度、安全性、公平性に関連する潜在的な懸念事項を評価し、対処することを強くお勧めします。ユーザーは、AIの一般的な制限を考慮し、適用される法律に準拠し、特にエラーや誤用が人々の生活、権利、または安全に重大な影響を与える可能性のある高リスクシナリオのユースケースを選択する際には、ベストプラクティスを活用することをお勧めします。ユースケースに関するさらなるガイダンスについては、当社のAUPとAI AUPを参照してください。
📄 ライセンス
BSD 3条項ライセンス(BSD 3-Clause License)