首页 > 其他分享 >大模型应用开发实战

大模型应用开发实战

时间:2024-09-01 20:04:22浏览次数:8  
标签:实战 模型 应用 query import model response history

在接触AI应用开发的这段时间,我以为会像以前学.net,学java,学vue一样。先整个hello world,再一步一步学搭功能,学搭框架直到搭一个系统出来。然而,理想总是很丰满,现实很骨感。在实践的过程中各种千奇百怪的问题:

  • 概念太多了。你以为就GPT、LLM?太年轻了,huggingface、transformers、torch、tokenizers、langchain、modelscope、fastapi、CUDA、cuDNN、Conda、vLLM、ResNet-50、top_p等等等等....它们有些是工具,有些只是个库,有些甚至就是个参数名以及还有些我到现在都不知道是个啥。
  • 运行代码时,经常莫名地各种报错。以前学vue的时候,我以为前端的包已经够混乱了,直到开始接触AI,没有最混只有更混。
  • 运行时间太长了而且结果不确定。没有云上足够的算力和显卡,一个简单的代码运行少则10分钟,动则几小时,非常人能够忍受。就算当你历经千辛万苦程序跑完了,你会发现不太容易验证运行结果的正确性,你不知道改了某个参数值到底是起作用了,还是没起作用。
看了网上一堆AI开发的文章,得出两个字总结:写的都是垃圾!对,都是 在学的过程中,我就想着。等我做出个东西。我一定要把这些个牛鬼蛇神给掰扯清楚。废话不多说,故事就从hello world说起。

工具准备

  1. MiniConda 首先装这个,这个玩意有点像docker,可以隔离多个项目的python环境,并且默认带有vc++等库。为什么我把它放第一。作为程序员的洁癖,开始的时候我非常不想装这玩意的,直接装个python 3.12,手动pip install霹雳巴拉下各种包多潇洒,直到运行一个最简单的代码时缺各种依赖环境,不但缺python的包,竟然还缺各种dll,还缺vc++运行时,当时心里各种NMBD....然后老老实实把它装上了,一切都顺了。安装时默认会集成python。我装的版本:MiniConda3 py312_24.7.1
  2. PyCharm 开发python的第一选择。开始我用的vs code,调试运行各种手动命令敲烦了,还是pycharm按钮好使。
就先装这俩吧。

环境准备

电脑cmd命令提示符。设置清华的镜像,用于后面下载各种python的包。默认国外的镜像和.net nuget包、java maven库及前端npm包一个尿性卡的要死,只能用国内的。
python -m pip install --upgrade pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

新建项目

直接pycharm新建一个项目,名字随便起。毕竟我们是整大模型的,不是学python入门的。叫llmTest吧!如图1: 0 (图1) 这里注意:
  • interpreter type:就是运行环境,选custom environment。基于conda新建的环境名(想象成docker的一个实例,这个环境只对我们这个项目有效)。界面上提供了project venv,这种方式也可以控制项目的运行环境,想了解地自行搜索,新手不能太多选择,我就喜欢用顺手的,哈哈哈!!
  • path to conda:就是工具准备里面miniconda3的安装路径。

模型下载

目前国内外的通用大模型可以用密密麻麻来形容,gitee上面已经收录了1万多个了:https://ai.gitee.com/models 。模型下载方式很多,有直接用git lfs下载的、有直接下文件的,还有不直接下载运行时才加载的写代码方式。关键是这种方案还挺好使。本着新手不能太多选择,直接推最顺手的原则。我用的阿里魔塔modelscope(注意它不是模型,不是!它只是个下载工具)。直接在pycharm命令终端里面执行pip install modelscope,如图2: 0 (图2) 注意图上红框的部分。这里没有用windows的命令终端执行,就是保证一直用的是我们刚刚创建的conda环境llmTest。防止安装包的时候,装到其他找不到的位置了。也可以看出下载的源用的是我们刚刚设置的清华镜像。   新建一个app.py。编写下载代码:
#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('ZhipuAI/chatglm3-6b', cache_dir='D:\Transformers')
这里我以清华智谱ChatGLM3模型为例,下载到D:\Transformers。如果人品不是太差的话,运行效果如下: (图3) 总共有15个G左右,需要等一段时间。至此一个大模型顺利下载完毕,它的结构如下图所示,别问我里面是啥,我也看不懂: 0 (图4)

模型使用

以上算是完成了全部的准备工作,作为一个有效率的打工人,马上迫不及待地想看效果了。立马码字:
from modelscope import AutoTokenizer, AutoModel, snapshot_download

model_dir = snapshot_download('ZhipuAI/chatglm3-6b', cache_dir='D:\Transformers')
# model_dir ='D:\Transformers\ZhipuAI\chatglm3-6b';
tokenizer = AutoTokenizer.from_pretrained(model_dir, trust_remote_code=True)

