ggml : add support for ChatGLM RoPE

This commit is contained in:
Georgi Gerganov 2023-06-27 00:06:51 +03:00
parent d38e451578
commit d9779021bd
No known key found for this signature in database
GPG key ID: 449E073F9DC10735
2 changed files with 76 additions and 13 deletions

7
ggml.h
View file

@ -1036,13 +1036,15 @@ extern "C" {
// rotary position embedding
// if mode & 1 == 1, skip n_past elements
// if mode & 2 == 1, GPT-NeoX style
// if mode & 4 == 1, ChatGLM style
// TODO: avoid creating a new tensor every time
GGML_API struct ggml_tensor * ggml_rope(
struct ggml_context * ctx,
struct ggml_tensor * a,
int n_past,
int n_dims,
int mode);
int mode,
int n_ctx);
// in-place, returns view(a)
GGML_API struct ggml_tensor * ggml_rope_inplace(
@ -1050,7 +1052,8 @@ extern "C" {
struct ggml_tensor * a,
int n_past,
int n_dims,
int mode);
int mode,
int n_ctx);
// rotary position embedding backward, i.e compute dx from dy
// a - dy