AI开源概览及工具使用

一、前言

随着ChatGPT热度的攀升,越来越多的公司也相继推出了自己的AI大模型,如文心一言、通义千问等。各大应用也开始内置AI玩法,如抖音的AI特效;

在这里插入图片描述

关联资源:代码 GitHub、相关论文、项目Demo、产品文档、Grok Ai、grokstream、添加链接描述

二、开源版「ChatGPT Plus」

来自香港大学、XLang实验室、Sea AI实验室和Salesforce的研究者联合打造了一款用于真实世界生产力工具的开源智能体框架——OpenAgents,并开源了全栈代码(完整前后端);OpenAgents还 提供线上的网页 demo (以及配套的开源代码),非程序员背景的普通用户也可轻松与智能体进行交互;OpenAgents 支持真实世界环境和可控环境,支持超过 200 + 的日常工具调用,支持网页自动浏览。OpenAgents 的动机是作为一个开源平台,旨在成为一个真实而全面的人类可交互的智能体评估平台:根据真实需求,真实用户与智能体互动以完成其任务,并记录整个用户 - 智能体互动过程和用户反馈以供进一步评估。为使用和部署智能体提供,目前包括三个关键智能体:

  • 用于 Python 和 SQL 的数据智能体;
  • 200 多个工具使用的插件智能体;
  • 自动网络浏览的 Web 智能体。

OpenAgents 用基于「大语言模型」(LLMs)的技术和全栈工程代码尝试近似复刻了 ChatGPT Plus 的功能。智能体可执行 Python/SQL 代码,熟练调用工具,也能上网找地图发帖子,OpenAgents完全开源了代码,包含从科研到逻辑代码到前端代码的一切。代码完善、易于拓展,本地直接可以一键部署,配套提供了含有丰富的使用案例的文档,帮助研究者和开发者在模型上搭建自己的智能体和应用。一路从代码实现到后端前端全部开源,让其变成了人人都能用的落地级别应用,基于代码开源,开发者和研究者可以定制适配业务需要,修改若干行代码适配自己想要的模型,改进、创造自己想要的功能,甚至创造新的 Agent。 下面是OpenAgents 总览图,面向用户的网页界面,面向开发者的本地部署。
在这里插入图片描述
1)数据分析对比

OpenAgents 和 ChatGPT 都能不错地完成用户对股价和交易的分析要求。不过 OpenAgents 可以自动搜索 Kaggle 数据集并下载,ChatGPT 需要用户从本地上传。

2)插件和画图

两者都能成功调用了 Wolfram 插件画出多种八面体的图片。

3)网页调用

模拟测试用户想要查询 10 月 20 日从中国香港到纽约的机票,OpenAgents 识别用户意图后直接跳转到 Skycanner,像 “真人” 一样一边思考一边在网站中填入信息,最后回到聊天页面总结信息;而 ChatGPT 出于安全考虑保证可控性,和调用插件类似,在云端做网页浏览,将最后搜寻到的信息返回。

三、马斯克的Grok

Grok-1(Open Release of Grok-1[1])是一款由 xAI 开发的大型语言模型,拥有 3140 亿个参数,属于混合专家模型(MoE:Mixture-of-Experts model),包含8个专家,总参数量为314B(3140亿),处理Token时,其中的两个专家会被激活,激活参数量为86B。该模型的基础模型权重(一堆训练/投喂的数据,也称模型参数)和网络架构现已在 GitHub:xai-org/grok-1上公开发布,并未经过针对任何特定任务的微调,即它是是2023年10月预训练阶段的原始模型,避免引入任何自定义内核。开源协议遵循 Apache 2.0 许可证,商用友好。引起参数庞大,部署时注意需要一台拥有充足 GPU 内存的机器。Grok-1没有采用常见的Python、PyTorch或Tensorflow,而是选用了Rust编程语言以及深度学习框架新秀JAX,在底层技术上,Grok-1选择使用了基于JAX(一个由Google开发的用于高性能机器学习研究的库)和Rust(一种注重安全性和并发的系统编程语言)的自定义训练堆栈。xAI称:计划未来将Grok打造成多模态的大模型。

