云端AI大模型群体智慧后台架构思考

1 大模型的调研

1.1 主流的大模型

  • openai-chatgpt

  • 阿里巴巴-通义千问
    一个专门响应人类指令的大模型。我是效率助手,也是点子生成机,我服务于人类,致力于让生活更美好。
    aliyun.png

  • 百度-文心一言(千帆大模型)
    文心一言"是基于百度的深度学习平台飞桨和文心知识增强大模型开发的。它通过持续地从海量数据和大规模知识中进行融合学习,具备知识增强、检索增强和对话增强等技术特色。
    baidu.png

  • 字节跳动-云雀大模型
    在给出提示词的情况下依然不太聪明
    yunque.png

  • 字节跳动-扣子
    扣子为你提供了一站式 AI 开发平台 无需编程,你的创新理念都能迅速化身为下一代的 AI 应用 开始使用
    coze.png

    优点:测试过之后,在给出人设和回复逻辑之后,coze可以相对准确的将人类的模糊指令拆解为机器人对应的执行步骤。而且对大模型本身的对话功能也有很好的表现。
    缺点:还没有对应的API开放,暂时还在测试中。我已经填写问卷看看能不能申请到内侧的API。

1.2 提示词工程

提示词工程,或称Prompt Engineering,是一种专门针对语言模型进行优化的方法。其核心思想在于通过设计和调整输入的提示词(prompt),来引导这些模型生成更准确、更有针对性的输出文本。在与大型预训练语言模型如GPT-3、BERT等交互时,给定的提示词会极大地影响模型的响应内容和质量。
提示词工程关注于如何创建最有效的提示词,以便让模型能够理解和满足用户的需求。这可能涉及到对不同场景的理解、使用正确的词汇和语法结构,以及尝试不同的提示策略以观察哪种效果最佳。提示词可以简单如一个问题,复杂如一段描述性文本,包含了一系列精心选择的关键词或指令,旨在帮助模型更好地理解请求的任务或目标。
提示词工程具有广泛的应用场景,如信息检索、自然语言生成、智能键盘和聊天机器人、写作辅助工具等。在信息检索领域,提示词工程可以帮助用户更有效地查询信息,提高检索结果的准确性和相关性。在自然语言生成领域,通过为模型提供适当的提示词,可以控制生成文本的风格、内容和结构,从而满足不同场景下的需求。在智能键盘和聊天机器人等交互式应用中,提示词工程可以用于提供用户输入建议,帮助用户更快速地输入和表达他们的意图。在写作辅助工具中,提示词工程则可用于提供写作建议和指导,提高写作质量和效率。
随着大规模语言模型的发展,提示词工程已经成为一个重要的领域。
提示词工程是一种强大的工具,用于引导大型语言模型产生高质量的文本输出,允许用户更好地利用这些模型的能力,并为各种应用程序提供了广泛的可能性。

1.3 监督学习

监督学习(Supervised Learning)是机器学习中的一种重要方法,它主要是利用一组已知输入和输出数据(称为训练数据或样本)来训练模型,使得模型能够对新的未知输入进行预测或分类。在监督学习过程中,模型会尝试找到输入和输出之间的映射关系或规律,并通过不断调整模型参数来优化这种关系,以最小化预测值与实际值之间的误差。

监督学习的主要步骤如下:

  1. 数据准备:准备一组带有标签(即已知输出)的训练数据。这些数据通常是由人工标注或实际观测得到的。

  2. 模型选择:根据问题的性质选择合适的模型结构,如线性回归、决策树、支持向量机、神经网络等。

  3. 模型训练:使用训练数据来训练模型。这通常涉及到最小化一个损失函数(loss function),该函数衡量了模型预测值与真实值之间的差异。通过迭代优化算法(如梯度下降)来调整模型的参数,使得损失函数达到最小。

  4. 模型评估:使用独立的验证数据集来评估模型的性能。常见的评估指标包括准确率、精度、召回率、F1分数等。

  5. 模型应用:一旦模型训练完成并经过评估,就可以将其应用于新的未知输入数据,以进行预测或分类。

监督学习在许多领域都有广泛应用,如图像识别、语音识别、自然语言处理、金融预测等。它的优点在于可以利用已知标签的数据来指导模型的训练,从而得到较为准确的预测结果。然而,它也有其局限性,比如需要大量的标注数据,标注过程可能耗时且昂贵,以及模型可能受到训练数据中噪声和偏差的影响等。

