bash脚本中conda环境的转换
环境隔离
现在很多github上的项目在安装的时候都需要新建一个conda环境,建立环境是方便不同工具的版本隔离,不隔离起来工具之间会乱套。
除了conda环境之外,也有pyenv、docker、虚拟机等等,其实它们都是起到了隔离的作用,隔离的作用范围我理解的大致为:
不同机器>虚拟机>docker>conda环境>pyenv\textbf{不同机器} > \textbf{虚拟机} > \textbf{docker} > \textbf{conda环境} > \textbf{pyenv}
不同机器>虚拟机>docker>conda环境>pyenv
不同机器:可以在硬件上就不同,比如一台用的是A卡,另外一台用的是N卡,这种隔离最彻底。
虚拟机:是除了硬件之外,其他的都使用新的一套系统,和原本的系统之间没有太强的联系;
docker:某种程度上接近虚拟机,但是和原本的系统仍然可以沟通,可以访问资源,它可以隔离不同的CUDA版本(后续会写一篇关于docker搭建和环境构建的博客);
conda环境:只能隔离一些常见的工 ...
LangChain的拆解(一)利用符号重载实现基本Chain
Chain
之前在第一篇关于LangChain的文章中就说到了关于Chain的有趣之处,可以像Linux管道一样,把函数串联起来,执行很方便,步骤也很清晰,是一个比较优秀的功能:
12# Linux管道cat test.txt | awk '$2 > 10' | head -n 100 | sed 's/NA//g' | cut -f1,4
123# LangChain的管道chain = chat_prompt | llm | CommaSplitParse()chain.invoke({"text": "colors"})
实际上这种管道功能我的印象是在R语言的dplyr中体现的淋漓尽致,后面我也查到在python中也有针对pandas的类似的管道包,后续会再单开一篇文章介绍。
符号重载
在C++里面会比较常听到这个操作,我记得之前是看到别人有个骚操作好像就是通过符号重载实现的,通过将不同的符号赋予不同的功能然后组合起来就成了外星文字,运行起来竟然能够得到有意义的结果。
符号重载就是给符号比如+、-、==、|、&等等赋予新的作用,比如我可以重新定义+表示为两个数字相减 ...
LangChain + 本地ChatGLM3模型构建Agent(一)工具调用的底层逻辑和测试
Agent是什么
Agent 是具备通过独立思考、调用工具去逐步完成给定目标的智能工具。国内举例子最常见的就是点外卖Agent🤣:告诉 Agent 帮忙下单一份炸鸡的外卖,它就可以根据你的习惯和消费水平直接调用 APP 筛选合适的外卖,再调用支付程序下单支付,无需人类去指定每一步的操作。这与之前的比如小度小度关灯啊、放音乐啊、关窗帘的工具不同,Agent涉及到更为复杂的过程。
关于Agent网上有铺天盖地的新闻我就不多说了。其中工具调用(function call)就是非常关键的一环。
大语言模型算算术常常出错,让它去用一个计算器是不是很合理?
计算器
在文章最开头,先来问一个问题:大语言模型已知只能接受文本而且只能输出文本,怎么样让它去用计算器呢?
如果按照python代码函数调用的方式,为什么输出了文本能去调用函数(function call)呢?就像通感了一样:
微风过处,送来缕缕清香,仿佛远处高楼上渺茫的歌声似的。
又或者说让我不动手脚只动嘴说话去控制计算器一样(🤔如果真的能打嘴炮利用空气波也许能按动计算器吧😏)。
文本是什么
在ChatGPT出来后的一段时间内 ...
过度封装的LangChain?一个小白的吐槽
在写第一篇关于LangChain文章那会儿就想要吐槽一下LangChain了,先占个位置,暂时不知道ButterFly怎么隐藏文章的。
LangChain + 本地ChatGLM3模型构建RAG应用1:法律助手
介绍RAG
RAG全名为Retrieval Augmented Generation,翻译为检索增强生成。通俗的理解为:给大模型一本精炼的参考书,让它在回答问题时优先去查参考书,之后拿着查询好的内容再结合它自身的知识整合一下给你答案 。
那大模型训练的时候使用了非常多的文本,很可能已经包含了你所需要的知识,而且它还有更强的整合能力为什么还需要外部知识库呢?
模型存在幻觉 :用过大模型查科研问题的都会碰到过GPT张嘴乱说的情况,看起来它给的引文有模有样,甚至比你想要了解的内容还要,结果一搜压根没有,论文作者呢是能查到,结果一搜出来你是想查人类相关医学文献,它给你整的作者是兽医相关(开玩笑的,其实有时候是化学物理专业的作者)。这就是”幻觉“,从另外一面来看这也是大模型拥有创造力的原因,目前来说是一个技术难题。“幻觉”在很多领域是不能被容忍的,比如法律行业、金融行业、医药行业。
私有知识库 :有的机构、公司、个人拥有私有知识库,不希望这些知识库泄露,用这样的方式就比较好,而且还能随时更新。微调模型当然可以做到,但是每次更新知识库就需要微调模型。
模型上下文有限 :现在都在增加 ...
LangChain + 本地ChatGLM3模型构建一条简单Chain
LangChain这个工具之前比较早看到了,当时觉得它是一个把不同来源的大语言模型都转换为统一的接入口的库,可以在上面利用这个Chain式调用搞开发。我那会儿理解比较浅,就搁置在那儿没有去学,只是觉得会比较方便的构建应用,具体是什么应用没有太大概念。
最近刷B站看到一些Up主在用这个工具做开发,看了一会儿还有点儿意思,那个|也就是链感觉和Linux管道很像啊!DNA动了!说到这个管道,我自己其实工作中写了一个库可以用来完成有顺序的相互依赖的函数调用,可以设计的更为复杂一些,比如返回多结果的函数,比如一个函数依赖前面多个函数的输出,同时可以多线程执行平行的函数,后续我会将库发布在github上。可能还需要增加一个类似于这种管道符号的支持,应该是通过符号重载,后面试一试。
不过,说实话我还是对这个库的功能不是太清楚,里面函数有点多封装的有点深,引用库有点乱(比如HumanMessage可以从很多位置import进来),文档有点乱(最近又更新了一个大版本,两个版本之间文档差别很大!),我的水平还不够驾驭它。不过我的直觉告诉我不宜在这个库上花费过多时间,因为最为根本的是模型的输入(prompt ...
清华智谱Chat-glm4模型服务器本地部署
GLM3出来的时候据说在中文方面表现的不错,这是升级版,除了对话功能之外,还多了工具的调用、文档的理解和图像识别等任务。最近因为最新网页版的通义千问升级了,不知道怎么回事,是不免费还是咋的,词的数量好像限制了,还有就是我梯子的原因有时候ChatGPT网页也访问不了,所以想着搞一个本地的模型用用。后面也会本地部署一下通义千问Qwen2,根据最新的评测,除了GPT4o、GPT4其他系列、Gemini之外就是它了,排第8。
我的安装的设备信息:
项
说明
系统
Ubuntu 20.04.1
存储
>100GB
Python
3.10
CUDA Version
11.8
GPU Driver
520.61.05
GPU
NVIDIA 3090 1张(不配与A100为伍!跑不了多模态模型!)
具体的显存占用可以查看这里:设备和依赖检查
环境构建
123456789101112# 创建conda环境conda create -n ChatGLM4 python=3.10conda activate ChatGLM4# pip config set gl ...
最新stable diffusion3模型服务器本地部署
最新版的stable diffusion3据说不错,就测试了一下,还是比较好安装的,生成效果比之前用的模型好多了。我现在还不太会写prompt,后面再琢磨一下。
这是服务器配置:
项
说明
系统
Ubuntu 20.04.1
存储
>100GB
Python
3.10
CUDA Version
11.8
GPU Driver
520.61.05
GPU
NVIDIA 3090 1张
新建环境
12conda create -n SD3 python=3.10conda activate SD3
下载ComfyUI
1234git clone https://github.com/comfyanonymous/ComfyUIpip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt# 我的是CUDA11.8,你要是CUDA12要安装对应版本的pip install torch torchvision torchaudio --extra-index-u ...
Stable Diffusion本地部署+controlNet插件
参考腾讯云GPU服务器部署Ai绘画Stable Diffusion 小白可用
介绍
Stable Diffusion是2022年发布的支持由文本生成图像的 AI 绘画工具,是一个开源的工具,其他的比如Midjourney、文心一格目前闭源。
现在Stable Diffusion的图形化界面主要用的是越南人AUTOMATIC1111的项目stable-diffusion-webui,里面的代码是尽可能方便的构建环境和下载模型文件,但是对于国内的来说就反而变得不方便了,封装的有点过头。我尝试运行bash webui.sh文件或者github仓库硬是下载不了,而且目前大部分的教程都是在教怎么一键运行,包括更改连接之类的,我这儿试了总是有一些文件下载不了,于是决定拆解代码自己取下载和拉取仓库,按照下面的步骤执行就可以知道哪些地方缺东西了:
构建环境
构建conda环境
12conda create -n SD python=3.10conda activate SD
下载WebUI
下载常用的WebUI
12345# 这里使用镜像# 如果不行就去https://github.com/AUTOM ...
生物画图大作战之基础篇
引言
在一些网站上可以看到这种类型的图形,比如GATK官网上面的这张图。
这张流程图其实大家可能经常看到,在生物的一些论坛或者网站里面。
首先问大家一个问题,你觉得这个图片可以拿什么画呢?
PhotoShop?Illustrator?CorelDraw?
上面的工具的确都可以画出来,甚至用windows的画图都能画出来,但是这里我想说用PPT!
用ppt不是为了装逼,而是画这种图就够用而且还好用,因为它里面自带了很多的图形,其实在绘制上面类型的简图的时候还是比较好用的。
PPT是很常用的然后也是汇报常用的软件。
另外可以将这种图形保存到ppt的格式中,下次还可以重复编辑和使用,而不至于像.png或者.jpg的图片那样没办法重新编辑了
然后ppt的文件也是比较轻量的,不会像PS的.psd格式那样比较大而打开较慢。
在画这张图之前,我们需要来看看这种图的特点。
提醒:建议把这张图片右键 -> 另存为,用图片浏览器打开。
另外文中的名词与图片中元素的对应关系
名称
具体的元素位置
离心管
第一个元素
测序仪
第二个元素
read信息记录
第三 ...