🚀 Replit Code V-1.5 3B
Replit Code v1.5は、コード補完に特化した33億パラメータの因果言語モデルです。このモデルは、多くのプログラミング言語に対応し、コード生成タスクにおいて高い性能を発揮します。
🚀 クイックスタート
このセクションでは、Replit Code V-1.5 3Bモデルの基本的な使い方を説明します。
✨ 主な機能
- コード補完に特化:30種類のプログラミング言語に対応したコード補完機能を提供します。
- 大規模データセットでの学習:BigcodeのStack DedupデータセットやRedPajamaのStackExchangeデータセットなど、約1Tトークンのコードデータで学習されています。
- 大きなコンテキストサイズ:4096トークンのコンテキストサイズをサポートし、長いコード文脈でも適切な補完を行います。
📦 インストール
以下の依存関係の最新バージョンをインストールする必要があります。
einops
torch
transformers
💻 使用例
基本的な使用法
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained('replit/replit-code-v1_5-3b', trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained('replit/replit-code-v1_5-3b', trust_remote_code=True)
x = tokenizer.encode('def fibonacci(n): ', return_tensors='pt')
y = model.generate(x, max_length=100, do_sample=True, top_p=0.95, top_k=4, temperature=0.2, num_return_sequences=1, eos_token_id=tokenizer.eos_token_id)
generated_code = tokenizer.decode(y[0], skip_special_tokens=True, clean_up_tokenization_spaces=False)
print(generated_code)
高度な使用法
Triton実装のFlash Attentionを使用する場合:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, AutoConfig
config = AutoConfig.from_pretrained(
"replit/replit-code-v1_5-3b",
trust_remote_code=True
)
config.attn_config['attn_impl'] = 'triton'
tokenizer = AutoTokenizer.from_pretrained('replit/replit-code-v1_5-3b', trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained('replit/replit-code-v1_5-3b', config=config, trust_remote_code=True)
model.to(device='cuda:0', dtype=torch.bfloat16)
x = tokenizer.encode('def fibonacci(n): ', return_tensors='pt').to(device='cuda:0')
x = x.to(device='cuda:0')
y = model.generate(x, max_length=100, do_sample=True, top_p=0.95, top_k=4, temperature=0.2, num_return_sequences=1, eos_token_id=tokenizer.eos_token_id)
generated_code = tokenizer.decode(y[0], skip_special_tokens=True, clean_up_tokenization_spaces=False)
print(generated_code)
異なるデコード方法やパラメータを試して、あなたのユースケースに最適な結果を得ることをおすすめします。特にtemperature
とreptition_penalty
を調整すると、性能が向上する可能性があります。
📚 ドキュメント
モデルの説明
Replit Code v1.5は、bfloat16
で学習された3.3Bパラメータの因果言語モデルです。以下のデータセットを使用して学習されています。
学習に使用された30種類のプログラミング言語は以下の通りです。
Java, JavaScript, C, PHP, Python, C++, C#, TypeScript, Go, CSS, HTML, Rust, Ruby, Swift, Scala, Shell, Lua, Perl, Haskell, JSX, Julia, Common Lisp, OCaml, Solidity, Scheme, R, Zig, SQL, Racket, D
モデルのコンテキストサイズは4096トークンで、GPTNeoXトークナイザーを使用し、32768トークンのカスタム学習済みの最適化された語彙を持っています。
意図された使用法
Replitは、このモデルを商用利用に制限のないアプリケーション固有の微調整のための基礎モデルとして誰もが使用できるようにすることを意図しています。このモデルは、コード補完タスクに特化して学習されています。
制限事項
事前学習データセットには、データクレンジングや毒性・不適切な言葉のフィルタリングを適用した後でも、不快な内容や不適切な内容が含まれている可能性があり、そのような内容がモデルが生成するテキストに反映されることがあります。本番システムで使用する場合は、適切な注意を払うことをおすすめします。個人やグループに危害や苦痛を与える可能性のあるアプリケーションでは使用しないでください。
🔧 技術詳細
モデルは、MosaicMLプラットフォーム上で128台のH100-80GB GPUを使用して学習されています。学習には、PyTorchをベースに構築されたLLM FoundryとComposer学習ライブラリが使用されています。
📄 ライセンス
このモデルは、Apache-2.0ライセンスの下で提供されています。
データセット情報
属性 |
详情 |
モデルタイプ |
因果言語モデル |
学習データ |
BigcodeのStack Dedupデータセット、RedPajamaのStackExchangeデータセット |