赞
踩
本地部署硬性要求:显存13g以上
关于环境的安装就不多赘述,conda + pip 可以解决大部分问题
在huggingface上可以下载上述模型,如果没有梯子可以使用huggingface镜像
从github上拉取fastGPT和chatglm3两个项目
下载好上述模型后,需要按照FastGPT的 file -> models -> ChatGLM2 -> openai_api.py
来配置ChatGLM3 的 openai_api_demo -> api-server.py
在api-server.py
加入下述code
class EmbeddingRequest(BaseModel): input: List[str] model: str def num_tokens_from_string(string: str) -> int: """Returns the number of tokens in a text string.""" encoding = tiktoken.get_encoding('cl100k_base') num_tokens = len(encoding.encode(string)) return num_tokens def expand_features(embedding, target_length): poly = PolynomialFeatures(degree=2) expanded_embedding = poly.fit_transform(embedding.reshape(1, -1)) expanded_embedding = expanded_embedding.flatten() if len(expanded_embedding) > target_length: # 如果扩展后的特征超过目标长度,可以通过截断或其他方法来减少维度 expanded_embedding = expanded_embedding[:target_length] elif len(expanded_embedding) < target_length: # 如果扩展后的特征少于目标长度,可以通过填充或其他方法来增加维度 expanded_embedding = np.pad( expanded_embedding, (0, target_length - len(expanded_embedding)) ) return expanded_embedding if __name__ == "__main__": # Load LLM tokenizer = AutoTokenizer.from_pretrained(TOKENIZER_PATH, trust_remote_code=True) model = AutoModel.from_pretrained(MODEL_PATH, trust_remote_code=True, device_map="auto").eval() # load Embedding embeddings_model = SentenceTransformer('/home/eleven/PycharmProjects/tingsheng/m3e-base', device='cpu') uvicorn.run(app, host='0.0.0.0', port=8000, workers=1)
加入的目的就是为了填补api_server.py中的一些适配的函数。修改embedding_modeks中模型路径,改成你下载的m3e-base的绝对路径,device选择cpu或cuda都可以
环境的缺失报错就用pip安装即可
打开终端,在api-server.py
所在路径下输入下述命令
MODEL_PATH=/home/eleven/PycharmProjects/tingsheng/chatglm3-6b python api_server.py
其中MODEL_PATH为你chatglm3模型的绝对路径
运行结果如下:
可以看到模型在8000端口运行
官方的教程很详细,建议参考官方教程部署docker
这里重点说一下bug问题,以及配置本地模型供fastGPT使用
上述的chatglm的本地运行端口号为8000,所以需要修改docker-compose.yaml文件中的OPENAI_BASE_URL
来适配本地大模型。
fastgpt: container_name: fastgpt image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.7 # git # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.7 # 阿里云 ports: - 3000:3000 networks: - fastgpt depends_on: - mongo - pg restart: always environment: # root 密码,用户名为: root。如果需要修改 root 密码,直接修改这个环境变量,并重启即可。 - DEFAULT_ROOT_PSW=1234 # AI模型的API地址哦。务必加 /v1。改成你本地的IP地址加上模型运行的端口号8000 - OPENAI_BASE_URL=http://192.168.1.1:8000/v1 # AI模型的API Key。(这里默认填写了OneAPI的快速默认key,测试通后,务必及时修改) - CHAT_API_KEY=sk-fastgpt # 数据库最大连接数 - DB_MAX_LINK=30 # 登录凭证密钥 - TOKEN_KEY=any # root的密钥,常用于升级时候的初始化请求 - ROOT_KEY=root_key # 文件阅读加密 - FILE_TOKEN_KEY=filetoken # MongoDB 连接参数. 用户名myusername,密码mypassword。 - MONGODB_URI=mongodb://myusername:mypassword@mongo:27017/fastgpt?authSource=admin # pg 连接参数 - PG_URL=postgresql://username:password@pg:5432/postgres volumes: - ./config.json:/app/data/config.json - ./fastgpt/tmp:/app/tmp
然后sudo docker-compose up -d
启动容器
打开本地链接localhost:3000
,默认用户名root
,密码1234
连接成功后
可以看到调试使用的模型是chatGLM3-6B
目前遇到最主要的bug问题都集中在MongoDB上
在登录出现Network error或者出现输入用户名密码后出现登录超时都是Mongo没有正确启动
在遇到上述情况时,在终端输入
sudo docker logs mongo
查看mongoDB有没有正确启动
我所遇到的bug有两个
这时需要注意mongoDB的版本问题,如果你使用最新的版本(5.X)不行就降低版本(4.4.24),在保证mongoDB能正确启动的情况下再去访问localhost:3000
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。