1.3 大模型调参

大模型调参是指通过输入数据集对训练模型进行优化,以达到提升模型效果的方法。这一过程涉及预训练和微调两大阶段。
在预训练阶段,核心目标是找到最优的数据配比与最优的架构设计,从而得到最有效的参数数值。这通常是通过向模型喂入大量的无标注数据进行无监督训练来实现的,使模型涌现出更好的基础能力,以在不同任务上都获得较好效果。
而在模型微调阶段,则是在预训练模型参数的基础上,通过提供少量高质量、有标注的数据进行有监督训练。微调的核心在于确定调整哪些参数以及如何调整,以使得模型在特定领域呈现出更加优异的表现。
在大模型时代,调参成为提升模型性能的关键步骤。通过不断调整和优化参数,可以使模型更好地抓取文本重点、理解文本、输出文本,从而提高模型在目标任务上的性能。无论是在自然语言处理、计算机视觉还是推荐系统等领域,大模型参数高效微调技术都发挥着重要作用。

2 解决方案

2.1 大模型调用

先给出一套关于大模型调用的基础方案,后续在实际需求和指导中优化。

2.1.1 技术架构

framework-ai.png

  1. 客户端服务

    • ai-robot:机器人受到模糊指令,向云端大模型请求拆解指令。
    • web-test:可视化的测试界面,可以直观得测试大模型微调结果。
  2. 应用服务

    • ai-chat-backend:web协议解析,用于接受和处理来自ai-rebotweb-test的请求数据。
    • ai-chat-server:包含所有的内部服务,如:关键词提取,敏感词识别,上下文保存,数据持久化等。
  3. 基础服务

    • keywords:根据给定的词库识别文本中的关键词。
    • sensitive:根据给定的词库识别文本中的铭感词。
    • openai-proxy:这里标红了,默认我们会使用国内的大模型;但是如果要使用openai,我们需要一台海外服务器来做反向代理。
    • tokenizer:用于计算每次请求的tokens数量,我感觉这个可能需要向用户提供收费套餐。
    • mock-open-ai:用于模拟大模型的返回,减少开发时的测试成本。
  4. 数据服务

    • mysql:持久化存储,包括但不限于用户信息,机器人ID,token使用数量等。
    • vectordb:这里需要一个词向量数据库来进行相似度匹配;这个可以自己搭建或者直接使用云厂商提供的。
  5. . 支撑服务

    • doker:doker容器化部署,方便在公网服务器部署。

    • docker swarm:官网的跨界点容器编排工具,只要在单一节点上操作就可以所以集群下所有节点和容器。

      noswarm.png

      swarm.png

    • registry:没一台机器人应该有自己的ID

    • redis:内存数据库,可以存储一些使用频率较高的指令,方便快速解析。

    • prometheus:线上节点监控,保证各服务正常工作。

2.1.2 部署架构图

deploy-ai.png

2.1.3 技术导图

technology-ai.png

2.2 即使通讯

概念中的群体智慧:一个群组内的机器人,彼此之间分工合作,并且实时同步信息,达成合作的目的。在群体智慧中,肯定需要一套即时通讯系统,实时同步数据。使用自主研发的实时通讯有以下优点:

  1. 可控,方便定制化
  2. 数据可以实时分析
  3. 数据私密安全
2.2.1 IM技术的特点
  1. 实时性:保证消息实时触达。(轮询与长连接)(消息提示推送,和我们阅读的消息是不一样的。)
  2. 可靠性:保证消息的不丢失和不重复。(ACK 机制)TCP 只能保证消息数据链路可靠,不能保证业务可靠。
  3. 一致性:保证同一条消息在多人、多终端展现顺序的一致性。(消息序号生成器服务端)
  4. 安全性:保证数据传输安全、数据存储安全、消息内容安全。(WWS、HTTPS、TLS、
    AES 等)
2.2.2 IM基本架构

framework-im.png

  • 用户层:客户端与服务器端进行网络通信、收发消息。
  • 连接层:为客户端收发消息提供出入口。主要的任务:保持海量用户连接;解析协议,对传输内容进行编码;维护session;推送消息。
  • 核心业务层(逻辑层):负责IM系统各项功能的核心逻辑实现。
  • 路由层:负责消息投递。
  • 数据层:负责IM系统相关数据的持久化存储,包括消息内容,ID等信息。
