最后更新:202307051215
(一)注意路径
linux路径在config.yml文件中需要注意把路径改对,尤其是反斜杠的问题/////////////////////////////
(二)m3e-base模型库
这是知识索引模型的配置。推荐采用m3e系列模型。
这个模型库系列里有三种,分别是m3e-small、m3e-base、m3e-large最大的是m3e-large,显存大的考虑large,找个时间去试一下。
moka-ai/m3e-large · Hugging Face
moka-ai/m3e-base · Hugging Face
moka-ai/m3e-small · Hugging Face
同样注意第52行相对路径或绝对路径的写法。//////////////
(三)指定大语言模型
使用glm6b模型,88行只是一个标签,也可以改成glm2-6b,但是下面第108行也要改成一样的glm2-6b。
大语言模型的路径最后用了绝对路径,这样chatglm2-6b可以独立运行。
闻达是建议放在wenda文件夹下的modle下,试过放在闻达里,发现运行不了,hf报错,说路径不对。
我这里使用系统镜像的初始路径,在根目录/root下。
配置结束
(四)运行前准备1
生成知识库前前更新一下工具
pip install -U sentence-transformers
这个命令可以在安装后执行一次,可能需要更新
rtst模式调用知识库
知识库索引建立
python wenda/plugins/gen_data_st.py
可以将wenda文件夹下的memory文件夹下的defult文件夹删除,重新构建。否则它是采用合并的方式,会越来越大。我猜,可能会出现重复的问题。
(五)接下来就是启动服务
python wenda.py
(六)最后连接服务
这是管理平台中复制下来的SSH指令:
ssh -p 端口号 用户名t@***.***.***.***
这是在本级中断输入的指令:
ssh -CNg -L 17860:127.0.0.1:17860 用户名@***.***.***.*** -p 端口号
使用隧道的方式建立端口映射
建立连接时要输入密码
密码从管理平台复制
端口号:
这里的前面的端口17860是跟闻达的config.yml里配置的一致,那是远端开放的端口
127.0.0.1后面的端口号是映射到本机的端口号,访问闻达的时候就需要使用这个端口号,而不是远端的端口号。我这一次输入成一样的了,是偷懒了。
关于进入闻达后参数的理解
Temperature
从生成模型中抽样包含随机性,因此每次点击“生成”时,相同的提示可能会产生不同的输出。温度是用于调整随机程度的数字。
采样时如何选择温度
较低的温度意味着较少的随机性;温度为 0 将始终产生相同的输出。执行具有“正确”答案的任务(如问题回答或总结)时,较低的温度(小于 1)更合适。如果模型开始自我重复,则表明温度过低。
高温意味着更多的随机性,这可以帮助模型给出更有创意的输出。如果模型开始偏离主题或给出无意义的输出,则表明温度过高。
Adjusting the temperature setting
可以针对不同的问题调整温度,但大多数人会发现温度 1 是一个很好的起点。
随着序列变长,模型自然会对其预测更有信心,因此您可以在不偏离主题的情况下为长提示提高温度。相反,在短提示上使用高温会导致输出非常不稳定。
从top tokens中挑选:top-k
另一种常用的策略是从前 3 个tokens的候选名单中抽样。这种方法允许其他高分tokens有机会被选中。这种采样引入的随机性有助于在很多情况下生成的质量。
更广泛地说,选择前三个tokens意味着将 top-k 参数设置为 3。更改 top-k 参数设置模型在输出每个token时从中抽样的候选列表的大小。将 top-k 设置为 1 可以进行贪心解码。
从概率加起来为15%的top tokens中挑选:top-p
选择最佳 top-k 值的困难为流行的解码策略打开了大门,该策略动态设置tokens候选列表的大小。这种称为Nucleus Sampling 的方法将可能性之和不超过特定值的top tokens列入候选名单。top-p 值为 0.15 的示例可能如下所示:
Top-p 通常设置为较高的值(如 0.75),目的是限制可能被采样的低概率 token 的长尾。我们可以同时使用 top-k 和 top-p。如果 k 和 p 都启用,则 p 在 k 之后起作用。
更加深入的学习Chatglm+Langchain的学习
【ChatGLM-6B+LangChain与训练及模型微调教程(人工智能、深度学习)】
video/BV1Mo4y1J7xd/?share_source=copy_web&vd_source=13b72e2fd59f3761ee4223b11fe50f2f