关联资源:grok-博客、问题讨论、JAX、JAX GitHub、精度说明
在这里插入图片描述
Grok-1 相关特性:

  • 3140 亿参数(314B parameters)
  • 8 个专家的混合体(Mixture of 8 Experts)
  • 每个 token 使用 2 个专家(2 experts used per token)
  • 64 层(64 layers)
  • 查询的 48 个注意力头(48 attention heads for queries)
  • 键/值的 8 个注意力头(8 attention heads for keys/values)
  • 嵌入大小:6144(embeddings size: 6,144)
  • 旋转嵌入(rotary embeddings, RoPE)
  • SentencePiece 分词器;131,072 个令牌(SentencePiece tokenizer; 131,072 tokens)
  • 支持激活分片和 8 位量化(Supports activation sharding and 8-bit quantization)
  • 最大序列长度(上下文):8192 个 token(Max seq length (context): 8,192 tokens)

Grok-1存储库提供了使用 JAX 框架(是一个专为加速器优化的数组计算和程序转换设计的 Python 库,主要目标是高性能数值计算和大规模机器学习。)加载和运行 Grok-1 模型的示例代码。相对比Grok采用的框架和技术,大多数知名的大模型比如OpenAI的GPT系列或Google的大模型通常是基于TensorFlow或PyTorch这样的主流深度学习框架开发的,且有丰富的API和社区支持,能让模型开发和训练变得更高效。而Grok-1将JAX和Rust的结合,优势在于能够在模型性能、效率和可伸缩性方面有所优化。但这也意味着,xAI可能需要投入更多的资源来维护和支持这种非主流的技术栈。

要运行这些示例,用户需要先下载模型的检查点文件,将其放置在指定的目录中(将下载的 ckpt-0 目录放置在 checkpoint 目录中),然后执行以下命令来安装依赖并运行示例(基础模型大约有七百多个文件,近 300G,注意存储):

git clone https://github.com/xai-org/grok-1.git
cd grok-1# install
pip install -r requirements.txt
python run.py

根据网络相关经验显示, Grok 的最低配置要求(仅作为参考):

#3[3]:8bit量化的话,可能需要8块H100;在 FP16 精度下,Grok-1 模型大约需要 630GB 至 700GB 的显存。即便配置了 8 个 NVIDIA H100 GPU,能否成功运行该模型仍不确定。在进行某些优化(如通过 GGUF[4] 工具)之前,这个模型可能无法在 CPU 上运行。

#24[5]:你需要拥有 TPU 或 NVIDIA/AMD 品牌的 GPU,且系统中必须装有 8 个此类设备。当前不支持 Apple silicon 设备(如 M1、M2、M3 等)。尽管 Jax 提供了一个 Metal 插件,让你可以在苹果芯片上运行 Jax(Accelerated JAX training on Mac[6]),但在使用 dm_haiku[7] 依赖时仍会遇到问题。即便克服了这些技术障碍,苹果芯片设备可能也没有足够的内存来运行如此庞大的 Grok-1 模型。

#25[8]:需要 8 个 GPU,每个 GPU 拥有 80GB 的显存,典型的选择是 A100 型号。即使是使用 4 个 NVIDIA 4090 显卡,也只能在 4 位量化的情况下勉强容纳模型的权重,而无法实际运行模型。此外,所需的硬件成本极高,单个 A100 的价格约为 12,000 美元,而一台配备 4 个 A100 GPU 的 NVIDIA DGX Station 的起价在 120,000 美元左右。因此,尽管技术上可行,但这样的配置对于大多数人来说是不切实际的。

下图是一组网络测试数据,从整体测试效果来看,这次开源的Grok-1可以说“比上不足,比下有余”——在各个测试集中呈现的效果要比GPT-3.5、70b的LLAMA2和Inflection-1要好,但距离Claude2和GPT-4仍然差了一大截。因Grok-1是xAI从零开始训练,在2023年10月就已经结束了预训练,且没有针对任何特定应用(如对话)进行微调,所以目前无法直接体验到对话的应用。

四、Sora

五、Meta:Llama 2

在这里插入图片描述

Meta联手微软开源了Llama 2,是一系列预训练和微调的大型语言模型(LLMs),一共有7B、13B、70B三个版本,Llama 2 的社区MIT许可证相当宽松,且可商用。相比于 Llama 1 ,Llama 2 的训练数据多了 40%,上下文长度也翻倍,并采用了分组查询注意力机制。具体来说,Llama 2预训练模型是在2 万亿的 token上训练的,精调 Chat 模型是在100 万人类标记数据上训练的。相关评测显示,70B模型与GPT-3.5-0301大致持平。
在这里插入图片描述

相关资源:-Llama-2-7b代码、Llama2-Chinese、llama-recipes、llama2官网

六、谷歌Gemini:Gemma