2.2.3 IM分层架构

im1.png

2.2.3.1 IM分层架构-接入层
  • 接入层主要任务

    1. 建立客户端和后台服务的信道
    2. 接收来自客户端的大量并发请求
  • 接入层作用

    • 连接整流 http websocket tcp
      im2-1.png
    • 通信安全
    • 报文解压缩
    • 初步防攻击 发送速率过快等
      im2-2.png
2.2.3.2 IM分层架构-逻辑层
  • 逻辑层任务
    1. 用户逻辑:机器人注册,机器人上线,机器人下线,机器人分组
    2. 机器人组逻辑:添加组成员,删除组成员,组列表
    3. 消息逻辑:点对点消息,组消息
    4. 其他:文件,图片,视频传输
  • 为什么需要逻辑层
    1. 可以水平扩展组件
2.2.3.3 IM分层架构-数据层
  • 逻辑层任务
    1. 对上游屏蔽存储引擎
      im3.png

    2. 对上游屏蔽缓存cache
      im4.png

    3. 对上游提供友好的接口
      im5.png

2.2.4 构想

im6.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/42006.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL基础篇(三)数据库的修改 删除 备份恢复 查看连接情况

对数据库的修改主要指的是修改数据库的字符集,校验规则。 将test1数据库字符集改为gbk。 数据库的删除: 执行完该数据库就不存在了,对应数据库文件夹被删除,级联删除,里面的数据表全部被删除。 注意:不要随…

浅识Jmeter与浅谈互联网公司高并发业务压测流程痛点

浅谈Jmeter 什么是Jmeter JMeter 是 Apache 软件基金会开发的一个开源软件,用于负载测试和性能测试。它被设计用来模拟多种请求到服务器、网络或对象,以测试其性能。JMeter 可以用于测试静态和动态资源,并且可以模拟各种协议的请求&#xf…

NDVI数据集提取植被覆盖度FVC

植被覆盖度FVC 植被覆盖度(Foliage Vegetation Cover,FVC)是指植被冠层覆盖地表的面积比例,通常用来描述一个区域内植被的茂密程度或生长状况。它是生态学、环境科学以及地理信息系统等领域的重要指标,对于理解地表能…

绝区叁--如何在移动设备上本地运行LLM

随着大型语言模型 (LLM)(例如Llama 2和Llama 3)不断突破人工智能的界限,它们正在改变我们与周围技术的互动方式。这些模型早已集成到我们的手机中,但到目前为止,它们理解和处理请求的能力还非常有限。然而,…

手写实现一个ORM框架

手写实现一个ORM框架 什么是ORM框架、ORM框架的作用效果演示框架设计代码细节SqlBuilderSqlExecutorStatementHandlerParameterHandlerResultSetHandler逆序生成实体类 大家好,本人最近写了一个ORM框架,想在这里分享给大家,让大家来学习学习。…

leetcode力扣_排序问题

215.数组中的第K个最大元素 鉴于已经将之前学的排序算法忘得差不多了,只会一个冒泡排序法了,就写了一个冒牌排序法,将给的数组按照降序排列,然后取nums[k-1]就是题目要求的,但是提交之后对于有的示例显示”超出时间限制…

JavaWeb开发之环境准备-大合集

本文博客地址 JavaWeb开发 || 环境准备 1. 前言2. JDK8安装2.1 下载地址2.2 安装配置图示2.2.1 JDK安装2.2.2 配置系统环境变量 3. Maven安装3.1 Maven下载3.2 Maven解压及系统变量配置 4. Tomcat安装4.1 Tomcat下载4.2 Tomcat解压及系统变量配置 5. Redis安装5.1 Redis下载5.…

记录一次麒麟V10 安装sysbench各种报错(关于MySQL)处理过程

sysbench手工下载: https://github.com/akopytov/sysbench 下载.zip文件,上传到服务器上 解压、安装: unzip sysbench-master.zipcd sysbench-master/sh autogen.sh./configure 报错:没有mysql驱动 configure: error: mysql_c…

Marin说PCB之CAM350的软件使用知多少?

