利用docker一键部署LLaMa2到自己的Linux服务器支持视觉识别支持图文作答支持中文,有无GPU都行、可以指定GPU数量、支持界面对话和API调用,离线本地化部署包含模型权重合并

利用docker一键部署LLaMa2到自己的Linux服务器支持视觉识别支持图文作答支持中文,有无GPU都行、可以指定GPU数量、支持界面对话和API调用,离线本地化部署包含模型权重合并。两种方式实现支持界面对话和API调用,一是通过搭建text-generation-webui。二是通过llamma.cpp转换模型为转换为 GGUF 格式,使用 quantize 量化模型,使用 llama.cpp 运行 GGUF 模型。

在这里插入图片描述
在这里插入图片描述

支持图文,只需要在上一篇一键部署的基础上,加上一个一个参数即可,命令如下:

docker exec -u root -it llama2 bash
cd /root/llama.cpp-b2234/

# 如果没有好的硬件资源就用量化模型
./server -m /root/meta-llama/Llama-2-7b-chat-hf/ggml-model-q4_0.gguf -c 2048 --host 0.0.0.0 --port 9999

# 如果有显卡且内存大于16GB,就使用原始模型
./server -m /root/meta-llama/Llama-2-7b-chat-hf/ggml-model-f16.gguf -c 2048 --host 0.0.0.0 --port 9999

# 如果没有好的硬件资源就用量化模型,支持图文
./server -m /root/meta-llama/Llama-2-7b-chat-hf/ggml-model-q4_0.gguf -c 2048 --host 0.0.0.0 --port 9999 --mmproj /root/meta-llama/Llama-2-7b-chat-hf/mmproj-model-f16.gguf

# 如果有显卡且内存大于16GB,就使用原始模型,支持图文
./server -m /root/meta-llama/Llama-2-7b-chat-hf/ggml-model-f16.gguf -c 2048 --host 0.0.0.0 --port 9999 --mmproj /root/meta-llama/Llama-2-7b-chat-hf/mmproj-model-f16.gguf



利用docker一键部署LLaMa到自己的Linux服务器,有无GPU都行、可以指定GPU数量、支持界面对话和API调用,离线本地化部署包含模型权重合并

点击查看

支持同时启动 web 访问 和 API 访问。

浏览器访问:

http://127.0.0.1:9999/

使用 curl 测试 API 服务:

curl -X 'POST' \
  'http://localhost:9999/v1/chat/completions' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "messages": [
    {
      "content": "You are a helpful assistant.",
      "role": "system"
    },
    {
      "content": "Write a poem for Chinese?",
      "role": "user"
    }
  ]
}'

{"id":"chatcmpl-c3eec466-6073-41e2-817f-9d1e307ab55f","object":"chat.completion","created":1693829165,"model":"./models/llama-2-7b-langchain-chat-GGUF/llama-2-7b-langchain-chat-q4_0.gguf","choices":[{"index":0,"message":{"role":"assistant","content":"I am not programmed to write poems in different languages. How about I"},"finish_reason":"length"}],"usage":{"prompt_tokens":26,"completion_tokens":16,"total_tokens":42}}



要使用不同的模型,只需要在前面的步骤 替换 不同的模型名称,或者 对下载的模型进行 量化 之后进行使用,简单几行命令完成。

下面看下中国相关组织进行模型优化和中文支持的情况:


license: openrail

datasets:

  • LinkSoul/instruction_merge_set
    language:
  • zh
  • en
    widget:
  • text: “[INST] <>\nYou are a helpful, respectful and honest assistant. Always answer as helpfully as possible, while being safe. Your answers should not include any harmful, unethical, racist, sexist, toxic, dangerous, or illegal content. Please ensure that your responses are socially unbiased and positive in nature.\n If a question does not make any sense, or is not factually coherent, explain why instead of answering something not correct. If you don’t know the answer to a question, please don’t share false information.\n<>\n\n用中文回答,When is the best time to visit Beijing, and do you have any suggestions for me? [/INST]”
    example_title: “北京”
  • text: “[INST] <>\nYou are a helpful, respectful and honest assistant. Always answer as helpfully as possible, while being safe. Your answers should not include any harmful, unethical, racist, sexist, toxic, dangerous, or illegal content. Please ensure that your responses are socially unbiased and positive in nature.\n If a question does not make any sense, or is not factually coherent, explain why instead of answering something not correct. If you don’t know the answer to a question, please don’t share false information.\n<>\n\n用英文回答,特朗普是谁? [/INST]”
    example_title: “特朗普是谁”

