Skip to content

Commit e6ef83c

Browse files
committed
update
1 parent 0a36623 commit e6ef83c

File tree

2 files changed

+53
-35
lines changed

2 files changed

+53
-35
lines changed

README.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ ModelCache
4343

4444
## News
4545

46+
- 🔥🔥[2024.10.22] Added tasks for 1024 developer day.
4647
- 🔥🔥[2024.04.09] Added Redis Search to store and retrieve embeddings in multi-tenant. This can reduce the interaction time between Cache and vector databases to 10ms.
4748
- 🔥🔥[2023.12.10] Integrated LLM embedding frameworks such as 'llmEmb', 'ONNX', 'PaddleNLP', 'FastText', and the image embedding framework 'timm' to bolster embedding functionality.
4849
- 🔥🔥[2023.11.20] Integrated local storage, such as sqlite and faiss. This enables you to initiate quick and convenient tests.
@@ -60,7 +61,7 @@ Codefuse-ModelCache is a semantic cache for large language models (LLMs). By cac
6061

6162
You can find the start script in `flask4modelcache.py` and `flask4modelcache_demo.py`.
6263

63-
- `flask4modelcache_demo.py`: A quick test service that embeds SQLite and FAISS. No database configuration required.
64+
- `flask4modelcache_demo.py`: A quick test service that embeds SQLite and FAISS. No database configuration required.
6465
- `flask4modelcache.py`: The standard service that requires MySQL and Milvus configuration.
6566

6667
### Dependencies

README_CN.md

+51-34
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,35 @@ ModelCache
1616

1717
## Contents
1818

