Refact 1 6B Fim
R
Refact 1 6B Fim
smallcloudaiによって開発
Refact-1.6Bはコード生成に特化した16億パラメータ規模の大規模言語モデルで、複数のプログラミング言語で優れた性能を発揮します。
ダウンロード数 9,703
リリース時間 : 8/29/2023
モデル概要
このモデルは主にコード生成タスクに使用され、複数のプログラミング言語をサポートし、HumanEvalなどのベンチマークテストで優れた結果を示しています。
モデル特徴
多言語コード生成
Python、JavaScript、Java、C++など複数のプログラミング言語のコード生成をサポート
高性能
HumanEvalベンチマークテストで優れた性能を発揮、Python通過率@1で32%を達成
広範な訓練データ
GitHubコード、技術フォーラム、Wikipediaなど多様なソースの訓練データを使用
モデル能力
コード自動補完
関数生成
多言語コード変換
コード解説
使用事例
開発支援
コード自動補完
IDEでインテリジェントなコード補完提案を提供
開発効率の向上
コード生成
関数シグネチャやコメントから完全なコード実装を生成
HumanEval Python通過率@1で32%達成
教育
プログラミング学習支援
学習者にコード例と解説を提供
🚀 Refact-1.6B
このモデルは、ブログ記事 でトレーニングを開始したもので、遂に完成しました 🎉
生成データでのファインチューニング後、Replit 3b、Stability Code 3b など多くのモデルを上回ります。サイズが 10 倍もある StarCoder にもほぼ勝る性能を発揮します!
モデル | サイズ | HumanEval pass@1 | HumanEval pass@10 |
---|---|---|---|
DeciCoder-1b | 1b | 19.1% | |
Refact-1.6-fim | 1.6b | 32.0% | 53.0% |
StableCode | 3b | 20.2% | 33.8% |
ReplitCode v1 | 3b | 21.9% | |
CodeGen2.5-multi | 7b | 28.4% | 47.5% |
CodeLlama | 7b | 33.5% | 59.6% |
StarCoder | 15b | 33.6% |
このモデルは、スマートで高速なため、IDE でのコード補完に最適なモデルです! Refact プラグイン をダウンロードすることですぐに使用を開始できます。また、オープンソースの Docker コンテナ を使用して、独自にモデルをホストすることもできます。
さらに、このモデルは多言語対応(下記の MultiPL-HumanEval やその他のメトリクスを参照)であり、チャットとしても機能します(以下のセクションを参照)。
✨ 主な機能
チャットとしての機能
このモデルの主な用途は、複数のプログラミング言語でのコード補完(インフィル)ですが、チャットとしても非常に良好に機能します。
命令追従(チャット)形式での HumanEval の結果を、チャット専用のモデルと比較した結果は以下の通りです。
モデル | サイズ | pass@1 | pass@10 |
---|---|---|---|
Refact-1.6-fim | 1.6b | 38.4% | 55.6% |
StableCode-instruct | 3b | 26.9% | 36.2% |
OctoGeeX | 6b | 44.7% | |
CodeLlama-instruct | 7b | 34.8% | 64.3% |
CodeGen2.5-instruct | 7b | 36.2% | 60.87 |
CodeLlama-instruct | 13b | 42.7% | 71.6% |
StarChat-β | 15b | 33.5% | |
OctoCoder | 15b | 46.2% |
💻 使用例
基本的な使用法
ミドル埋め込み(Fill-in-the-middle)では、入力と出力のプレフィックス/ミドル/サフィックス部分を識別するために特殊トークンを使用します。
# pip install -q transformers
from transformers import AutoModelForCausalLM, AutoTokenizer
checkpoint = "smallcloudai/Refact-1_6B-fim"
device = "cuda" # for GPU usage or "cpu" for CPU usage
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
model = AutoModelForCausalLM.from_pretrained(checkpoint, trust_remote_code=True).to(device)
prompt = '<fim_prefix>def print_hello_world():\n """<fim_suffix>\n print("Hello world!")<fim_middle>'
inputs = tokenizer.encode(prompt, return_tensors="pt").to(device)
outputs = model.generate(inputs, max_length=100, temperature=0.2)
print("-"*80)
print(tokenizer.decode(outputs[0]))
高度な使用法
同じモデルをチャットとして使用することもできます(実験的)。
prompt_template = "<empty_output>SYSTEM "
📚 詳細ドキュメント
モデル情報
属性 | 詳情 |
---|---|
パイプラインタグ | テキスト生成 |
推論 | 有効 |
ライセンス | bigscience-openrail-m |
事前学習データセット | books、arxiv、c4、falcon-refinedweb、wiki、github-issues、stack_markdown、許容的な GitHub コードの自作データセット |
データセット | bigcode/the-stack-dedup、rombodawg/2XUNCENSORED_MegaCodeTraining188k、bigcode/commitpackft |
評価指標 | code_eval |
ライブラリ名 | transformers |
タグ | code |
モデル指標
Refact-1.6B の結果
タスク | データセット | 評価指標 | 値 | 検証済み |
---|---|---|---|---|
テキスト生成 | openai_humaneval (HumanEval) | pass@1 (T=0.01) | 32.0 | 否 |
テキスト生成 | openai_humaneval (HumanEval) | pass@1 (T=0.2) | 31.5 | 否 |
テキスト生成 | openai_humaneval (HumanEval) | pass@10 (T=0.8) | 53.0 | 否 |
テキスト生成 | openai_humaneval (HumanEval) | pass@100 (T=0.8) | 76.9 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalSynthesize Python) | pass@1 (T=0.2) | 35.8 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalSynthesize JavaScript) | pass@1 (T=0.2) | 31.6 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalSynthesize Java) | pass@1 (T=0.2) | 29.1 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalSynthesize Go) | pass@1 (T=0.2) | -1 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalSynthesize C++) | pass@1 (T=0.2) | 26.3 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalSynthesize Rust) | pass@1 (T=0.2) | -1 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalSynthesize Average) | pass@1 (T=0.2) | -1 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalFixTests Python) | pass@1 (T=0.2) | 18.38 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalFixTests JavaScript) | pass@1 (T=0.2) | 12.28 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalFixTests Java) | pass@1 (T=0.2) | 15.12 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalFixTests Go) | pass@1 (T=0.2) | -1 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalFixTests C++) | pass@1 (T=0.2) | 13.17 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalFixTests Rust) | pass@1 (T=0.2) | 2.8 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalFixTests Average) | pass@1 (T=0.2) | -1 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalFixDocs Python) | pass@1 (T=0.2) | 26.92 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalFixDocs JavaScript) | pass@1 (T=0.2) | 26.85 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalFixDocs Java) | pass@1 (T=0.2) | 30.76 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalFixDocs Go) | pass@1 (T=0.2) | -1 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalFixDocs C++) | pass@1 (T=0.2) | 25.94 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalFixDocs Rust) | pass@1 (T=0.2) | 8.44 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalFixDocs Average) | pass@1 (T=0.2) | -1 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalExplain Python) | pass@1 (T=0.2) | 26.46 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalExplain JavaScript) | pass@1 (T=0.2) | 17.86 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalExplain Java) | pass@1 (T=0.2) | 20.94 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalExplain Go) | pass@1 (T=0.2) | -1 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalExplain C++) | pass@1 (T=0.2) | 18.78 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalExplain Rust) | pass@1 (T=0.2) | -1 | 否 |
テキスト生成 | bigcode/humanevalpack (HumanEvalExplain Average) | pass@1 (T=0.2) | -1 | 否 |
テキスト生成 | mbpp (MBPP) | pass@1 (T=0.01) | 31.15 | 否 |
テキスト生成 | ds1000 (DS-1000 (Overall Completion)) | pass@1 (T=0.2) | 10.1 | 否 |
テキスト生成 | nuprl/MultiPL-E (MultiPL-HumanEval (C++)) | pass@1 (T=0.2) | 21.61 | 否 |
テキスト生成 | nuprl/MultiPL-E (MultiPL-HumanEval (C#)) | pass@1 (T=0.2) | 13.91 | 否 |
テキスト生成 | nuprl/MultiPL-E (MultiPL-HumanEval (D)) | pass@1 (T=0.2) | 9.5 | 否 |
テキスト生成 | nuprl/MultiPL-E (MultiPL-HumanEval (Go)) | pass@1 (T=0.2) | 53.57 | 否 |
テキスト生成 | nuprl/MultiPL-E (MultiPL-HumanEval (Java)) | pass@1 (T=0.2) | 21.58 | 否 |
テキスト生成 | nuprl/MultiPL-E (MultiPL-HumanEval (Julia)) | pass@1 (T=0.2) | 13.75 | 否 |
テキスト生成 | nuprl/MultiPL-E (MultiPL-HumanEval (JavaScript)) | pass@1 (T=0.2) | 26.88 | 否 |
テキスト生成 | nuprl/MultiPL-E (MultiPL-HumanEval (Lua)) | pass@1 (T=0.2) | 15.26 | 否 |
テキスト生成 | nuprl/MultiPL-E (MultiPL-HumanEval (PHP)) | pass@1 (T=0.2) | 23.04 | 否 |
テキスト生成 | nuprl/MultiPL-E (MultiPL-HumanEval (Perl)) | pass@1 (T=0.2) | 12.1 | 否 |
テキスト生成 | nuprl/MultiPL-E (MultiPL-HumanEval (Python)) | pass@1 (T=0.2) | 29.6 | 否 |
テキスト生成 | nuprl/MultiPL-E (MultiPL-HumanEval (R)) | pass@1 (T=0.2) | 13.77 | 否 |
テキスト生成 | nuprl/MultiPL-E (MultiPL-HumanEval (Ruby)) | pass@1 (T=0.2) | 12.68 | 否 |
テキスト生成 | nuprl/MultiPL-E (MultiPL-HumanEval (Racket)) | pass@1 (T=0.2) | 4.29 | 否 |
テキスト生成 | nuprl/MultiPL-E (MultiPL-HumanEval (Rust)) | pass@1 (T=0.2) | 19.54 | 否 |
テキスト生成 | nuprl/MultiPL-E (MultiPL-HumanEval (Scala)) | pass@1 (T=0.2) | 18.33 | 否 |
テキスト生成 | nuprl/MultiPL-E (MultiPL-HumanEval (Bash)) | pass@1 (T=0.2) | 5.7 | 否 |
テキスト生成 | nuprl/MultiPL-E (MultiPL-HumanEval (Swift)) | pass@1 (T=0.2) | 17.68 | 否 |
テキスト生成 | nuprl/MultiPL-E (MultiPL-HumanEval (TypeScript)) | pass@1 (T=0.2) | 25 | 否 |
📄 ライセンス
このモデルは bigscience-openrail-m ライセンスの下で提供されています。
Phi 2 GGUF
その他
Phi-2はマイクロソフトが開発した小型ながら強力な言語モデルで、27億のパラメータを持ち、効率的な推論と高品質なテキスト生成に特化しています。
大規模言語モデル 複数言語対応
P
TheBloke
41.5M
205
Roberta Large
MIT
マスク言語モデリングの目標で事前学習された大型英語言語モデルで、改良されたBERTの学習方法を採用しています。
大規模言語モデル 英語
R
FacebookAI
19.4M
212
Distilbert Base Uncased
Apache-2.0
DistilBERTはBERT基礎モデルの蒸留バージョンで、同等の性能を維持しながら、より軽量で高効率です。シーケンス分類、タグ分類などの自然言語処理タスクに適しています。
大規模言語モデル 英語
D
distilbert
11.1M
669
Llama 3.1 8B Instruct GGUF
Meta Llama 3.1 8B Instructは多言語大規模言語モデルで、多言語対話ユースケースに最適化されており、一般的な業界ベンチマークで優れた性能を発揮します。
大規模言語モデル 英語
L
modularai
9.7M
4
Xlm Roberta Base
MIT
XLM - RoBERTaは、100言語の2.5TBのフィルタリングされたCommonCrawlデータを使って事前学習された多言語モデルで、マスク言語モデリングの目標で学習されています。
大規模言語モデル 複数言語対応
X
FacebookAI
9.6M
664
Roberta Base
MIT
Transformerアーキテクチャに基づく英語の事前学習モデルで、マスク言語モデリングの目標を通じて大量のテキストでトレーニングされ、テキスト特徴抽出と下流タスクの微調整をサポートします。
大規模言語モデル 英語
R
FacebookAI
9.3M
488
Opt 125m
その他
OPTはMeta AIが公開したオープンプリトレーニングトランスフォーマー言語モデルスイートで、パラメータ数は1.25億から1750億まであり、GPT-3シリーズの性能に対抗することを目指しつつ、大規模言語モデルのオープンな研究を促進するものです。
大規模言語モデル 英語
O
facebook
6.3M
198
1
transformersライブラリに基づく事前学習モデルで、様々なNLPタスクに適用可能
大規模言語モデル
Transformers

1
unslothai
6.2M
1
Llama 3.1 8B Instruct
Llama 3.1はMetaが発表した多言語大規模言語モデルシリーズで、8B、70B、405Bのパラメータ規模を持ち、8種類の言語とコード生成をサポートし、多言語対話シーンを最適化しています。
大規模言語モデル
Transformers 複数言語対応

L
meta-llama
5.7M
3,898
T5 Base
Apache-2.0
T5ベーシック版はGoogleによって開発されたテキスト-to-テキスト変換Transformerモデルで、パラメータ規模は2.2億で、多言語NLPタスクをサポートしています。
大規模言語モデル 複数言語対応
T
google-t5
5.4M
702
おすすめAIモデル
Llama 3 Typhoon V1.5x 8b Instruct
タイ語専用に設計された80億パラメータの命令モデルで、GPT-3.5-turboに匹敵する性能を持ち、アプリケーションシナリオ、検索拡張生成、制限付き生成、推論タスクを最適化
大規模言語モデル
Transformers 複数言語対応

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-TinyはSODAデータセットでトレーニングされた超小型対話モデルで、エッジデバイス推論向けに設計されており、体積はCosmo-3Bモデルの約2%です。
対話システム
Transformers 英語

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
RoBERTaアーキテクチャに基づく中国語抽出型QAモデルで、与えられたテキストから回答を抽出するタスクに適しています。
質問応答システム 中国語
R
uer
2,694
98