【从零到一,如何搭建本地AI大模型】

摘要:

本文主要记录这一段时间对本地大模型搭建的心得。
作为一个资深程序员,在AI席卷全球的时候,深深感觉到了一丝危机感,不禁有一个想法不断在脑海闪现:我会不会真的哪一天被AI给取代了?

从哪入手

程序员出生的我,掌握了很多语言,从前端到数据库,再到运维,基本都能一个人搞定,所以,我对搭建一个AI程序还是很自信的。
于是,我开始研究各个比较火的大模型:Chatgpt3.5、chatgpt4.0、chatgpt4o、llama、通义千问、豆包、等等。
发现他们的api从以前的不收费到现在的慢慢开始收费,我相信,后面肯定会收费的。于是,我就有了搭建本地大模型的方法,用别人的再爽,那也是别人的,万一哪天,别人宕机了,或者涨价了,你是用还是不用呢?

调研本地安装方法

当有了搭建的想法之后,就是落地了。怎么安装本地大模型呢?于是各种搜索,,,,挺费时间的,还需要实践。不得不说,你们运气真好,碰到我了。
经过实践之后,我发掘了两套部署方式:

1、LmStudio ,这个简单,把这个工具下载下来,然后,再工具里面下载大模型就行了。

1.1工具下载地址:https://lmstudio.ai/

下载完之后,直接安装就行了。
打开之后的界面是这个样子:
在这里插入图片描述

1.2 这里需要点左边最后一个文件夹,修改一下你模型下载的地址,不然你下载的模型都会默认在C盘。

在这里插入图片描述

1.3 然后就是下载大模型了

在主页,你可以选择你要下载的大模型,然后下载。
下载半天你会发现,下载不了,爆红了:
在这里插入图片描述
此时不要着急,找到它下载的配置文件,一般在:C:\Users\你的电脑名称.cache\lm-studio。
打开下面的文件:
在这里插入图片描述
把所有的:huggingface.co换成:hf-mirror.com
保存后,重新打开LmStudio,点try_resume,发现可以下载了。
在这里插入图片描述
下载完之后,你就可以用啦。

2、ollama,这个稍微有点复杂

2.1 首先下载这个软件

地址是:https://ollama.com/download

下载完之后,安装。
这个是没有桌面快捷方式的,看到这个小猪就算成功:
在这里插入图片描述
安装完之后,配置环境变量,这个在我的电脑里面。

可以修改系统环境变量更改模型下载位置:OLLAMA_MODELS=D:\Ollama(自定义下载位置)

通过 ollama --verisonollama -v 可以查看 ollama 版本。若运行时出现警告 Warning: could not connect to a running Ollama instance,是因为 ollama 没有运行,执行 ollama serve 命令运行 ollama 即可。

2.2 官网下载安装模型

本文依 codegemma为例,如果使用其他模型一样的操作
在这里插入图片描述
2b: 最低配,有点SB。不智能,不推荐
命令:ollama run codegemma:2b

7b: 内存8G以上,建议16G电脑上这个版本更好一点,碾压2b版本。预计占用1.5G内存,CPU要求高,低压U估计压不住,时间太长
命令:ollama run codegemma:7b

7b全量: 说是更智能,没体验。建议16G或者32G电脑上这个版本,cpu要求更高
命令:ollama run codegemma:7b-code-fp16

带instruct: 能够理解自然语言输入,并根据指令生成相应的代码。

带code: 预训练的模型,专门用于代码补全和根据代码前缀和/或后缀生成代码。

带2b: 最新的预训练模型,提供了最多两倍更快的代码自动补全功能。它的目标是提高代码补全的速度和效率。就是回复的有点拉胯
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

2.3 API接口调用:

由于实际使用命令行问答很不方便,改造成api调用。都是 POST 接口

/ai/generate:结果一起返回,等待时间较长
/ai/chat:对话模式,有一点结果就立马输出

详细api文档说明:https://github.com/ollama/ollama/blob/main/docs/api.md?plain=1

支持json数据返回、图片问答、row数据等

案例:

axios.post(`http://localhost:11434/api/generate`, {
        model: "codegemma:7b",
        prompt: "正则匹配大陆手机号码是否正确",
        format: "json",
        stream: false,
        // options: {
        //   num_keep: 15,
        //   seed: 42,
        //   num_predict: 100,
        //   top_k: 20,
        //   top_p: 0.9,
        //   tfs_z: 0.5,
        //   typical_p: 0.7,
        //   repeat_last_n: 33,
        //   temperature: 0.8,
        //   repeat_penalty: 1.2,
        //   presence_penalty: 1.5,
        //   frequency_penalty: 1.0,
        //   mirostat: 1,
        //   mirostat_tau: 0.8,
        //   mirostat_eta: 0.6,
        //   penalize_newline: true,
        //   // stop: ["\n", "user:"],
        //   numa: false,
        //   num_ctx: 1024,
        //   num_batch: 2,
        //   num_gqa: 1,
        //   num_gpu: 1,
        //   main_gpu: 0,
        //   low_vram: false,
        //   f16_kv: true,
        //   vocab_only: false,
        //   use_mmap: true,
        //   use_mlock: false,
        //   rope_frequency_base: 1.1,
        //   rope_frequency_scale: 0.8,
        //   num_thread: 8,
        // },
      });

在这里插入图片描述
当然,ollama还可以搭配现有比较成熟的webui使用。

webui使用步骤

windows系统,需要安装win版的docker

webui 项目地址:https://github.com/open-webui/open-webui

使用CPU运行

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

使用GPU运行

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway --gpus=all -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

安装完成之后,可以通过本地地址:http://127.0.0.1:3000 进行访问
在这里插入图片描述
注:如果需要其他电脑也可以访问这个api,需要配置环境变量:OLLAMA_HOST
比如:在这里插入图片描述

到此结束,你已经可以在本地玩大模型啦,有不懂的可以加我v,一起沟通哦。

### LM Studio网络连接配置教程 对于希望实现Label Studio(LM Studio)联网功能的情况,通常是指让其能够通过互联网访问外部服务或API。这涉及到几个方面的工作,包括但不限于设置代理服务器、配置防火墙规则以及调整应用程序本身的网络参数。 为了使Label Studio支持网络请求,在安装部署阶段就需要考虑好环境变量的设定。具体来说,可以通过修改`docker-compose.yml`文件来指定HTTP_PROXY和HTTPS_PROXY等环境变量[^1]: ```yaml version: '3' services: label-studio: image: heartexlabs/label-studio:latest environment: - HTTP_PROXY=http://your.proxy.server:port - HTTPS_PROXY=https://your.proxy.server:port ``` 另外种方式是在启动容器之前先定义这些环境变量于宿主机上,这样就不必每次都手动编辑YAML文件了。对于Linux系统而言,可以将如下命令加入到`.bashrc`或者其他shell初始化脚本中去: ```bash export http_proxy="http://your.proxy.server:port" export https_proxy="https://your.proxy.server:port" ``` 如果目标是允许Label Studio内部的服务之间互相通信,则可能还需要关注Docker网络模式的选择。默认情况下,Docker会创建个新的bridge网络供各个容器间通讯;但如果存在跨主机的需求,则建议采用overlay网络或者host模式以获得更好的性能表现。 最后值得注意的是安全性的考量。当开启对外部资源的访问权限时,务必确保已经采取适当的安全措施防止未授权的数据泄露风险。比如只开放必要的端口映射,并定期更新软件版本修复已知漏洞等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱码社长

一分钱不嫌少,谢谢您的支持

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

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

打赏作者

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

抵扣说明:

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

余额充值