Chinese Llama 2 7B

全部开源,完全可商用的中文版 Llama2 模型及中英文 SFT 数据集,输入格式严格遵循 llama-2-chat 格式,兼容适配所有针对原版 llama-2-chat 模型的优化。

在这里插入图片描述

基础演示

在这里插入图片描述

在线试玩

Talk is cheap, Show you the Demo.

资源下载

我们使用了中英文 SFT 数据集,数据量 1000 万。

快速测试

from transformers import AutoTokenizer, AutoModelForCausalLM, TextStreamer

model_path = "LinkSoul/Chinese-Llama-2-7b"

tokenizer = AutoTokenizer.from_pretrained(model_path, use_fast=False)
model = AutoModelForCausalLM.from_pretrained(model_path).half().cuda()
streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)

instruction = """[INST] <<SYS>>\nYou are a helpful, respectful and honest assistant. Always answer as helpfully as possible, while being safe.  Your answers should not include any harmful, unethical, racist, sexist, toxic, dangerous, or illegal content. Please ensure that your responses are socially unbiased and positive in nature.

            If a question does not make any sense, or is not factually coherent, explain why instead of answering something not correct. If you don't know the answer to a question, please don't share false information.\n<</SYS>>\n\n{} [/INST]"""

prompt = instruction.format("用英文回答,什么是夫妻肺片?")
generate_ids = model.generate(tokenizer(prompt, return_tensors='pt').input_ids.cuda(), max_new_tokens=4096, streamer=streamer)

相关项目

项目协议

Apache-2.0 license


中文版开源Llama 2同时有了语言、多模态大模型,完全可商用

可以说,AI 初创公司 LinkSoul.Al 的这些开源项目让海外开源大模型在国内的普及和推广速度与国际几乎保持了一致。

7 月 19 日,Meta 终于发布了免费可商用版本 Llama 2,让开源大模型领域的格局发生了巨大变化。

Llama 2 模型系列包含 70 亿、130 亿和 700 亿三种参数变体,相比上一代的训练数据增加了 40%,在包括推理、编码、精通性和知识测试等许多外部基准测试中展示出了优越的表现,且支持多个语种。

美中不足的是,Llama 2 语料库仍以英文(89.7%)为主,而中文仅占据了其中的 0.13%。这导致 Llama 2 很难完成流畅、有深度的中文对话。
在这里插入图片描述

中文版 Llama2 开源大模型创下社区「首个」

好消息是,在 Meta Al 开源 Llama 2 模型的次日,开源社区首个能下载、能运行的开源中文 LLaMA2 模型就出现了。该模型名为「Chinese Llama 2 7B」,由国内 AI 初创公司 LinkSoul.Al 推出。
在这里插入图片描述
仅仅两周时间,该项目在 Hugging Face 上收获过万次下载,并在 GitHub 上获得了 1200 Stars。

据项目介绍,Chinese-Llama-2-7b 开源的内容包括完全可商用的中文版 Llama2 模型及中英文 SFT 数据集,输入格式严格遵循 llama-2-chat 格式,兼容适配所有针对原版 llama-2-chat 模型的优化。

项目地址:https://github.com/LinkSoul-AI/Chinese-Llama-2-7b
在这里插入图片描述
目前,普通用户可以在线体验「Chinese Llama-2 7B Chat」。

试用地址:https://huggingface.co/spaces/LinkSoul/Chinese-Llama-2-7b

比如你能够以英文提问,并让它用中文回答:

在这里插入图片描述
或者直接中文对话,它也能以中文实现准确、流畅的回答:

在这里插入图片描述

主打的就是一个中英文灵活切换:

在这里插入图片描述
有人已上手,表示运行良好:
在这里插入图片描述
在这里插入图片描述
语言模型之外,继续开源两个中文多模态大模型

在推出首个开源 Llama2 中文语言大模型之后,LinkSoul.AI 团队将目光投向了目前全球尚外于发展初期的语音文本多模态大模型和图文大模型,并再次率先开源了相关的模型,提供国内开发者免费下载、自由商用。

本次开源的两个中文多模态大模型,包括如下:

由 LinkSoul.Al 团队牵头,北京智源人工智能研究院、北京大学、零一万物等国内头部顶尖人工智能团队通力合作的第一个支持中英双语、语音到文本的多模态开源对话模型 (LLaSM)
第一个基于 Llama 2 的支持中英文双语视觉到文本的多模态模型 (Chinese-LLaVA)
两个模型都基于 Apache-2.0 协议开源,完全可商用。

LinkSoul.Al 开发团队负责人史业民表示,「放眼全球,目前如何让『模型听世界、看世界』仍然没有可靠的开源模型可用。我们希望能够尽微薄之力,让中国大模型生态距离国际领先标准再近一些。」

语音到文本多模态开源对话模型 (LLaSM)

LinkSoul.AI 开源了可商用的中英文双语语音 - 语言助手 LLaSM 以及中英文语音 SFT 数据集 LLaSM-Audio-Instructions。LLaSM 是首个支持中英文语音 - 文本多模态对话的开源可商用对话模型。

相较以往的传统方案,LLaSM 能够通过便捷的语音输入的交互方式,大幅改善过往以文本为输入的大模型的使用体验,同时有效避免基于 ASR 解决方案的繁琐流程以及可能引入的错误。
在这里插入图片描述
项目地址:https://github.com/LinkSoul-AI/LLaSM
数据集: https://huggingface.co/datasets/LinkSoul/LLaSM-Audio-Instructions
下面是 LLaSM 的一个语音 - 文本对话示例。

在这里插入图片描述

LLaSM 也有相应的文献介绍。
在这里插入图片描述

模型、代码和数据地址:https://huggingface.co/spaces/LinkSoul/LLaSM

图像到文本多模态开源对话模型 (Chinese LLaVA)

LinkSoul.AI 开源了可商用的中英文双语视觉 - 语言助手 Chinese-LLaVA 以及中英文视觉 SFT 数据集 Chinese-LLaVA-Vision-Instructions,支持中英文视觉 - 文本多模态对话的开源可商用对话模型。
在这里插入图片描述

项目地址:https://github.com/LinkSoul-AI/Chinese-LLaVA
数据集: https://huggingface.co/datasets/LinkSoul/Chinese-LLaVA-Vision-Instructions
下面是 Chinese LLaVA 的一个视觉 - 文本对话示例。

在这里插入图片描述
模型、代码和数据地址:https://huggingface.co/spaces/LinkSoul/Chinese-LLaVa

多模态模型统一架构解读

大语言模型在很多方面展现了强大的能力,也在一定程度上让人们看到了实现通用人工智能(AGI)的希望。多模态模型提供了不同模态之间信息交互的渠道,使得视觉信息、语音信息等能和文本语义信息互为补充,让大语言模型能听到世界、看到世界,从而向 GI 又前进一步。

因此,训练多模态模型的重点是如何融合互补不同模态间的信息,并充分利用现有大语言模型能力。LinkSoul.AI 开源的语音 - 语言多模态模型和视觉 - 语言多模态模型统一采用下图所示框架。

在这里插入图片描述

首先通过模态编码器编码不同模态数据特征,紧接着在多模态特征对齐的预训练阶段学习模态适配器(Adaptor),将不同模态的输入特征与大语言模型对齐。

然后在端到端的有监督微调(SFT)阶段使用不同模态的指令数据集对模态适配器和大语言模型进行微调。在有监督微调阶段,同时使用跨模态(cross-modal)指令数据和仅文本(text-only)指令数据进行多任务训练。LinkSoul.AI 团队认为多任务训练有助于避免模型产生模态依赖和偏见,并且可以自然地用一个模型实现多种模态。

