AI大模型原理与API使用

109 阅读8分钟

image.png

一、AI基础知识

1. 什么是AI?

AI(人工智能)的核心目标是让机器能够执行通常需要人类智能的任务,例如语言理解、图像识别、复杂问题解决等。

  • 早期阶段:以规则为基础的专家系统,依赖预设的逻辑和规则。
  • 机器学习时代:通过数据训练模型,使机器能够从数据中学习规律。
  • 深度学习时代:利用神经网络模拟人脑的复杂结构,处理更复杂的任务。
  • 大模型时代:以大规模数据和算力为基础,构建通用性强、性能卓越的AI模型。

img_1.jpg

2. AI的分类

img_2.jpg

二、大语言模型(LLM)与主流AI模型

1. 大型语言模型(LLM)

  • LLM 是基于海量文本数据训练的深度学习模型,属于生成式AI的一种。常见模型有GPT系列、DeepSeek、Qwen等。
  • 具备强大的文本理解、摘要、翻译、问答及内容创作能力。通过上下文关联,能进行连贯且富有逻辑的对话与写作,并可通过少量示例进行下游任务学习。

应用场景:

  • 智能客服

电商网站导入基于LLM的聊天机器人,能即时理解客户复杂的售后问题,提供个性化解决方案,大幅提升服务效率与客户满意度。

  • 内容创作

营销团队使用LLM,输入产品关键字和目标受众,快速生成多版本的广告文案、社交媒体帖文与博客文章,有效降低人力成本。

img_3.jpg

2. 生图/生视频模型(Text-to-Image/Video)

  • 专门将文字描述转换为全新图像或视频。代表模型有DALL-E、Midjourney、Sora等。
  • 能根据用户输入的文字提示(Prompt),创造出符合描述且风格多样的视觉内容,融合不同概念、属性和风格,生成原创作品。

应用场景:

  • 产品设计设计师输入“一款具有未来感的流线型运动跑鞋,采用回收海洋塑料材质”,模型可快速生成多款概念图,加速产品可视化与迭代过程。
  • 影视预览导演利用文字生成视频模型,将剧本中的关键场景转换为动态预览片段,便于实际拍摄前评估镜头、光影和场景布局的可行性。

img_4.jpg

3. 视觉识别模型(Computer Vision Model)

  • 视觉识别模型让计算机能“看懂”并解析图像与视频内容,主要任务包括图像分类、物体检测、图像分割等。代表模型有YOLO、ResNet。
  • 能准确辨识影像中的物体、人脸、文字或特定场景,从像素中提取特征,与已知模式比对,完成识别、定位或追踪任务。

应用场景:

  • 智能制造 生产线上部署视觉识别系统,能即时检测产品外观的微小瑕疵,自动剔除不合格品,确保出厂品质,准确率远超人眼。
  • 医疗影像分析 医院导入AI辅助判读系统,分析X光或CT扫描影像,模型能快速标记疑似肿瘤或病变区域,协助医生提高诊断效率与准确性。

img_5.jpg

三、大语言模型Token与关键参数

img_6.jpg

1. Token的定义

Token是大型语言模型处理文本的最小单位。由于模型无法直接理解文字,需要将文本切分成Token,再转换为数字(向量)进行运算。不同模型使用不同的“分词器”(Tokenizer)。

示例:

  • 英文 "Hello World":GPT-4o 切分为 [“Hello“, ”World“] → token id = [13225, 5922]
  • 中文“人工智能你好啊”: DeepSeek-R1 切分为 [“人工智能”, “你好”, “啊”] → token id = [33574, 30594, 3266] 分词方式不同会影响模型效率和对语言细节的理解能力。

推荐工具:tiktokenizer.vercel.app可查看不同模型的分词方式。

2. 模型的常见特殊Token

  • 分隔符(Separator Token) 用于区分不同文本段落或角色,如 <|user|>、<|assistant|>。
  • 结束符(End-of-Text Token) 告知模型文本结束,如 [EOS] 或 <|endoftext|>,确保生成内容完整不冗长。
  • 起始符(Start Token) 标记序列开始,如 [CLS]、[BOS],帮助模型准备处理文本。

3. Token长度限制

  • 输入Token限制 模型单次API调用能处理的最大信息量,包括系统提示词、历史对话和当前输入。超出会报错。
  • 输出Token限制 模型一次回复能生成的最大内容长度。设置过低会导致回答不完整,过高则增加调用时间和费用。

4. Temperature与Top P参数

用于控制LLM生成文本的多样性:

  • Temperature(温度) 控制概率分布的“平滑度”。 高温度(如1.0+):生成更具创造性但可能不连贯。低温度(如0.2):生成更稳定、保守的内容。
  • Top P(核采样) 设定概率阈值P,模型只在累计概率达到P的词汇表中选词。高Top P(如0.9):结果多样。低Top P(如0.1):结果更确定。

对比示例:

假设模型要完成句子“今天天气真...”

预测下一个词:好(60%)、不错(30%)、糟(9%)、可乐(0.01%)。

  • 高Temperature:低概率词(如“可乐”)也有机会被选中。
  • Top P=0.9:只从“好”和“不错”中选择,排除离谱选项。

四、AI大模型聊天产品的“超能力”

img_7.jpg

1.联网搜索

  • 弥补LLM训练数据的时效性限制,获取外部实时信息。
  • 系统识别用户需求,自动调用搜索引擎API(如Google),获取并总结实时信息,生成精准回答。

示例

用户问“黄金的涨跌和哪些因素有关?”,LLM自动调用搜索工具,整理信息后给出答案。

2. 读取文件(RAG)

  • 基于“检索增强生成”(Retrieval-Augmented Generation, RAG)技术。
  • 上传文件后,系统分割内容并向量化,存入数据库。提问时检索相关片段,辅助模型生成答案。

