首页 > 其他分享 >白嫖一个属于你的私有大模型

白嫖一个属于你的私有大模型

时间:2024-07-19 15:30:03浏览次数:17  
标签:属于 私有 模型 AI int buffer str ChatGLM

最近国内的大模型可谓是遍地开花,你瞧瞧:

这么火,我也想搞一个试试,于是就有了这篇文章!对,你没看错,就是白嫖。

毕竟人家清华都开源了,哈哈哈hoho~~

先把开源地址贴一下,老铁们可以自行去瞧一瞧:

https://github.com/THUDM/ChatGLM-6B
https://huggingface.co/THUDM/chatglm-6b

ChatGLM-6B 是一个开源的、支持中英双语问答的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。
结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。
ChatGLM-6B 使用了和 ChatGLM 相同的技术,针对中文问答和对话进行了优化。
经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答。

最重要的一点,人家遵循Apache-2.0协议。

下面开干吧!

准备机器

毕竟是要搭建可以跑起来的环境,机器肯定是必不可少的。好在阿里云有白嫖的使用机器。

  1. 进去阿里云免费试用活动页面 https://free.aliyun.com/

  2. 申请试用PAI-DSW资源,点击页面上的【立即试用】就可以了。(我因为已经试用了,所以显示的是“已试用”)

  3. 参考试用教程创建PAI平台示例。或者接着往下看

  4. 在阿里云页面搜索PAI,点击立即开通,然后进入到PAI控制台。

    开通的时候,有些可选的资源(比如NAS存储等),我因为没有,所以都没选。

  5. 进入控制台后,选择创建DSW实例

创建的时候,资源选择GPU资源,然后选择 支持资源包抵扣的那款 ecs.gn6v-c8g1.2xlarge

如果资源组下拉框是空白的,那么你需要在 上图左侧【工作空间详情】菜单,配置一下计算资源。

配置的按钮在工作空间详情页面右边【资源管理】,选择public-cluster 即可

镜像选择pytorch1.12,点击创建完成,机器就白嫖好了。

下载大模型

前面实例创建完之后,点击【打开】,会进入到机器的web控制台(Data Science Workshop)。

在这里,可以在Terminal里面操作了。

  1. 先执行安装git相关命令

    sudo apt-get update

    sudo apt-get install git-lfs

  2. 下载模型仓库(因为模型比较大,所以下载下来再执行方便些)

    git clone git@hf.co:THUDM/chatglm-6b

  3. 下载模型运行代码

    git clone https://github.com/THUDM/ChatGLM-6B.git

部署启动

部署前修改源码

因为我们已经把模型下载下来了,部署前,需要把代码中的模型路径改成你自己的。

比如我们的模型下载在/mnt/workspace/chatglm-6b,我们就需要把 ChatGLM-6B 下的两个文件路径都改一下:

  • cli_demo.py:命令行交互界面
  • web_demo.py:Web图形交互界面

启动

进入到ChatGLM-6B目录,执行启动命令即可

python web_demo.py

命令执行成功,会提示。就表示启动成功了。

Running on local URL: http://127.0.0.1:7860

To create a public link, set share=True in launch().

如果想外网访问,就还需要改一点源码。在web_demo.py文件最末尾,设置share=True

修改前:demo.queue().launch(share=False, inbrowser=True)

修改后:demo.queue().launch(share=True, inbrowser=True)

改完后,保存,再次启动,会打印出Running on public URL:XXXX,通过这个链接即可打开体验。

启动中如果遇到缺少一些module,可通过【pip install xxx】进行安装,安装完之后再执行启动命令

使用效果

使用效果的话,只能说还有相当长的路需要走。

答的是有板有眼的!但是,实际上…

我把完整的代码贴在下面,大家可自行体验评论:

import java.util.concurrent.Thread;
import java.util.concurrent.Executors;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors.newSingleThreadExecutor();
import java.util.concurrent.Future;
public class TwoThreads交替打印String {
    public static void main(String[] args) {
        int numThreads = 2;
        String str = "Hello, World!";
        int index = 0;
        ExecutorService executor = Executors.newSingleThreadExecutor();
        List<Future<void>> futures = new ArrayList<>();
        for (int i = 0; i < numThreads; i++) {
            int size = str.length();
            int start = index * size + i;
            int end = start + size;
            int buffer = start * size + size;
            // 打印前一个线程的输出
            futures.add(executor.submit(() -> {
                Thread thread = new Thread(new MyThread(str, buffer));
                thread.start();
            }));
            // 打印当前线程的输出
            futures.add(executor.submit(() -> {
                Thread thread = new Thread(new MyThread(str, buffer));
                thread.start();
            }));
            // 等待当前线程完成
            thread.join();
            // 打印下一个线程的输出
            futures.add(executor.submit(() -> {
                Thread thread = new Thread(new MyThread(str, buffer));
                thread.start();
            }));
            index += size;
        }
        // 打印所有线程的输出
        for (Future<void> future : futures) {
            future.get();
        }
        executor.shutdown();
    }
    private static class MyThread implements Runnable {
        private final String str;
        private final int buffer;
        public MyThread(String str, int buffer) {
            this.str = str;
            this.buffer = buffer;
        }
        @Override
        public void run() {
            for (int i = 0; i < buffer; i++) {
                System.out.print(str.charAt(i) + " ");
            }
        }
    }
}

