# ollama
## ollama介绍
Ollama 是一个开源的大型语言模型服务工具，旨在帮助用户快速在本地运行大模型。通过简单的安装指令，用户可以通过一条命令轻松启动和运行开源的大型语言模型。 它提供了一个简洁易用的命令行界面和服务器，专为构建大型语言模型应用而设计。用户可以轻松下载、运行和管理各种开源 LLM。与传统 LLM 需要复杂配置和强大硬件不同，Ollama 能够让用户在消费级的 PC 上体验 LLM 的强大功能。

本发布包支持在进迭时空k1芯片（riscv64）上加速运行。

注意：

1. 进迭时空ollama工具加速效果需使用q4_0_16_8量化模型以达到最优效果。

2. 为确保性能，需要设置线程数为4（需要在modelfile中设置）。

3. ollama默认关闭flash attention，设置环境变量 OLLAMA_FLASH_ATTENTION=1 ./ollama serve开启ollama服务可以启用flash attention。

## 使用指南
### 开启ollma服务
```bash
ollama serve
```
### 导入定制模型
下载模型并创建对应的modelfile文件
```bash
# example
/models/qwen2.5.modelfile
# 修改${model_path}模型本地地址
```
导入模型
```bash
# example
ollama create model-name -f ../models/qwen2.5.modelfile
```
### 模型运行
```bash
ollama run model-name (--verbose)
```

## 性能
对ollama使用的llama.cpp后端进行性能测试，部分模型性能数据如下。

注：因为ollama推理确实warm up过程，真实性能较测试性能略有下降：

| model name     | prefill@64t（t/s） | decode@64t(t/s) |
| :-----:        | :----:             | :----:          |
| qwen2.5-0.5b   | 107.10             | 16.34           |
| qwen2.5-1.5b   | 32.11              | 5.46            |
| tinyllama-1.1b | 40.47              | 7.55            |
| llama3.2-1b    | 41.6               | 7.32            |
| gemma2-2b      | 18.96              | 2.72            |