今天上海的气温那叫一个高啊,温度都达到了39左右了都,我都严重怀疑我不是在魔都上班而是在火焰山板砖去了。这么燥热的天气真的是严重影响了小编我的工作效率,没有心情工作啊,要去泳池避避暑,冲个凉也行啊。这种天气只…

力扣5----最长回文子串

给你一个字符串 s,找到 s 中最长的回文子串 示例 1: 输入:s "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。示例 2: 输入:s "cbbd" 输出…

Feign-未完成

Feign Java中如何实现接口调用?即如何发起http请求 前三种方式比较麻烦,在发起请求前,需要将Java对象进行序列化转为json格式的数据,才能发送,然后进行响应时,还需要把json数据进行反序列化成java对象。 …

G2.【C语言】EasyX绘制颜色窗口

1.窗口 窗口&#xff1a;宽度*高度&#xff08;单位都是像素&#xff09; #include <stdio.h> #include <easyx.h> int main() {initgraph(640, 480);getchar();return 0; } 640是宽&#xff0c;480是高 2.操作窗口的三个按钮 #include <stdio.h> #incl…

go语言day10 接口interface 类型断言 type关键字

接口&#xff1a; 空接口类型&#xff1a; 要实现一个接口&#xff0c;就要实现该接口中的所有方法。因为空接口中没有方法&#xff0c;所以自然所有类型都实现了空接口。那么就可以使用空接口类型变量去接受所有类型对象。 类比java&#xff0c;有点像Object类型的概念&#x…

免费去马赛克软件,亲测支持视频和图片,这AI功能逆天了!

有小伙伴私信问阿星有什么去除马赛克的免费软件&#xff0c;求推荐好用的去马赛克软件。 市面上去马赛克的软件多如牛毛&#xff0c;但真正好用的真不多&#xff0c;而免费的是更少。今天阿星就分享一款 AI智能去马赛克软件&#xff0c;免费使用。软件支持去除图片和视频的马赛…

51单片机STC89C52RC——15.1 AD/DA(模数数模)

目的/效果 1 LCD1602 显示 可调电阻、光敏电阻、热敏电阻值&#xff08;AD&#xff09; 2 模拟信号控制LED明暗&#xff08;DA&#xff09; 一&#xff0c;STC单片机模块 二&#xff0c;AD/DA 2.1 AD/DA 介绍 AD&#xff08;Analog to Digital&#xff09;&#xff1a;模拟…

第1章 项目背景(学成在线),项目介绍,环境搭建

1.项目背景 1.1 在线教育市场环境 以下内容摘自https://report.iresearch.cn/content/2021/01/358854.shtml 在线教育行业是一个有着极强的广度和深度的行业&#xff0c;从校内到校外&#xff1b;从早幼教到职业培训&#xff1b;从教育工具到全信息化平台等等。 2020年的新…

用Excel处理数据图像,出现交叉怎么办?

一、问题描述 用excel制作X-Y散点图&#xff0c;意外的出现了4个交叉点&#xff0c;而实际上的图表数据是没有交叉的。 二、模拟图表 模拟部分数据&#xff0c;并创建X-Y散点图&#xff0c;数据区域&#xff0c;X轴数据是依次增加的&#xff0c;因此散点图应该是没有交叉的。…

linux centos 安装niginx并且添加ssl(https)模块

文章目录 前言一、nginx安装教程1.流程步骤 总结 前言 一、nginx安装教程 1.流程步骤 代码如下&#xff08;示例&#xff09;&#xff1a; 1.先下载linux安装包 2.解压安装命令 sudo tar -zxvf nginx-1.20.1.tar.gz3.进入解压后的目录 sudo cd nginx-1.20.14.安装 sudo y…

欢迎加入国家智能网联汽车创新中心OS开发训练营大家庭

欢迎加入国家智能网联汽车创新中心OS开发训练营大家庭。&#x1f680; 导学阶段启动 在正式开营之前&#xff0c;我们特别设置了导学阶段&#xff0c;旨在帮助大家更好地迎接颇具挑战性的项目实战。导学阶段包括一系列精心准备的视频课程和配套习题。github链接&#xff1a;htt…

vue侦听器watch()

侦听器watch&#xff08;&#xff09; 侦听器侦听数据变化&#xff0c;我们可以使用watch 选项在每次响应式属性变化时触发一个函数。 <template><h3>侦听器watch</h3><hr> <p>{{nessage}}</p> <button click"exchage">…