大模型应用开发实战基础

大模型应用开发实战基础

1. 背景

大模型如日中天,各行各业都受它影响,但是作为程序员,除了让它翻译代码不知道用它干什么,就像是拿着锤子的木匠,找不到钉子在哪。一边听着别人说2024是AI元年,一边又不知所措,很多时候对着ChatGPT的输入框不知道干什么。作为程序员,应该是接触AI的一线战士,但是很无力的感觉要被AI淘汰了一样。有人说懂 AI、懂编程、懂业务的超级个体,会是 AGI 时代最重要的人,本文我们从程序员视角去认识AI,去看看我们怎么去深入理解和应用AI,如何成为一个AI全栈工程师。

2. 大模型的知识体系

大模型可以分成下面几个方向:

  1. 交付:向量数据库,GPU等偏运维方向
  2. 产品:主要是负责用户体验和商业逻辑
  3. Fine-tuning:微调为主,但是要懂机器学习,Transformer,大模型训练,微调原理等
  4. 开发框架和工具栈:主要是基于Langchain等进行Agent框架开发,比如开发一个类似百度千帆平台,豆包AI平台等
  5. RAG:Embedding,从关键词搜索转换为向量思索,为大模型基座提供外界知识库
  6. API:用微调提升prompt的稳定性
  7. AI编程:帮助开发者使用AI提效,甚至开发AI程序员
  8. prompt:思维链,prompt调优,prompt攻防等

3.AI能干什么?

我们可以让大模型帮我们做很多事情,而且很多事情在输入框中用聊天的方式就可以解决:

  1. 按格式输出
  2. 分类
  3. 聚类
  4. 持续互动
  5. 解决技术相关问题
  6. 舆情分析
  7. 坐席质检
  8. 故障解释 既然聊天框就可以解决问题,我们还需要什么?很多场景我们无法去聊天框输入去问答案,比如说代码补全工具,比如我们要做一个产品,语音转文本场景,想让转化出的文本进行一些优化,也不能让用户复制粘贴去干,需要我们的程序能自动去问大模型。本文我们简单介绍一些大模型API交互的方式。

4. 什么是大模型

下面用程序演示「生成下一个字」。可以自己修改 prompt 试试。还可以使用相同的 prompt 运行多次。

ini
复制代码
`from openai import OpenAI`
`import os`

`from dotenv import load_dotenv, find_dotenv`
`_ = load_dotenv(find_dotenv())`

`client = OpenAI()`

`prompt = "今天天气很"  # 改明天试试`
`response = client.completions.create(`
    `model="gpt-3.5-turbo-instruct",`
    `prompt=prompt,`
    `max_tokens=20,`
    `stream=True`
`)`

`for chunk in response:`
    `print(chunk.choices[0].text, end='')`

大模型通俗的讲就是根据上文,猜下一个词(的概率):

image.png

用通俗不严谨的语言再稍微深入描述大模型的工作原理:

  1. 大模型可是个爱学习的小家伙,它把人类说过的话都记在了心里。这就是我们说的「机器学习」,而它学习的过程,我们叫它「训练」。
  2. 它还特别擅长记概率,把一串接一串的token可能跟着的token都记录下来了。这些记录,就是我们说的「参数」,也可以叫做「权重」。
  3. 给它几个token,它就能猜出下一个最可能的token是啥。这个过程,我们叫做「生成」,也有人叫它「推理」
  4. 用它生成的token,再结合之前的上下文,它就能继续猜下去,就像搭积木一样,一块接一块,搭出更多的文字。

那Token又是什么呢?再用通俗的语言描述一下:

  1. 可能是一个英文单词,也可能是半个,三分之一个。可能是一个中文词,或者一个汉字,也可能是半个汉字,甚至三分之一个汉字
  2. 大模型在开训前,需要先训练一个 tokenizer 模型。它能把所有的文本,切成 token

5. 调用openai api

作为程序员,接下来我们用api和大模型交互。

先安装OpenAI Python 库:

css
复制代码
pip install --upgrade openai

发送一条消息:

ini
复制代码
from openai import OpenAI
import os
# 加载 .env 文件到环境变量

from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())

# 初始化 OpenAI 服务。会自动从环境变量加载 OPENAI_API_KEY 和 OPENAI_BASE_URL
client = OpenAI()
# 消息格式
messages = [
    {
        "role": "system",
        "content": "你是AI编程助手小瓜,将我输入的Java代码转换为TS代码,回答ts语法相关的问题"
    },
    {
        "role": "user",
        "content": "ts有几种基本类型数据"
    },

]