19+
- [Contents](#contents)
1920
- [新闻](#新闻)
2021
- [项目简介](#项目简介)
22+
- [架构大图](#架构大图)
2123
- [快速部署](#快速部署)
24+
- [环境依赖](#环境依赖)
25+
- [启动服务](#启动服务)
26+
- [启动 Demo](#启动-demo)
27+
- [启动标准服务](#启动标准服务)
2228
- [服务访问](#服务访问)
29+
- [写入 cache](#写入-cache)
30+
- [查询 cache](#查询-cache)
31+
- [清空 cache](#清空-cache)
2332
- [文章](#文章)
24-
- [架构大图](#架构大图)
33+
- [功能对比](#功能对比)
2534
- [核心功能](#核心功能)
35+
- [Todo List](#todo-list)
36+
- [Adapter](#adapter)
37+
- [Embedding model\&inference](#embedding-modelinference)
38+
- [Scalar Storage](#scalar-storage)
39+
- [Vector Storage](#vector-storage)
40+
- [Ranking](#ranking)
41+
- [Service](#service)
2642
- [致谢](#致谢)
27-
- [Contributing](#Contributing)
43+
- [Contributing](#contributing)
2844

2945
## 新闻
3046

31-
- 🔥🔥[2024.10.22] 增加1024程序员节任务。
47+
- 🔥🔥[2024.10.22] 增加1024程序员节任务。
3248
- 🔥🔥[2024.04.09] 增加了多租户场景中Redis Search存储和检索embedding的能力,可以将Cache和向量数据库的交互耗时降低至10ms内。
3349
- 🔥🔥[2023.12.10] 增加llmEmb、onnx、paddlenlp、fasttext等LLM embedding框架,并增加timm 图片embedding框架,用于提供更丰富的embedding能力。
3450
- 🔥🔥[2023.11.20] codefuse-ModelCache增加本地存储能力, 适配了嵌入式数据库sqlite、faiss,方便用户快速启动测试。
@@ -38,53 +54,58 @@ ModelCache
3854

3955
Codefuse-ModelCache 是一个开源的大模型语义缓存系统,通过缓存已生成的模型结果,降低类似请求的响应时间,提升用户体验。该项目从服务优化角度出发,引入缓存机制,在资源有限和对实时性要求较高的场景下,帮助企业和研究机构降低推理部署成本、提升模型性能和效率、提供规模化大模型服务。我们希望通过开源,分享交流大模型语义Cache的相关技术。
4056

57+
## 架构大图
58+
59+
![modelcache modules](docs/modelcache_modules_20240409.png)
60+
4161
## 快速部署
4262

43-
项目中启动服务脚本分为flask4modelcache.py 和 flask4modelcache_demo.py,其中:
63+
项目中启动服务脚本分为 `flask4modelcache.py``flask4modelcache_demo.py`,其中:
4464

45-
- flask4modelcache_demo.py 为快速测试服务,内嵌了sqlite和faiss,用户无需关心数据库相关事宜。
46-
- flask4modelcache.py 为正常服务,需用户具备mysql和milvus等数据库服务
65+
- `flask4modelcache_demo.py` 为快速测试服务,内嵌了 SQLite 和 FAISS,用户无需关心数据库相关事宜。
66+
- `flask4modelcache.py` 为正常服务,需用户具备 MySQL 和 Milvus 等数据库服务
4767

4868
### 环境依赖
4969

50-
- python版本: 3.8及以上
70+
- python版本: 3.8 及以上
5171
- 依赖包安装:
5272

5373
```shell
5474
pip install -r requirements.txt
5575
```
5676

57-
### 服务启动
77+
### 启动服务
5878

59-
#### Demo服务启动
79+
#### 启动 Demo
6080

61-
- 离线模型bin文件下载, 参考地址:[https://huggingface.co/shibing624/text2vec-base-chinese/tree/main](https://huggingface.co/shibing624/text2vec-base-chinese/tree/main)并将下载的bin文件,放到 model/text2vec-base-chinese 文件夹中。
62-
- 执行flask4modelcache_demo.py启动服务
81+
- 离线模型 bin 文件下载, 参考地址:[Hugging Face](https://huggingface.co/shibing624/text2vec-base-chinese/tree/main)并将下载的 bin 文件,放到 `model/text2vec-base-chinese` 文件夹中。
82+
- 执行 `flask4modelcache_demo.py` 启动服务
6383

64-
```shell
65-
cd CodeFuse-ModelCache
66-
```
67-
```shell
68-
python flask4modelcache_demo.py
69-
```
84+
```shell
85+
cd CodeFuse-ModelCache
86+
```
87+
88+
```shell
89+
python flask4modelcache_demo.py
90+
```
7091

71-
#### 正常服务启动
92+
#### 启动标准服务
7293

73-
在启动服务前,应该进行如下环境配置:
94+
在启动标准服务前,应该进行如下环境配置:
7495

75-
1. 安装关系数据库 mysql, 导入sql创建数据表,sql文件:```reference_doc/create_table.sql```
76-
2. 安装向量数据库milvus
96+
1. 安装关系数据库 MySQL, 导入 SQL 创建数据表,MySQL 文件:```reference_doc/create_table.sql```
97+
2. 安装向量数据库 Milvus。
7798
3. 在配置文件中添加数据库访问信息,配置文件为:
7899
1. ```modelcache/config/milvus_config.ini```
79100
2. ```modelcache/config/mysql_config.ini```
80-
4. 离线模型bin文件下载, 参考地址:[https://huggingface.co/shibing624/text2vec-base-chinese/tree/main](https://huggingface.co/shibing624/text2vec-base-chinese/tree/main)并将下载的bin文件,放到 model/text2vec-base-chinese 文件夹中
101+
4. 离线模型 bin 文件下载, 参考地址:[Hugging Face](https://huggingface.co/shibing624/text2vec-base-chinese/tree/main)并将下载的 bin 文件,放到 `model/text2vec-base-chinese` 文件夹中
81102
5. 通过flask4modelcache.py脚本启动后端服务。
82103

83104
## 服务访问
84105

85-
当前服务以restful API方式提供3个核心功能:数据写入,cache查询和cache数据清空。请求demo 如下:
106+
当前服务以 restful API 方式提供 3 个核心功能:数据写入,cache 查询和 cache 数据清空。请求 demo 如下:
86107

87-
### cache写入
108+
### 写入 cache
88109

89110
```python
90111
import json
@@ -99,7 +120,7 @@ headers = {"Content-Type": "application/json"}
99120
res = requests.post(url, headers=headers, json=json.dumps(data))
100121
```
101122

102-
### cache查询
123+
### 查询 cache
103124

104125
```python
105126
import json
@@ -114,7 +135,7 @@ headers = {"Content-Type": "application/json"}
114135
res = requests.post(url, headers=headers, json=json.dumps(data))
115136
```
116137

117-
### cache清空
138+
### 清空 cache
118139

119140
```python
120141
import json
@@ -133,13 +154,9 @@ res = requests.post(url, headers=headers, json=json.dumps(data))
133154

134155
https://mp.weixin.qq.com/s/ExIRu2o7yvXa6nNLZcCfhQ
135156

136-
## 架构大图
137-
138-
![modelcache modules](docs/modelcache_modules_20240409.png)
139-
140157
## 功能对比
141158

142-
功能方面,为了解决huggingface网络问题并提升推理速度,增加了embedding本地推理能力。鉴于SqlAlchemy框架存在一些限制,我们对关系数据库交互模块进行了重写,以更灵活地实现数据库操作。在实践中,大型模型产品需要与多个用户和多个模型对接,因此在ModelCache中增加了对多租户的支持,同时也初步兼容了系统指令和多轮会话。
159+
功能方面,为了解决 Hugging Face 网络问题并提升推理速度,增加了 embedding 本地推理能力。鉴于 SqlAlchemy 框架存在一些限制,我们对关系数据库交互模块进行了重写,以更灵活地实现数据库操作。在实践中,大型模型产品需要与多个用户和多个模型对接,因此在 ModelCache 中增加了对多租户的支持,同时也初步兼容了系统指令和多轮会话。
143160

144161
<table>
145162
<tr>
@@ -264,7 +281,7 @@ https://mp.weixin.qq.com/s/ExIRu2o7yvXa6nNLZcCfhQ
264281

265282
## 核心功能
266283

267-
在ModelCache中,沿用了GPTCache的主要思想,包含了一系列核心模块:adapter、embedding、similarity和data_manager。adapter模块主要功能是处理各种任务的业务逻辑,并且能够将embedding、similarity、data_manager等模块串联起来;embedding模块主要负责将文本转换为语义向量表示,它将用户的查询转换为向量形式,并用于后续的召回或存储操作;rank模块用于对召回的向量进行相似度排序和评估;data_manager模块主要用于管理数据库。同时,为了更好的在工业界落地,我们做了架构和功能上的升级,如下:
284+
在ModelCache 中,沿用了 GPTCache 的主要思想,包含了一系列核心模块:adapter、embedding、similarity 和 data_manager。adapter模块主要功能是处理各种任务的业务逻辑,并且能够将 embedding、similarity、data_manager等模块串联起来;embedding 模块主要负责将文本转换为语义向量表示,它将用户的查询转换为向量形式,并用于后续的召回或存储操作;rank 模块用于对召回的向量进行相似度排序和评估;data_manager 模块主要用于管理数据库。同时,为了更好的在工业界落地,我们做了架构和功能上的升级,如下:
268285

269286
- [x] 架构调整(轻量化集成):以类redis的缓存模式嵌入到大模型产品中,提供语义缓存能力,不会干扰LLM调用和安全审核等功能,适配所有大模型服务。
270287
- [x] 多种模型加载方案:
@@ -286,11 +303,11 @@ https://mp.weixin.qq.com/s/ExIRu2o7yvXa6nNLZcCfhQ
286303

287304
### Adapter
288305

289-
- [ ] register adapter for Milvus:根据scope中的model参数,初始化对应Collection 并且执行load操作
306+
- [ ] register adapter for Milvus:根据 scope 中的 model 参数,初始化对应 Collection 并且执行 load 操作
290307

291308
### Embedding model&inference
292309

293-
- [ ] inference优化:优化embedding推理速度,适配fastertransformer, TurboTransformers, ByteTransformer等推理引擎
310+
- [ ] inference 优化:优化 embedding 推理速度,适配fastertransformerTurboTransformers 和 ByteTransformer 等推理引擎
294311
- [ ] 兼容huggingface模型和modelscope模型,提供更多模型加载方式。
295312

296313
### Scalar Storage

0 commit comments

Comments
 (0)