model = AutoModel.from_pretrained(model_dir, trust_remote_code=True).half().cpu()  # 权重和计算从 32 位浮点数转换为16位

model = model.eval()
response, history = model.chat(tokenizer, '你好', history=[])
print(response)
这段代码意图无比清晰,启动刚刚下载的chatglm3-6b模型,和它打个招呼,羞涩地问下:“你好”。先别急着运行,因为你运行肯定会报错(多么痛地领悟,该踩的坑我都踩完了

标签:实战,模型,应用,query,import,model,response,history
From: https://www.cnblogs.com/yubaolee/p/18390767

相关文章

  • 阿里云Qwen2-VL语言模型:特点与实用性解析
    最近,阿里云推出了最新的视觉语言模型——Qwen2-VL。作为一款先进的视觉语言模型,Qwen2-VL的发布无疑为AI领域注入了新的活力。那么,这款模型有哪些特别之处?它的实用性又如何呢?今天我们就来详细解析一下Qwen2-VL的特点与实际应用。一、Qwen2-VL的核心特点1.多分辨率与比例图......
  • HarmonyOS开发实战:ArkTS接口绑定
    场景介绍通过napi_wrap将ArkTS对象与Native的C++对象绑定,后续操作时再通过napi_unwrap将ArkTS对象绑定的C++对象取出,并对其进行操作。使用示例接口声明、编译配置以及模块注册接口声明//index.d.tsexportclassMyObject{constructor(arg:number);plusOne:(......
  • FlexSim在物流业中的应用技术教程
    FlexSim在物流业中的应用技术教程FlexSim简介FlexSim软件概述FlexSim是一款强大的离散事件模拟软件,由FlexSim软件公司开发。它提供了一个直观的3D建模环境,使用户能够创建、测试和优化复杂的物流系统模型。FlexSim的核心优势在于其灵活性和深度,能够模拟从制造、物流到服......
  • Arena:Arena模型构建与仿真基础
    Arena:Arena模型构建与仿真基础Arena软件简介Arena软件的历史与发展Arena软件自1983年由SystemModeling公司开发以来,已经成为业界领先的离散事件仿真软件。随着科技的进步和市场需求的变化,Arena软件不断更新迭代,引入了更多先进的功能和用户友好的界面。1999年,SystemMod......
  • 大语言模型的超参数含义: Top-P 采样; Top-P 采样;logit_bias:
    目录大语言模型的超参数含义 Top-P采样频率惩罚(FrequencyPenalty)top_k:logit_bias:top_logprobs:max_tokens:大语言模型的超参数含义 Top-P采样含义:一种采样替代方法,称为核采样。模型考虑top_p概率质量的token结果。例如,0.1表示仅考虑组成前10%概率质量的token......
  • 深度学习与大模型第1课环境搭建
    文章目录深度学习与大模型第1课环境搭建1.安装Anaconda2.修改环境变量2.1修改`.condarc`文件2.2使用AnacondaPrompt修改环境变量3.新建`.ipynb`文件机器学习基础编程:常见问题:深度学习与大模型第1课环境搭建1.安装Anaconda首先,您需要安装Anacon......
  • 正点原子Linux C应用编程:移植tslib并使其适配7寸LCD1024*600的GT911触摸驱动
    正点原子LinuxC应用编程:移植tslib并使其适配7寸LCD1024*600的GT911触摸驱动作者在学习【正点原子】I.MX6U嵌入式LinuxC应用编程指南V1.4时,发现移植tslib后,触摸事件触发不正常。使用的硬件版本:正点原子I.MX6UALPHAV2.4版本底板,LCD:正点原子7寸1024*600,型号ATK-MD0700R-102460......
  • 六边形蜂窝模型参数化建模
    六边形蜂窝模型参数化建模 蜂窝结构因其轻质、高强度、高刚度等特性,在军工领域尤其是航空航天行业中有着广泛的应用。以下是一些关于蜂窝在军工应用的要点: 1.**复合材料在军用航空领域的应用**:复合材料,尤其是碳纤维复合材料,因其优异的比强度和比刚度,被广泛应用于飞机的......
  • 计算机毕业设计选题推荐-个人健康档案管理系统-Java/Python项目实战
    ✨作者主页:IT研究室✨个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。☑文末获取源码☑精彩专栏推荐⬇⬇⬇Java项目Python项目安卓项目微信小程序项目......
  • 计算机毕业设计选题推荐-公司考勤管理系统-Java/Python项目实战
    ✨作者主页:IT研究室✨个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。☑文末获取源码☑精彩专栏推荐⬇⬇⬇Java项目Python项目安卓项目微信小程序项目......