hugging face网址:https://huggingface.co/
魔搭社区:ModelScope 魔搭社区
openai控制台:https://platform.openai.com/
阿里云百炼:阿里云-计算,为了无法计算的价值
1.LLM的定义
大语言模型LLM是指基于大规模神经网络,通过自监督和半监督方式,对海量文本进行训练的语言模型,核心能力是理解和生成人类语言。
要理解LLM首先得知道LLM的底层,神经网络是什么
1.1神经网络
神经网络是一种模仿人脑神经元连接方式的计算系统,由海量可调整的参数组成,每个参数(可以理解为一个神经元)只负责处理一点点信息。
处理完后往下一层传递,一层一层接力,最终由整个网络共同输出判断结果。
通过大量数据反复训练,这些参数会被不断调整,最终形成一套高效的 "条件反射"------ 输入什么,就能输出对应的答案
1.2LLM是怎么训练出来的
LLM的训练方式主要分两个阶段
预训练阶段(自监督学习),让模型从无标注数据中寻找规律
微调阶段(监督/半监督),有标注数据和无标注数据混合训练,让模型的输出更符合人类期望
2.LLM的接入模式
2.1通过api远程调用
这是目前最主流快捷的接入方式,尤其是适用于快速开发,集成到现有应用以及不想管理硬件资源的场景;通过http请求,直接调用模型提供商部署在云端的模型服务,不需要下载模型等,直接拿来就用。
流程,
注册大模型提供商账号并获取api key
查阅api文档,了解请求的端点,参数,和返回的数据格式
构建http请求,使用http客户端库构建一个包含api key(通常在header)和请求体(JSON格式,包含你的提示以及参数)的请求
发送请求并处理响应,将请求发送到厂商提供的api地址,解析并返回JSON数据,提取生成的文本
curl "https://api.openai.com/v1/responses" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-5",
"input": "Write a one-sentence bedtime story about a unicorn."
}'
如上,例如向openai的大模型发送api调用申请。
-H是请求头,-d是请求体包含模型名称和你要问的问题。
相比于直接终端命令调用,或者使用http客户端apifox这类可视化工具来发起调用也是一种选择,但是调用时需要开启系统代理。
也就是需要一点魔法上网,你也可以使用国内大模型如qwen,也是很好的选择。
2.2开源模型本地部署
本地部署,指的是将开源的LLM部署在自己的硬件环境中,通过下载模型的文件,使用专门的推理框架在本地服务器或GPU上加载并运行模型,再使用类似API的方式进行交互。
流程,
获取模型,从hugging face(相当于大模型中的github),魔搭社区等平台下载开源模型的权重。
准备环境,配置足够显存的服务器,安装必要的驱动和推理框架
选择推理框架,
vLLM,注重高吞吐量的推理服务,功能哇塞,适用于生产环境,高并发
TGI,hugging face推出的,功能全面
ollama,可以一键拉取和运行模型,适合快速入门和本地开发
LM Studio,提供图形化界面
注意模型参数量越高,所需要的显存也就越大。
启动服务并调用,框架会启动一个本地api服务器,如http://localhost:8080,可以像调用云端api一样向这个本地地址发送调用请求。
2.3SDK和官方客户端库
SDK是对api接入的封装和简化,是一个更符合编程习惯的,语言特定的函数库,不用手动拼http的请求
以openai python sdk为例
安装所需的库
pip install openai
安装好库后直接编写代码
from openai import OpenAI
client = OpenAI(api_key="your-api-key")
response = client.responses.create(
model="gpt-5",
input="介绍⼀下你⾃⼰。"
)
print(response.output_text)
api调用,本地部署,以及sdk接入,各有优势,根据需求选择。
3.原生LLM的限制
事实上,原生的LLM无论怎么接入都有限制
比如,所有的LLM都有固定的输入长度,一旦输入超出上限,模型就处理不了
模型的训练数据有截止日期,无法获取最新数据
复杂任务处理能力弱,原生api本质是一个一问一答单次交互模式。
输出格式不可控,比如JSON,列表,固定格式的内容会乱。
而langchain等框架正是为了系统性的解决这些问题而诞生的,通过工程化的手段,加强大模型,让它能处理更长的文本、接入最新的信息、完成更复杂的任务。
4.嵌入模型
LLM是生成式模型,输入一段文本,输出新的文本,目的是创造
嵌入模型是表示型模型,输入一段文本,输出一串数字(向量),目的是表示
简单来说嵌入模型是将文本翻译成一串数字向量,这串数字能代表这段文本的语义
在在高维向量空间中,任意两点的距离(或夹角)反映语义相似度,也就是说嵌入式模型可以根据相似性进行匹配,而不是基于精确性匹配,并且维度越高,能捕捉的语义复杂度也就越强。
就比如说,你搜索苹果手机,传统搜索中是精确匹配,只能搜到苹果手机这个关键词,如果是嵌入模型就能明白iPhone和apple手机都是一个意思,这就是语义匹配。
4.1嵌入模型应用场景
推荐系统,将用户根据历史行为,偏好及物品如商品,新闻等都转化成向量;喜欢相似物品的用户,其向量会接近;相似的物品,其向量也会接近,通过计算用户与物品的向量相似度就能够实现精确的推荐。
异常系统,正常数据的向量通常会聚集在一起,如果一个新数据的向量远离大多数向量的聚集地,它就可能是一个异常点,如垃圾邮件,骚扰电话等。
信息检索,这是跟LLM结合更紧密的用法,也就是下面要说的RAG
4.2RAG检索增强生成
通过RAG就能解决LLM上下文有限,截止日期等问题。
将你想要让模型了解的资料分成小块用嵌入模型转成向量,存入向量数据库中
当用户提问时,将问题转换为向量,再去向量数据库里搜索最相关的内容
将搜出来的内容和问题一起拼进提示词,发给LLM
LLM再通过这些内容进行回答
而嵌入模型就是整个RAG流程里负责翻译和匹配的那个角色,
嵌入模型的调用跟 LLM 类似,可以用 API,也可以本地部署。拿到向量之后,下一步就是存进向量数据库供后续检索。
对于初创项目或原型验证,从api方式开始是最佳的选择,当应用规模化或面临严格的数据合规要求时,再考虑迁移至本地部署开源模型。
还是那句话,先有业务再有公司。