它采用Gemini同款技术架构,主打开源和轻量级,免费可用、模型权重开源、允许商用,同时笔记本可跑。
共有2B和7B两个版本,7B版本使用多头注意力机制,2B版本使用多查询注意力机制,Gemma 2B/7B分别使用了2T和6T token进行训练,主要来自网络文档、数学和代码,不过这些数据不是多模态的。据相关测试数据表明:性能全面超越开源标杆Llama 2;目前模型也同步上线Hugging Chat,可在线体验试玩。

关联资源:gemma、博客、博客2、Gemma代码

在这里插入图片描述

七、法国Mistral AI

八、国内的开源项目

关联资源:讯飞AI应用、Open-Sora社区

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

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

相关文章

【项目自我反思之vue的组件通信】

为什么子组件不能通过props实时接收父组件修改后动态变化的值 一、现象二、可能的原因1.响应式系统的限制2.异步更新队列3.父组件和子组件的生命周期4.子组件内部对 props 的处理 三、组件通信的几种场景(解决方案)1.子组件想修改父组件的数据2.子组件传…

【数据结构】猛猛干7道链表OJ

前言知识点 链表的调试技巧 int main() {struct ListNode* n1(struct ListNode*)malloc(sizeof(struct ListNode));assert(n1);struct ListNode* n2(struct ListNode*)malloc(sizeof(struct ListNode));assert(n2);struct ListNode* n3(struct ListNode*)malloc(sizeof(struc…

如何从零开始拆解uni-app开发的vue项目(一)

uni-app项目分析: 背景:最近接手一个前同事留下的半拉子项目,出拿过来觉得很简单;当我看到app.vue的时候很确定是vue项目,心里不怎么慌,果断安装node.js,然后就去npm ;安装VS code,事实并不是我期盼的那样,或者说根本就不能运行。 报错:应用vs code打开文件,输入命…

力扣每日一题 2024/3/23 统计桌面上的不同数字

题目描述 用例说明 思路讲解 给定整数n&#xff0c;找出循环十亿天后桌上的数字。可以先通过一天来找找规律。 第一天 n%i1 &#xff08;1<i<n&#xff09;只有n-1符合.加入桌面 第二天(n-1)%i1 &#xff08;1<i<n-1&#xff09;只有n-2符合 加入桌面 依次类推…

低代码开发平台开源:依靠科技力量实现数字化转型!

在竞争激烈的当今社会&#xff0c;数字化转型、流程化办公等字眼早已充斥在我们的职场生活中。虽然如此&#xff0c;但是我们依然要面临着这样一个现实问题&#xff1a;很多中小企业发展面临着资源有限、技术储备不足、人才短缺的现实问题&#xff0c;进入流程化办公困境依然明…

记录C++中,子类同名属性并不能完全覆盖父类属性的问题

问题代码&#xff1a; 首先看一段代码&#xff1a;很简单&#xff0c;就是BBB继承自AAA&#xff0c;然后BBB重写定义了同名属性&#xff0c;然后调用父类AAA的打印函数&#xff1a; #include <iostream> using namespace std;class AAA { public:AAA() {}~AAA() {}void …

145 Linux 网络编程1 ,协议,C/S B/S ,OSI 7层模型,TCP/IP 4层模型,

一 协议的概念 从应用的角度出发&#xff0c;协议可理解为“规则”&#xff0c;是数据传输和数据的解释的规则。 典型协议 传输层 常见协议有TCP/UDP协议。 应用层 常见的协议有HTTP协议&#xff0c;FTP协议。 网络层 常见协议有IP协议、ICMP协议、IGMP协议。 网络接口层 常…

NLP 笔记:LDA(训练篇)

1 前言&#xff1a;吉布斯采样 吉布斯采样的基本思想是&#xff0c;通过迭代的方式&#xff0c;逐个维度地更新所有变量的状态 1.1 举例 收拾东西 假设我们现在有一个很乱的屋子&#xff0c;我们不知道东西应该放在哪里&#xff08;绝对位置&#xff09;&#xff0c;但知道哪…

【排序算法】实现快速排序值(霍尔法三指针法挖坑法优化随即选key中位数法小区间法非递归版本)

文章目录 &#x1f4dd;快速排序&#x1f320;霍尔法&#x1f309;三指针法&#x1f320;挖坑法✏️优化快速排序 &#x1f320;随机选key&#x1f309;三位数取中 &#x1f320;小区间选择走插入&#xff0c;可以减少90%左右的递归&#x1f309; 快速排序改非递归版本&#x1…

设计模式及其在项目、框架中的应用

设计模式的作用&#xff1a; 1、类之间关系图&#xff0c;明确的角色及其关系、作用&#xff1b; 2、符合开闭原则&#xff0c;职责明确&#xff0c;并且开放的拓展点可以有效应对后期的变化。 &#xff08;一&#xff09;、责任链模式 适用场景&#xff1a; 在一个流程中&…

【QT入门】 Qt实现自定义信号

往期回顾&#xff1a; 【QT入门】图片查看软件(优化)-CSDN博客 【QT入门】 lambda表达式(函数)详解-CSDN博客 【QT入门】 Qt槽函数五种常用写法介绍-CSDN博客 【QT入门】 Qt实现自定义信号 一、为什么需要自定义信号 比如说现在一个小需求&#xff0c;我们想要实现跨ui通信&a…

Git 使用笔记

基本操作&#xff1a; 初始化 &#xff08;git init&#xff09; 使用背景和作用&#xff1a; 在本地建立一个文件夹后&#xff0c;基于这个文件夹进行git 操作&#xff0c;赋予git操作本文件夹的权限 。查看当前文件夹状态&#xff08;git status&#xff09; 每次打开文件夹…

环信新版单群聊UIKit集成指南——Android篇

前言 环信新版UIKit已重磅发布&#xff01;目前包含单群聊UIKit、聊天室ChatroomUIKit&#xff0c;本文详细讲解Android端单群聊UIKit的集成教程。 环信单群聊 UIKit 是基于环信即时通讯云 IM SDK 开发的一款即时通讯 UI 组件库&#xff0c;提供各种组件实现会话列表、聊天界…

机器学习:智能时代的核心引擎

目录 一、什么是机器学习 二、监督学习 三、无监督学习 四、半监督学习 五、强化学习 一、什么是机器学习 机器学习是人工智能的一个分支&#xff0c;它主要基于计算机科学&#xff0c;旨在使计算机系统能够自动地从经验和数据中进行学习并改进&#xff0c;而无需进行明确…

鸿蒙Harmony应用开发—ArkTS(stateStyles:多态样式)

Styles和Extend仅仅应用于静态页面的样式复用&#xff0c;stateStyles可以依据组件的内部状态的不同&#xff0c;快速设置不同样式。这就是我们本章要介绍的内容stateStyles&#xff08;又称为&#xff1a;多态样式&#xff09;。 概述 stateStyles是属性方法&#xff0c;可以…

CodeSys创建自定义的html5控件

文章目录 背景创建html5control.xml文件控件界面以及逻辑的实现使用的资源安装自定义的html5控件库 背景 查看官方的资料&#xff1a;https://content.helpme-codesys.com/en/CODESYS%20Visualization/_visu_html5_dev.html 官方的例子&#xff1a;https://forge.codesys.com/…

【机器学习入门 】逻辑斯蒂回归和分类

系列文章目录 第1章 专家系统 第2章 决策树 第3章 神经元和感知机 识别手写数字——感知机 第4章 线性回归 文章目录 系列文章目录前言一、分类问题的数学形式二、最大似然估计三、交叉熵损失函数四、多类别分类多类别逻辑斯蒂回归归一化指数函数交叉熵误差和均方误差的比较 五…

MySQL、Oracle的时间类型字段自动更新:insert插入、update更新时,自动更新时间戳。设置自增主键id,oracle创建自增id序列和触发器

1. MySQL 支持设置自增id的字段类型&#xff1a;int、bigint、double等数值类型&#xff0c;一般用int、bigint支持设置自动更新时间的字段类型&#xff1a;datetime、timestamp下面sql中的now()函数可以用current_timestamp()替代 1.1. 不指定秒精度 drop table if exists …

【蓝桥杯-单片机】基于定时器的倒计时程序设计

基于定时器的倒计时程序 题目如下所示&#xff1a; 实现过程中遇到的一些问题 01 如何改变Seg_Buf数组的值数码管总是一致地显示0 1 2 3 4 5 首先这个问题不是在main.c中关于数码管显示部分的逻辑错误&#xff0c;就是发生在数码管的底层错误。 检查了逻辑部分&#xff…

【C++庖丁解牛】二叉搜索树(Binary Search Tree,BST)

&#x1f341;你好&#xff0c;我是 RO-BERRY &#x1f4d7; 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f384;感谢你的陪伴与支持 &#xff0c;故事既有了开头&#xff0c;就要画上一个完美的句号&#xff0c;让我们一起加油 目录 1. 二叉搜索树概念2. 二叉…