abetlen / abetlen/llama-cpp-python

Segmentation fault (core dumped) appearing randomly

未關閉
#2,005 4 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
Python
星號
10.6k
分支
1.4k
PR 合併指標
PR 指標待擷取

描述

**Description**:
I'm experiencing random assertion failures and segmentation faults when streaming responses from a fine-tuned Llama3.1 70B GGUF model. The error occurs in the GGML matrix multiplication validation.
Sometimes, it gives this GGML error, but most of the times, it just gives `Segmentation fault (core dumped)` and my pipeline crashes.

**Environment**:
- `llama_cpp_python` version: 0.3.4
- GPU: NVIDIA A40
- Model: Custom fine-tuned Llama3.1 70B GGUF (originally fine-tuned with Unsloth at 4k context, running at 16k `n_ctx`)
- OS: Ubuntu
- Python version: 3.11

**Error Log**:
```
llama-cpp-python/llama-cpp-python/vendor/llama.cpp/ggml/src/ggml.c:3513: GGML_ASSERT(a->ne[2] == b->ne[0]) failed
Segmentation fault (core dumped)
```

**Reproduction Steps**:
1. Load fine-tuned 70B GGUF model with:
```python
llm = Llama(
model_path="llama3.1_70B_finetuned.Q4_K_M.gguf",
n_ctx=16384,
n_gpu_layers=-1,
logits_all = True
)
```
2. Start streaming chat completion:
```python
for chunk in llm.create_chat_completion(
messages=[...],
stream=True,
max_tokens=1000
):
print(chunk)
```
3. Error occurs randomly during streaming (usually after several successful chunks)

**Additional Context**:
- The model was fine-tuned using Unsloth with 4k context length
- Converted to GGUF using `llama.cpp`'s convert script
- Works fine for non-streaming inference
- Error appears more frequently with longer context (>8k tokens)
- Memory usage appears normal before crash (~80GB GPU mem for 70B Q4_K_M)

**Debugging Attempts**:
1. Tried different `n_ctx` values (4096, 8192, 16384)
2. Verified model integrity with `llama.cpp`'s main example
3. Added thread locking around model access (no effect)

**System Info**:
```bash
Cuda 12.2
python 3.11
```

**Request**:
Could you help investigate:
1. Potential causes for the GGML tensor dimension mismatch
2. Whether this relates to the context length difference between fine-tuning (4k) and inference (16k)
3. Any known issues with streaming large (70B) models

貢獻指南

開啟貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。