如何系统的去学习大模型LLM ?

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料 包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来

所有资料 ⚡️ ,朋友们如果有需要全套 《LLM大模型入门+进阶学习资源包》,扫码获取~

标签:属于,私有,模型,AI,int,buffer,str,ChatGLM
From: https://blog.csdn.net/2401_85375151/article/details/140550405

相关文章

  • LLM 大模型学习必知必会:大模型基础知识篇
    魔搭ModelScope开源的LLM模型魔搭ModelScope欢迎各个开源的LLM模型在社区上做开源分享。目前社区上已经承载了来自各个机构贡献的不同系列的LLM模型。并且社区的开发者也在这些模型的基础上,贡献了许多创新应用,并在ModelScope的创空间上进行分享。本专题初步梳......
  • Arena Learning: 构建大语言模型的数据飞轮
    大语言模型(LLMs)正在快速发展,但如何有效评估和持续改进这些模型仍面临巨大挑战。本文提出了一种名为ArenaLearning的创新方法,通过模拟聊天机器人竞技场来构建高效的数据飞轮,从而实现LLMs的持续优化。让我们深入了解这种方法的核心思想和关键技术。1.背景与挑战近年......
  • Spring AI(使用Ollama大模型进行AI验证)
    接上篇:SpringAI(大模型工具Ollama介绍)1、Ollama大模型代码验证pom.xml引入jar<!--spring-ai-ollama的starter依赖,启动依赖--><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-ollama-......
  • 神仙级AI大模型入门教程(非常详细),从零基础入门到精通,从看这篇开始!
    一.初聊大模型1.为什么要学习大模型?在学习大模型之前,你不必担心自己缺乏相关知识或认为这太难。我坚信,只要你有学习的意愿并付出努力,你就能够掌握大模型,并能够用它们完成许多有意义的事情。在这个快速变化的时代,虽然新技术和概念不断涌现,但希望你能静下心来,踏实地学习。一......
  • 大模型的优势与挑战?普通人学习大模型应该怎么学?
    近年来,人工智能领域掀起了一股“大模型”热潮,吸引了无数研究者和企业关注。所谓“大模型”,是指那些参数量巨大、结构复杂人工智能模型,如谷歌BERT、OpenAI的GPT等。这些模型在自然语言处理、计算机视觉等任务中取得了显著成果,引领着人工智能技术发展。那么,这些“大模型”究竟......
  • 降低大模型推理87%时延!华为云论文入选顶会USENIX ATC'24
    本文分享自华为云社区《降低大模型推理87%时延!华为云论文入选顶会USENIXATC'24》,作者:华为云头条。近日,计算机系统领域顶会USENIXATC2024在美国加州圣克拉拉召开,华为云EMS团队的论文《Cost-EfficientLargeLanguageModelServingforMulti-turnConversationswithCachedAt......
  • 使用Pytorch中从头实现去噪扩散概率模型(DDPM)
    扩散模型通常是一种生成式深度学习模型,它通过学习去噪过程来创建数据。扩散模型有许多变体,其中最流行的是条件文本模型,能够根据提示生成特定的图像。某些扩散模型(如Control-Net)甚至能将图像与某些艺术风格融合。在本文中,我们将构建基础的无条件扩散模型,即去噪扩散概率模型(DDPM)。......
  • Spring AI(大模型工具Ollama介绍)
    接上篇:SpringAI(多模态) 1、大模型工具Ollama介绍官网:https://ollama.com/2、大模型工具Ollama下载官网下载地址:https://ollama.com/download3、大模型工具Ollama安装4、大模型工具Ollama运行5、大模型工具Ollama默认端口netstat-ano|findstr11434 ......
  • Pytorch模型文件`*.pt`与`*.pth` 的保存与加载
    1.*.pt文件.pt文件保存的是模型的全部,在加载时可以直接赋值给新变量model=torch.load("filename.pt")。具体操作:(1).模型的保存torch.save(model,"Path/filename.pt")(2).模型的加载model=torch.load("filename.pt")注意:torch.load()的参数使用字符串参数。2..p......
  • 转行AI大模型开发难吗?怎么学才能找到工作?
    前言转行AI大模型开发难吗?怎么学才能找到工作?这应该是所有新人都会面临的问题,所以我结合自己的经历,做了一些总结和学习方法,希望能对大家有所帮助。1、AI大模型开发基础理论知识:AI大模型开发理论知识是开展工作的理论依据和支撑,是开发很重要的阶段必须掌握的技能。机器学......