Skip to content

Commit 2e2248c

Browse files
committed
rope:实现中,_compute_llama3_parameters
1 parent 79c2fde commit 2e2248c

4 files changed

Lines changed: 9 additions & 6 deletions

File tree

doc/excuter/op-mem-cuda/list.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
| cos | miaobyte | T3=cos(T1) | cos(tensor<float64|float32|float16|bfloat16> A)->(tensor<float64|float32|float16|bfloat16> C) |
6666
| notequalscalar | miaobyte | T1!=scalar->mask | notequalscalar(tensor<any> A, var<any> scalar, var<float32> epsilon)->(tensor<bool> mask) |
6767
| minscalar | miaobyte | T3=min(T1, scalar) | minscalar(tensor<any> A, var<any> scalar)->(tensor<any> C) |
68-
| rpowscalar | miaobyte | T3=pow(scalar, T1) | rpowscalar(var<float64|int32> scalar, tensor<float64|float32> A)->(tensor<float64|float32> C) |
68+
| rpowscalar | miaobyte | T3=pow(scalar, T1) | rpowscalar(var<float32|int32> scalar, tensor<float64|float32> A)->(tensor<float64|float32> C) |
6969
| rdivscalar | miaobyte | T3=scalar/T1 | rdivscalar(var<any> scalar, tensor<any> A)->(tensor<any> C) |
7070
| less | miaobyte | mask=compare(T1, T2) | less(tensor<any> A, tensor<any> B)->(tensor<bool> mask) |
7171
| powscalar | miaobyte | T3=pow(T1, scalar) | powscalar(tensor<float64|float32> A, var<float64|int32> scalar)->(tensor<float64|float32> C) |

excuter/op-mem-cuda/src/client/tfs.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ namespace deepx::tf
317317
// rpowscalar
318318
tffactory.add_tf(std::make_shared<RpowScalar<miaobyte>>(vector<Param>(
319319
{
320-
Param("scalar", DataCategory::Var, Precision::Float64 | Precision::Int32),
320+
Param("scalar", DataCategory::Var, Precision::Float32 | Precision::Int32),
321321
Param("A", DataCategory::Tensor, Precision::Float64 | Precision::Float32),
322322
}),
323323
vector<Param>(

excuter/op-mem-ompsimd/src/client/tfs.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ namespace deepx::tf
338338
// rpowscalar author=miaobyte
339339
tffactory.add_tf(std::make_shared<RpowScalar<miaobyte>>(vector<Param>(
340340
{
341-
Param("scalar", DataCategory::Var, Precision::Any),
341+
Param("scalar", DataCategory::Var, Precision::Float32),
342342
Param("A", DataCategory::Tensor, Precision::Any),
343343
}),
344344
vector<Param>(

front/py/deepx/transformer/modeling_rope_utils.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,15 @@ def _compute_llama3_parameters(config:dict={
2626
}) -> Tuple[Tensor, float]:
2727
# Gets the default RoPE parameters
2828
inv_freq, attention_factor = _compute_default_rope_parameters(config)
29-
#TODO
3029

31-
low_freq_wavelen = config.old_context_len / config.low_freq_factor
32-
high_freq_wavelen = config.old_context_len / config.high_freq_factor
30+
low_freq_factor = config["rope_scaling"]["low_freq_factor"] # `1` in the original implementation
31+
high_freq_factor = config["rope_scaling"]["high_freq_factor"] # `4` in the original implementation
32+
old_context_len = config["rope_scaling"]["original_max_position_embeddings"] # `8192` in the original implementation
33+
low_freq_wavelen = old_context_len /low_freq_factor
34+
high_freq_wavelen = old_context_len/ high_freq_factor
3335

3436
wavelen = 2 * math.pi / inv_freq
37+
wavelen.print()
3538
# wavelen < high_freq_wavelen: do nothing
3639
# wavelen > low_freq_wavelen: divide by factor
3740
inv_freq_llama = where(wavelen > low_freq_wavelen, inv_freq / config.factor, inv_freq)

0 commit comments

Comments
 (0)