当前位置:   article > 正文

AI开源概览及工具使用_开源ai

开源ai

一、前言

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

在这里插入图片描述

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

二、开源版「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-博客问题讨论JAXJAX 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

根据网络相关经验显示, 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-Chinesellama-recipesllama2官网

六、谷歌Gemini:Gemma

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

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

在这里插入图片描述

七、法国Mistral AI

八、国内的开源项目

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

1)中科院文献chatGPT

目前,「中科院学术专业版 ChatGPT」 已经发布至 3.6* 版本,该版本充分满足本科生、硕士、博士和科研工作者的写作需求,提升学术效率。其中内置的工具,包括但不限于以下这些:

学术论文一键润色、语法错误查找;
中英文快速互译;
一键代码解释;
快捷键自定义;
高阶实验模块化设计;
项目源代码自我剖析;
智能读取论文并生成摘要。

在这里插入图片描述

cd /d h:
git clone --depth=1 https://github.com/binary-husky/gpt_academic.git
cd gpt_academic
H:\china_gpt\gpt_academic>dir /D
 驱动器 H 中的卷是 科技与共享中心
 卷的序列号是 043B-D05A

 H:\china_gpt\gpt_academic 的目录

[.]                   .gitignore            core_functional.py    Dockerfile            multi_language.py     [shared_utils]        version
[..]                  check_proxy.py        crazy_functional.py   [docs]                README.md             [tests]
.gitattributes        colorful.py           [crazy_functions]     LICENSE               [request_llms]        [themes]
[.github]             config.py             docker-compose.yml    main.py               requirements.txt      toolbox.py
              16 个文件        242,496 字节
               9 个目录 479,930,814,464 可用字节
#安装依赖
python3 -m pip install -r requirements.txt
Collecting gradio==3.32.10 (from -r requirements.txt (line 1))
  Downloading https://public.agent-matrix.com/publish/gradio-3.32.10-py3-none-any.whl (11.5 MB)
     ---------------------------------------- 11.5/11.5 MB 10.7 MB/s eta 0:00:00
Collecting fastapi==0.110 (from -r requirements.txt (line 2))
  Obtaining dependency information for fastapi==0.110 from https://files.pythonhosted.org/packages/f0/f7/ea860cb8aa18e326f411e32ab537424690a53db20de6bad73d70da611fae/fastapi-0.110.0-py3-none-any.whl.metadata
  Downloading fastapi-0.110.0-py3-none-any.whl.metadata (25 kB)
Collecting gradio-client==0.8 (from -r requirements.txt (line 3))
  Obtaining dependency information for gradio-client==0.8 from https://files.pythonhosted.org/packages/c4/e7/5da3a4b6108f5e2e43d034d7923c3562f93beba8f3d13a0ec7c201a6f33c/gradio_client-0.8.0-py3-none-any.whl.metadata
  Downloading gradio_client-0.8.0-py3-none-any.whl.metadata (7.1 kB)
Collecting pypdf2==2.12.1 (from -r requirements.txt (line 4))
  Obtaining dependency information for pypdf2==2.12.1 from https://files.pythonhosted.org/packages/2e/40/4f997b7cf72d89bb5aafd57b01dfa0be4e9560c8e5b993fde3986b3904f9/pypdf2-2.12.1-py3-none-any.whl.metadata
  Downloading pypdf2-2.12.1-py3-none-any.whl.metadata (6.6 kB)
  ……
#配置
#打开项目目录下的config.py文件
API_KEY = "此处填API密钥"    # 可同时填写多个API-KEY,用英文逗号分割
USE_PROXY = False  #如果用openai,这里需修改为true
if USE_PROXY:
proxies = {
        #          [协议]://  [地址]  :[端口]
        "http":  "socks5h://localhost:11284",  # 魔法软件/代理工具使用的协议,或使用:https://xinghuo.xfyun.cn/sparkapi、https://maas.aminer.cn/overview
        "https": "socks5h://localhost:11284",  # 魔法软件/代理工具使用的端口
    }
API_URL_REDIRECT = {"https://api.openai.com/v1/chat/completions":"https://api.onechat.fun/v1/chat/completions"}
#验证
python check_proxy.py  #
def check_proxy(proxies):
    import requests
    try:
        response = requests.get("https://ipapi.co/json/", proxies=proxies, timeout=4, verify=False)
        data = response.json()
        country = data['country_name']
        # city = data['city']
        result = f"代理所在地:{country}"
        print(result)
        return result
    except:
        result = "代理所在地查询超时,代理可能无效"
        print(result)
        return result


if __name__ == '__main__':
    from config import proxies
    check_proxy(proxies)
#运行程序,core_functional.py有功能提示词
python main.py
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64

说明部署过程中问题参看1

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/745972
推荐阅读