1.API
-
deepseek
deepseek支持requests直接调用和openai式的调用,新注册用户有500万tokenimport requests import json url = "https://api.deepseek.com/chat/completions" payload = json.dumps({ "messages": [ { "content": "You are a helpful assistant", "role": "system" }, { "content": "Hi", "role": "user" } ], "model": "deepseek-coder", "frequency_penalty": 0, "max_tokens": 2048, "presence_penalty": 0, "stop": None, "stream": False, "temperature": 1, "top_p": 1, "logprobs": False, "top_logprobs": None }) headers = { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer <key>' } response = requests.request("POST", url, headers=headers, data=payload) print(response.text) from openai import OpenAI # for backward compatibility, you can still use `https://api.deepseek.com/v1` as `base_url`. client = OpenAI(api_key="sk-4f510fa4ca9d4ea7b56cdca99418fd9d", base_url="https://api.deepseek.com") response = client.chat.completions.create( model="deepseek-chat", messages=[ { "role": "system", "content": "You are a helpful assistant"}, { "role": "user", "content": "Hello"}, ], max_tokens=1024, temperature=0.7, stream=False ) print(response.choices[0].message.content)
-
智普AI
需要安装zhipuai包,新注册用户有赠送token -
pip install zhipuai
-
Python>=3.7
from zhipuai import ZhipuAI client = ZhipuAI(api_key="dd") # 请填写您自己的APIKey response = client.chat.completions.create( model="glm-4", # 填写需要调用的模型名称 messages=[ { "role": "user", "content": "你好!你叫什么名字"}, ], stream=True, ) for chunk in response: print(chunk.choices[0].delta)
-
kimi
kimi也是支持openai样式的调用,新注册用户的15元的赠送 -
pip install --upgrade ‘openai>=1.0’
from openai import OpenAI client = OpenAI( api_key = "sk-KbwNWKBaRwhkvmfIHeaV4xnlpp3haV7qLr0sSU7wIOI9ZSNh", base_url = "https://api.moonshot.cn/v1", ) completion = client.chat.completions.create( model = "moonshot-v1-8k", messages = [ { "role": "system", "content": "你是 Kimi,由 Moonshot AI 提供的人工智能助手,你更擅长中文和英文的对话。你会为用户提供安全,有帮助,准确的回答。同时,你会拒绝一切涉及恐怖主义,种族歧视,黄色暴力等问题的回答。Moonshot AI 为专有名词,不可翻译成其他语言。"}, { "role": "user", "content": "你好,我叫李雷,1+1等于多少?"} ], temperature = 0.3, ) print(completion.choices[0].message.content)
-
字节豆包
豆包需要安装方舟包 -
pip install ‘volcengine-python-sdk[ark]’
from volcenginesdkarkruntime import Ark # Authentication # 1.If you authorize your endpoint using an API key, you can set your api key to environment variable "ARK_API_KEY" # or specify api key by Ark(api_key="${YOUR_API_KEY}"). # Note: If you use an API key, this API key will not be refreshed. # To prevent the API from expiring and failing after some time, choose an API key with no expiration date. # 2.If you authorize your endpoint with Volcengine Identity and Access Management(IAM), set your api key to environment variable "VOLC_ACCESSKEY", "VOLC_SECRETKEY" # or specify ak&sk by Ark(ak="${YOUR_AK}", sk="${YOUR_SK}"). # To get your ak&sk, please refer to this document([https://www.volcengine.com/docs/6291/65568](https://www.volcengine.com/docs/6291/65568)) # For more information,please check this document([https://www.volcengine.com/docs/82379/1263279](https://www.volcengine.com/docs/82379/1263279)) client = Ark() # Non-streaming: print("----- standard request -----") completion = client.chat.completions.create( model="${YOUR_ENDPOINT_ID}", messages = [ { "role": "system", "content": "你是豆包,是由字节跳动开发的 AI 人工智能助手"}, { "role": "user", "content": "常见的十字花科植物有哪些?"}, ], ) print(completion.choices[0].message.content) # Streaming: print("----- streaming request -----") stream = client.chat.completions.create( model="${YOUR_ENDPOINT_ID}", messages = [ { "role": "system", "content": "你是豆包,是由字节跳动开发的 AI 人工智能助手"}, { "role": "user", "content": "常见的十字花科植物有哪些?"}, ], stream=True ) for chunk in stream: if not chunk.choices: continue print(chunk.choices[0].delta.content, end="") print()
-
讯飞星火
讯飞星火新注册用户都有免费额度,不同模型额度不要,3.5有10万token, 2.0的有200万一年token. 接口是采用websocket -
pip install --upgrade spark_ai_python
-
python 3.8
from sparkai.llm.llm import ChatSparkLLM, ChunkPrintHandler from sparkai.core.messages import ChatMessage #星火认知大模型Spark3.5 Max的URL值,其他版本大模型URL值请前往文档(https://www.xfyun.cn/doc/spark/Web.html)查看 SPARKAI_URL = 'wss://spark-api.xf-yun.com/v3.5/chat' #星火认知大模型调用秘钥信息,请前往讯飞开放平台控制台(https://console.xfyun.cn/services/bm35)查看 SPARKAI_APP_ID = '' SPARKAI_API_SECRET = '' SPARKAI_API_KEY = '' #星火认知大模型Spark3.5 Max的domain值,其他版本大模型domain值请前往文档(https://www.xfyun.cn/doc/spark/Web.html)查看 SPARKAI_DOMAIN = 'generalv3.5' if __name__ == '__main__': spark = ChatSparkLLM( spark_api_url=SPARKAI_URL, spark_app_id=SPARKAI_APP_ID, spark_api_key=SPARKAI_API_KEY, spark_api_secret=SPARKAI_API_SECRET, spark_llm_domain=SPARKAI_DOMAIN, streaming=False, ) messages = [ChatMessage( role="user", content='你好呀' )] handler = ChunkPrintHandler() a = spark.generate([messages], callbacks=[handler]) print(a)
-
通义千问
import random
from http import HTTPStatus
from dashscope import Generation # 建议dashscope SDK 的版本 >= 1.14.0
def call_with_messages():
messages = [{
'role': 'system', 'content': 'You are a helpful assistant.'},
{
'role': 'user', 'content': '如何做西红柿炒鸡蛋?'}]
response = Generation.call(model="qwen-turbo",
messages=messages,
# 设置随机数种子seed,如果没有设置,则随机数种子默认为1234
seed=random.randint(1, 10000),
# 将输出设置为"message"格式
result_format='message')
if response.status_code == HTTPStatus.OK:
print(response)
else:
print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (
response.request_id, response.status_code,
response.code, response.message
))
if __name__ == '__main__':
call_with_messages()
2. API使用总结
可以知道上面的API使用大同小异,有些直接兼容openai的调用格式:
-
需要注册获取api key,进行授权
-
api接口基本都支持stream流式输出
-
api接口都是典型chat模式,提供不同的角色信息,system,user和assistant, 多轮对话在history中拼接会话信息
大家快去使用吧。
AI大模型入门基础教程
第1章 快速上手:人工智能演进与大模型崛起
1.1 从AI到AIOps
1.2 人工智能与通用人工智能
1.3 GPT模型的发展历程
第2章 大语言模型基础
2.1 Transformer 模型
嵌入表示层
注意力层
前馈层
残差连接与层归一化
编码器和解码器结构
2.2 生成式预训练语言模型 GPT
无监督预训练
有监督下游任务微调
基于 HuggingFace 的预训练语言模型实践
2.3 大语言模型结构
LLaMA 的模型结构
注意力机制优化
第3章 大语言模型基础
3.1 数据来源
通用数据
专业数据
3.2 数据处理
低质过滤
冗余去除
隐私消除
词元切分
3.3 数据影响分析
数据规模影响
数据质量影响
数据多样性影响
3.4 开源数据集合
Pile
ROOTS
RefinedWeb
SlimPajama
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
2024最新版优快云大礼包:《AGI大模型学习资源包》免费分享
第4章 分布式训练
4.1 分布式训练概述
4.2 分布式训练并行策略
-
数据并行
-
模型并行
-
混合并行
-
计算设备内存优化
4.3 分布式训练的集群架构
-
高性能计算集群硬件组成
-
参数服务器架构
-
去中心化架构
4.4 DeepSpeed 实践
-
基础概念
-
LLaMA 分布式训练实践
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
2024最新版优快云大礼包:《AGI大模型学习资源包》免费分享
第5章 有监督微调
5.1 提示学习和语境学习
提示学习
语境学习
5.2 高效模型微调
LoRA
LoRA 的变体
5.3 模型上下文窗口扩展
具有外推能力的位置编码
插值法
5.4 指令数据构建
手动构建指令
自动生成指令
开源指令数据集
5.5 Deepspeed-Chat SFT 实践
代码结构
数据预处理
自定义模型
模型训练
模型推
第6章 强化学习
6.1 基于人类反馈的强化学习
6.2 奖励模型
6.3 近端策略优化
6.4 MOSS-RLHF 实践
第7章 大语言模型应用
7.1 推理规划
7.2 综合应用框架
7.3 智能代理
7.4 多模态大模型
7.5 大语言模型推理优化
第8章 大语言模型评估
8.1 模型评估概述
8.2 大语言模型评估体系
8.3 大语言模型评估方法
8.4 大语言模型评估实践
总结
坚持到了这儿,恭喜你,表示你有做AI大模型工程师的潜力。其实我想说的上面的内容只是冰山一角,刚开始大家不需要多么精通了解这些内容。主要是不断练习,让自己跳出「舒适区」,进入「学习区」,但是又不进入「恐慌区」,不断给自己「喂招」。
记住,学习是一个持续的过程。大模型技术日新月异,每天都有新的研究成果和技术突破。要保持对知识的渴望,不断学习最新的技术和算法。同时,实践是检验学习成果的最佳方式。通过实际项目实践,你将能够将理论知识转化为实际能力,不断提升自己的技术实力。
最后,不要忘记与同行交流和学习。AI大模型领域有许多优秀的专家和社区,他们可以为你提供宝贵的指导和建议。参加技术交流会、阅读论文、加入专业论坛,这些都是提升自己技术水平的好方法。
祝愿你在AI大模型的学习之旅中取得丰硕的成果,开启属于你的AI大模型时代!