ChatGpt大模型入门
环境配置
创建虚拟环境
建议创建一个新的虚拟环境,避免安装依赖冲突,
conda下载:
https://docs.conda.io/en/latest/miniconda.html
conda安装:
https://zhuanlan.zhihu.com/p/591091259
或者使用venv
使用参考:https://vra.github.io/2021/01/03/venv-intro/
其他后续可能需要的依赖:
pip install langchain
pip install tqdm
pip install openai
pip install javascript
pip install chromadb
pip install guardrails-ai
pip insatll jupyter
pytorch
pip install torch torchvision torchaudio
编辑器
编辑器可以随意,不过最好装下jupyter插件,或者直接下载jupyter,jupyter notebook方便调试。
ChatGpt
账户注册网上可以找到,这里就不说了。不过要使用api的话就需要充值,充值需要国外xy卡,可以参考以下链接:
https://savokiss.com/tech/chatgpt-api-open.html
https://savokiss.com/tech/gpt-plus-onekey.html
pay后就可以生成api key:
https://platform.openai.com/account/api-keys
如果注册和充值麻烦,可以直接从银河录像局买现成的:
https://nf.video/
chatgpt
https://chat.openai.com/?model=text-davinci-002-render-sha
openai文档:
https://platform.openai.com/docs/guides/gpt/completions-api中文文档:
https://openai.xiniushu.com/
例子:
import openaiopenai.api_key = "sk-xxx" # 替换为你自己的keycompletion = openai.ChatCompletion.create(model="gpt-3.5-turbo",messages=[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Who won the world series in 2020?"},{"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},{"role": "user", "content": "Where was it played?"}]
)
print(completion.choices[0].message)
import openaiopenai.api_key = "sk-xxx" # 替换为你自己的keyresponse = openai.Completion.create(model="text-davinci-003",prompt="Write a tagline for an ice cream shop."
)
print(response)
prompt
https://lilianweng.github.io/posts/2023-03-15-prompt-engineering/#instruction-prompting
https://lslfd0slxc.feishu.cn/docx/Nqm9dX81hotVYUxFQuxcVR82n2g
https://www.promptingguide.ai/zh
https://mp.weixin.qq.com/s/MCsFoisMd6pB9wdhlQtd6Q
- 最好先看一遍langchain,学习langchain的一些思路。
- 指定格式输出时,要说明空和非空情况下两种输出格式,不然llm会强行设置一些无用的信息。
例如:{“状态条件”: []},这种格式,会让llm以为必须有内容,即使说明了可以空,也会出问题,替换为{“状态条件”: ""或者[]}会更好。 - 如果指定了格式,llm还是输出一些无关的描述,在规则中添加"不要总结、解释和注释",能够减少无用输出。
- 通过history提醒输出错误,可以让他回顾规则第几点或者参考例子进行修正。作用不大。
- 任务做不好,再拆分可能会有奇效。
- 让llm对prompt进行标准转化,再提问,输出结果和原来提问的进行对比,让llm选择更好的结果,对提问进行标准化转换可能会有奇效。
- 可以将相关文档缓存到向量数据库,可以用提问在数据库里找到相关的内容,一起发送给llm。
- 尽量避免复杂的逻辑。
- 也可以参考guardrails from_rail的格式:
Given below is XML that describes the information to extract from this document and the tags to extract it │
│ into. │
│ │
│ <output> │
│ <list name="tasks"> │
│ <object name="task"> │
│ <string name="type" description="任务类型"/> │
│ <string name="content" description="任务内容"/> │
│ </object> │
│ </list> │
│ <integer name="logic" description="1:与 2:或" format="valid-choices: choices=[1, 2]"/> │
│ </output> │
│ │
│ │
│ ONLY return a valid JSON object (no other text is necessary), where the key of the field in JSON is the `name` │
│ attribute of the corresponding XML, and the value is of the type specified by the corresponding XML's tag. The │
│ JSON MUST conform to the XML format, including any types and format requests e.g. requests for lists, objects │
│ and specific types. Be correct and concise. │
│ │
│ Here are examples of simple (XML, JSON) pairs that show the expected behavior: │
│ - `<string name='foo' format='two-words lower-case' />` => `{'foo': 'example one'}` │
│ - `<list name='bar'><string format='upper-case' /></list>` => `{"bar": ['STRING ONE', 'STRING TWO', etc.]}` │
│ - `<object name='baz'><string name="foo" format="capitalize two-words" /><integer name="index" │
│ format="1-indexed" /></object>` => `{'baz': {'foo': 'Some String', 'index': 1}}` │
│ │
│ │
│ │
│ Json Output:
LangChain,api使用进阶
lainchain地址:
https://github.com/langchain-ai/langchain
langchain文档:
https://python.langchain.com/docs/modules/agents/
中文文档:
https://www.langchain.com.cn/modules/chains/generic/sequential_chains
其他文档:
https://juejin.cn/post/7217759646881742903
agent
https://lilianweng.github.io/posts/2023-06-23-agent/
工具
rail
https://shreyar.github.io/guardrails/rail/
chroma(embedding database)
https://docs.trychroma.com/
大模型应用项目
Voyager,应用在我的世界
https://github.com/MineDojo/Voyager/
https://voyager.minedojo.org/
本地部署大模型
开源的大模型有很多,这里只介绍chatglm6b,链接:
https://github.com/THUDM/ChatGLM2-6B
https://github.com/THUDM/ChatGLM-6B
https://huggingface.co/THUDM/chatglm-6b
https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/?p=%2F&mode=grid
部署教程:
https://zhuanlan.zhihu.com/p/617644321?utm_id=0
微调:
https://github.com/lich99/ChatGLM-finetune-LoRA
https://blog.csdn.net/bmfire/article/details/131064677
https://github.com/THUDM/ChatGLM-6B/tree/main/ptuning
LangChain-ChatGLM
本地部署glm加上langchain
https://github.com/chatchat-space/langchain-ChatGLM
深度学习
https://courses.d2l.ai/zh-v2/
https://space.bilibili.com/1567748478/channel/seriesdetail?sid=358497
https://learn.deeplearning.ai/
相关文章:
ChatGpt大模型入门
环境配置 创建虚拟环境 建议创建一个新的虚拟环境,避免安装依赖冲突, conda下载: https://docs.conda.io/en/latest/miniconda.html conda安装: https://zhuanlan.zhihu.com/p/591091259 或者使用venv 使用参考:http…...
Mac 配置Clion Qt 调试显示变量值
背景 使用Clion开发Qt程序,在进行调试时,会看不到Qt类的变量值,只有指针形式,对于调试很不方便。 环境: Macbook ProCPU:M3Qt 5.15.13CLion 2023.3.4 解决方案 为了让Clion能显示Qt类的值,…...
【Ansys Fluent Web 】全新用户界面支持访问大规模多GPU CFD仿真
基于Web的技术将释放云计算的强大功能,加速CFD仿真,从而减少对硬件资源的依赖。 主要亮点 ✔ 使用Ansys Fluent Web用户界面™(UI),用户可通过任何设备与云端运行的仿真进行远程交互 ✔ 该界面通过利用多GPU和云计算功…...
13.云原生之常用研发中间件部署
云原生专栏大纲 文章目录 mysql主从集群部署mysql高可用集群高可用互为主从架构互为主从架构如何实现主主复制中若是两台master上同时出现写操作可能会出现的问题该架构是否存在问题? heml部署mysql高可用集群 nacos集群部署官网文档部署nacoshelm部署nacos redis集…...
远离远程代码执行 ,RPC 运行时中的三个漏洞是如何被发现的?
引言 MS-RPC 是 Windows 网络中广泛使用的协议,许多服务和应用程序都依赖它。 因此,MS-RPC 中的漏洞可能会导致严重后果。 Akamai 安全情报小组在过去一年中一直致力于 MS-RPC 研究。 我们发现并利用了漏洞,构建了研究工具,并编写…...
零基础学python之高级编程(4)---python异常类型及其类型处理
python异常类型及其类型处理 文章目录 python异常类型及其类型处理前言一、异常的概念二、异常类型1.捕获异常方法2.主动抛出异常 总结 前言 我们在日常学习中或者在开发一个项目时,一定会出现的问题就是报错,今天我们就学习错误类型的种类以及错误类型的处理方法 一、异常的概…...
如何实现三维模型在网页/手机端/APP上的展示与分享?
在四维轻云平台中,只需要简单几步,就能轻松实现三维模型在网页/手机端/APP上的交互展示,也可分享转发给他人进行在线查看。 1、注册登录 打开四维轻云官网,完成注册并登录。 2、创建项目 在【项目管理】中点击“新建项目”按钮…...
SpringBoot项目在进行部署打包的时候,打包成jar和war有何差异?
首先给大家来讲一个我们遇到的一个奇怪的问题: 我的一个springboot项目,用mvn install打包成jar,换一台有jdk的机器就直接可以用java -jar 项目名.jar的方式运行,没任何问题,为什么这里不需要tomcat也可以运行了? 然…...
ARM系列 -- 虚拟化(四)
今天来看看虚拟中断。 在一个非虚拟化的系统中,操作系统可以直接访问GIC的寄存器,并且处理GIC的物理中断接口(physical interrupt interface)。 但是在一个虚拟化的系统中,不是这样。Guest OS并不知道它运行在虚拟系…...
QT GUI编程常用控件学习
1 GUI编程应该学什么 2 QT常用模块结构 QtCore: 包含了核心的非GUI的功能。主要和时间、文件与文件夹、各种数据、流、URLs、mime类文件、进程与线程一起使用 QtGui: 包含了窗口系统、事件处理、2D图像、基本绘画、字体和文字类 QtWidgets: 包含了一些列创建桌面应用的UI元素…...
【Python从入门到进阶】49、当当网Scrapy项目实战(二)
接上篇《48、当当网Scrapy项目实战(一)》 上一篇我们正式开启了一个Scrapy爬虫项目的实战,对当当网进行剖析和抓取。本篇我们继续编写该当当网的项目,讲解刚刚编写的Spider与item之间的关系,以及如何使用itemÿ…...
flutter build ipa 打包比 xcode archive 打出的ipa包大
为什么 flutter build ipa 打包比 xcode archive 打出的ipa包大? 如果你用Flutter构建的.ipa文件比通过Xcode Archive构建的.ipa文件要大,这可能是因为Flutter构建了一个包含了多平台的二进制文件的通用包。这意味着在Flutter构建的.ipa中包含了所有的C…...
B端系统:巧妙地容错和防错设置,减少用户操作错误
Hi,大家好,我是大美B端工场,从事8年前端开发的老司机。很多B端系统体验不好,让用户非常茫然或者容易出错,大大降低了操作体验,本文着重分析B端系统的容错机制该如何设计,欢迎老铁们关注、评论、…...
BIO实战、NIO编程与直接内存、零拷贝深入辨析
BIO实战、NIO编程与直接内存、零拷贝深入辨析 长连接、短连接 长连接 socket连接后不管是否使用都会保持连接状态多用于操作频繁,点对点的通讯,避免频繁socket创建造成资源浪费,比如TCP 短连接 socket连接后发送完数据后就断开早期的http服…...
PDF文件转换为图片
现在确实有很多线上的工具可以把pdf文件转为图片,比如smallpdf等等,都很好用。但我们有时会碰到一些敏感数据,或者要批量去转,那么需要自己写脚本来实现,以下脚本可以提供这个功能~ def pdf2img(pdf_dir, result_path…...
【Java程序设计】【C00317】基于Springboot的智慧社区居家养老健康管理系统(有论文)
基于Springboot的智慧社区居家养老健康管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的智慧社区居家养老健康管理系统设计与实现,本系统有管理员、社区工作人员、医生以及家属四种角色权限 管…...
Vue3前端实现一个本地消息队列(MQ), 让消息延迟消费或者做缓存
MQ功能实现的具体代码(TsMQ.ts): import { v4 as uuidx } from uuid;import emitter from /utils/mitt// 消息类 class Message {// 过期时间,0表示马上就消费exp: number;// 消费标识,避免重复消费tag : string;// 消息体body : any;constr…...
普中51单片机学习(8*8LED点阵)
8*8LED点阵 实验代码 #include "reg52.h" #include "intrins.h"typedef unsigned int u16; typedef unsigned char u8; u8 lednum0x80;sbit SHCPP3^6; sbit SERP3^4; sbit STCPP3^5;void HC595SENDBYTE(u8 dat) {u8 a;SHCP1;STCP1;for(a0;a<8;a){SERd…...
Python 实现Excel自动化办公(上)
在Python 中你要针对某个对象进行操作,是需要安装与其对应的第三方库的,这里对于Excel 也不例外,它也有对应的第三方库,即xlrd 库。 什么是xlrd库 Python 操作Excel 主要用到xlrd和xlwt这两个库,即xlrd是读Excel &am…...
DayDreamInGIS 之 ArcGIS Pro二次开发 图层属性中换行符等特殊字符替换
具体参考ArcMap中类似的问题,本帖开发一个ArcGISPro版的工具 1.基础库部分 插件开发,经常需要处理图层与界面的交互。基础库把常用的交互部分做了封装,方便之后的重复使用。 (1)下述类定义了数据存储结构࿰…...
Linux设备树实战:如何为IMX6ULL开发板定制dts文件(附完整编译流程)
Linux设备树实战:如何为IMX6ULL开发板定制dts文件(附完整编译流程) 在嵌入式Linux开发中,设备树(Device Tree)已经成为硬件描述的标准方式。对于使用NXP i.MX6ULL处理器的开发者来说,掌握设备树…...
Linux 音频故障排查指南:从嵌入式设备到专业音频工作站的深度诊断
前言 在嵌入式 Linux 开发中,音频系统是故障诊断最复杂的子系统之一,涉及硬件接口、驱动层、中间件和应用层的紧密协作。根据我的实践经验,60% 的音频问题源于时钟同步,25% 源于资源竞争(特别是与 EMMC)&a…...
Ubuntu 18.04 ROS安装遇坑记:手把手教你修复‘EXPKEYSIG’签名无效错误
Ubuntu 18.04 ROS安装遇坑记:手把手教你修复‘EXPKEYSIG’签名无效错误 第一次在Ubuntu上安装ROS时,那种兴奋感很快被终端里鲜红的错误提示浇灭——EXPKEYSIG F42ED6FBAB17C654。作为机器人开发的基础环境,ROS的安装本应是入门第一步…...
G-Helper终极指南:解锁华硕ROG笔记本隐藏性能的黑科技神器
G-Helper终极指南:解锁华硕ROG笔记本隐藏性能的黑科技神器 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix…...
收藏!AI入行指南:小白程序员必备的岗位选择、技能树与学习路径
本文详细介绍了AI行业的真实面貌,包括7个主流岗位的薪资天花板与入行路径,以及学习顺序与常见误区。文章强调了编程、数学基础的重要性,并提供了6个月的学习路径建议。此外,还分析了不同类型公司的薪资差异与行业趋势,…...
Encoder-only、Decoder-only、Encoder-Decoder 到底长什么样
总图 1. Encoder-only (BERT 类) 输入 tokens | [Encoder] | [Encoder] | [Encoder] | 输出表示 vectors 2. Decoder-only (GPT / LLaMA 类) 输入 tokens | [Decoder] | [Decoder] | [Decoder] | 逐个预测下一个 to…...
告别串口助手!用NXP FreeMaster 3.0实时调PID,图形化调试真香了
嵌入式PID调参革命:NXP FreeMaster 3.0图形化实时调试实战 记得去年调试伺服电机时,我曾在实验室连续熬了三个通宵——每修改一次PID参数就要重新编译下载,然后盯着串口终端密密麻麻的数据流,试图从字符海洋里捕捉波形规律。直到同…...
制造业产品编码验证终极指南:如何用any-rule提升数据准确性
制造业产品编码验证终极指南:如何用any-rule提升数据准确性 【免费下载链接】any-rule 🦕 常用正则大全, 支持web / vscode / idea / Alfred Workflow多平台 项目地址: https://gitcode.com/gh_mirrors/an/any-rule 在制造业信息化进程中…...
微博超话自动签到工具:终极懒人指南,3分钟掌握高效自动化管理
微博超话自动签到工具:终极懒人指南,3分钟掌握高效自动化管理 【免费下载链接】weibo_supertopic_sign 基于Python/Nodejs的微博超话签到脚本,支持云函数运行或青龙面板运行 项目地址: https://gitcode.com/gh_mirrors/we/weibo_supertopic…...