示例

上传公司财报,问“第二季度的利润是多少?”,RAG系统能精准定位并提取相关信息。

3. 记忆功能

  • LLM本身无状态。系统通过上下文窗口实现“短期记忆”,通过数据库提取用户偏好等“长期记忆”,为模型提供个性化背景知识。

示例

用户偏好“简洁回答风格”,系统记录并在后续对话中自动适应。

五、DashScope使用方法

1. 什么是DashScope API?

DashScope 是阿里云提供的模型即服务(Model-as-a-Service)平台API。

2. 基本使用步骤

1)安装与API密钥设置

import dashscope
from dashscope.api_entities.dashscope_response import Role
# 设置 API key
dashscope.api_key = &#34;your-api-key&#34;

2)模型调用

response = dashscope.Generation.call(
    model='模型名称',  # 如 'qwen-turbo', 'deepseek-r1' 等
    messages=messages,
    result_format='message'
)

3)message格式

messages = [
    {&#34;role&#34;: &#34;system&#34;, &#34;content&#34;: &#34;系统提示信息&#34;},
    {&#34;role&#34;: &#34;user&#34;, &#34;content&#34;: &#34;用户输入&#34;},
    {&#34;role&#34;: &#34;assistant&#34;, &#34;content&#34;: &#34;助手回复&#34;},
    {&#34;role&#34;: &#34;user&#34;, &#34;content&#34;: &#34;用户新的输入&#34;}
]

4)常用参数说明

response = dashscope.Generation.call(
    model='模型名称',
    messages=messages,
    result_format='message',
    temperature=0.7,
    top_p=0.8,
    max_tokens=1500,
    stream=False
)
  • model 指定使用的模型(如 'deepseek-v3')。
  • messages 传递给模型的对话内容(列表,每项为字典,包含 role 和 content)。
  • result_format 返回结果格式,'message'为标准消息格式。

5)获取响应结果

    # 获取生成的文本
    result = response.output.choices[0].message.content
    # 流式输出
    for chunk in response:
        print(chunk.output.choices[0].message.content, end='')

主要关注 response.output.choices[0].message.content,获取模型实际输出内容。

6)系统提示词(System Prompt)

  • 用于设定AI的角色、行为准则和输出格式,是全局指令。
  • 应在对话开始设定,内容清晰明确。
  • 提示词会消耗Token,频繁更改可能导致AI行为不稳定。

六、DashScope API使用案例

CASE 1:情感分析

对用户评论进行情感正向/负向分析,适合舆情监控等场景。

import json
import os
import dashscope
from dashscope.api_entities.dashscope_response import Role
api_key = os.environ.get('DASHSCOPE_API_KEY')
dashscope.api_key = api_key
def get_response(messages):
    response = dashscope.Generation.call(
        model='deepseek-v3',
        messages=messages,
        result_format='message'
    )
    return response
review = '这款音效特别好 给你意想不到的音质。'
messages=[
    {&#34;role&#34;: &#34;system&#34;, &#34;content&#34;: &#34;你是一名舆情分析师,帮我判断产品口碑的正负向,回复请用一个词语:正向 或者 负向&#34;},
    {&#34;role&#34;: &#34;user&#34;, &#34;content&#34;: review}
]
response = get_response(messages)
print(response.output.choices[0].message.content)

CASE 2:Function Call使用(天气查询)

为LLM提供实时天气查询服务,支持函数调用。

1)模拟天气查询函数

def get_current_weather(location, unit=&#34;摄氏度&#34;):
    temperature = -1
    if '杭州' in location or 'Dalian' in location:
        temperature = 10
    if '上海' in location or 'Shanghai' in location:
        temperature = 36
    if '深圳' in location or 'Shenzhen' in location:
        temperature = 37
    weather_info = {
        &#34;location&#34;: location,
        &#34;temperature&#34;: temperature,
        &#34;unit&#34;: unit,
        &#34;forecast&#34;: [&#34;晴天&#34;, &#34;微风&#34;],
    }
    return json.dumps(weather_info)

2)模型调用封装

def get_response(messages):
    try:
        response = dashscope.Generation.call(
            model='qwen-max',
            messages=messages,
            functions=functions,
            result_format='message'
        )
        return response
    except Exception as e:
        print(f&#34;API调用出错: {str(e)}&#34;)
        return None

3)主要对话流程

query = &#34;杭州的天气怎样&#34;
messages=[{&#34;role&#34;: &#34;user&#34;, &#34;content&#34;: query}]
response = get_response(messages)
if hasattr(message, 'function_call') and message.function_call:
    function_call = message.function_call
    tool_name = function_call['name']
    arguments = json.loads(function_call['arguments'])
    tool_response = get_current_weather(
        location=arguments.get('location'),
        unit=arguments.get('unit'),
    )
    tool_info = {&#34;role&#34;: &#34;function&#34;, &#34;name&#34;: tool_name, &#34;content&#34;: tool_response}
    messages.append(tool_info)
    response = get_response(messages)

4)函数注册配置

functions = [
    {
        'name': 'get_current_weather',
        'description': 'Get the current weather in a given location.',
        'parameters': {
            'type': 'object',
            'properties': {
                'location': {
                    'type': 'string',
                    'description': 'The city and state, e.g. San Francisco, CA'
                },
                'unit': {'type': 'string', 'enum': ['celsius', 'fahrenheit']}
            },
            'required': ['location']
        }
    }
]

5)整体工作流程

  1. 用户输入查询天气的问题
  2. 模型理解问题,决定调用天气查询函数
  3. 模型生成函数调用参数(城市、温度单位)
  4. 程序执行函数,获取天气数据
  5. 将天气数据返回给模型
  6. 模型生成最终自然语言回答