1. 大语言模型 (LLM) 概念
定义:大语言模型(LLM)是一种人工智能模型,旨在理解和生成人类语言。
典型模型:GPT-3、GPT-4、PaLM、Galactica、LLaMA(国外);ChatGLM、文心一言、通义千问、讯飞星火(国内)。
2. 大模型的能力和特点
能力:
上下文学习:通过理解上下文并生成相应输出来执行任务。
指令遵循:根据任务指令执行未见过的任务,展示出强大的泛化能力。
逐步推理:通过“思维链”策略解决多步推理任务。
特点:
巨大的规模:参数规模达数十亿甚至数千亿。
预训练和微调:在大规模无标签文本数据上预训练,然后通过有标签数据微调。
上下文感知:具备强大的上下文感知能力。
多语言支持:支持多种语言。
多模态支持:支持文本、图像和语音的多模态数据。
涌现能力:在大规模模型中表现出明显的性能提升。
多领域应用:广泛应用于文本生成、自动翻译、信息检索等领域。
伦理和风险问题:需要处理生成有害内容、隐私问题和认知偏差等。
3. 大语言模型解题方案
推理能力:大语言模型展现出推理能力,能够理解基本逻辑并根据逻辑思考问题。
提示工程 (Prompt Engineering):通过设计和优化提示词,提升大语言模型处理复杂任务的能力。
4. 提示工程的具体应用
问题转化:将问题字典转化为MD格式的prompt,使大语言模型能理解并做分析。
{
"problem": "...",
"questions": [
{"question": "...", "options": ["..."]}
],
"id": "..."
}
转化为:
你是一个逻辑推理专家,擅长解决逻辑推理问题。以下是一个逻辑推理的题目,形式为单项选择题。所有的问题都是闭世界假设,即未观测事实都为假。请逐步分析问题并在最后一行输出答案,最后一行的格式为"答案是:A"。题目如下:
##题目: ...
##问题: ...
A. ...
B. ...
C. ...
D. ...
5.代码实现
答案生成部分:
大模型处理函数:
call_qwen_api
通过输入模型名称、prompt,完成大模型api调用。api_retry:设置反复尝试的函数,保证每个问题都被大模型处理过。
get_prompt:通过字符串处理的方式拼接完整的prompt。
抽取函数:
extract
通过正则表达式匹配答案对应的选项。多线程处理:使用
ThreadPoolExecutor
进行多线程处理,提升效率。纠错与结果文件生成:
去重与排序:将一个问题背景下的所有问题存入同一个字典,并按id序号排序。
纠错:找出缺失的序号并进行补错。
存储文件:将结果存储为jsonl格式。
6. 环境配置
安装需要的库:如
scipy
,openai
,tiktoken
,retry
,dashscope
,loguru
等。配置API:配置API密钥。
导入需要的环境:包括日志处理、多线程、api请求等相关库。