LinkSoul.AI 团队接下来的工作会把语音 - 视觉 - 文本进一步融合,让大语言模型同时支持语音和视觉模态。

预训练阶段

预训练阶段将模态编码器和大语言模型参数都冻结,使用跨模态的语音 / 视觉 - 文本对进行 Adaptor 的训练,优化目标为对输入的指令(instructions)生成相应的回复(responses)。

具体来讲,对于语音模态,采用 Whisper 作为特征编码器,冻结 Whisper [5] 并提取音频输入的特征。使用公开的中英文自动语音识别(ASR)数据集 Aishell [1]、 LibriSpeech [2]、Magicdata [3] 和 Primewords [4]。

对每个数据样本(audio、text_label)依据对应语言随机从预训练语音指令表(见第三节数据部分)中选取一个指令,组成(audio,instruct,text_label)格式的数据,并在训练过程中预测 text_label。

对于视觉模态,采用 CLIP [6] 作为图片特征提取器,并使用 mBART [8] 对 LLaVA [7] 开源的视觉预训练数据进行翻译汉化,生成中文图片文本对。在预训练阶段同时使用中英文数据进行训练,从而让模型更好的支持中文。

有监督微调

预训练阶段将不同模态的特征和大语言模型对齐,有监督微调阶段则仅冻结模态编码器权重,将模态适配器和大语言模型参数打开,使用跨模态指令数据进行微调。

针对目前几乎没有公开语音多模态指令数据这一问题,基于公开数据集 WizardLM [9]、ShareGPT [10]、GPT-4-LLM [11] 构造语音 - 文本多模态指令数据集 LLaSM-Audio-Instructions。以语音输入作为指令,并预测对应的文本输出。

对于视觉模态,同样先通过 mBART [8] 对 LLaVA [7] 开源的视觉指令数据集进行翻译汉化,生成中文的视觉指令数据集,然后类似地进行训练。

数据集

模态转换预训练数据集

先来看 Audio。语音多模态预训练数据集采用公开中英文自动语音识别(ASR)数据集 Aishell [1]、LibriSpeech [2]、Magicdata [3] 和 Primewords [4]。

同时构造如下指令集,对每个(audio、text_label)样本依据对应语言随机选择一条指令构造数据样本(instruction、audio、text_label)。
在这里插入图片描述
表 1:英文简单指令集
在这里插入图片描述
表 2:中文简单指令集

然后是 Vision。对于视觉模态,采用 LLaVA [7] 开源的视觉预训练数据,通过 mBART [8] 翻译进行汉化,生成中文图片文本对,以提升模型的中文能力。

指令微调数据集

同样先来看 Audio。在构建音频数据集的过程中,首先仔细过滤所有对话数据,通过删除那些不适合发声的对话,包括代码、符号、URL 和其他不可读的文本。然后,为确保数据质量,每轮对话中聊天机器人的答案再次被过滤,那些不包含有价值信息的内容将被丢弃。最后,使用 Microsoft Azure [12] 语音合成 API 来生成语音数据。

然后是 Vision。对于视觉模态,采用 LLaVA [7] 开源的视觉指令数据集,通过 mBART [8] 进行汉化,生成中文多模态指令数据,使得模型能够具有中文视觉指令执行能力。

为了便于开源社区快速感受多模态大模型的能力,以及共同推进多模态大模型的研究进展,训练用到的数据在项目中开源,并提供 Hugging Face 仓库下载。

对于 LinkSoul.AI 团队而言,这两个开源可商用的多模态大模型不仅为大模型生态带来了语音和视觉多模态能力,也在大模型多语言方面做出了贡献。

此外在商用场景上,该团队推出的模型都允许完全免费商用,这对于国内个人开发者和初创公司也具有非凡的价值。


Sealos 国内集群正式上线,可一键运行 LLama2 中文版大模型!
2023 年 7 月 19 日,MetaAI 宣布开源旗下的 LLama2 大模型,Meta 首席科学家、图灵奖得主 Yann LeCun 在推特上表示 Meta 此举可能将改变大模型行业的竞争格局。一夜之间,大模型格局再次发生巨变。
在这里插入图片描述
不同于 LLama,LLama2 免费可商用!

