Shuu12121 commited on
Commit
6ef5ff6
·
verified ·
1 Parent(s): e6d2c25

Create README.md

Browse files
Files changed (1) hide show
  1. README.md +110 -0
README.md ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ datasets:
4
+ - Shuu12121/github-file-programs-dataset-go
5
+ - Shuu12121/github-file-programs-dataset-java
6
+ - Shuu12121/github-file-programs-dataset-javascript
7
+ - Shuu12121/github-file-programs-dataset-ruby
8
+ - Shuu12121/github-file-programs-dataset-rust
9
+ - Shuu12121/github-file-programs-dataset-php
10
+ - Shuu12121/github-file-programs-dataset-python
11
+ - Shuu12121/github-file-programs-dataset-typescript
12
+ language:
13
+ - en
14
+ pipeline_tag: fill-mask
15
+ tags:
16
+ - code
17
+ - python
18
+ - java
19
+ - javascript
20
+ - ruby
21
+ - rust
22
+ - go
23
+ - php
24
+ - typescript
25
+ - modernbert
26
+ library_name: transformers
27
+ ---
28
+
29
+ # Shuu12121/CodeModernBERT-Crow-v3-len1024 🐦‍⬛
30
+
31
+ このモデルは、**ModernBERT アーキテクチャに基づくコード特化型言語モデル**です。
32
+
33
+ 既存の事前学習済みモデル(ModernBERT-base など)の重みは使用せず、
34
+ githubより抽出したファイルレベルのデータで事前学習したモデルです.
35
+
36
+ ---
37
+
38
+ ## モデルの詳細
39
+
40
+ * **アーキテクチャ**: ModernBERT (base-sized)
41
+ * **学習状態**: スクラッチ学習(Trained from scratch)
42
+ * **学習済み言語**: Python, Java, JavaScript, TypeScript, Ruby, Rust, Go, PHP
43
+ * **パラメータ数**: 約 150M
44
+ * **最大入力長**:
45
+
46
+ * 推論時: 最大 8,192 トークン
47
+ * 事前学習時: 最大 1,024 トークン
48
+ * **主な特徴**:
49
+
50
+ * コードデータに特化した BPE トークナイザを新規構築
51
+ * 通常の MLM に加え、コード構造を意識した **行単位マスキング** を導入
52
+
53
+ ---
54
+
55
+ ## 学習手法:2 段階の事前学習
56
+
57
+ ### 段階 1(ph1): ランダムマスキング(MLM)
58
+
59
+ * トークン単位で 30% をランダムにマスク
60
+ * ランダム初期化状態から、コードの基本的な語彙分布や構文的特徴を学習
61
+
62
+ ### 段階 2(ph2): 行ごとのマスキング(Line-based MLM)
63
+
64
+ * 行単位で 30% をランダムに選択
65
+ * 選択された行に含まれる **全トークンをマスク**
66
+ * 空白のみからなるトークンはマスク対象から除外
67
+
68
+ **効果**:
69
+ 関数内における制御構造や変数の依存関係など、
70
+ コードの構造的な意味表現をより強く獲得できることを確認しています。
71
+
72
+
73
+ ---
74
+
75
+ ## 使用方法
76
+
77
+ このモデルは `fill-mask` タスクとして直接利用できるほか、
78
+ ファインチューニングを行うことで意味的コード検索やコード理解タスクの
79
+ ベースモデルとして利用できます。
80
+
81
+ ```python
82
+ from transformers import AutoTokenizer, AutoModelForMaskedLM
83
+ #MLMモデルとして読み込む場合
84
+ tokenizer = AutoTokenizer.from_pretrained("Shuu12121/CodeModernBERT-Crow-v3-len1024")
85
+ model = AutoModelForMaskedLM.from_pretrained("Shuu12121/CodeModernBERT-Crow-v3-len1024")
86
+ ```
87
+ Sentence-Transformersを用いてファインチューニングを行う場合の読み込み方
88
+ ```python
89
+ from sentence_transformers import SentenceTransformer,models
90
+
91
+ word_embedding_model = models.Transformer("Shuu12121/CodeModernBERT-Crow-v3-len1024")
92
+ word_embedding_model.max_seq_length = 1024
93
+ #CLSトークンを用いる場合pooling_mode_cls_tokenのみTrue
94
+ #平均プーリングを用いる場合 pooling_mode_mean_tokensのみTrue
95
+ pooling_model = models.Pooling(
96
+ word_embedding_model.get_word_embedding_dimension(),
97
+ pooling_mode_cls_token=True,
98
+ pooling_mode_mean_tokens=False,
99
+ pooling_mode_max_tokens=False,
100
+ pooling_mode_weightedmean_tokens=False,
101
+ pooling_mode_lasttoken=False,
102
+ )
103
+ model = SentenceTransformer(modules=[word_embedding_model, pooling_model])
104
+ ```
105
+
106
+ そのほかのモデル
107
+ - [Owl-ph1-base (512)](https://huggingface.co/Shuu12121/Owl-ph1-base-len512)
108
+ - [Owl-ph2-base (512)](https://huggingface.co/Shuu12121/Owl-ph2-base-len512)
109
+ - [Owl-ph1-base (2048)](https://huggingface.co/Shuu12121/Owl-ph1-base-len2048)
110
+ - [Owl-ph2-base (2048)](https://huggingface.co/Shuu12121/Owl-ph2-base-len2048)