当前位置: 首页 > news >正文

云端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

相关文章:

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

1 大模型的调研 1.1 主流的大模型 openai-chatgpt 阿里巴巴-通义千问 一个专门响应人类指令的大模型。我是效率助手,也是点子生成机,我服务于人类,致力于让生活更美好。 百度-文心一言(千帆大模型) 文心一言"…...

算法系列--分治排序|再谈快速排序|快速排序的优化|快速选择算法

前言:本文就前期学习快速排序算法的一些疑惑点进行详细解答,并且给出基础快速排序算法的优化版本 一.再谈快速排序 快速排序算法的核心是分治思想,分治策略分为以下三步: 分解:将原问题分解为若干相似,规模较小的子问题解决:如果子问题规模较小,直接解决;否则递归解决子问题合…...

强化学习编程实战-1-一个及其简单的强化学习实例(多臂赌博机)

1.1 多臂赌博机 一台拥有K个臂的机器,玩家每次可以摇动K个臂中的一个,摇动后,会吐出数量不等的金币,吐出金币的数量服从一定的概率分布,而且不同臂的概率分布不同。 多臂赌博机的问题是:假设玩家共有N次摇地…...

Golang语法规范和风格指南(一)——简单指南

1. 前引 一个语言的规范的学习是重要的,直接关系到你的代码是否易于维护和理解,同时学习好对应的语言规范可以在前期学习阶段有效规避该语言语法和未知编程风格的冲突。 这里是 Google 提供的规范,有助于大家在开始学习阶段对 Golang 进行一…...

数据机构记录顺序表-笔记1

一、线性表的基本概念 数据元素:线性表中的基本单位,每个元素都是线性表的一部分。 数据项:数据元素的具体值。 存储位置:线性表中的元素在内存中的具体存储位置。 线性表按存储结构可以分为顺序表和链表两大类: 1.1…...

考研必备~总结严蔚敏教授《数据结构》课程的重要知识点及考点

作者主页:知孤云出岫 目录 1. 基本概念1.1 数据结构的定义1.2 抽象数据类型 (ADT) 2. 线性表2.1 顺序表2.2 链表 3. 栈和队列3.1 栈3.2 队列 4. 树和二叉树4.1 树的基本概念4.2 二叉树 5. 图5.1 图的基本概念5.2 图的遍历 6. 查找和排序6.1 查找6.2 排序 7. 重点考…...

【数据分享】国家级旅游休闲街区数据(Excel/Shp格式/免费获取)

之前我们分享过从我国文化和旅游部官网整理的2018-2023年我国50个重点旅游城市星级饭店季度经营状况数据(可查看之前的文章获悉详情)!文化和旅游部官网上也分享有很多与旅游相关的常用数据,我们基于官网发布的名单文件整理得到全国…...

Linux开发:进程间通过Unix Domain Socket传递数据

进程间传递数据的方式有很多种,Linux还提供一种特殊的Socket用于在多进程间传递数据,就是Unix Domain Socket(UDS)。 虽然通过普通的Socket也能做到在多进程间传递数据,不过这样需要通过协议栈层的打包与拆包,未免有些浪费效率,通过UDS,数据仅仅通过一个特殊的sock文件…...

Redis基础教程(九):redis有序集合

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…...

Servlet与Servlet容器

什么是Servlet? Servlet是Java EE(现称Jakarta EE)中的一个组件,通常用于创建动态Web内容。Servlet是运行在Web服务器上的Java程序,它处理客户端的请求并生成响应。Servlet的核心功能是处理HTTP请求和响应。下面是一个servlet例…...

腾讯centos mysql安装

腾讯centos mysql安装 腾讯云提供了一系列的云计算服务,包括操作系统、数据库、服务器等。在腾讯云上安装CentOS操作系统和MySQL数据库可以按照以下步骤进行: 登录腾讯云控制台(登录 - 腾讯云)。在控制台页面上方的搜索框中输入…...

c_各个unsigned int 和 int的取值范围

bool, uint8_t, uint16_t, uint32_t, uint64_t, int8_t, int16_t, int32_t, int64_t 取值范围分别是什么? 定义形式: typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; typedef unsigned long uint64_…...

C#/WPF 自制截图工具

在日常使用电脑办公时,我们经常遇到需要截图然后保存图片,我们往往需要借助安装截图工具才能实现,现在我们通过C#自制截图工具,也能够轻松进行截图。 我们可以通过C#调用WindousAPI来实现截图,实例代码如下&#xff1a…...

以腾讯为例,手把手教你搭建产品帮助中心

一个精心设计的产品帮助中心对于提高用户满意度和体验至关重要。腾讯,作为全球领先的互联网企业,通过其多样化的产品线(包括微信、QQ、腾讯游戏、腾讯视频等)吸引了亿万用户。下面将以腾讯为例,向您展示如何搭建一个高…...

计算机网络概述--自我学习用

计算网络体系概述 相关问题 计算机网络为什么要分层?计算机网络是怎么分层的?三种计算机网络模型的关系是什么?每一层分别包含哪些协议?计算机网络中,数据如何在各层中传播?数据在网络各层中的存在形式是…...

超级好用的java http请求工具

kong-http 基于okhttp封装的轻量级http客户端 使用方式 Maven <dependency><groupId>io.github.kongweiguang</groupId><artifactId>kong-http</artifactId><version>0.1</version> </dependency>Gradle implementation …...

在原有的iconfont.css文件中加入新的字体图标

前言&#xff1a;在阿里图标库中&#xff0c;如果你没有这个字体图标的线上项目&#xff0c;那么你怎么在本地项目中的原始图标文件中添加新的图标呢&#xff1f; 背景&#xff1a;现有一个vue项目&#xff0c;下面是这个前端项目的字体图标文件。现在需要新开发功能页&#x…...

使用 ESP32-WROOM + DHT11 做个无屏温湿度计

最近梅雨天&#xff0c;有个房间湿度很大&#xff0c;而我需要远程查看温湿度&#xff0c;所以无所谓有没有显示屏&#xff0c;某宝上的温湿度计都是带屏的&#xff0c;如果连WIFI查看温湿度操作也比较麻烦&#xff0c;还需要换电池&#xff0c;实在不能满足我的需求&#xff0…...

如何使用 SwiftUI 构建 visionOS 应用

文章目录 前言WindowsVolumes沉浸式空间结论 前言 Apple Vision Pro 即将推出&#xff0c;现在是看看 SwiftUI API 的完美时机&#xff0c;这使我们能够将我们的应用程序适应 visionOS 提供的沉浸式世界。苹果表示&#xff0c;构建应用程序的最佳方式是使用 Swift 和 SwiftUI。…...

InspireFace-商用级的跨平台开源人脸分析SDK

InspireFace-商用级的跨平台开源人脸分析SDK InspireFaceSDK是由insightface开发的⼀款⼈脸识别软件开发⼯具包&#xff08;SDK&#xff09;。它提供了⼀系列功能&#xff0c;可以满⾜各种应⽤场景下的⼈脸识别需求&#xff0c;包括但不限于闸机、⼈脸⻔禁、⼈脸验证等。 该S…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

多模态图像修复系统:基于深度学习的图片修复实现

多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程

STM32F1 本教程使用零知标准板&#xff08;STM32F103RBT6&#xff09;通过I2C驱动ICM20948九轴传感器&#xff0c;实现姿态解算&#xff0c;并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化&#xff0c;适合嵌入式及物联网开发者。在基础驱动上新增…...