「SINQ」の版間の差分
Administrator (トーク | 投稿記録) ページの作成:「'''SINQ''' (SInkhorn Normalized Quantization) とは、Huaweiが2025年に発表した新しいオープンソースな量子化アルゴリズムです。大規模言語モデル(LLM)の重みを低精度に変換しつつ、性能をほとんど落とさずにメモリ使用量を大幅に削減できるのが特徴です。 == 特徴 == * デュアルスケーリング:行方向と列方向に別々のスケールを導入し、外れ…」 |
Administrator (トーク | 投稿記録) |
||
| (同じ利用者による、間の4版が非表示) | |||
| 1行目: | 1行目: | ||
'''SINQ''' (SInkhorn Normalized Quantization) とは、[[Huawei]]が2025年に発表した新しい[[オープンソース]]な[[量子化アルゴリズム]]です。[[大規模言語モデル]](LLM)の重みを低精度に変換しつつ、性能をほとんど落とさずに[[メモリ]]使用量を大幅に削減できるのが特徴です。 | '''SINQ''' (SInkhorn Normalized Quantization) とは、[[Huawei]]が2025年に発表した新しい[[オープンソース]]な[[行列]]の[[量子化アルゴリズム]]です。[[大規模言語モデル]](LLM)の重みを低精度に変換しつつ、性能をほとんど落とさずに[[メモリ]]使用量を大幅に削減できるのが特徴です。 | ||
== 特徴 == | == 特徴 == | ||
| 119行目: | 119行目: | ||
} | } | ||
return new QuantizedBlock { Values = qVals, Stats = stats }; | return new QuantizedBlock { Values = qVals, Stats = stats }; | ||
} | |||
// 行方向の分散 | |||
private float RowVariance(float[,] W, int row, float[] colScale) | |||
{ | |||
int C = W.GetLength(1); | |||
float mean = 0f; | |||
for (int j = 0; j < C; j++) | |||
mean += W[row, j] * colScale[j]; | |||
mean /= C; | |||
float var = 0f; | |||
for (int j = 0; j < C; j++) | |||
{ | |||
float val = W[row, j] * colScale[j] - mean; | |||
var += val * val; | |||
} | |||
return var / C; | |||
} | |||
// 列方向の分散 | |||
private float ColVariance(float[,] W, int col, float[] rowScale) | |||
{ | |||
int R = W.GetLength(0); | |||
float mean = 0f; | |||
for (int i = 0; i < R; i++) | |||
mean += rowScale[i] * W[i, col]; | |||
mean /= R; | |||
float var = 0f; | |||
for (int i = 0; i < R; i++) | |||
{ | |||
float val = rowScale[i] * W[i, col] - mean; | |||
var += val * val; | |||
} | |||
return var / R; | |||
} | } | ||
} | } | ||
| 140行目: | 176行目: | ||
== 外部リンク == | == 外部リンク == | ||
* https://www.arxiv.org/abs/2509.22944 | * https://www.arxiv.org/abs/2509.22944 | ||
[[category: Huawei]] | |||
[[category: 大規模言語モデル]] | [[category: 大規模言語モデル]] | ||
[[category: 量子化アルゴリズム]] | [[category: 量子化アルゴリズム]] | ||