当前位置:   article > 正文

【Datawhale AI夏令营】从小白开始 - 逻辑推理学习Task2

【Datawhale AI夏令营】从小白开始 - 逻辑推理学习Task2

初识大语言模型

概念

大语言模型的概念就是通过数据集进行训练,经过不断调整指令参数来解决推理问题。


目前已知的成熟大模型:

能力&特点

  1. 大规模数据训练:使用大量的数据集(数千亿)进行训练,以学习语言的复杂性和多样性。
  2. 上下文Context:能够理解上下文语言环境对问题进行处理。
  3. 高度的泛化能力:能够处理多种语言任务,如文本生成、翻译、摘要、问答等。
  4. 多语言能力:一些模型能够处理多种语言,实现跨语言的理解和生成。
  5. 逐步推理: "思维链(Chain of Thought, CoT "策略。

对比

大语言模型数据量大资源消耗大,速度慢能够处理广泛复杂的逻辑
传统机器学习数据量少模型训练&推理速度较快缺乏灵活性
小规模语言模型数据量少资源消耗少难以处理广泛或复杂的语言任务

如何实现? —> 提示工程

概念:

训练大模型,常见的实现方案便是提示工程(Prompt Engineering)

通过设计和定制特定的提示(prompts),即输入到模型中的文本,引导大模型生成预期的输出或执行特定的任务。

例子:

例如本次赛题中的数据集中,第一个文本如下:

{
	"problem": 
		"有一群人和一些食物类型。下列是关于这些个体和食物的已知信息:\n\n1. 鸡肉是一种食物。\n2. 苹果是一种食物。\n3. 如果X吃了Y,且X活着,则Y是一种食物。\n4. Bill存活。\n5. Bill吃了花生。\n6. John吃所有食物。\n7. Sue吃所有Bill吃的食物。\n8. John喜欢所有食物。\n\n根据以上信息,回答以下选择题:", 
		"questions": 
			[
				{
				"question": "选择题 1:\n谁喜欢吃花生?", 
				"options": ["Bill", "Sue", "John", "None of the above"]
				}
			],
	"id": "round1_test_data_000"
	}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

提示工程 就是要把它转化成MD格式的prompt,让大模型能够理解并进行分析。

你是一个逻辑推理专家,擅长解决逻辑推理问题。以下是一个逻辑推理的题目,形式为单项选择题。所有的问题都是(close-world assumption)闭世界假设,即未观测事实都为假。请逐步分析问题并在最后一行输出答案,最后一行的格式为"答案是:A"。题目如下:

### 题目:
有一群人和一些食物类型。下列是关于这些个体和食物的已知信息:

鸡肉是一种食物。
苹果是一种食物。
如果X吃了Y,且X活着,则Y是一种食物。
Bill存活。
Bill吃了花生。
John吃所有食物。
Sue吃所有Bill吃的食物。
John喜欢所有食物。

根据以上信息,回答以下选择题:

### 问题:
选择题 1:
谁喜欢吃花生?
A. Bill
B. Sue
C. John
D. None of the above
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

代码解释

1️⃣ 安装库

!pip install scipy openai tiktoken retry dashscope loguru
  • 1
  • scipy: 建立在NumPy的基础上,用于数学、科学和工程计算。
  • openai: 允许用户与OpenAI的API进行交互,进行文本生成或微调。
  • tiktoken: 将文本分解成更小的单元,如单词、子词或字符,以便于机器学习模型的处理。
  • retry: 遇到特定异常时自动重试代码块。
  • dashscope: 模型服务灵积
  • loguru: 日志库。

2️⃣ 配置好ApiKey

dashscope.api_key="sk-*****"
  • 1

相关库导入

import json
import os
from pprint import pprint
import re
from tqdm import tqdm
import random

import uuid
import openai
import tiktoken
import json
import numpy as np
import requests
from retry import retry
from scipy import sparse
#from rank_bm25 import BM25Okapi
#import jieba
from http import HTTPStatus
import dashscope

from concurrent.futures import ThreadPoolExecutor, as_completed
from loguru import logger
import json
import time
from tqdm import tqdm

logger.remove()  # 移除默认的控制台输出
logger.add("logs/app_{time:YYYY-MM-DD}.log", level="INFO", rotation="00:00", retention="10 days", compression="zip")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

选择模型

# 这里用到的模型是qwen2-7b-instruct,可以替换其他模型,跑出更高的分数
MODEL_NAME = 'qwen2-7b-instruct'
  • 1
  • 2

=> 使用该模型分数为0.6521

=> 换了一个模型qwen2-72b-instruct 得分明显提高 0.8389

=> 又换了一个模型deepseek-chat,得分提高 0.8547

4️⃣ 答案生成

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/939164

推荐阅读
相关标签