# `调用 GPT-3.5`

chat_completion = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=messages`
)

# 输出回复

print(chat_completion.choices[0].message.content)

6. 总结

本文为程序员提供了大模型应用开发的实战指南,从理解AI的基础知识体系到实际应用场景,涵盖了从运维交付到产品开发、微调技术、开发框架、RAG技术、API使用和AI编程等多个方面。文章通过示例代码展示了如何使用OpenAI API与大模型进行交互,解释了大模型的工作原理和Token的概念,并强调了程序员在AI时代成为全栈工程师的重要性,以适应技术发展和行业变革的需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/765986.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数组-二分查找

二分查找 leetcode704 /*** param {number[]} nums* param {number} target* return {number}*/ var search function(nums, target) {let left 0, right nums.length - 1;while (left < right) {const mid Math.floor((right - left) / 2) left;const num nums[mid]…

【antd + vue】表格行合并,同时使用插槽

一、需求说明 表格中&#xff0c;如果一个学校有多个考试科目&#xff0c;则分行展示&#xff0c;其余列&#xff0c;则合并为一行展示&#xff0c;如图所示 二、需求分析 1、表格行合并 相当于有4行&#xff0c;其中1、2行是同一个学校包含不同考试科目及对应人次的数据&am…

生成式AI赋能金融信贷:减少信用评分偏差

信用评分在确定谁获得信贷以及以何种条件获得信贷方面发挥着关键作用。然而&#xff0c;尽管这一点很重要&#xff0c;但传统的信用评分系统长期以来一直受到一系列关键问题的困扰——从偏见和歧视&#xff0c;到有限的数据考虑和可扩展性挑战。例如&#xff0c;一项针对美国贷…

1:25万基础电子地图(西藏版)

我们为你分享过四川版、云南版、江西版、贵州版、重庆版和青海版的1比25万基础电子地图&#xff0c;现在再为你分享西藏版的电子地图。 如果你需要西藏版的1比25万基础电子地图&#xff0c;你可以在文末查看该数据的领取方法。 基础电子地图西藏版 西藏版1:25万基础电子地图…

Xilinx FPGA:vivado利用单端RAM/串口传输数据实现自定义私有协议

一、项目要求 实现自定义私有协议&#xff0c;如&#xff1a;pc端产生数据&#xff1a;02 56 38 &#xff0c;“02”代表要发送数据的个数&#xff0c;“56”“38”需要写进RAM中。当按键信号到来时&#xff0c;将“56”“38”读出返回给PC端。 二、信号流向图 三、状态…

FVCOM水环境、污染物迁移、水交换、水质、潮流、温盐、波浪及泥沙数值模拟

原文链接&#xff1a;FVCOM水环境、污染物迁移、水交换、水质、潮流、温盐、波浪及泥沙数值模拟https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247607618&idx2&sn5132fb8bfcbd02c2be308f6c6304c6d2&chksmfa8264a5cdf5edb3226d1b0597bb6c39f867601b961b…

[开源软件] 支持链接汇总

“Common rules: 1- If the repo is on github, the support/bug link is also on the github with issues”" label; 2- Could ask questions by email list;" 3rd party software support link Note gcc https://gcc.gnu.org openssh https://bugzilla.mindrot.o…

Web3 ETF 的软件开发框架

Web3 ETF 的软件开发框架主要包含以下几个方面&#xff0c;需要说明的是&#xff0c;Web3 ETF 仍处于早期发展阶段&#xff0c;相关技术和标准尚未成熟。在开发 Web3 ETF 时&#xff0c;需要谨慎评估风险&#xff0c;并做好安全防范措施。北京木奇移动技术有限公司&#xff0c;…

解决卡顿发热,超帧技术焕发中重载游戏动力

近几年&#xff0c;中国手游市场规模不断扩大&#xff0c;开发者通过在画面、玩法等方面的持续创新和打磨&#xff0c;推出更加精品化的产品。然而愈发精美的画质和复杂的玩法&#xff0c;也给硬件带来超高的负载&#xff0c;导致玩家在游戏过程中&#xff0c;频繁出现掉帧卡顿…

C++基础知识-编译相关

记录C语言相关的基础知识 1 C源码到可执行文件的四个阶段 预处理(.i)、编译(.s)、汇编(.obj)、链接。 1.1 预处理 预处理阶段&#xff0c;主要完成宏替换、文件展开、注释删除、条件编译展开、添加行号和文件名标识&#xff0c;输出.i/.ii预处理文件。 宏替换&#xff0c;…

【AIGC评测体系】大模型评测指标集

大模型评测指标集 &#xff08;☆&#xff09;SuperCLUE&#xff08;1&#xff09;SuperCLUE-V&#xff08;中文原生多模态理解测评基准&#xff09;&#xff08;2&#xff09;SuperCLUE-Auto&#xff08;汽车大模型测评基准&#xff09;&#xff08;3&#xff09;AIGVBench-T2…

python_zabbix

zabbix官网地址&#xff1a;19. API19. APIhttps://www.zabbix.com/documentation/4.2/zh/manual/api 每个版本可以有些差异&#xff0c;选择目前的版本在查看对于的api接口#token接口代码 import requests apiurl "http://zabbix地址/api_jsonrpc.php" data {&quo…

顺序串算法库构建

学习贺利坚老师顺序串算法库 数据结构之自建算法库——顺序串_创建顺序串s1,创建顺序串s2-CSDN博客 本人详细解析博客 串的概念及操作_串的基本操作-CSDN博客 版本更新日志 V1.0: 在贺利坚老师算法库指导下, 结合本人详细解析博客思路基础上,进行测试, 加入异常弹出信息 v1.0补…

从零开始:如何设计一个现代化聊天系统

写在前面: 此博客内容已经同步到我的博客网站,如需要获得更优的阅读体验请前往https://mainjaylai.github.io/Blog/blog/system/chat-system 在当今数字化时代,聊天系统已成为我们日常生活和工作中不可或缺的一部分。从个人交流到团队协作,从客户服务到社交网络,聊天应用…

内网渗透第四天!!!冲冲冲!!怎么绕过uac以及你会all劫持???不安全的服务路径以及服务权限,你会吗???

在第三天我们简单的说了一下绕过uac&#xff0c;但是我们使用的msf模块ask要对方管理员跟我们一起来进行操作&#xff0c;才可以进行提权的操作&#xff0c;这点就限制住了我们。我们今天来讲一下不用钓鱼的绕过的操作。 绕过uac&#xff1a; 使用uacme项目和msf联动来进行绕过…

AD9026芯片开发实录6-example code

官方发布的软件包中&#xff0c;带了一份example code&#xff0c;用于向客户展示API的调用方法以及基于官方的验证版ADRV902X最简单的bring up的流程。 该 example 位于软件包的路径下&#xff1a;“\Adi.Adrv9025.Api\src\c_src\app\example\”。 代码组成&#xff1a; initd…

.NET周刊【6月第5期 2024-06-30】

国内文章 呼吁改正《上海市卫生健康信息技术应用创新白皮书》 C# 被认定为A 组件 的 错误认知 https://www.cnblogs.com/shanyou/p/18264292 近日&#xff0c;《上海市卫生健康“信息技术应用创新”白皮书》发布&#xff0c;提到医疗信创核心应用适配方法及公立医院信息系统…

2024 年江西省研究生数学建模竞赛题目 A题交通信号灯管理---完整文章分享(仅供学习)

问题&#xff1a; 交通信号灯是指挥车辆通行的重要标志&#xff0c;由红灯、绿灯、黄灯组成。红灯停、绿灯行&#xff0c;而黄灯则起到警示作用。交通信号灯分为机动车信号灯、非机动车信号灯、人行横道信号 灯、方向指示灯等。一般情况下&#xff0c;十字路口有东西向和南北向…

二刷 动态规划

什么是动态规划 Dynamic Programming DP 如果某一问题有很多重叠子问题&#xff0c;使用动态规划时最有效的 动态规划中每一个状态是由上一个状态推导出来的。 动规五部曲 1.确定dp数组以及下标的含义 2.确定递归公式 3.dp数组如何初始化 4.确定遍历顺序 5.举例推导dp数…

分班查询系统,老师们应该如何制作?

新学期的开始&#xff0c;作为教师&#xff0c;我们面临的一项关键任务就是组织分班。传统分班方法往往需要处理大量的数据&#xff0c;这个过程不仅耗时&#xff0c;而且容易出错。为了简化这一流程&#xff0c;提高效率&#xff0c;我们可以利用现代技术&#xff0c;创建一个…