返回文章列表
AI

AI大模型原理及API使用

淼淼
2025-11-25
4周前
AI大模型原理及API使用

一、AI基础知识

1. 什么是AI?

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

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


2. AI的分类


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

1. 大型语言模型(LLM)


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

应用场景:


  • 智能客服电商网站导入基于LLM的聊天机器人,能即时理解客户复杂的售后问题,提供个性化解决方案,大幅提升服务效率与客户满意度。
  • 内容创作:营销团队使用LLM,输入产品关键字和目标受众,快速生成多版本的广告文案、社交媒体帖文与博客文章,有效降低人力成本。

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

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

应用场景:

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

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

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

应用场景:

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

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

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大模型聊天产品的“超能力”

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 dashscopefrom dashscope.api_entities.dashscope_response import Role# 设置 API keydashscope.api_key = "your-api-key"
    

    2)模型调用

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

    3)message格式

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

    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 jsonimport osimport dashscopefrom dashscope.api_entities.dashscope_response import Roleapi_key = os.environ.get('DASHSCOPE_API_KEY')dashscope.api_key = api_keydef get_response(messages):    response = dashscope.Generation.call(        model='deepseek-v3',        messages=messages,        result_format='message'    )    return responsereview = '这款音效特别好 给你意想不到的音质。'messages=[    {"role": "system", "content": "你是一名舆情分析师,帮我判断产品口碑的正负向,回复请用一个词语:正向 或者 负向"},    {"role": "user", "content": review}]response = get_response(messages)print(response.output.choices[0].message.content)
    


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

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

    1)模拟天气查询函数

    def get_current_weather(location, unit="摄氏度"):    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 = {        "location": location,        "temperature": temperature,        "unit": unit,        "forecast": ["晴天", "微风"],    }    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"API调用出错: {str(e)}")        return None
            


    3)主要对话流程

  • query = "杭州的天气怎样"messages=[{"role": "user", "content": 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 = {"role": "function", "name": tool_name, "content": 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. 模型生成最终自然语言回答


    本文内容仅供参考,不构成任何专业建议。使用本文提供的信息时,请自行判断并承担相应风险。

    分享文章
    合作伙伴

    本站所有广告均是第三方投放,详情请查询本站用户协议