赞
踩
AutoDL算力云是一个专注于提供人工智能(AI)和深度学习(DL)领域算力资源的云计算平台。它整合了高性能计算资源,如GPU和TPU等,为用户提供了弹性、高效且成本效益高的计算服务。通过AutoDL算力云,用户可以轻松进行模型训练、数据分析、算法研究等任务,加速AI应用的开发和部署。平台提供了用户友好的界面和强大的技术支持,使用户能够轻松上手并充分利用算力资源。AutoDL算力云致力于为用户提供稳定、可靠且价格合理的服务,帮助用户提升AI应用的性能和效果。
绑定微信
Github 地址:https://github.com/chatchat-space/Langchain-Chatchat
解决痛点
该项目是一个可以实现 完全本地化 推理的知识库增强方案, 重点解决数据安全保护,私域化部署的企业痛点。 本开源方案采用Apache License,可以免费商用,无需付费。
项目背景
Langchain-Chatchat 是一个基于本地知识库的问答系统,该项目结合了 ChatGLM 大语言模型与 Langchain 应用框架,实现了开源、可离线部署的检索增强生成(RAG)大模型。Langchain-Chatchat旨在建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。它依托于开源的LLM(大语言模型)与Embedding模型,支持私有化部署。
实现原理
项目通过加载文件、读取文本、文本分割、文本向量化、问句向量化等步骤,在文本向量中匹配出与问句向量最相似的 top k 个文本,并将这些文本作为上下文和问题一起添加到 prompt 中,最后提交给 LLM 生成回答。
配置文件详解
项目中的配置文件包括 basic_config、kb_config、model_config、prompt_config 和 server_config 等,分别用于配置基础参数、知识库参数、模型参数、prompt 参数和服务器参数等。
chatchat-space/Langchain-Chatchat/Langchain-Chatchat
安装地址:https://www.codewithgpu.com/i/chatchat-space/Langchain-Chatchat/Langchain-Chatchat
选择 RTX 4090 显卡
创建完成
点击 JupyterLab 登陆服务器管理端 UI 网页
LAB - JupyterLab
使用虚拟环境启动
更改当前工作目录(Current Working Directory)到 /root/Langchain-Chatchat/
cd /root/Langchain-Chatchat/
权限注意:位于 /root 目录下的名为 Langchain-Chatchat 的文件夹,并且有权限(通常是 root 用户或具有适当权限的用户)来访问这个目录。
conda activate 激活 Conda 环境
conda activate /root/pyenv
执行 startup.py Python 脚本
python startup.py -a
2024-06-15 17:37:57 | ERROR | stderr | INFO: Started server process [1524]
2024-06-15 17:37:57 | ERROR | stderr | INFO: Waiting for application startup.
2024-06-15 17:37:57 | ERROR | stderr | INFO: Application startup complete.
2024-06-15 17:37:57 | ERROR | stderr | INFO: Uvicorn running on http://0.0.0.0:20000 (Press CTRL+C to quit)
······
You can now view your Streamlit app in your browser.
URL: http://0.0.0.0:6006
暴露端口:URL: http://0.0.0.0:6006 本地 SSH 连接端口映射需要
本地环境安装依赖
git clone https://github.com/chatchat-space/Langchain-Chatchat.git
cd Langchain-Chatchat 目录
cd Langchain-Chatchat
安装全部依赖
pip install -r requirements.txt
pip install -r requirements_api.txt
pip install -r requirements_webui.txt
查看服务器实例 SSH 登陆指令 / 密码
登陆指令:ssh -p 36676 root@connect.cqa1.seetacloud.com
密码:H1ZxlPqSAYa2······
本地 SSH 连接端口映射
ssh -CNg -L 6006:127.0.0.1:6006 root@connect.cqa1.seetacloud.com -p 36676
解释说明
选项 | 描述 |
---|---|
ssh | Secure Shell 缩写,用于安全地登录到远程服务器。 |
-C | 启用压缩功能,可以加速数据传输,特别是当连接速度较慢时。 |
-N | 不执行远程命令。通常与端口转发一起使用。 |
-g | 允许远程主机连接到本地转发的端口。 |
-L 6006:127.0.0.1:6006 | 本地端口转发选项。将本地机器的 6006 端口上的连接转发到远程服务器的 localhost 的 6006 端口。 |
root@connect.cqa1.seetacloud.com | 要连接的远程服务器的用户名(root)和地址(connect.cqa1.seetacloud.com)。 |
-p 36676 | 指定连接到远程服务器的端口号 36676。 |
请注意,-L选项中的目标地址(在本例中是127.0.0.1:6006)通常是远程服务器上的一个服务地址和端口。如果你只是想将本地端口转发到远程服务器上的某个服务,那么你需要确保该服务在远程服务器上的相应端口上运行。如果你的目的是将远程服务器上的服务转发回你的本地机器,那么你可能需要更改目标地址以指向远程服务器上的实际服务地址。
开启 powershell
执行效果
PS C:\Users\Administrator> ssh -CNg -L 6006:127.0.0.1:6006 root@connect.cqa1.seetacloud.com -p 36676
The authenticity of host '[connect.cqa1.seetacloud.com]:36676 ([58.144.141.28]:36676)' can't be established.
ED25519 key fingerprint is SHA256:hYeXoQZZ+DNPLXUQRpQzusRVPsqDXaLX8GsC4GurD3s.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[connect.cqa1.seetacloud.com]:36676' (ED25519) to the list of known hosts.
root@connect.cqa1.seetacloud.com's password:
注意:在进行填写 SSH 密码后等待片刻,若未出现任何报错,即 SSH 连接服务器实例成功。错误情况 Permission denied, please try again.
服务器端日志
INFO: 127.0.0.1:55968 - "POST /llm_model/list_config_models HTTP/1.1" 200 OK
2024-06-15 17:43:27,093 - _client.py[line:1027] - INFO: HTTP Request: POST http://127.0.0.1:7861/llm_model/list_config_models "HTTP/1.1 200 OK"
测试对话
ChatGLM temperature 控制参数
在 ChatGLM 模型中,temperature 是一个重要的控制参数,它主要用于调整模型在生成回答时的随机性和确定性。temperature 影响模型从生成分布中随机抽样的程度。通过调整 temperature 的值,可以控制模型生成回答的多样性和确定性。
当 temperature 设置为 0 时,模型将始终产生相同的输出,因为此时没有引入任何随机性。
当 temperature 的值逐渐增加时,模型生成的回答会变得更加多样化和具有创造性,但也可能包含更多的不确定性和噪声。
较高的 temperature 值意味着模型会以更高的概率选择不太常见的单词,从而生成更具创新性的回答。
较低的 temperature 值则意味着模型会更倾向于选择更常见和更确定的单词,生成更保守和可预测的回答。
** ChatGLM 历史会话轮数**
在 ChatGLM 模型中,历史会话轮数(即多轮对话的能力)是一个重要的特性,它允许模型理解和生成基于之前对话回合的连续响应。
历史会话轮数限制
ChatGLM模型能够处理的历史会话轮数取决于具体的实现和配置。理论上,只要模型有足够的显存和计算能力,它可以处理任意数量的历史会话轮数。然而,在实际应用中,由于显存和计算资源的限制,模型可能无法处理过多的历史会话轮数。因此,在设计和实现多轮对话系统时,需要权衡历史会话轮数的数量和系统的性能。
ChatGLM 模型通过特定的数据组织格式和算法实现来处理历史会话轮数,并展现出强大的多轮对话能力。在实际应用中,需要根据具体需求来选择合适的模型配置和训练策略。
提示:LLM(Large Language Model)是大型语言模型的缩写,它是一种基于深度学习技术的语言模型。
创建知识库
上传文件知识库
选择 Browse files 选择本地电脑文件添加到知识库,点击 添加文件到知识库
完成添加。
运行测试结果
待更新······
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。