LLama2 的能力在 GPT-3 ~ GPT-3.5 之间,对于关注数据隐私的企业来说,简直太香了!

虽然 LLama2 目前还不支持中文,但国内开源大模型爱好者已经训练出了中文模型,并且和原版模型完全兼容,大家可以放心白嫖了。

中文版 Llama2 模型链接:https://github.com/LinkSoul-AI/Chinese-Llama-2-7b

解决了中文版的问题,现在还有另外一个问题。很多小伙伴都没有 GPU,要是能在 CPU 上运行就好了!

问题也不大,利用 GGML 机器学习张量库就能构建出在 CPU 上运行的中文版模型,这也是 llama.cpp 背后的核心技术。

官方仓库也给出了转换步骤:
在这里插入图片描述

太麻烦了,能不能再简单点?

能!

有社区小伙伴已经转换好了模型并上传到了 Hugging Face,咱们直接拿来主义:https://huggingface.co/soulteary/Chinese-Llama-2-7b-ggml-q4

众所周知,国内访问大多数海外网站都是需要魔法的,Hugging Face 也不例外。对于没有魔法的同学来说,还能不能再简单点?

能!

直接通过以下链接打开 Text generation web UI 的应用部署模板:

https://cloud.sealos.top/?openapp=system-template%3FtemplateName%3Dllama2-chinese
然后直接点击「部署应用」就完工了,非常简单,没有任何多余的操作。

Text generation web UI
给大家介绍一下 Text generation web UI,这是一个大语言模型启动器,它的终极目标是在 AI 对话领域对标 Stable Diffusion WebUI。引用 GitHub 原文:

A gradio web UI for running Large Language Models like LLaMA, llama.cpp, GPT-J, OPT, and GALACTICA.

Its goal is to become the AUTOMATIC1111/stable-diffusion-webui of text generation.

它可以加载几乎所有的主流模型(支持 llama.cpp 模型),并且在本地运行他们。语言模型能做什么,你就能体验到什么,可以当成离线版 ChatGPT 来使用。再加上 ChatGPT 在国内的审查问题,以及信息泄露风险,客制化的本地模型几乎提供了无限可能。

在这里插入图片描述

值得一提的是,它还支持通过 API 来进行调用,同时还提供插件对齐 OpenAI 的 API,你可以将其接入任意套壳 GPT 应用中。

在这里插入图片描述
上面的应用模板就是用来部署 Text generation web UI 的。

Sealos 国内集群
今年 6 月份,Sealos 正式上线了海外集群(https://cloud.sealos.io),虽然也向国内用户开放,但其机房在新加坡,国内部分线路不太友好。国内很多用户的需求比较特殊,必须要使用魔法,海外集群正好可以满足需求,至于线路到国内是否友好并不是非常重要。

但大部分国内用户的需求还是要保证线路稳定,使用海外集群就有点力不从心了。为了满足国内用户的需求,如今我们正式上线了国内集群(https://cloud.sealos.top),与海外集群功能一致。除此之外,国内集群还新增了一项功能:通过共享存储来加载主流的大模型文件(目前只加载了 LLama2 中文模型)。上面的应用模板会一键部署 Text generation web UI,并自动挂载大模型共享存储。我们再来回顾一下:

首先直接通过以下链接打开 Text generation web UI的应用部署模板:

https://cloud.sealos.top/?openapp=system-template%3FtemplateName%3Dllama2-chinese
然后直接点击「部署应用」,部署完成后跳转到应用详情页面,点击外网地址即可打开 Text generation web UI 的 Web 界面:

在这里插入图片描述
进入模型选择界面,可以看到目前只有 LLama2 中文模型可供选择:

在这里插入图片描述

来测试一下:

在这里插入图片描述

回复速度还可以,毕竟 8 核 CPU,自己玩玩还是没问题的。如果对性能有更高的需求,使用GPU。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码讲故事

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值