Spaces:
Runtime error
Runtime error
Sukmadi commited on
Commit ·
9f83d0e
1
Parent(s): 25c70ea
update retrieval with faiss HNSW and better chunking
Browse files- README.md +5 -0
- app/generator.py +1 -0
- app/utils.py +0 -220
- generator.py +10 -4
- test/DeepLearning_mcq_output.json +194 -0
- test/ML_mcq_output.json +206 -0
- test/calculus_mcq_output.json +206 -0
- test/mcq_output.json +0 -55
- test/politic_mcq_output.json +206 -0
- test/raw_resp.json +13 -13
README.md
CHANGED
|
@@ -8,3 +8,8 @@ pinned: false
|
|
| 8 |
---
|
| 9 |
|
| 10 |
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
---
|
| 9 |
|
| 10 |
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
| 11 |
+
|
| 12 |
+
---
|
| 13 |
+
TODO:
|
| 14 |
+
+ Apply COhen's Kappa to measure rate of aggreement between human and AI.
|
| 15 |
+
|
app/generator.py
CHANGED
|
@@ -7,6 +7,7 @@ from typing import List, Optional, Tuple, Dict, Any
|
|
| 7 |
from sentence_transformers import SentenceTransformer
|
| 8 |
from uuid import uuid4
|
| 9 |
import pymupdf4llm
|
|
|
|
| 10 |
|
| 11 |
try:
|
| 12 |
from qdrant_client import QdrantClient
|
|
|
|
| 7 |
from sentence_transformers import SentenceTransformer
|
| 8 |
from uuid import uuid4
|
| 9 |
import pymupdf4llm
|
| 10 |
+
from utils import save_to_local
|
| 11 |
|
| 12 |
try:
|
| 13 |
from qdrant_client import QdrantClient
|
app/utils.py
DELETED
|
@@ -1,220 +0,0 @@
|
|
| 1 |
-
import re
|
| 2 |
-
import json
|
| 3 |
-
from typing import Dict, Any
|
| 4 |
-
import requests
|
| 5 |
-
import os
|
| 6 |
-
import numpy as np
|
| 7 |
-
import uuid
|
| 8 |
-
import datetime
|
| 9 |
-
import pathlib
|
| 10 |
-
|
| 11 |
-
#TODO: allow to choose different provider later + dynamic routing when token expired
|
| 12 |
-
API_URL = "https://api.cerebras.ai/v1/chat/completions"
|
| 13 |
-
CEREBRAS_API_KEY = os.environ['CEREBRAS_API_KEY']
|
| 14 |
-
|
| 15 |
-
HEADERS = {"Authorization": f"Bearer {CEREBRAS_API_KEY}"}
|
| 16 |
-
JSON_OBJ_RE = re.compile(r"(\{[\s\S]*\})", re.MULTILINE)
|
| 17 |
-
|
| 18 |
-
INPUT_TOKEN_COUNT = np.array([], dtype=int)
|
| 19 |
-
OUTPUT_TOKEN_COUNT = np.array([], dtype=int)
|
| 20 |
-
TOTAL_TOKEN_COUNT = np.array([], dtype=int)
|
| 21 |
-
TOTAL_TOKEN_COUNT_EACH_GENERATION = np.array([])
|
| 22 |
-
TIME_INFOs = {}
|
| 23 |
-
|
| 24 |
-
def _post_chat(messages: list, model: str, temperature: float = 0.2, timeout: int = 60) -> str:
|
| 25 |
-
payload = {"model": model, "messages": messages, "temperature": temperature}
|
| 26 |
-
resp = requests.post(API_URL, headers=HEADERS, json=payload, timeout=timeout)
|
| 27 |
-
resp.raise_for_status()
|
| 28 |
-
data = resp.json()
|
| 29 |
-
|
| 30 |
-
save_to_local(path='../test/raw_resp.json', content=data, as_json=True)
|
| 31 |
-
|
| 32 |
-
#? Must update within _post_chat because it the original function for LLM generation
|
| 33 |
-
update_token_count(token_usage=data['usage']) # get data['usages']['prompt_tokens'] & data['usages']['completion_tokens']
|
| 34 |
-
update_time_info(time_info=data['time_info'])
|
| 35 |
-
|
| 36 |
-
# handle various shapes
|
| 37 |
-
if "choices" in data and len(data["choices"]) > 0:
|
| 38 |
-
# prefer message.content
|
| 39 |
-
ch = data["choices"][0]
|
| 40 |
-
|
| 41 |
-
if isinstance(ch, dict) and "message" in ch and "content" in ch["message"]:
|
| 42 |
-
return ch["message"]["content"]
|
| 43 |
-
|
| 44 |
-
if "text" in ch:
|
| 45 |
-
return ch["text"]
|
| 46 |
-
|
| 47 |
-
print(f'Generation Time: {data["time_info"]}')
|
| 48 |
-
# final fallback
|
| 49 |
-
raise RuntimeError("Unexpected HF response shape: " + json.dumps(data)[:200])
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
def _safe_extract_json(text: str) -> dict:
|
| 53 |
-
# remove triple backticks
|
| 54 |
-
text = re.sub(r"```(?:json)?\n?", "", text)
|
| 55 |
-
m = JSON_OBJ_RE.search(text)
|
| 56 |
-
|
| 57 |
-
if not m:
|
| 58 |
-
raise ValueError("No JSON object found in model output.")
|
| 59 |
-
js = m.group(1)
|
| 60 |
-
|
| 61 |
-
# try load, fix trailing commas
|
| 62 |
-
try:
|
| 63 |
-
return json.loads(js)
|
| 64 |
-
except json.JSONDecodeError:
|
| 65 |
-
fixed = re.sub(r",\s*([}\]])", r"\1", js)
|
| 66 |
-
return json.loads(fixed)
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
def generate_mcqs_from_text(
|
| 70 |
-
source_text: str,
|
| 71 |
-
n: int = 3,
|
| 72 |
-
model: str = "gpt-oss-120b",
|
| 73 |
-
temperature: float = 0.2,
|
| 74 |
-
) -> Dict[str, Any]:
|
| 75 |
-
system_message = {
|
| 76 |
-
"role": "system",
|
| 77 |
-
"content": (
|
| 78 |
-
"Bạn là một trợ lý hữu ích chuyên tạo câu hỏi trắc nghiệm. "
|
| 79 |
-
"Chỉ TRẢ VỀ duy nhất một đối tượng JSON theo đúng schema sau và không có bất kỳ văn bản nào khác:\n\n"
|
| 80 |
-
"{\n"
|
| 81 |
-
' "1": { "câu hỏi": "...", "lựa chọn": {"a":"...","b":"...","c":"...","d":"..."}, "đáp án":"..."},\n'
|
| 82 |
-
' "2": { ... }\n'
|
| 83 |
-
"}\n\n"
|
| 84 |
-
"Lưu ý:\n"
|
| 85 |
-
f"- Tạo đúng {n} mục, đánh YOUR_API_KEYsố từ 1 tới {n}.\n"
|
| 86 |
-
"- Khóa 'lựa chọn' phải có các phím a, b, c, d.\n"
|
| 87 |
-
"- 'đáp án' phải là toàn văn đáp án đúng (không phải ký tự chữ cái), và giá trị này phải khớp chính xác với một trong các giá trị trong 'lựa chọn'.\n"
|
| 88 |
-
"- Không kèm giải thích hay trường thêm.\n"
|
| 89 |
-
"- Các phương án sai (distractors) phải hợp lý và không lặp lại."
|
| 90 |
-
)
|
| 91 |
-
}
|
| 92 |
-
user_message = {
|
| 93 |
-
"role": "user",
|
| 94 |
-
"content": (
|
| 95 |
-
f"Hãy tạo {n} câu hỏi trắc nghiệm từ nội dung dưới đây. Dùng nội dung này làm nguồn duy nhất để trả lời."
|
| 96 |
-
"Nếu nội dung quá ít để tạo câu hỏi chính xác, hãy tạo các phương án hợp lý nhưng có thể biện minh được.\n\n"
|
| 97 |
-
f"Nội dung:\n\n{source_text}"
|
| 98 |
-
)
|
| 99 |
-
}
|
| 100 |
-
|
| 101 |
-
raw = _post_chat([system_message, user_message], model=model, temperature=temperature)
|
| 102 |
-
parsed = _safe_extract_json(raw)
|
| 103 |
-
|
| 104 |
-
# validate structure and length
|
| 105 |
-
if not isinstance(parsed, dict) or len(parsed) != n:
|
| 106 |
-
raise ValueError(f"Generator returned invalid structure. Raw:\n{raw}")
|
| 107 |
-
return parsed
|
| 108 |
-
|
| 109 |
-
|
| 110 |
-
# helpers to read/reset token counts
|
| 111 |
-
def get_token_count_record():
|
| 112 |
-
global TOTAL_TOKEN_COUNT_EACH_GENERATION
|
| 113 |
-
TOTAL_TOKEN_COUNT_EACH_GENERATION = np.append(TOTAL_TOKEN_COUNT_EACH_GENERATION, np.sum(TOTAL_TOKEN_COUNT))
|
| 114 |
-
|
| 115 |
-
token_record = {
|
| 116 |
-
'INPUT_token_count': np.sum(INPUT_TOKEN_COUNT),
|
| 117 |
-
'OUTPUT_token_count': np.sum(OUTPUT_TOKEN_COUNT),
|
| 118 |
-
'AVG_INPUT_token_count': np.average(INPUT_TOKEN_COUNT),
|
| 119 |
-
'AVG_OUTPUT_token_count': np.average(OUTPUT_TOKEN_COUNT),
|
| 120 |
-
'TOTAL_token_count': TOTAL_TOKEN_COUNT,
|
| 121 |
-
'TOTAL_token_count_PER_GENERATION - ': TOTAL_TOKEN_COUNT_EACH_GENERATION,
|
| 122 |
-
f'AVG_TOTAL_token_count_PER_GENERATION': [np.average(TOTAL_TOKEN_COUNT_EACH_GENERATION), len(TOTAL_TOKEN_COUNT_EACH_GENERATION)],
|
| 123 |
-
}
|
| 124 |
-
|
| 125 |
-
return token_record
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
def reset_token_count(reset_all=None):
|
| 129 |
-
"""Call in app.py. For Reset Token Count after 1 Generation Session"""
|
| 130 |
-
global INPUT_TOKEN_COUNT, OUTPUT_TOKEN_COUNT, TOTAL_TOKEN_COUNT, TOTAL_TOKEN_COUNT_EACH_GENERATION
|
| 131 |
-
|
| 132 |
-
INPUT_TOKEN_COUNT = np.array([])
|
| 133 |
-
OUTPUT_TOKEN_COUNT = np.array([])
|
| 134 |
-
TOTAL_TOKEN_COUNT = np.array([])
|
| 135 |
-
|
| 136 |
-
if reset_all:
|
| 137 |
-
TOTAL_TOKEN_COUNT_EACH_GENERATION = np.array([])
|
| 138 |
-
|
| 139 |
-
|
| 140 |
-
def update_token_count(token_usage):
|
| 141 |
-
"""Update Token Count for each generation
|
| 142 |
-
"usage": {
|
| 143 |
-
"prompt_tokens": 1209,
|
| 144 |
-
"completion_tokens": 313,
|
| 145 |
-
"total_tokens": 1522,
|
| 146 |
-
"prompt_tokens_details": {
|
| 147 |
-
"cached_tokens": 0
|
| 148 |
-
}
|
| 149 |
-
"""
|
| 150 |
-
global INPUT_TOKEN_COUNT, OUTPUT_TOKEN_COUNT, TOTAL_TOKEN_COUNT # get value from global
|
| 151 |
-
prompt_tokens = token_usage['prompt_tokens'] # INPUT token
|
| 152 |
-
completion_tokens = token_usage['completion_tokens'] # OUTPUT token
|
| 153 |
-
total_tokens = token_usage['total_tokens'] # TOTAL token
|
| 154 |
-
|
| 155 |
-
INPUT_TOKEN_COUNT = np.append(INPUT_TOKEN_COUNT, prompt_tokens)
|
| 156 |
-
OUTPUT_TOKEN_COUNT = np.append(OUTPUT_TOKEN_COUNT, completion_tokens)
|
| 157 |
-
TOTAL_TOKEN_COUNT = np.append(TOTAL_TOKEN_COUNT, total_tokens)
|
| 158 |
-
|
| 159 |
-
print("Input Token Increase:", INPUT_TOKEN_COUNT)
|
| 160 |
-
print("Output Token Increase:", OUTPUT_TOKEN_COUNT)
|
| 161 |
-
|
| 162 |
-
|
| 163 |
-
def save_logs(record: dict, log_path:str = "logs/generation_log.jsonl"):
|
| 164 |
-
"""
|
| 165 |
-
Append log to log_path
|
| 166 |
-
record: dict with keys you want to store (e.g. filename, input/output token_count, collection, etc..)
|
| 167 |
-
"""
|
| 168 |
-
# create file if not exist
|
| 169 |
-
p = pathlib.Path(log_path)
|
| 170 |
-
p.parent.mkdir(parents=True, exist_ok=True)
|
| 171 |
-
|
| 172 |
-
# add id/timestampt if missing
|
| 173 |
-
record.setdefault('id', str(uuid.uuid4()))
|
| 174 |
-
record.setdefault('timestamp_utc', datetime.datetime.now(datetime.timezone.utc).isoformat() + "Z") # get current time at timezone
|
| 175 |
-
|
| 176 |
-
# append as 1 json file for each generation
|
| 177 |
-
with open(p, "a", encoding='utf-8') as f:
|
| 178 |
-
f.write(json.dumps(record, ensure_ascii=False) + "\n")
|
| 179 |
-
|
| 180 |
-
|
| 181 |
-
def update_time_info(time_info):
|
| 182 |
-
"""
|
| 183 |
-
"time_info": {
|
| 184 |
-
"queue_time": 0.000600429,
|
| 185 |
-
"prompt_time": 0.052739054,
|
| 186 |
-
"completion_time": 0.15692187,
|
| 187 |
-
"total_time": 0.2117476463317871,
|
| 188 |
-
"created": 1755599458
|
| 189 |
-
}
|
| 190 |
-
"""
|
| 191 |
-
time_info['created'] = time_info
|
| 192 |
-
time_info['created'].pop('created')
|
| 193 |
-
|
| 194 |
-
|
| 195 |
-
def get_time_info():
|
| 196 |
-
global TIME_INFOs
|
| 197 |
-
return TIME_INFOs
|
| 198 |
-
# token_record = {
|
| 199 |
-
# 'completion_time': np.sum(INPUT_TOKEN_COUNT),
|
| 200 |
-
# 'total_time': np.sum(OUTPUT_TOKEN_COUNT),
|
| 201 |
-
# }
|
| 202 |
-
|
| 203 |
-
|
| 204 |
-
|
| 205 |
-
def save_to_local(path, content):
|
| 206 |
-
"""
|
| 207 |
-
path = '../test/raw_data.json'
|
| 208 |
-
path = '../test/mcq_output.json'
|
| 209 |
-
path = '../test/extract_output.md'
|
| 210 |
-
|
| 211 |
-
"""
|
| 212 |
-
p = pathlib.Path(path)
|
| 213 |
-
p.parent.mkdir(parents=True, exist_ok=True)
|
| 214 |
-
|
| 215 |
-
if path.lower().endwith('.json'):
|
| 216 |
-
with open(path, 'w', encoding='utf-8') as f:
|
| 217 |
-
f.write(json.dumps(content, ensure_ascii=False, indent=2))
|
| 218 |
-
else:
|
| 219 |
-
with open(path, 'w', encoding='utf-8') as f:
|
| 220 |
-
f.write(f'{content}')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
generator.py
CHANGED
|
@@ -92,10 +92,11 @@ class RAGMCQ:
|
|
| 92 |
# pages.append(txt.strip())
|
| 93 |
# return pages
|
| 94 |
|
| 95 |
-
def chunk_text(self, text: str, max_chars: int = 1200) -> List[str]:
|
| 96 |
text = text.strip()
|
| 97 |
if not text:
|
| 98 |
return []
|
|
|
|
| 99 |
if len(text) <= max_chars:
|
| 100 |
return [text]
|
| 101 |
|
|
@@ -103,13 +104,16 @@ class RAGMCQ:
|
|
| 103 |
sentences = re.split(r'(?<=[\.\?\!])\s+', text)
|
| 104 |
chunks = []
|
| 105 |
cur = ""
|
|
|
|
| 106 |
for s in sentences:
|
| 107 |
if len(cur) + len(s) + 1 <= max_chars:
|
| 108 |
cur += (" " if cur else "") + s
|
| 109 |
else:
|
| 110 |
if cur:
|
| 111 |
chunks.append(cur)
|
| 112 |
-
|
|
|
|
|
|
|
| 113 |
if cur:
|
| 114 |
chunks.append(cur)
|
| 115 |
|
|
@@ -121,6 +125,7 @@ class RAGMCQ:
|
|
| 121 |
else:
|
| 122 |
for i in range(0, len(c), max_chars):
|
| 123 |
final.append(c[i:i+max_chars])
|
|
|
|
| 124 |
return final
|
| 125 |
|
| 126 |
def build_index_from_pdf(self, pdf_path: str, max_chars: int = 1200):
|
|
@@ -145,12 +150,13 @@ class RAGMCQ:
|
|
| 145 |
self.embeddings = emb.astype("float32")
|
| 146 |
self._build_faiss_index()
|
| 147 |
|
| 148 |
-
def _build_faiss_index(self):
|
| 149 |
if _HAS_FAISS:
|
| 150 |
d = self.embeddings.shape[1]
|
| 151 |
-
index = faiss.
|
| 152 |
faiss.normalize_L2(self.embeddings)
|
| 153 |
index.add(self.embeddings)
|
|
|
|
| 154 |
self.index = index
|
| 155 |
else:
|
| 156 |
# store normalized embeddings and use brute-force numpy
|
|
|
|
| 92 |
# pages.append(txt.strip())
|
| 93 |
# return pages
|
| 94 |
|
| 95 |
+
def chunk_text(self, text: str, max_chars: int = 1200, overlap: int = 100) -> List[str]:
|
| 96 |
text = text.strip()
|
| 97 |
if not text:
|
| 98 |
return []
|
| 99 |
+
|
| 100 |
if len(text) <= max_chars:
|
| 101 |
return [text]
|
| 102 |
|
|
|
|
| 104 |
sentences = re.split(r'(?<=[\.\?\!])\s+', text)
|
| 105 |
chunks = []
|
| 106 |
cur = ""
|
| 107 |
+
|
| 108 |
for s in sentences:
|
| 109 |
if len(cur) + len(s) + 1 <= max_chars:
|
| 110 |
cur += (" " if cur else "") + s
|
| 111 |
else:
|
| 112 |
if cur:
|
| 113 |
chunks.append(cur)
|
| 114 |
+
|
| 115 |
+
cur = (cur[-overlap:] + " " + s) if overlap > 0 else s
|
| 116 |
+
|
| 117 |
if cur:
|
| 118 |
chunks.append(cur)
|
| 119 |
|
|
|
|
| 125 |
else:
|
| 126 |
for i in range(0, len(c), max_chars):
|
| 127 |
final.append(c[i:i+max_chars])
|
| 128 |
+
|
| 129 |
return final
|
| 130 |
|
| 131 |
def build_index_from_pdf(self, pdf_path: str, max_chars: int = 1200):
|
|
|
|
| 150 |
self.embeddings = emb.astype("float32")
|
| 151 |
self._build_faiss_index()
|
| 152 |
|
| 153 |
+
def _build_faiss_index(self, ef_construction=200, M=32):
|
| 154 |
if _HAS_FAISS:
|
| 155 |
d = self.embeddings.shape[1]
|
| 156 |
+
index = faiss.IndexHNSWFlat(d, M)
|
| 157 |
faiss.normalize_L2(self.embeddings)
|
| 158 |
index.add(self.embeddings)
|
| 159 |
+
index.hnsw.efConstruction = ef_construction
|
| 160 |
self.index = index
|
| 161 |
else:
|
| 162 |
# store normalized embeddings and use brute-force numpy
|
test/DeepLearning_mcq_output.json
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"mcqs": {
|
| 3 |
+
"1": {
|
| 4 |
+
"câu hỏi": "Theo nội dung trên, điểm khác biệt chính của kiến trúc Transformer so với các mô hình trước đó là gì?",
|
| 5 |
+
"lựa chọn": {
|
| 6 |
+
"a": "Sử dụng mạng hồi tiếp (recurrent) để mô hình hoá phụ thuộc dài hạn",
|
| 7 |
+
"b": "Dựa hoàn toàn vào cơ chế attention mà không có bất kỳ thành phần hồi tiếp nào",
|
| 8 |
+
"c": "Áp dụng các lớp convolution để tính toán các biểu diễn ẩn",
|
| 9 |
+
"d": "Chỉ sử dụng các lớp feed‑forward điểm‑điểm mà không có attention"
|
| 10 |
+
},
|
| 11 |
+
"đáp án": "Dựa hoàn toàn vào cơ chế attention mà không có bất kỳ thành phần hồi tiếp nào"
|
| 12 |
+
},
|
| 13 |
+
"2": {
|
| 14 |
+
"câu hỏi": "Trong quá trình huấn luyện các mô hình được mô tả, thuật toán tối ưu nào đã được sử dụng?",
|
| 15 |
+
"lựa chọn": {
|
| 16 |
+
"a": "Adam optimizer",
|
| 17 |
+
"b": "Stochastic Gradient Descent (SGD)",
|
| 18 |
+
"c": "RMSprop",
|
| 19 |
+
"d": "Adagrad"
|
| 20 |
+
},
|
| 21 |
+
"đáp án": "Adam optimizer"
|
| 22 |
+
},
|
| 23 |
+
"3": {
|
| 24 |
+
"câu hỏi": "Theo Bảng 3, mô hình Transformer cơ bản (base) đạt điểm BLEU bao nhiêu trên tập phát triển English‑to‑German (newstest2013)?",
|
| 25 |
+
"lựa chọn": {
|
| 26 |
+
"a": "25.8",
|
| 27 |
+
"b": "24.9",
|
| 28 |
+
"c": "26.4",
|
| 29 |
+
"d": "23.7"
|
| 30 |
+
},
|
| 31 |
+
"đáp án": "25.8"
|
| 32 |
+
},
|
| 33 |
+
"4": {
|
| 34 |
+
"câu hỏi": "Theo mô tả trong tài liệu, số bước warmup (warmup steps) được sử dụng trong quá trình huấn luyện là bao nhiêu?",
|
| 35 |
+
"lựa chọn": {
|
| 36 |
+
"a": "2000",
|
| 37 |
+
"b": "4000",
|
| 38 |
+
"c": "8000",
|
| 39 |
+
"d": "10000"
|
| 40 |
+
},
|
| 41 |
+
"đáp án": "4000"
|
| 42 |
+
},
|
| 43 |
+
"5": {
|
| 44 |
+
"câu hỏi": "Theo nội dung, mô hình Transformer (big) đạt được điểm BLEU bao nhiêu trên nhiệm vụ dịch tiếng Anh‑tiếng Đức WMT 2014?",
|
| 45 |
+
"lựa chọn": {
|
| 46 |
+
"a": "28.4",
|
| 47 |
+
"b": "30.0",
|
| 48 |
+
"c": "26.5",
|
| 49 |
+
"d": "27.0"
|
| 50 |
+
},
|
| 51 |
+
"đáp án": "28.4"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"validation": {
|
| 55 |
+
"1": {
|
| 56 |
+
"supported_by_embeddings": true,
|
| 57 |
+
"max_similarity": 0.7559994459152222,
|
| 58 |
+
"evidence": [
|
| 59 |
+
{
|
| 60 |
+
"idx": 9,
|
| 61 |
+
"page": 2,
|
| 62 |
+
"score": 0.7559994459152222,
|
| 63 |
+
"text": "To the best of our knowledge, however, the Transformer is the first transduction model relying\nentirely on self-attention to compute representations of its input and output without using sequencealigned RNNs or convolution. In the following sections, we will describe the Transformer, motivate\nself-attention and discuss its advantages over models such as [17, 18] and [9]. **3** **Model Architecture**\n\n\nMost competitive neural sequence transduction models have an encoder-decoder structure [ 5, 2, 35 ]. Here, the encoder maps an input sequence of symbol representations ( _x_ 1 _, ..., x_ _n_ ) to a sequence\nof continuous representations **z** = ( _z_ 1 _, ..., z_ _n_ ) . Given **z**, the decoder then generates an output\nsequence ( _y_ 1 _, ..., y_ _m_ ) of symbols one element at a time. At each step the model is auto-regressive\n\n[10], consuming the previously generated symbols as additional input when generating the next. 2"
|
| 64 |
+
},
|
| 65 |
+
{
|
| 66 |
+
"idx": 5,
|
| 67 |
+
"page": 3,
|
| 68 |
+
"score": 0.6882933974266052,
|
| 69 |
+
"text": "Figure 1: The Transformer - model architecture.\n\n\nThe Transformer follows this overall architecture using stacked self-attention and point-wise, fully\nconnected layers for both the encoder and decoder, shown in the left and right halves of Figure 1,\nrespectively.\n\n\n**3.1** **Encoder and Decoder Stacks**\n\nthe two sub-layers, followed by layer normalization [ 1 ]. That is, the output of each sub-layer is\nLayerNorm( _x_ + Sublayer( _x_ )), where Sublayer( _x_ ) is the function implemented by the sub-layer\nitself. To facilitate these residual connections, all sub-layers in the model, as well as the embedding\nlayers, produce outputs of dimension _d_ model = 512.\n\nmasking, combined with fact that the output embeddings are offset by one position, ensures that the\npredictions for position _i_ can depend only on the known outputs at positions less than _i_ .\n\n\n**3.2** **Attention**\n\n\n3"
|
| 70 |
+
},
|
| 71 |
+
{
|
| 72 |
+
"idx": 11,
|
| 73 |
+
"page": 10,
|
| 74 |
+
"score": 0.6689025163650513,
|
| 75 |
+
"text": "We\nplan to extend the Transformer to problems involving input and output modalities other than text and\nto investigate local, restricted attention mechanisms to efficiently handle large inputs and outputs\nsuch as images, audio and video. Making generation less sequential is another research goals of ours. The code we used to train and evaluate our models is available at `[https://github.com/](https://github.com/tensorflow/tensor2tensor)`\n`[tensorflow/tensor2tensor](https://github.com/tensorflow/tensor2tensor)` . **Acknowledgements** We are grateful to Nal Kalchbrenner and Stephan Gouws for their fruitful\ncomments, corrections and inspiration. **References**\n\n\n[1] Jimmy Lei Ba, Jamie Ryan Kiros, and Geoffrey E Hinton. Layer normalization. _arXiv preprint_\n_[arXiv:1607.06450](http://arxiv.org/abs/1607.06450)_, 2016. [2] Dzmitry Bahdanau, Kyunghyun Cho, and Yoshua Bengio. Neural machine translation by jointly\nlearning to align and translate. _CoRR_, abs/1409.0473, 2014. [3] Denny Britz, A..."
|
| 76 |
+
}
|
| 77 |
+
],
|
| 78 |
+
"model_verdict": {
|
| 79 |
+
"supported": true,
|
| 80 |
+
"confidence": 0.99,
|
| 81 |
+
"evidence": "the Transformer is the first transduction model relying entirely on self-attention ... without using sequence‑aligned RNNs or convolution.",
|
| 82 |
+
"reason": "Context explicitly states Transformer relies fully on attention and has no recurrent components."
|
| 83 |
+
}
|
| 84 |
+
},
|
| 85 |
+
"2": {
|
| 86 |
+
"supported_by_embeddings": true,
|
| 87 |
+
"max_similarity": 0.6170728206634521,
|
| 88 |
+
"evidence": [
|
| 89 |
+
{
|
| 90 |
+
"idx": 33,
|
| 91 |
+
"page": 10,
|
| 92 |
+
"score": 0.6170728206634521,
|
| 93 |
+
"text": "Our results in Table 4 show that despite the lack of task-specific tuning our model performs surprisingly well, yielding better results than all previously reported models with the exception of the\nRecurrent Neural Network Grammar [8]. In contrast to RNN sequence-to-sequence models [ 37 ], the Transformer outperforms the BerkeleyParser [29] even when training only on the WSJ training set of 40K sentences. **7** **Conclusion**\n\n\nIn this work, we presented the Transformer, the first sequence transduction model based entirely on\nattention, replacing the recurrent layers most commonly used in encoder-decoder architectures with\nmulti-headed self-attention. For translation tasks, the Transformer can be trained significantly faster than architectures based\non recurrent or convolutional layers. On both WMT 2014 English-to-German and WMT 2014\nEnglish-to-French translation tasks, we achieve a new state of the art. In the former task our best\nmodel outperforms even all previously reported ensembl..."
|
| 94 |
+
},
|
| 95 |
+
{
|
| 96 |
+
"idx": 3,
|
| 97 |
+
"page": 9,
|
| 98 |
+
"score": 0.5712530016899109,
|
| 99 |
+
"text": "This task presents specific challenges: the output is subject to strong structural\nconstraints and is significantly longer than the input. Furthermore, RNN sequence-to-sequence\nmodels have not been able to attain state-of-the-art results in small-data regimes [37]. We trained a 4-layer transformer with _d_ _model_ = 1024 on the Wall Street Journal (WSJ) portion of the\nPenn Treebank [ 25 ], about 40K training sentences. We also trained it in a semi-supervised setting,\nusing the larger high-confidence and BerkleyParser corpora from with approximately 17M sentences\n\n[ 37 ]. We used a vocabulary of 16K tokens for the WSJ only setting and a vocabulary of 32K tokens\nfor the semi-supervised setting. We performed only a small number of experiments to select the dropout, both attention and residual\n(section 5.4), learning rates and beam size on the Section 22 development set, all other parameters\nremained unchanged from the English-to-German base translation model. During inference, we\n\n\n9"
|
| 100 |
+
},
|
| 101 |
+
{
|
| 102 |
+
"idx": 10,
|
| 103 |
+
"page": 8,
|
| 104 |
+
"score": 0.5459271669387817,
|
| 105 |
+
"text": "**Label Smoothing** During training, we employed label smoothing of value _ϵ_ _ls_ = 0 _._ 1 [ 36 ]. This\nhurts perplexity, as the model learns to be more unsure, but improves accuracy and BLEU score. **6** **Results**\n\n\n**6.1** **Machine Translation**\n\n\nOn the WMT 2014 English-to-German translation task, the big transformer model (Transformer (big)\nin Table 2) outperforms the best previously reported models (including ensembles) by more than 2 _._ 0\nBLEU, establishing a new state-of-the-art BLEU score of 28 _._ 4 . The configuration of this model is\nlisted in the bottom line of Table 3. Training took 3 _._ 5 days on 8 P100 GPUs. Even our base model\nsurpasses all previously published models and ensembles, at a fraction of the training cost of any of\nthe competitive models. On the WMT 2014 English-to-French translation task, our big model achieves a BLEU score of 41 _._ 0,\noutperforming all of the previously published single models, at less than 1 _/_ 4 the training cost of the\nprevious..."
|
| 106 |
+
}
|
| 107 |
+
],
|
| 108 |
+
"model_verdict": {
|
| 109 |
+
"supported": false,
|
| 110 |
+
"confidence": 0.99,
|
| 111 |
+
"evidence": "",
|
| 112 |
+
"reason": "Trong đoạn văn cung cấp không có thông tin nào đề cập đến thuật toán tối ưu được sử dụng, vì vậy không thể chứng thực đáp án 'Adam optimizer'."
|
| 113 |
+
}
|
| 114 |
+
},
|
| 115 |
+
"3": {
|
| 116 |
+
"supported_by_embeddings": true,
|
| 117 |
+
"max_similarity": 0.7403339743614197,
|
| 118 |
+
"evidence": [
|
| 119 |
+
{
|
| 120 |
+
"idx": 24,
|
| 121 |
+
"page": 8,
|
| 122 |
+
"score": 0.7403339743614197,
|
| 123 |
+
"text": "Table 2: The Transformer achieves better BLEU scores than previous state-of-the-art models on the\nEnglish-to-German and English-to-French newstest2014 tests at a fraction of the training cost. BLEU Training Cost (FLOPs)\nModel\n\nEN-DE EN-FR EN-DE EN-FR\nByteNet [18] 23.75\nDeep-Att + PosUnk [39] 39.2 1 _._ 0 _·_ 10 [20]\n\nGNMT + RL [38] 24.6 39.92 2 _._ 3 _·_ 10 [19] 1 _._ 4 _·_ 10 [20]\n\nConvS2S [9] 25.16 40.46 9 _._ 6 _·_ 10 [18] 1 _._ 5 _·_ 10 [20]\n\nMoE [32] 26.03 40.56 2 _._ 0 _·_ 10 [19] 1 _._ 2 _·_ 10 [20]\n\nDeep-Att + PosUnk Ensemble [39] 40.4 8 _._ 0 _·_ 10 [20]\n\nGNMT + RL Ensemble [38] 26.30 41.16 1 _._ 8 _·_ 10 [20] 1 _._ 1 _·_ 10 [21]\n\nConvS2S Ensemble [9] 26.36 **41.29** 7 _._ 7 _·_ 10 [19] 1 _._ 2 _·_ 10 [21]\n\nTransformer (base model) 27.3 38.1 **3** _**.**_ **3** _**·**_ **10** **[18]**\n\nTransformer (big) **28.4** **41.8** 2 _._ 3 _·_ 10 [19]\n\n\n**Residual Dropout** We apply dropout [ 33 ] to the output of each sub-layer, before it is added to the\nsub-layer input and normalized. ..."
|
| 124 |
+
},
|
| 125 |
+
{
|
| 126 |
+
"idx": 1,
|
| 127 |
+
"page": 9,
|
| 128 |
+
"score": 0.6753625273704529,
|
| 129 |
+
"text": "Table 3: Variations on the Transformer architecture. Unlisted values are identical to those of the base\nmodel. All metrics are on the English-to-German translation development set, newstest2013. Listed\nperplexities are per-wordpiece, according to our byte-pair encoding, and should not be compared to\nper-word perplexities. |Col1|train<br>N d d h d d P ϵ<br>model ff k v drop ls steps|PPL BLEU params<br>(dev) (dev) ×106|\n|---|---|---|\n|base|6<br>512<br>2048<br>8<br>64<br>64<br>0.1<br>0.1<br>100K|4.92<br>25.8<br>65|\n|(A)|1<br>512<br>512<br>4<br>128<br>128<br>16<br>32<br>32<br>32<br>16<br>16|5.29<br>24.9<br>5.00<br>25.5<br>4.91<br>25.8<br>5.01<br>25.4|\n|(B)|16<br>32|5.16<br>25.1<br>58<br>5.01<br>25.4<br>60|\n|(C)|2<br>4<br>8<br>256<br>32<br>32<br>1024<br>128<br>128<br>1024<br>4096|6.11<br>23.7<br>36<br>5.19<br>25.3<br>50<br>4.88<br>25.5<br>80<br>5.75<br>24.5<br>28<br>4.66<br>26.0<br>168<br>5.12<br>25.4<br>53<br>4.75<br>26.2<br>90|\n|(D)|0.0<br>0.2<br>0.0<br>0.2|5.77<br>24.6<br>4.95<br>25.5<br..."
|
| 130 |
+
},
|
| 131 |
+
{
|
| 132 |
+
"idx": 9,
|
| 133 |
+
"page": 2,
|
| 134 |
+
"score": 0.5718259811401367,
|
| 135 |
+
"text": "To the best of our knowledge, however, the Transformer is the first transduction model relying\nentirely on self-attention to compute representations of its input and output without using sequencealigned RNNs or convolution. In the following sections, we will describe the Transformer, motivate\nself-attention and discuss its advantages over models such as [17, 18] and [9]. **3** **Model Architecture**\n\n\nMost competitive neural sequence transduction models have an encoder-decoder structure [ 5, 2, 35 ]. Here, the encoder maps an input sequence of symbol representations ( _x_ 1 _, ..., x_ _n_ ) to a sequence\nof continuous representations **z** = ( _z_ 1 _, ..., z_ _n_ ) . Given **z**, the decoder then generates an output\nsequence ( _y_ 1 _, ..., y_ _m_ ) of symbols one element at a time. At each step the model is auto-regressive\n\n[10], consuming the previously generated symbols as additional input when generating the next. 2"
|
| 136 |
+
}
|
| 137 |
+
],
|
| 138 |
+
"model_verdict": {
|
| 139 |
+
"supported": true,
|
| 140 |
+
"confidence": 0.99,
|
| 141 |
+
"evidence": "base|6 512 2048 8 64 64 0.1 0.1 100K|4.92 25.8 65",
|
| 142 |
+
"reason": "Bảng 3 liệt kê mô hình Transformer (base) với BLEU = 25.8 trên tập phát triển newstest2013, khớp với đáp án."
|
| 143 |
+
}
|
| 144 |
+
},
|
| 145 |
+
"4": {
|
| 146 |
+
"supported_by_embeddings": true,
|
| 147 |
+
"max_similarity": 0.6373076438903809,
|
| 148 |
+
"evidence": [
|
| 149 |
+
{
|
| 150 |
+
"idx": 36,
|
| 151 |
+
"page": 7,
|
| 152 |
+
"score": 0.6373076438903809,
|
| 153 |
+
"text": "Each training\nbatch contained a set of sentence pairs containing approximately 25000 source tokens and 25000\ntarget tokens. **5.2** **Hardware and Schedule**\n\n\nWe trained our models on one machine with 8 NVIDIA P100 GPUs. For our base models using\nthe hyperparameters described throughout the paper, each training step took about 0.4 seconds. We\ntrained the base models for a total of 100,000 steps or 12 hours. For our big models,(described on the\nbottom line of table 3), step time was 1.0 seconds. The big models were trained for 300,000 steps\n(3.5 days). **5.3** **Optimizer**\n\n\nWe used the Adam optimizer [ 20 ] with _β_ 1 = 0 _._ 9, _β_ 2 = 0 _._ 98 and _ϵ_ = 10 _[−]_ [9] . We varied the learning\nrate over the course of training, according to the formula:\n\n\n_lrate_ = _d_ _[−]_ model [0] _[.]_ [5] _[·]_ [ min(] _[step]_ [_] _[num]_ _[−]_ [0] _[.]_ [5] _[, step]_ [_] _[num][ ·][ warmup]_ [_] _[steps]_ _[−]_ [1] _[.]_ [5] [)] (3)\n\n\nThis corresponds to increasing the learning rate linearly f..."
|
| 154 |
+
}
|
| 155 |
+
],
|
| 156 |
+
"model_verdict": {
|
| 157 |
+
"supported": true,
|
| 158 |
+
"confidence": 0.99,
|
| 159 |
+
"evidence": "We used _warmup_ _ _steps_ = 4000.",
|
| 160 |
+
"reason": "Context explicitly states that warmup steps were set to 4000, matching the answer."
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"5": {
|
| 164 |
+
"supported_by_embeddings": true,
|
| 165 |
+
"max_similarity": 0.7000005841255188,
|
| 166 |
+
"evidence": [
|
| 167 |
+
{
|
| 168 |
+
"idx": 24,
|
| 169 |
+
"page": 8,
|
| 170 |
+
"score": 0.7000005841255188,
|
| 171 |
+
"text": "Table 2: The Transformer achieves better BLEU scores than previous state-of-the-art models on the\nEnglish-to-German and English-to-French newstest2014 tests at a fraction of the training cost. BLEU Training Cost (FLOPs)\nModel\n\nEN-DE EN-FR EN-DE EN-FR\nByteNet [18] 23.75\nDeep-Att + PosUnk [39] 39.2 1 _._ 0 _·_ 10 [20]\n\nGNMT + RL [38] 24.6 39.92 2 _._ 3 _·_ 10 [19] 1 _._ 4 _·_ 10 [20]\n\nConvS2S [9] 25.16 40.46 9 _._ 6 _·_ 10 [18] 1 _._ 5 _·_ 10 [20]\n\nMoE [32] 26.03 40.56 2 _._ 0 _·_ 10 [19] 1 _._ 2 _·_ 10 [20]\n\nDeep-Att + PosUnk Ensemble [39] 40.4 8 _._ 0 _·_ 10 [20]\n\nGNMT + RL Ensemble [38] 26.30 41.16 1 _._ 8 _·_ 10 [20] 1 _._ 1 _·_ 10 [21]\n\nConvS2S Ensemble [9] 26.36 **41.29** 7 _._ 7 _·_ 10 [19] 1 _._ 2 _·_ 10 [21]\n\nTransformer (base model) 27.3 38.1 **3** _**.**_ **3** _**·**_ **10** **[18]**\n\nTransformer (big) **28.4** **41.8** 2 _._ 3 _·_ 10 [19]\n\n\n**Residual Dropout** We apply dropout [ 33 ] to the output of each sub-layer, before it is added to the\nsub-layer input and normalized. ..."
|
| 172 |
+
},
|
| 173 |
+
{
|
| 174 |
+
"idx": 1,
|
| 175 |
+
"page": 9,
|
| 176 |
+
"score": 0.5974264144897461,
|
| 177 |
+
"text": "Table 3: Variations on the Transformer architecture. Unlisted values are identical to those of the base\nmodel. All metrics are on the English-to-German translation development set, newstest2013. Listed\nperplexities are per-wordpiece, according to our byte-pair encoding, and should not be compared to\nper-word perplexities. |Col1|train<br>N d d h d d P ϵ<br>model ff k v drop ls steps|PPL BLEU params<br>(dev) (dev) ×106|\n|---|---|---|\n|base|6<br>512<br>2048<br>8<br>64<br>64<br>0.1<br>0.1<br>100K|4.92<br>25.8<br>65|\n|(A)|1<br>512<br>512<br>4<br>128<br>128<br>16<br>32<br>32<br>32<br>16<br>16|5.29<br>24.9<br>5.00<br>25.5<br>4.91<br>25.8<br>5.01<br>25.4|\n|(B)|16<br>32|5.16<br>25.1<br>58<br>5.01<br>25.4<br>60|\n|(C)|2<br>4<br>8<br>256<br>32<br>32<br>1024<br>128<br>128<br>1024<br>4096|6.11<br>23.7<br>36<br>5.19<br>25.3<br>50<br>4.88<br>25.5<br>80<br>5.75<br>24.5<br>28<br>4.66<br>26.0<br>168<br>5.12<br>25.4<br>53<br>4.75<br>26.2<br>90|\n|(D)|0.0<br>0.2<br>0.0<br>0.2|5.77<br>24.6<br>4.95<br>25.5<br..."
|
| 178 |
+
},
|
| 179 |
+
{
|
| 180 |
+
"idx": 32,
|
| 181 |
+
"page": 1,
|
| 182 |
+
"score": 0.5703283548355103,
|
| 183 |
+
"text": "Experiments on two machine translation tasks show these models to\nbe superior in quality while being more parallelizable and requiring significantly\nless time to train. Our model achieves 28.4 BLEU on the WMT 2014 Englishto-German translation task, improving over the existing best results, including\nensembles, by over 2 BLEU. On the WMT 2014 English-to-French translation task,\nour model establishes a new single-model state-of-the-art BLEU score of 41.8 after\ntraining for 3.5 days on eight GPUs, a small fraction of the training costs of the\nbest models from the literature. We show that the Transformer generalizes well to\nother tasks by applying it successfully to English constituency parsing both with\nlarge and limited training data. _∗_ Equal contribution. Listing order is random. Jakob proposed replacing RNNs with self-attention and started\nthe effort to evaluate this idea. Ashish, with Illia, designed and implemented the first Transformer models and\nhas been crucially involved in eve..."
|
| 184 |
+
}
|
| 185 |
+
],
|
| 186 |
+
"model_verdict": {
|
| 187 |
+
"supported": true,
|
| 188 |
+
"confidence": 0.99,
|
| 189 |
+
"evidence": "Transformer (big) **28.4** ...; Our model achieves 28.4 BLEU on the WMT 2014 English-to-German translation task",
|
| 190 |
+
"reason": "Context explicitly states that the Transformer (big) model achieved a BLEU score of 28.4 on the English‑German WMT 2014 task."
|
| 191 |
+
}
|
| 192 |
+
}
|
| 193 |
+
}
|
| 194 |
+
}
|
test/ML_mcq_output.json
ADDED
|
@@ -0,0 +1,206 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"mcqs": {
|
| 3 |
+
"1": {
|
| 4 |
+
"câu hỏi": "Trong thuật toán K-Means, centroid của một cụm được định nghĩa như thế nào?",
|
| 5 |
+
"lựa chọn": {
|
| 6 |
+
"a": "Là điểm dữ liệu ngẫu nhiên được chọn làm trung tâm ban đầu của cụm.",
|
| 7 |
+
"b": "Là trung tâm hình học (geometric center) của tất cả các điểm trong cụm, tính bằng trung bình cộng các điểm thuộc cụm.",
|
| 8 |
+
"c": "Là điểm dữ liệu có khoảng cách lớn nhất tới các điểm còn lại trong cùng cụm.",
|
| 9 |
+
"d": "Là vị trí trung bình của các centroid của các cụm khác."
|
| 10 |
+
},
|
| 11 |
+
"đáp án": "Là trung tâm hình học (geometric center) của tất cả các điểm trong cụm, tính bằng trung bình cộng các điểm thuộc cụm."
|
| 12 |
+
},
|
| 13 |
+
"2": {
|
| 14 |
+
"câu hỏi": "Trong đoạn triển khai lớp KMeans bằng NumPy, câu lệnh nào sau đây khởi tạo các centroid một cách ngẫu nhiên?",
|
| 15 |
+
"lựa chọn": {
|
| 16 |
+
"a": "self.centroids = X[np.random.choice(X.shape[0], self.k, replace=False)]",
|
| 17 |
+
"b": "self.centroids = np.random.rand(self.k, X.shape[1])",
|
| 18 |
+
"c": "self.centroids = X[:self.k]",
|
| 19 |
+
"d": "self.centroids = np.zeros((self.k, X.shape[1]))"
|
| 20 |
+
},
|
| 21 |
+
"đáp án": "self.centroids = X[np.random.choice(X.shape[0], self.k, replace=False)]"
|
| 22 |
+
},
|
| 23 |
+
"3": {
|
| 24 |
+
"câu hỏi": "Trong mục \"Các thuộc tính của thuật toán K-means Clustering\" của tài liệu, đâu là mục không được liệt kê là một thuộc tính của thuật toán K-means?",
|
| 25 |
+
"lựa chọn": {
|
| 26 |
+
"a": "Thuộc tính thứ nhất của thuật toán K-means",
|
| 27 |
+
"b": "Thuộc tính thứ hai của thuật toán K-means",
|
| 28 |
+
"c": "Tại sao chúng ta cần phân cụm?",
|
| 29 |
+
"d": "Ứng dụng của phân cụm trong thực tế"
|
| 30 |
+
},
|
| 31 |
+
"đáp án": "Ứng dụng của phân cụm trong thực tế"
|
| 32 |
+
},
|
| 33 |
+
"4": {
|
| 34 |
+
"câu hỏi": "Trong thuật toán K-Means, bước nào được mô tả là “Mỗi điểm dữ liệu x_i được gán nhãn cụm l_i bằng cách chọn centroid gần nhất”?",
|
| 35 |
+
"lựa chọn": {
|
| 36 |
+
"a": "Bước khởi tạo (Initialization Step)",
|
| 37 |
+
"b": "Bước gán nhãn (Assignment Step)",
|
| 38 |
+
"c": "Bước cập nhật centroid (Update Step)",
|
| 39 |
+
"d": "Bước kiểm tra hội tụ (Convergence Check Step)"
|
| 40 |
+
},
|
| 41 |
+
"đáp án": "Bước gán nhãn (Assignment Step)"
|
| 42 |
+
},
|
| 43 |
+
"5": {
|
| 44 |
+
"câu hỏi": "Trong đoạn mã triển khai K-Means++, phương thức nào được sử dụng để khởi tạo centroids?",
|
| 45 |
+
"lựa chọn": {
|
| 46 |
+
"a": "kmeans_text.fit",
|
| 47 |
+
"b": "kmeans_plus_plus_init",
|
| 48 |
+
"c": "np.linalg.norm",
|
| 49 |
+
"d": "np.array"
|
| 50 |
+
},
|
| 51 |
+
"đáp án": "kmeans_plus_plus_init"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"validation": {
|
| 55 |
+
"1": {
|
| 56 |
+
"supported_by_embeddings": true,
|
| 57 |
+
"max_similarity": 0.6017358303070068,
|
| 58 |
+
"evidence": [
|
| 59 |
+
{
|
| 60 |
+
"idx": 18,
|
| 61 |
+
"page": 9,
|
| 62 |
+
"score": 0.6017358303070068,
|
| 63 |
+
"text": "**AI VIETNAM** **aivietnam.edu.vn**\n\n\nvà nợcao, trong khi cụm xanh có thu nhập cao nhưng nợthấp. Rõ ràng cụm phân chia trong trường\nhợp II hợp lý hơn. Như vậy, các điểm dữliệu từcác cụm khác nhau nên khác biệt nhiều nhất có thểđểtạo thành các\ncụm có ý nghĩa hơn. Thuật toán K-means dùng phương pháp lặp đểtìm phân cụm tối ưu bằng cách\ngiảm thiểu tổng bình phương khoảng cách giữa các điểm và centroid của cụm. **5.3** **Tại sao chúng ta cần phân cụm?**\n\n\nChúng ta đã hiểu phân cụm là gì và các thuộc tính khác nhau của cụm. Vậy tại sao phải dùng phân\ncụm? Phần tiếp theo sẽgiải đáp thắc mắc này và giới thiệu một sốứng dụng thực tế. **6** **Ứng dụng của phân cụm trong thực tế**\n\n\nPhân cụm được sửdụng rộng rãi trong nhiều lĩnh vực, từngân hàng, hệthống đềxuất, đến phân cụm\nvăn bản và phân đoạn ảnh. - **Phân đoạn khách hàng:** Đây là ứng dụng phổbiến nhất của phân cụm, không chỉtrong ngân\nhàng mà còn trong viễn thông, thương mại điện tử, thểthao, quảng cáo, bán hàng,... - **Phân cụm văn bản:** N..."
|
| 64 |
+
},
|
| 65 |
+
{
|
| 66 |
+
"idx": 29,
|
| 67 |
+
"page": 5,
|
| 68 |
+
"score": 0.5860570669174194,
|
| 69 |
+
"text": "**AI VIETNAM** **aivietnam.edu.vn**\n\n\n**4** **Thuật toán K-Means**\n\n\nThuật toán K-Means hoạt động như sau:\n\n\n1. **Đầu vào:** Tập dữliệu _X_ = _{x_ 1 _, x_ 2 _, . . ., x_ _n_ _}_ và sốlượng cụm _k_ .\n\n\n2. **Đầu ra:** Tập các centroid _{c_ 1 _, c_ 2 _, . . ., c_ _k_ _}_ và nhãn cụm tương ứng cho mỗi điểm dữliệu _{l_ 1 _, l_ 2 _, . . ., l_ _n_ _}_ .\n\n\n3. **Khởi tạo:** Chọn ng��u nhiên _k_ centroid ban đầu.\n\n\nHình 1: Chọn k centroid ban đầu\n\n\n4. **Khởi tạo biến** `converged` bằng `false` đểkiểm soát vòng lặp.\n\n\n5. **Lặp cho đến khi hội tụhoặc đạt sốlần lặp tối đa:**\n\n\n - **Bước gán nhãn (Assignment Step):** Mỗi điểm dữliệu _x_ _i_ được gán nhãn cụm _l_ _i_ bằng\ncách chọn centroid gần nhất:\n_l_ _i_ = arg min _∥x_ _i_ _−_ _c_ _j_ _∥_ [2]\n_j_\n\n\nHình 2: Bước gán nhãn\n\n\n4"
|
| 70 |
+
},
|
| 71 |
+
{
|
| 72 |
+
"idx": 3,
|
| 73 |
+
"page": 18,
|
| 74 |
+
"score": 0.5734704732894897,
|
| 75 |
+
"text": "**AI VIETNAM** **aivietnam.edu.vn**\n\n\n**4** **Bước 4: Triển khai thuật toán K-Means chính**\n\n\nTiếp theo, chúng ta sẽđịnh nghĩa một sốđiều kiện đểtriển khai thuật toán K-Means Clustering."
|
| 76 |
+
}
|
| 77 |
+
],
|
| 78 |
+
"model_verdict": {
|
| 79 |
+
"supported": false,
|
| 80 |
+
"confidence": 0.9,
|
| 81 |
+
"evidence": "",
|
| 82 |
+
"reason": "Trong ngữ cảnh không có câu nào mô tả centroid là trung tâm hình học hay tính bằng trung bình cộng các điểm; chỉ đề cập tới việc giảm thiểu khoảng cách và khởi tạo centroid ngẫu nhiên."
|
| 83 |
+
}
|
| 84 |
+
},
|
| 85 |
+
"2": {
|
| 86 |
+
"supported_by_embeddings": true,
|
| 87 |
+
"max_similarity": 0.5771877765655518,
|
| 88 |
+
"evidence": [
|
| 89 |
+
{
|
| 90 |
+
"idx": 15,
|
| 91 |
+
"page": 17,
|
| 92 |
+
"score": 0.5771877765655518,
|
| 93 |
+
"text": "**AI VIETNAM** **aivietnam.edu.vn**\n\n\n12 `plt.ylabel(’Loan` `Amount (Thousands) ’)`\n\n13 `plt.show ()`\n\n\nListing 3: Chọn biến và trực quan hóa dữliệu\n\n\n**3** **Bước 3: Chọn sốcụm và khởi tạo centroids**\n\n\nBước 1 và 2 của K-Means là vềviệc chọn sốlượng cụm (k) và chọn các centroids ngẫu nhiên cho mỗi\ncụm. Chúng ta sẽchọn 3 cụm và sau đó chọn các quan sát ngẫu nhiên từdữliệu làm centroids:\n\n\n1 `# Step 1 and 2 - Choose the number of clusters (k) and` `randomly` `select` `centroids` `for`\n\n```\n each cluster\n\n```\n\n2\n\n\n3 `# number of clusters`\n\n\n4 `K = 3`\n\n\n5\n\n\n6 `# Randomly` `select` `observations as centroids`\n\n7 `Centroids = X.sample(n=K)`\n\n8 `plt.scatter(X[\" ApplicantIncome \"], X[\" LoanAmount \"], c=’black ’)`\n\n9 `plt.scatter(Centroids [\" ApplicantIncome \"], Centroids [\" LoanAmount \"], c=’red ’)`\n\n10 `plt.xlabel(’Annual Income ’)`\n\n11 `plt.ylabel(’Loan` `Amount (Thousands) ’)`\n\n\nListing 4: Chọn sốcụm và khởi tạo centroids\n\n\nỞđây, các chấm đỏđại diện cho 3 centroids của mỗi cụm. Lưu ý rằ..."
|
| 94 |
+
},
|
| 95 |
+
{
|
| 96 |
+
"idx": 20,
|
| 97 |
+
"page": 18,
|
| 98 |
+
"score": 0.5511029958724976,
|
| 99 |
+
"text": "Hãy\n\nxem mã trước:\n\n\n1 `# Step 3 - Assign all points to the` `nearest` `cluster` `centroid`\n\n2 `# Step 4 - Recalculate` `the` `centroids of the newly` `formed` `clusters`\n\n3 `# Step 5 - Repeat` `steps 3 and 4`\n\n\n4\n\n\n5 `diff = 1`\n\n\n6 `j = 0`\n\n\n7\n\n\n8 `while` `diff != 0:`\n\n\n9 `XD = X.copy ()`\n\n\n10 `i = 1`\n\n\n11 `for index1, row_c in Centroids.iterrows ():`\n\n\n12 `ED = []`\n\n\n13 `for index2, row_d in XD.iterrows ():`\n\n14 `d1 = (row_c [\" ApplicantIncome \"] - row_d [\" ApplicantIncome \"]) **2`\n\n15 `d2 = (row_c [\" LoanAmount \"] - row_d [\" LoanAmount \"]) **2`\n\n16 `d = np.sqrt(d1 + d2)`\n\n17 `ED.append(d)`\n\n18 `X[i] = ED`\n\n\n19 `i += 1`\n\n\n20\n\n\n21 `C = []`\n\n\n22 `for index, row in X.iterrows ():`\n\n23 `min_dist = row [1]`\n\n\n24 `pos = 1`\n\n25 `for i in range(K):`\n\n26 `if row[i + 1] < min_dist:`\n\n\n27 `min_dist = row[i + 1]`\n\n\n28 `pos = i + 1`\n\n29 `C.append(pos)`\n\n30 `X[\" Cluster \"] = C`\n\n31 `Centroids_new = X.groupby ([\" Cluster \"]).mean ()[[\" LoanAmount\", \" ApplicantIncome \"]]`\n\n\n32\n\n\n33 `if j == 0:`\n\n\n34..."
|
| 100 |
+
},
|
| 101 |
+
{
|
| 102 |
+
"idx": 30,
|
| 103 |
+
"page": 15,
|
| 104 |
+
"score": 0.550550639629364,
|
| 105 |
+
"text": "**AI VIETNAM** **aivietnam.edu.vn**\n\n\n21 `return np.array(centroids)`\n\n\n22\n\n\n23 `# Using K-Means ++`\n\n24 `class` `KMeansPlusPlus(KMeans):`\n\n\n25 `def fit(self, X):`\n\n\n26 `# Use K-Means ++ initialization`\n\n\n27 `self.centroids = kmeans_plus_plus_init (X, self.k)`\n\n\n28\n\n\n29 `# Continue as in regular K-Means`\n\n30 `for i in range` `(self.max_iters):`\n\n31 `distances = np.linalg.norm(X[:, np.newaxis, :] - self.centroids, axis =2)`\n\n32 `labels = np.argmin(distances, axis =1)`\n\n\n33\n\n\n34 `new_centroids = np.array ([X[labels == j]. mean(axis =0) for j in range` `(self.`\n```\n k)])\n\n```\n\n35\n\n\n36 `if np.` `all` `(np.` `abs` `(self.centroids - new_centroids ) < 1e-4):`\n\n\n37 `break`\n\n\n38\n\n\n39 `self.centroids = new_centroids`\n\n\n40\n\n\n41 `return` `labels`\n\n\n14"
|
| 106 |
+
}
|
| 107 |
+
],
|
| 108 |
+
"model_verdict": {
|
| 109 |
+
"supported": false,
|
| 110 |
+
"confidence": 0.9,
|
| 111 |
+
"evidence": "",
|
| 112 |
+
"reason": "Trong ngữ cảnh chỉ đề cập đến việc chọn centroids ngẫu nhiên bằng X.sample(n=K) hoặc các phương pháp khác, không có câu lệnh self.centroids = X[np.random.choice(...)] được nêu."
|
| 113 |
+
}
|
| 114 |
+
},
|
| 115 |
+
"3": {
|
| 116 |
+
"supported_by_embeddings": true,
|
| 117 |
+
"max_similarity": 0.7246736288070679,
|
| 118 |
+
"evidence": [
|
| 119 |
+
{
|
| 120 |
+
"idx": 3,
|
| 121 |
+
"page": 18,
|
| 122 |
+
"score": 0.7246736288070679,
|
| 123 |
+
"text": "**AI VIETNAM** **aivietnam.edu.vn**\n\n\n**4** **Bước 4: Triển khai thuật toán K-Means chính**\n\n\nTiếp theo, chúng ta sẽđịnh nghĩa một sốđiều kiện đểtriển khai thuật toán K-Means Clustering."
|
| 124 |
+
},
|
| 125 |
+
{
|
| 126 |
+
"idx": 13,
|
| 127 |
+
"page": 4,
|
| 128 |
+
"score": 0.7182997465133667,
|
| 129 |
+
"text": "**AI VIETNAM** **aivietnam.edu.vn**\n\n\nBài toán trên là ví dụđiển hình cho việc ứng dụng kỹthuật _clustering_ trong khai phá dữliệu, đặc\nbiệt là thuật toán **K-means clustering**, một trong những phương pháp phân nhóm phổbiến và đơn\ngiản nhất hiện nay. ## **2. Lý thuyết K-Means**\n\n\n**1** **Định nghĩa và Khái niệm cơ bản**\n\n\nK-Means là thuật toán học không giám sát (unsupervised learning) thuộc nhóm phân cụm (clustering),\nnhằm chia tập dữliệu gồm _n_ điểm dữliệu _{x_ 1 _, x_ 2 _, . . ., x_ _n_ _}_ với _x_ _i_ _∈_ R _[d]_ thành _k_ cụm _{C_ 1 _, C_ 2 _, . . ., C_ _k_ _}_\nsao cho:\n\n\n - **Cohesion (Tính gắn kết)** : Các điểm trong cùng một cụm có độtương tựcao nhất có thể\n\n\n - **Separation (Tính phân tách)** : Các điểm thuộc cụm khác nhau có độtương tựthấp nhất có\nthể\n\n\n - **Completeness (Tính đầy đủ)** : Mọi điểm dữliệu đều được gán vào đúng một cụm\n\n\n**2** **Khái niệm Centroid và Cluster**\n\n\n**Centroid** _µ_ _i_ của cụm _C_ _i_ là trung tâm hình học (geometric center) của tất cảcác điể..."
|
| 130 |
+
},
|
| 131 |
+
{
|
| 132 |
+
"idx": 0,
|
| 133 |
+
"page": 3,
|
| 134 |
+
"score": 0.6935104727745056,
|
| 135 |
+
"text": "Đây chính là lúc các thuật toán học máy không giám sát (unsupervised learning) như **K-means**\n**clustering** trởnên rất hữu ích. Thuật toán này cho phép tựđộng phân nhóm dữliệu dựa trên sựtương\nđồng giữa các điểm dữliệu mà không cần thông tin nhãn từtrước. Nhờvậy, K-means giúp phát hiện\ncấu trúc tiềm ẩn trong dữliệu và hỗtrợcác bước phân tích tiếp theo. **2** **Vấn đềcốt lõi**\n\n\nĐểminh họa cho bài toán phân nhóm không giám sát, hãy xem xét một ví dụđơn giản với dữliệu về\ntuổi và chi tiêu hàng tháng của 9 khách hàng như sau:\n\n|Index|Tuổi|Chi tiêu (USD)|\n|---|---|---|\n|1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9|18<br>20<br>22<br>30<br>34<br>40<br>60<br>66<br>70|80<br>90<br>85<br>50<br>64<br>60<br>30<br>40<br>25|\n\n\n\nBảng 1: Dữliệu mẫu vềkhách hàng\n\n\nMục tiêu của bài toán là phân chia tựđộng 9 khách hàng này thành 3 nhóm khác nhau, ví dụnhư\nnhóm _Trẻ_, _Trung niên_ và _Cao tuổi_, dựa trên đặc điểm tuổi tác và chi tiêu, mà không cần biết trước\nnhóm nhãn phân loại. Việc này sẽgiúp doanh nghi..."
|
| 136 |
+
}
|
| 137 |
+
],
|
| 138 |
+
"model_verdict": {
|
| 139 |
+
"supported": false,
|
| 140 |
+
"confidence": 0.9,
|
| 141 |
+
"evidence": "Context does not contain a list of attributes of K-means nor mention 'Ứng dụng của phân cụm trong thực tế' as an attribute.",
|
| 142 |
+
"reason": "Không có bằng chứng trong nội dung cung cấp rằng mục này được liệt kê hoặc không được liệt kê; do đó không thể khẳng định đáp án được chứng thực."
|
| 143 |
+
}
|
| 144 |
+
},
|
| 145 |
+
"4": {
|
| 146 |
+
"supported_by_embeddings": true,
|
| 147 |
+
"max_similarity": 0.6494988203048706,
|
| 148 |
+
"evidence": [
|
| 149 |
+
{
|
| 150 |
+
"idx": 0,
|
| 151 |
+
"page": 3,
|
| 152 |
+
"score": 0.6494988203048706,
|
| 153 |
+
"text": "Đây chính là lúc các thuật toán học máy không giám sát (unsupervised learning) như **K-means**\n**clustering** trởnên rất hữu ích. Thuật toán này cho phép tựđộng phân nhóm dữliệu dựa trên sựtương\nđồng giữa các điểm dữliệu mà không cần thông tin nhãn từtrước. Nhờvậy, K-means giúp phát hiện\ncấu trúc tiềm ẩn trong dữliệu và hỗtrợcác bước phân tích tiếp theo. **2** **Vấn đềcốt lõi**\n\n\nĐểminh họa cho bài toán phân nhóm không giám sát, hãy xem xét một ví dụđơn giản với dữliệu về\ntuổi và chi tiêu hàng tháng của 9 khách hàng như sau:\n\n|Index|Tuổi|Chi tiêu (USD)|\n|---|---|---|\n|1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9|18<br>20<br>22<br>30<br>34<br>40<br>60<br>66<br>70|80<br>90<br>85<br>50<br>64<br>60<br>30<br>40<br>25|\n\n\n\nBảng 1: Dữliệu mẫu vềkhách hàng\n\n\nMục tiêu của bài toán là phân chia tựđộng 9 khách hàng này thành 3 nhóm khác nhau, ví dụnhư\nnhóm _Trẻ_, _Trung niên_ và _Cao tuổi_, dựa trên đặc điểm tuổi tác và chi tiêu, mà không cần biết trước\nnhóm nhãn phân loại. Việc này sẽgiúp doanh nghi..."
|
| 154 |
+
},
|
| 155 |
+
{
|
| 156 |
+
"idx": 3,
|
| 157 |
+
"page": 18,
|
| 158 |
+
"score": 0.6462726593017578,
|
| 159 |
+
"text": "**AI VIETNAM** **aivietnam.edu.vn**\n\n\n**4** **Bước 4: Triển khai thuật toán K-Means chính**\n\n\nTiếp theo, chúng ta sẽđịnh nghĩa một sốđiều kiện đểtriển khai thuật toán K-Means Clustering."
|
| 160 |
+
},
|
| 161 |
+
{
|
| 162 |
+
"idx": 18,
|
| 163 |
+
"page": 9,
|
| 164 |
+
"score": 0.6377543210983276,
|
| 165 |
+
"text": "**AI VIETNAM** **aivietnam.edu.vn**\n\n\nvà nợcao, trong khi cụm xanh có thu nhập cao nhưng nợthấp. Rõ ràng cụm phân chia trong trường\nhợp II hợp lý hơn. Như vậy, các điểm dữliệu từcác cụm khác nhau nên khác biệt nhiều nhất có thểđểtạo thành các\ncụm có ý nghĩa hơn. Thuật toán K-means dùng phương pháp lặp đểtìm phân cụm tối ưu bằng cách\ngiảm thiểu tổng bình phương khoảng cách giữa các điểm và centroid của cụm. **5.3** **Tại sao chúng ta cần phân cụm?**\n\n\nChúng ta đã hiểu phân cụm là gì và các thuộc tính khác nhau của cụm. Vậy tại sao phải dùng phân\ncụm? Phần tiếp theo sẽgiải đáp thắc mắc này và giới thiệu một sốứng dụng thực tế. **6** **Ứng dụng của phân cụm trong thực tế**\n\n\nPhân cụm được sửdụng rộng rãi trong nhiều lĩnh vực, từngân hàng, hệthống đềxuất, đến phân cụm\nvăn bản và phân đoạn ảnh. - **Phân đoạn khách hàng:** Đây là ứng dụng phổbiến nhất của phân cụm, không chỉtrong ngân\nhàng mà còn trong viễn thông, thương mại điện tử, thểthao, quảng cáo, bán hàng,... - **Phân cụm văn bản:** N..."
|
| 166 |
+
}
|
| 167 |
+
],
|
| 168 |
+
"model_verdict": {
|
| 169 |
+
"supported": false,
|
| 170 |
+
"confidence": 0.9,
|
| 171 |
+
"evidence": "",
|
| 172 |
+
"reason": "Trong ngữ cảnh cung cấp không có đoạn nào mô tả bước gán nhãn như “Mỗi điểm dữ liệu x_i được gán nhãn cụm l_i bằng cách chọn centroid gần nhất”, vì vậy không có bằng chứng hỗ trợ đáp án."
|
| 173 |
+
}
|
| 174 |
+
},
|
| 175 |
+
"5": {
|
| 176 |
+
"supported_by_embeddings": true,
|
| 177 |
+
"max_similarity": 0.590252161026001,
|
| 178 |
+
"evidence": [
|
| 179 |
+
{
|
| 180 |
+
"idx": 30,
|
| 181 |
+
"page": 15,
|
| 182 |
+
"score": 0.590252161026001,
|
| 183 |
+
"text": "**AI VIETNAM** **aivietnam.edu.vn**\n\n\n21 `return np.array(centroids)`\n\n\n22\n\n\n23 `# Using K-Means ++`\n\n24 `class` `KMeansPlusPlus(KMeans):`\n\n\n25 `def fit(self, X):`\n\n\n26 `# Use K-Means ++ initialization`\n\n\n27 `self.centroids = kmeans_plus_plus_init (X, self.k)`\n\n\n28\n\n\n29 `# Continue as in regular K-Means`\n\n30 `for i in range` `(self.max_iters):`\n\n31 `distances = np.linalg.norm(X[:, np.newaxis, :] - self.centroids, axis =2)`\n\n32 `labels = np.argmin(distances, axis =1)`\n\n\n33\n\n\n34 `new_centroids = np.array ([X[labels == j]. mean(axis =0) for j in range` `(self.`\n```\n k)])\n\n```\n\n35\n\n\n36 `if np.` `all` `(np.` `abs` `(self.centroids - new_centroids ) < 1e-4):`\n\n\n37 `break`\n\n\n38\n\n\n39 `self.centroids = new_centroids`\n\n\n40\n\n\n41 `return` `labels`\n\n\n14"
|
| 184 |
+
},
|
| 185 |
+
{
|
| 186 |
+
"idx": 29,
|
| 187 |
+
"page": 5,
|
| 188 |
+
"score": 0.5836479663848877,
|
| 189 |
+
"text": "**AI VIETNAM** **aivietnam.edu.vn**\n\n\n**4** **Thuật toán K-Means**\n\n\nThuật toán K-Means hoạt động như sau:\n\n\n1. **Đầu vào:** Tập dữliệu _X_ = _{x_ 1 _, x_ 2 _, . . ., x_ _n_ _}_ và sốlượng cụm _k_ .\n\n\n2. **Đầu ra:** Tập các centroid _{c_ 1 _, c_ 2 _, . . ., c_ _k_ _}_ và nhãn cụm tương ứng cho mỗi điểm dữliệu _{l_ 1 _, l_ 2 _, . . ., l_ _n_ _}_ .\n\n\n3. **Khởi tạo:** Chọn ngẫu nhiên _k_ centroid ban đầu.\n\n\nHình 1: Chọn k centroid ban đầu\n\n\n4. **Khởi tạo biến** `converged` bằng `false` đểkiểm soát vòng lặp.\n\n\n5. **Lặp cho đến khi hội tụhoặc đạt sốlần lặp tối đa:**\n\n\n - **Bước gán nhãn (Assignment Step):** Mỗi điểm dữliệu _x_ _i_ được gán nhãn cụm _l_ _i_ bằng\ncách chọn centroid gần nhất:\n_l_ _i_ = arg min _∥x_ _i_ _−_ _c_ _j_ _∥_ [2]\n_j_\n\n\nHình 2: Bước gán nhãn\n\n\n4"
|
| 190 |
+
},
|
| 191 |
+
{
|
| 192 |
+
"idx": 32,
|
| 193 |
+
"page": 2,
|
| 194 |
+
"score": 0.5471374988555908,
|
| 195 |
+
"text": ". . . . . . . . . . . . . . . . . . . . . 13\n\n2 K-Means++ Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13\n\n\n**1** **Phần II: Triển khai Thuật toán K-Means từđầu trong Python** **15**\n1 Bước 1: Import các thư viện cần thiết . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15\n2 B��ớc 2: Đọc và khám phá dữliệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15\n3 Bước 3: Chọn sốcụm và khởi tạo centroids . . . . . . . . . . . . . . . . . . . . . . . . . 16\n4 Bước 4: Triển khai thuật toán K-Means chính . . . . . . . . . . . . . . . . . . . . . . . . 17\n5 Bước 5: Trực quan hóa kết quả . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17\n\n\n1"
|
| 196 |
+
}
|
| 197 |
+
],
|
| 198 |
+
"model_verdict": {
|
| 199 |
+
"supported": true,
|
| 200 |
+
"confidence": 1.0,
|
| 201 |
+
"evidence": "self.centroids = kmeans_plus_plus_init (X, self.k)",
|
| 202 |
+
"reason": "Đoạn mã cho thấy centroids được khởi tạo bằng hàm kmeans_plus_plus_init"
|
| 203 |
+
}
|
| 204 |
+
}
|
| 205 |
+
}
|
| 206 |
+
}
|
test/calculus_mcq_output.json
ADDED
|
@@ -0,0 +1,206 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"mcqs": {
|
| 3 |
+
"1": {
|
| 4 |
+
"câu hỏi": "Theo nội dung, khi D là miền hình chữ nhật a ≤ x ≤ b, c ≤ y ≤ d, biểu thức nào sau đây đúng cho tích phân kép \\(\\iint_D f(x,y)\\,dxdy\\)?",
|
| 5 |
+
"lựa chọn": {
|
| 6 |
+
"a": "∫_a^b ∫_c^d f(x,y) dy dx",
|
| 7 |
+
"b": "∫_c^d ∫_a^b f(x,y) dx dy",
|
| 8 |
+
"c": "∫_a^b ∫_c^d f(x,y) dy dx = ∫_c^d ∫_a^b f(x,y) dx dy",
|
| 9 |
+
"d": "Không có biểu thức nào đúng"
|
| 10 |
+
},
|
| 11 |
+
"đáp án": "∫_a^b ∫_c^d f(x,y) dy dx = ∫_c^d ∫_a^b f(x,y) dx dy"
|
| 12 |
+
},
|
| 13 |
+
"2": {
|
| 14 |
+
"câu hỏi": "Theo Định nghĩa 1.3, một mặt phẳng có phương trình ax + by + cz + d = 0 có thể được biểu diễn tham số như thế nào?",
|
| 15 |
+
"lựa chọn": {
|
| 16 |
+
"a": "x = u, y = v, z = -(d + a u + b v)/c",
|
| 17 |
+
"b": "x = u, y = v, z = d + a u + b v",
|
| 18 |
+
"c": "x = u, y = v, z = (d - a u - b v)/c",
|
| 19 |
+
"d": "x = u, y = v, z = (a u + b v - d)/c"
|
| 20 |
+
},
|
| 21 |
+
"đáp án": "x = u, y = v, z = -(d + a u + b v)/c"
|
| 22 |
+
},
|
| 23 |
+
"3": {
|
| 24 |
+
"câu hỏi": "Phương trình tiếp tuyến (tangent plane) của mặt cong x² − 4y² + 2z² = 6 tại điểm (2, 2, 3) là:",
|
| 25 |
+
"lựa chọn": {
|
| 26 |
+
"a": "x − 4y + 3z = 3",
|
| 27 |
+
"b": "x + 4y − 3z = 3",
|
| 28 |
+
"c": "2x − 8y + 6z = 6",
|
| 29 |
+
"d": "x − 4y + 3z = 0"
|
| 30 |
+
},
|
| 31 |
+
"đáp án": "x − 4y + 3z = 3"
|
| 32 |
+
},
|
| 33 |
+
"4": {
|
| 34 |
+
"câu hỏi": "Trong tiêu đề của bài giảng \"GIẢI TÍCH II\" tại Trường Đại học Bách Khoa Hà Nội, các phép tính nào được liệt kê là ứng dụng?",
|
| 35 |
+
"lựa chọn": {
|
| 36 |
+
"a": "Các ứng dụng của phép tính vi phân, tích phân bộ, tích phân phụ thuộc tham số, tích phân đường, tích phân mặt, lý thuyết",
|
| 37 |
+
"b": "Bài giảng về giải tích I",
|
| 38 |
+
"c": "Giảng viên TS. Bùi Xuân Diệu",
|
| 39 |
+
"d": "Ngày cập nhật 28 tháng 8 năm 2017"
|
| 40 |
+
},
|
| 41 |
+
"đáp án": "Các ứng dụng của phép tính vi phân, tích phân bộ, tích phân phụ thuộc tham số, tích phân đường, tích phân mặt, lý thuyết"
|
| 42 |
+
},
|
| 43 |
+
"5": {
|
| 44 |
+
"câu hỏi": "Khi chia miền R thành m × n hình chữ nhật con có độ dài bằng nhau, ký hiệu của một hình chữ nhật con R_{ij} được cho bởi:",
|
| 45 |
+
"lựa chọn": {
|
| 46 |
+
"a": "R_{ij} = [x_i, x_{i+1}] × [y_j, y_{j+1}]",
|
| 47 |
+
"b": "R_{ij} = [x_{i-1}, x_i] × [y_{j-1}, y_j]",
|
| 48 |
+
"c": "R_{ij} = [x_{i}, x_{i-1}] × [y_{j}, y_{j-1}]",
|
| 49 |
+
"d": "R_{ij} = [x_{i-1}, x_{i+1}] × [y_{j-1}, y_{j+1}]"
|
| 50 |
+
},
|
| 51 |
+
"đáp án": "R_{ij} = [x_{i-1}, x_i] × [y_{j-1}, y_j]"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"validation": {
|
| 55 |
+
"1": {
|
| 56 |
+
"supported_by_embeddings": true,
|
| 57 |
+
"max_similarity": 0.8958114981651306,
|
| 58 |
+
"evidence": [
|
| 59 |
+
{
|
| 60 |
+
"idx": 74,
|
| 61 |
+
"page": 30,
|
| 62 |
+
"score": 0.8958114981651306,
|
| 63 |
+
"text": "_28_ _Chương 2. Tích phân bội_\n\n\n**Chú ý 2.3.** Nếu tồn tại tích phân kép f ( x, y ) dxdy thì ta nói hàm số f ( x, y ) khảtích\n��\n\nD\n\ntrong miền D .\n\n\n**Tính chất cơ bản:**\n\n\n Tính chất tuyến tính:\n\n\n\n��\n\n\n\nf ( x, y ) dxdy +\n��\nD D\n\n\n\n\n[ f ( x, y ) + g ( x, y )] dxdy =\n��\nD D\n\n\n\ng ( x, y ) dxdy\n\nD\n\n\n\n��\n\n\n\nk f ( x, y ) dxdy = k\n��\nD D\n\n\n\nf ( x, y ) dxdy\n\nD\n\n\n\n\n- Tính chất cộng tính: Nếu D = D 1 ∪ D 2, ởđó D 1 và D 2 không \"chồng\" lên nhau (có thể\nngoại trừphần biên) thì\n\n\n\n��\n\n\n\nf ( x, y ) dxdy =\n��\nD D\n\n\n\nf ( x, y ) dxdy.\n\n\n\nD 1\n\n\n\nf ( x, y ) dxdy +\n��\n\nD 2\n\n\n\n\n\n\n\n\n\n\n#### **1.2 Tính tích phân kép trong hệtoạđộDescartes**\n\nĐểtính các tích phân hai lớp, ta cần phải đưa vềtính các tích phân lặp.\n\n\n1. Nếu D là miền hình chữnhật ( D ) : a ⩽ x ⩽ b, c ⩽ y ⩽ d thì ta có thểsửdụng một\ntrong hai tích phân lặp\n\n\n\nd\n\n\ndy\n\n�\n\n\nc\n\n\n\nd\n\n\nf ( x, y ) dx.\n\n�\n\n\nc\n\n\n\nd\n\n\nf ( x, y ) dy =\n\n�\n\n\nc\n\n\n28\n\n\n\nf ( x, y ) dxdy =\n\n��\n\nD\n\n\n\nb\n\n\ndx\n\n�\n\n\na"
|
| 64 |
+
},
|
| 65 |
+
{
|
| 66 |
+
"idx": 50,
|
| 67 |
+
"page": 30,
|
| 68 |
+
"score": 0.8958114981651306,
|
| 69 |
+
"text": "_28_ _Chương 2. Tích phân bội_\n\n\n**Chú ý 2.3.** Nếu tồn tại tích phân kép f ( x, y ) dxdy thì ta nói hàm số f ( x, y ) khảtích\n��\n\nD\n\ntrong miền D .\n\n\n**Tính chất cơ bản:**\n\n\n Tính chất tuyến tính:\n\n\n\n��\n\n\n\nf ( x, y ) dxdy +\n��\nD D\n\n\n\n\n[ f ( x, y ) + g ( x, y )] dxdy =\n��\nD D\n\n\n\ng ( x, y ) dxdy\n\nD\n\n\n\n��\n\n\n\nk f ( x, y ) dxdy = k\n��\nD D\n\n\n\nf ( x, y ) dxdy\n\nD\n\n\n\n\n- Tính chất cộng tính: Nếu D = D 1 ∪ D 2, ởđó D 1 và D 2 không \"chồng\" lên nhau (có thể\nngoại trừphần biên) thì\n\n\n\n��\n\n\n\nf ( x, y ) dxdy =\n��\nD D\n\n\n\nf ( x, y ) dxdy.\n\n\n\nD 1\n\n\n\nf ( x, y ) dxdy +\n��\n\nD 2\n\n\n\n\n\n\n\n\n\n\n#### **1.2 Tính tích phân kép trong hệtoạđộDescartes**\n\nĐểtính các tích phân hai lớp, ta cần phải đưa vềtính các tích phân lặp.\n\n\n1. Nếu D là miền hình chữnhật ( D ) : a ⩽ x ⩽ b, c ⩽ y ⩽ d thì ta có thểsửdụng một\ntrong hai tích phân lặp\n\n\n\nd\n\n\ndy\n\n�\n\n\nc\n\n\n\nd\n\n\nf ( x, y ) dx.\n\n�\n\n\nc\n\n\n\nd\n\n\nf ( x, y ) dy =\n\n�\n\n\nc\n\n\n28\n\n\n\nf ( x, y ) dxdy =\n\n��\n\nD\n\n\n\nb\n\n\ndx\n\n�\n\n\na"
|
| 70 |
+
},
|
| 71 |
+
{
|
| 72 |
+
"idx": 38,
|
| 73 |
+
"page": 30,
|
| 74 |
+
"score": 0.8958114981651306,
|
| 75 |
+
"text": "_28_ _Chương 2. Tích phân bội_\n\n\n**Chú ý 2.3.** Nếu tồn tại tích phân kép f ( x, y ) dxdy thì ta nói hàm số f ( x, y ) khảtích\n��\n\nD\n\ntrong miền D .\n\n\n**Tính chất cơ bản:**\n\n\n Tính chất tuyến tính:\n\n\n\n��\n\n\n\nf ( x, y ) dxdy +\n��\nD D\n\n\n\n\n[ f ( x, y ) + g ( x, y )] dxdy =\n��\nD D\n\n\n\ng ( x, y ) dxdy\n\nD\n\n\n\n��\n\n\n\nk f ( x, y ) dxdy = k\n��\nD D\n\n\n\nf ( x, y ) dxdy\n\nD\n\n\n\n\n- Tính chất cộng tính: Nếu D = D 1 ∪ D 2, ởđó D 1 và D 2 không \"chồng\" lên nhau (có thể\nngoại trừphần biên) thì\n\n\n\n��\n\n\n\nf ( x, y ) dxdy =\n��\nD D\n\n\n\nf ( x, y ) dxdy.\n\n\n\nD 1\n\n\n\nf ( x, y ) dxdy +\n��\n\nD 2\n\n\n\n\n\n\n\n\n\n\n#### **1.2 Tính tích phân kép trong hệtoạđộDescartes**\n\nĐểtính các tích phân hai lớp, ta cần phải đưa vềtính các tích phân lặp.\n\n\n1. Nếu D là miền hình chữnhật ( D ) : a ⩽ x ⩽ b, c ⩽ y ⩽ d thì ta có thểsửdụng một\ntrong hai tích phân lặp\n\n\n\nd\n\n\ndy\n\n�\n\n\nc\n\n\n\nd\n\n\nf ( x, y ) dx.\n\n�\n\n\nc\n\n\n\nd\n\n\nf ( x, y ) dy =\n\n�\n\n\nc\n\n\n28\n\n\n\nf ( x, y ) dxdy =\n\n��\n\nD\n\n\n\nb\n\n\ndx\n\n�\n\n\na"
|
| 76 |
+
}
|
| 77 |
+
],
|
| 78 |
+
"model_verdict": {
|
| 79 |
+
"supported": true,
|
| 80 |
+
"confidence": 0.96,
|
| 81 |
+
"evidence": "Nếu D là miền hình chữ nhật ( D ) : a ≤ x ≤ b, c ≤ y ≤ d thì ta có thể sử dụng một trong hai tích phân lặp ... ∫_a^b ∫_c^d f(x,y) dy dx = ∫_c^d ∫_a^b f(x,y) dx dy",
|
| 82 |
+
"reason": "Đoạn văn nêu rõ rằng với miền hình chữ nhật, hai dạng tích phân lặp đều đúng và bằng nhau, nên đáp án c được chứng thực."
|
| 83 |
+
}
|
| 84 |
+
},
|
| 85 |
+
"2": {
|
| 86 |
+
"supported_by_embeddings": true,
|
| 87 |
+
"max_similarity": 0.7703134417533875,
|
| 88 |
+
"evidence": [
|
| 89 |
+
{
|
| 90 |
+
"idx": 46,
|
| 91 |
+
"page": 23,
|
| 92 |
+
"score": 0.7703134417533875,
|
| 93 |
+
"text": "Vậy:\n\n\n\n12 [−] [1] [=] [y] − [−] 4 [3]\n\n\n\n3\n\n\n\n**–** Phương trình tiếp tuyến ( d ) : [x] 12 [−] [1]\n\n\n\n− [−] 4 [=] [z] [−] 3 [4]\n\n\n\n**–** Phương trình pháp diện ( P ) : 12 ( x − 1 ) − 4 ( y − 3 ) + 3 ( z − 4 ) = 0\n\n\n\nb. Tương tự,\n\n\n\nn f = (− 8, 6, 12 )\n� n g = (− 4, 4, − 1 ) [,][ n] [ f] [ ∧] [n] [g] [ =][ −] [2] [ (] [27, 27, 4] [)] [ nên]\n\n\n\n\n[+] [2] [y] [−] [1]\n\n27 [=] 27\n\n\n\n4\n\n\n\n**–** Phương trình tiếp tuyến ( d ) : [x] 27 [+] [2]\n\n\n\n\n[−] [z] [−] [6]\n\n27 [=] 4\n\n\n\n**–** Phương trình pháp diện ( P ) : 27 ( x + 2 ) + 27 ( y − 1 ) + 4 ( z − 6 ) = 0\n\n\n21"
|
| 94 |
+
},
|
| 95 |
+
{
|
| 96 |
+
"idx": 31,
|
| 97 |
+
"page": 23,
|
| 98 |
+
"score": 0.7703134417533875,
|
| 99 |
+
"text": "Vậy:\n\n\n\n12 [−] [1] [=] [y] − [−] 4 [3]\n\n\n\n3\n\n\n\n**–** Phương trình tiếp tuyến ( d ) : [x] 12 [−] [1]\n\n\n\n− [−] 4 [=] [z] [−] 3 [4]\n\n\n\n**–** Phương trình pháp diện ( P ) : 12 ( x − 1 ) − 4 ( y − 3 ) + 3 ( z − 4 ) = 0\n\n\n\nb. Tương tự,\n\n\n\nn f = (− 8, 6, 12 )\n� n g = (− 4, 4, − 1 ) [,][ n] [ f] [ ∧] [n] [g] [ =][ −] [2] [ (] [27, 27, 4] [)] [ nên]\n\n\n\n\n[+] [2] [y] [−] [1]\n\n27 [=] 27\n\n\n\n4\n\n\n\n**–** Phương trình tiếp tuyến ( d ) : [x] 27 [+] [2]\n\n\n\n\n[−] [z] [−] [6]\n\n27 [=] 4\n\n\n\n**–** Phương trình pháp diện ( P ) : 27 ( x + 2 ) + 27 ( y − 1 ) + 4 ( z − 6 ) = 0\n\n\n21"
|
| 100 |
+
},
|
| 101 |
+
{
|
| 102 |
+
"idx": 23,
|
| 103 |
+
"page": 23,
|
| 104 |
+
"score": 0.7703134417533875,
|
| 105 |
+
"text": "Vậy:\n\n\n\n12 [−] [1] [=] [y] − [−] 4 [3]\n\n\n\n3\n\n\n\n**–** Phương trình tiếp tuyến ( d ) : [x] 12 [−] [1]\n\n\n\n− [−] 4 [=] [z] [−] 3 [4]\n\n\n\n**–** Phương trình pháp diện ( P ) : 12 ( x − 1 ) − 4 ( y − 3 ) + 3 ( z − 4 ) = 0\n\n\n\nb. Tương tự,\n\n\n\nn f = (− 8, 6, 12 )\n� n g = (− 4, 4, − 1 ) [,][ n] [ f] [ ∧] [n] [g] [ =][ −] [2] [ (] [27, 27, 4] [)] [ nên]\n\n\n\n\n[+] [2] [y] [−] [1]\n\n27 [=] 27\n\n\n\n4\n\n\n\n**–** Phương trình tiếp tuyến ( d ) : [x] 27 [+] [2]\n\n\n\n\n[−] [z] [−] [6]\n\n27 [=] 4\n\n\n\n**–** Phương trình pháp diện ( P ) : 27 ( x + 2 ) + 27 ( y − 1 ) + 4 ( z − 6 ) = 0\n\n\n21"
|
| 106 |
+
}
|
| 107 |
+
],
|
| 108 |
+
"model_verdict": {
|
| 109 |
+
"supported": false,
|
| 110 |
+
"confidence": 0.9,
|
| 111 |
+
"evidence": "",
|
| 112 |
+
"reason": "Context does not contain any statement about the parametric form of the plane ax + by + cz + d = 0, so the answer is not supported by the given text."
|
| 113 |
+
}
|
| 114 |
+
},
|
| 115 |
+
"3": {
|
| 116 |
+
"supported_by_embeddings": true,
|
| 117 |
+
"max_similarity": 0.7455167770385742,
|
| 118 |
+
"evidence": [
|
| 119 |
+
{
|
| 120 |
+
"idx": 160,
|
| 121 |
+
"page": 12,
|
| 122 |
+
"score": 0.7455167770385742,
|
| 123 |
+
"text": "_10_ _Chương 1. Các ứng dụng của phép tính vi phân trong hình học_\n\n\n3. Nếu họđường cong đã cho có điểm kì dịthì hệphương trình (1.2) bao gồm hình bao\n( E ) và quỹtích các điểm kì dịthuộc họcác đường cong đã cho. **Bài tập 1.1.** Viết phương trình tiếp tuyến và pháp tuyến với đường cong:\n\n\na) y = x [3] + 2x [2] − 4x − 3 tại (− 2, 5 ) . Phương trình pháp tuyến x = − 2\n\n\n\n_Lời giải_ . \n\n\n\n\nPhương trình tiếp tuyến y = 5\n\nPhương trình pháp tuyến x =\n\n\n\n\n\nb) y = e [1] [−] [x] [2] tại giao điểm của đường cong với đường thằng y = 1 . Phương trình pháp tuyến x + 2y − 1 = 0\n\n\n\n_Lời giải_ . **–** Tại M 1 (− 1, 1 ),\n\n\n\n\n\n\n\n\nPhương trình tiếp tuyến 2x − y + 3 = 0\n\nPhương trình pháp tuyến x + 2y − 1 =\n\n\n\nPhương trình pháp tuyến x − 2y + 1 = 0\n\n\n\n**–** Tại M 2 (− 1, 1 ),\n\n\n\n\n\n\n\n\nPhương trình tiếp tuyến 2x + y − 3 = 0\n\nPhương trình pháp tuyến x − 2y + 1 =\n\n\n\nc. x = [1] [+] [t]\n\nt [3]\n3\n\n� y = 2t [3]\n\n\n\nt [3]\n3\ny = 2t [3] [+] 2 [1]\n\n\n\ntại A ( 2, 2 ) . [1]\n\n2t\n\n\n\n_Lời giải_ . **–** Phương t..."
|
| 124 |
+
},
|
| 125 |
+
{
|
| 126 |
+
"idx": 108,
|
| 127 |
+
"page": 12,
|
| 128 |
+
"score": 0.7455167770385742,
|
| 129 |
+
"text": "_10_ _Chương 1. Các ứng dụng của phép tính vi phân trong hình học_\n\n\n3. Nếu họđường cong đã cho có điểm kì dịthì hệphương trình (1.2) bao gồm hình bao\n( E ) và quỹtích các điểm kì dịthuộc họcác đường cong đã cho. **Bài tập 1.1.** Viết phương trình tiếp tuyến và pháp tuyến với đường cong:\n\n\na) y = x [3] + 2x [2] − 4x − 3 tại (− 2, 5 ) . Phương trình pháp tuyến x = − 2\n\n\n\n_Lời giải_ . \n\n\n\n\nPhương trình tiếp tuyến y = 5\n\nPhương trình pháp tuyến x =\n\n\n\n\n\nb) y = e [1] [−] [x] [2] tại giao điểm của đường cong với đường thằng y = 1 . Phương trình pháp tuyến x + 2y − 1 = 0\n\n\n\n_Lời giải_ . **–** Tại M 1 (− 1, 1 ),\n\n\n\n\n\n\n\n\nPhương trình tiếp tuyến 2x − y + 3 = 0\n\nPhương trình pháp tuyến x + 2y − 1 =\n\n\n\nPhương trình pháp tuyến x − 2y + 1 = 0\n\n\n\n**–** Tại M 2 (− 1, 1 ),\n\n\n\n\n\n\n\n\nPhương trình tiếp tuyến 2x + y − 3 = 0\n\nPhương trình pháp tuyến x − 2y + 1 =\n\n\n\nc. x = [1] [+] [t]\n\nt [3]\n3\n\n� y = 2t [3]\n\n\n\nt [3]\n3\ny = 2t [3] [+] 2 [1]\n\n\n\ntại A ( 2, 2 ) . [1]\n\n2t\n\n\n\n_Lời giải_ . **–** Phương t..."
|
| 130 |
+
},
|
| 131 |
+
{
|
| 132 |
+
"idx": 106,
|
| 133 |
+
"page": 12,
|
| 134 |
+
"score": 0.7455167770385742,
|
| 135 |
+
"text": "_10_ _Chương 1. Các ứng dụng của phép tính vi phân trong hình học_\n\n\n3. Nếu họđường cong đã cho có điểm kì dịthì hệphương trình (1.2) bao gồm hình bao\n( E ) và quỹtích các điểm kì dịthuộc họcác đường cong đã cho. **Bài tập 1.1.** Viết phương trình tiếp tuyến và pháp tuyến với đường cong:\n\n\na) y = x [3] + 2x [2] − 4x − 3 tại (− 2, 5 ) . Phương trình pháp tuyến x = − 2\n\n\n\n_Lời giải_ . \n\n\n\n\nPhương trình tiếp tuyến y = 5\n\nPhương trình pháp tuyến x =\n\n\n\n\n\nb) y = e [1] [−] [x] [2] tại giao điểm của đường cong với đường thằng y = 1 . Phương trình pháp tuyến x + 2y − 1 = 0\n\n\n\n_Lời giải_ . **–** Tại M 1 (− 1, 1 ),\n\n\n\n\n\n\n\n\nPhương trình tiếp tuyến 2x − y + 3 = 0\n\nPhương trình pháp tuyến x + 2y − 1 =\n\n\n\nPhương trình pháp tuyến x − 2y + 1 = 0\n\n\n\n**–** Tại M 2 (− 1, 1 ),\n\n\n\n\n\n\n\n\nPhương trình tiếp tuyến 2x + y − 3 = 0\n\nPhương trình pháp tuyến x − 2y + 1 =\n\n\n\nc. x = [1] [+] [t]\n\nt [3]\n3\n\n� y = 2t [3]\n\n\n\nt [3]\n3\ny = 2t [3] [+] 2 [1]\n\n\n\ntại A ( 2, 2 ) . [1]\n\n2t\n\n\n\n_Lời giải_ . **–** Phương t..."
|
| 136 |
+
}
|
| 137 |
+
],
|
| 138 |
+
"model_verdict": {
|
| 139 |
+
"supported": false,
|
| 140 |
+
"confidence": 0.9,
|
| 141 |
+
"evidence": "",
|
| 142 |
+
"reason": "Trong nội dung cung cấp không có bất kỳ đề cập nào đến mặt cong x² − 4y² + 2z² = 6, điểm (2, 2, 3) hay phương trình tiếp tuyến của nó, vì vậy không thể chứng thực đáp án được."
|
| 143 |
+
}
|
| 144 |
+
},
|
| 145 |
+
"4": {
|
| 146 |
+
"supported_by_embeddings": true,
|
| 147 |
+
"max_similarity": 0.552233099937439,
|
| 148 |
+
"evidence": [
|
| 149 |
+
{
|
| 150 |
+
"idx": 160,
|
| 151 |
+
"page": 12,
|
| 152 |
+
"score": 0.552233099937439,
|
| 153 |
+
"text": "_10_ _Chương 1. Các ứng dụng của phép tính vi phân trong hình học_\n\n\n3. Nếu họđường cong đã cho có điểm kì dịthì hệphương trình (1.2) bao gồm hình bao\n( E ) và quỹtích các điểm kì dịthuộc họcác đường cong đã cho. **Bài tập 1.1.** Viết phương trình tiếp tuyến và pháp tuyến với đường cong:\n\n\na) y = x [3] + 2x [2] − 4x − 3 tại (− 2, 5 ) . Phương trình pháp tuyến x = − 2\n\n\n\n_Lời giải_ . \n\n\n\n\nPhương trình tiếp tuyến y = 5\n\nPhương trình pháp tuyến x =\n\n\n\n\n\nb) y = e [1] [−] [x] [2] tại giao điểm của đường cong với đường thằng y = 1 . Phương trình pháp tuyến x + 2y − 1 = 0\n\n\n\n_Lời giải_ . **–** Tại M 1 (− 1, 1 ),\n\n\n\n\n\n\n\n\nPhương trình tiếp tuyến 2x − y + 3 = 0\n\nPhương trình pháp tuyến x + 2y − 1 =\n\n\n\nPhương trình pháp tuyến x − 2y + 1 = 0\n\n\n\n**–** Tại M 2 (− 1, 1 ),\n\n\n\n\n\n\n\n\nPhương trình tiếp tuyến 2x + y − 3 = 0\n\nPhương trình pháp tuyến x − 2y + 1 =\n\n\n\nc. x = [1] [+] [t]\n\nt [3]\n3\n\n� y = 2t [3]\n\n\n\nt [3]\n3\ny = 2t [3] [+] 2 [1]\n\n\n\ntại A ( 2, 2 ) . [1]\n\n2t\n\n\n\n_Lời giải_ . **–** Phương t..."
|
| 154 |
+
},
|
| 155 |
+
{
|
| 156 |
+
"idx": 108,
|
| 157 |
+
"page": 12,
|
| 158 |
+
"score": 0.552233099937439,
|
| 159 |
+
"text": "_10_ _Chương 1. Các ứng dụng của phép tính vi phân trong hình học_\n\n\n3. Nếu họđường cong đã cho có điểm kì dịthì hệphương trình (1.2) bao gồm hình bao\n( E ) và quỹtích các điểm kì dịthuộc họcác đường cong đã cho. **Bài tập 1.1.** Viết phương trình tiếp tuyến và pháp tuyến với đường cong:\n\n\na) y = x [3] + 2x [2] − 4x − 3 tại (− 2, 5 ) . Phương trình pháp tuyến x = − 2\n\n\n\n_Lời giải_ . \n\n\n\n\nPhương trình tiếp tuyến y = 5\n\nPhương trình pháp tuyến x =\n\n\n\n\n\nb) y = e [1] [−] [x] [2] tại giao điểm của đường cong với đường thằng y = 1 . Phương trình pháp tuyến x + 2y − 1 = 0\n\n\n\n_Lời giải_ . **–** Tại M 1 (− 1, 1 ),\n\n\n\n\n\n\n\n\nPhương trình tiếp tuyến 2x − y + 3 = 0\n\nPhương trình pháp tuyến x + 2y − 1 =\n\n\n\nPhương trình pháp tuyến x − 2y + 1 = 0\n\n\n\n**–** Tại M 2 (− 1, 1 ),\n\n\n\n\n\n\n\n\nPhương trình tiếp tuyến 2x + y − 3 = 0\n\nPhương trình pháp tuyến x − 2y + 1 =\n\n\n\nc. x = [1] [+] [t]\n\nt [3]\n3\n\n� y = 2t [3]\n\n\n\nt [3]\n3\ny = 2t [3] [+] 2 [1]\n\n\n\ntại A ( 2, 2 ) . [1]\n\n2t\n\n\n\n_Lời giải_ . **–** Phương t..."
|
| 160 |
+
},
|
| 161 |
+
{
|
| 162 |
+
"idx": 106,
|
| 163 |
+
"page": 12,
|
| 164 |
+
"score": 0.552233099937439,
|
| 165 |
+
"text": "_10_ _Chương 1. Các ứng dụng của phép tính vi phân trong hình học_\n\n\n3. Nếu họđường cong đã cho có điểm kì dịthì hệphương trình (1.2) bao gồm hình bao\n( E ) và quỹtích các điểm kì dịthuộc họcác đường cong đã cho. **Bài tập 1.1.** Viết phương trình tiếp tuyến và pháp tuyến với đường cong:\n\n\na) y = x [3] + 2x [2] − 4x − 3 tại (− 2, 5 ) . Phương trình pháp tuyến x = − 2\n\n\n\n_Lời giải_ . \n\n\n\n\nPhương trình tiếp tuyến y = 5\n\nPhương trình pháp tuyến x =\n\n\n\n\n\nb) y = e [1] [−] [x] [2] tại giao điểm của đường cong với đường thằng y = 1 . Phương trình pháp tuyến x + 2y − 1 = 0\n\n\n\n_Lời giải_ . **–** Tại M 1 (− 1, 1 ),\n\n\n\n\n\n\n\n\nPhương trình tiếp tuyến 2x − y + 3 = 0\n\nPhương trình pháp tuyến x + 2y − 1 =\n\n\n\nPhương trình pháp tuyến x − 2y + 1 = 0\n\n\n\n**–** Tại M 2 (− 1, 1 ),\n\n\n\n\n\n\n\n\nPhương trình tiếp tuyến 2x + y − 3 = 0\n\nPhương trình pháp tuyến x − 2y + 1 =\n\n\n\nc. x = [1] [+] [t]\n\nt [3]\n3\n\n� y = 2t [3]\n\n\n\nt [3]\n3\ny = 2t [3] [+] 2 [1]\n\n\n\ntại A ( 2, 2 ) . [1]\n\n2t\n\n\n\n_Lời giải_ . **–** Phương t..."
|
| 166 |
+
}
|
| 167 |
+
],
|
| 168 |
+
"model_verdict": {
|
| 169 |
+
"supported": false,
|
| 170 |
+
"confidence": 0.9,
|
| 171 |
+
"evidence": "Ngữ cảnh không chứa tiêu đề 'GIẢI TÍCH II' hay danh sách các phép tính được liệt kê là ứng dụng.",
|
| 172 |
+
"reason": "Không có bằng chứng trong nội dung cung cấp để xác nhận đáp án."
|
| 173 |
+
}
|
| 174 |
+
},
|
| 175 |
+
"5": {
|
| 176 |
+
"supported_by_embeddings": true,
|
| 177 |
+
"max_similarity": 0.789191484451294,
|
| 178 |
+
"evidence": [
|
| 179 |
+
{
|
| 180 |
+
"idx": 156,
|
| 181 |
+
"page": 26,
|
| 182 |
+
"score": 0.789191484451294,
|
| 183 |
+
"text": "Như vậy ta đã chia miền][ R][ thành][ m] [ ×] [ n][ hình chữ]\n\n\n\ncon với độdài bằng nhau và bằng [d] [−] n [c] [. Như vậy ta đã chia miền][ R][ thành][ m] [ ×] [ n][ hình chữ]\n\nnhật con\nR ij = [ x i − 1, x i ] × [ y j − 1, y j ]\n\n\n\n24"
|
| 184 |
+
},
|
| 185 |
+
{
|
| 186 |
+
"idx": 79,
|
| 187 |
+
"page": 26,
|
| 188 |
+
"score": 0.789191484451294,
|
| 189 |
+
"text": "Như vậy ta đã chia miền][ R][ thành][ m] [ ×] [ n][ hình chữ]\n\n\n\ncon với độdài bằng nhau và bằng [d] [−] n [c] [. Như vậy ta đã chia miền][ R][ thành][ m] [ ×] [ n][ hình chữ]\n\nnhật con\nR ij = [ x i − 1, x i ] × [ y j − 1, y j ]\n\n\n\n24"
|
| 190 |
+
},
|
| 191 |
+
{
|
| 192 |
+
"idx": 13,
|
| 193 |
+
"page": 26,
|
| 194 |
+
"score": 0.789191484451294,
|
| 195 |
+
"text": "Như vậy ta đã chia miền][ R][ thành][ m] [ ×] [ n][ hình chữ]\n\n\n\ncon với độdài bằng nhau và bằng [d] [−] n [c] [. Như vậy ta đã chia miền][ R][ thành][ m] [ ×] [ n][ hình chữ]\n\nnhật con\nR ij = [ x i − 1, x i ] × [ y j − 1, y j ]\n\n\n\n24"
|
| 196 |
+
}
|
| 197 |
+
],
|
| 198 |
+
"model_verdict": {
|
| 199 |
+
"supported": true,
|
| 200 |
+
"confidence": 0.99,
|
| 201 |
+
"evidence": "R ij = [ x i − 1, x i ] × [ y j − 1, y j ]",
|
| 202 |
+
"reason": "Context explicitly gives the definition matching the answer"
|
| 203 |
+
}
|
| 204 |
+
}
|
| 205 |
+
}
|
| 206 |
+
}
|
test/mcq_output.json
DELETED
|
@@ -1,55 +0,0 @@
|
|
| 1 |
-
{
|
| 2 |
-
"mcqs": {
|
| 3 |
-
"1": {
|
| 4 |
-
"câu hỏi": "Theo định nghĩa tích phân xác định trong nội dung, độ dài Δx của mỗi khoảng con được tính như thế nào?",
|
| 5 |
-
"lựa chọn": {
|
| 6 |
-
"a": "Δx = (b - a) / n",
|
| 7 |
-
"b": "Δx = (b + a) / n",
|
| 8 |
-
"c": "Δx = (b - a) * n",
|
| 9 |
-
"d": "Δx = (b - a) / (2n)"
|
| 10 |
-
},
|
| 11 |
-
"đáp án": "Δx = (b - a) / n"
|
| 12 |
-
},
|
| 13 |
-
"2": {
|
| 14 |
-
"câu hỏi": "Phương trình tiếp diện của mặt cong được cho bởi các phương trình tham số x = u², y = v², z = u + 2v tại điểm (1, 1, 3) là:",
|
| 15 |
-
"lựa chọn": {
|
| 16 |
-
"a": "-2(x-1) -4(y-1) +4(z-3) = 0",
|
| 17 |
-
"b": "x + 2y - 2z + 3 = 0",
|
| 18 |
-
"c": "2x - y + z - 5 = 0",
|
| 19 |
-
"d": "-x -2y + 2z - 3 = 0"
|
| 20 |
-
},
|
| 21 |
-
"đáp án": "x + 2y - 2z + 3 = 0"
|
| 22 |
-
},
|
| 23 |
-
"3": {
|
| 24 |
-
"câu hỏi": "Đối với đường cong tham số x = a cos³ t, y = a sin³ t (a ≠ 0), công thức độ cong C(M) tại điểm tương ứng với tham số t là gì?",
|
| 25 |
-
"lựa chọn": {
|
| 26 |
-
"a": "C(M) = (x'^2 + y'^2)^{3/2} / (3a |sin t cos t|)",
|
| 27 |
-
"b": "C(M) = (x'^2 + y'^2)^{3/2} / (a |sin t cos t|)",
|
| 28 |
-
"c": "C(M) = (x'^2 + y'^2)^{1/2} / (3a |sin t cos t|)",
|
| 29 |
-
"d": "C(M) = (x'^2 + y'^2)^{3/2} / (3a (sin t + cos t))"
|
| 30 |
-
},
|
| 31 |
-
"đáp án": "C(M) = (x'^2 + y'^2)^{3/2} / (3a |sin t cos t|)"
|
| 32 |
-
},
|
| 33 |
-
"4": {
|
| 34 |
-
"câu hỏi": "Theo định nghĩa trong nội dung, mặt cong S được gọi là trơn tại điểm P₀ khi nào?",
|
| 35 |
-
"lựa chọn": {
|
| 36 |
-
"a": "Khi vectơ đạo hàm riêng r_u và r_v đều bằng 0 tại P₀",
|
| 37 |
-
"b": "Khi tích có hướng r_u ∧ r_v bằng 0 tại P₀",
|
| 38 |
-
"c": "Khi tích có hướng r_u ∧ r_v khác 0 tại P₀",
|
| 39 |
-
"d": "Khi chỉ một trong hai vectơ r_u hoặc r_v khác 0 tại P₀"
|
| 40 |
-
},
|
| 41 |
-
"đáp án": "Khi tích có hướng r_u ∧ r_v khác 0 tại P₀"
|
| 42 |
-
},
|
| 43 |
-
"5": {
|
| 44 |
-
"câu hỏi": "Theo nội dung đã cho, tính chất nào mô tả rằng nếu miền D được chia thành hai miền con D₁ và D₂ không chồng lên nhau (trừ phần biên), thì tích phân kép trên D bằng tổng tích phân kép trên D₁ và D₂?",
|
| 45 |
-
"lựa chọn": {
|
| 46 |
-
"a": "Tính chất tuyến tính",
|
| 47 |
-
"b": "Tính chất cộng tính",
|
| 48 |
-
"c": "Định nghĩa tích phân kép",
|
| 49 |
-
"d": "Định lý Green"
|
| 50 |
-
},
|
| 51 |
-
"đáp án": "Tính chất cộng tính"
|
| 52 |
-
}
|
| 53 |
-
},
|
| 54 |
-
"validation": null
|
| 55 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
test/politic_mcq_output.json
ADDED
|
@@ -0,0 +1,206 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"mcqs": {
|
| 3 |
+
"1": {
|
| 4 |
+
"câu hỏi": "Theo nội dung, tính chất chính trị của tôn giáo chỉ xuất hiện khi nào?",
|
| 5 |
+
"lựa chọn": {
|
| 6 |
+
"a": "Khi xã hội không có giai cấp và không có xung đột lợi ích",
|
| 7 |
+
"b": "Khi xã hội đã phân chia giai cấp, có sự khác biệt, sự đối kháng về lợi ích",
|
| 8 |
+
"c": "Khi tôn giáo được nhà nước kiểm soát chặt chẽ",
|
| 9 |
+
"d": "Khi nền kinh tế phát triển mạnh và không có bất bình xã hội"
|
| 10 |
+
},
|
| 11 |
+
"đáp án": "Khi xã hội đã phân chia giai cấp, có sự khác biệt, sự đối kháng về lợi ích"
|
| 12 |
+
},
|
| 13 |
+
"2": {
|
| 14 |
+
"câu hỏi": "Theo nội dung, giai cấp công nhân hiện đại bao gồm những nhóm nào sau đây?",
|
| 15 |
+
"lựa chọn": {
|
| 16 |
+
"a": "Là sản phẩm và chủ thể của nền đại công nghiệp.",
|
| 17 |
+
"b": "Là nguồn nhân lực chủ yếu tham gia phát triển kinh tế thị trường định hướng XHCN.",
|
| 18 |
+
"c": "Bao gồm giai cấp nông dân và thợ thủ công.",
|
| 19 |
+
"d": "Được đại diện bởi Đảng Cộng sản."
|
| 20 |
+
},
|
| 21 |
+
"đáp án": "Bao gồm giai cấp nông dân và thợ thủ công."
|
| 22 |
+
},
|
| 23 |
+
"3": {
|
| 24 |
+
"câu hỏi": "Theo nội dung trên, yếu tố nào được nêu là một trong những điều kiện kinh tế để chủ nghĩa xã hội ra đời?",
|
| 25 |
+
"lựa chọn": {
|
| 26 |
+
"a": "Sự phát triển của công nghiệp cơ khí",
|
| 27 |
+
"b": "Sự giảm chênh lệch giàu nghèo",
|
| 28 |
+
"c": "Sự tồn tại của nền kinh tế kế hoạch",
|
| 29 |
+
"d": "Sự tăng trưởng của nông nghiệp truyền thống"
|
| 30 |
+
},
|
| 31 |
+
"đáp án": "Sự phát triển của công nghiệp cơ khí"
|
| 32 |
+
},
|
| 33 |
+
"4": {
|
| 34 |
+
"câu hỏi": "Theo nội dung trên, trong các đặc trưng bản chất của chủ nghĩa xã hội do Mác nêu, đặc điểm nào sau đây không được liệt kê?",
|
| 35 |
+
"lựa chọn": {
|
| 36 |
+
"a": "Có nền kinh tế phát triển cao",
|
| 37 |
+
"b": "Có nhà nước kiểu mới mang bản chất GCCN",
|
| 38 |
+
"c": "Có nền văn hóa phát triển cao",
|
| 39 |
+
"d": "Có hệ thống chính trị đa đảng"
|
| 40 |
+
},
|
| 41 |
+
"đáp án": "Có hệ thống chính trị đa đảng"
|
| 42 |
+
},
|
| 43 |
+
"5": {
|
| 44 |
+
"câu hỏi": "Theo quan điểm cơ bản của Marx‑Lenin, sứ mệnh lịch sử của Cách mạng xã hội chủ nghĩa (CNXH) là gì?",
|
| 45 |
+
"lựa chọn": {
|
| 46 |
+
"a": "Sự phát triển kinh tế nhanh chóng",
|
| 47 |
+
"b": "Sứ mệnh lịch sử là những nhiệm vụ quan trọng, thiêng liêng buộc phải thực hiện trong một điều kiện, hoàn cảnh lịch sử cụ thể nhất định",
|
| 48 |
+
"c": "Tăng cường quan hệ quốc tế",
|
| 49 |
+
"d": "Đảm bảo quyền lợi cá nhân"
|
| 50 |
+
},
|
| 51 |
+
"đáp án": "Sứ mệnh lịch sử là những nhiệm vụ quan trọng, thiêng liêng buộc phải thực hiện trong một điều kiện, hoàn cảnh lịch sử cụ thể nhất định"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"validation": {
|
| 55 |
+
"1": {
|
| 56 |
+
"supported_by_embeddings": true,
|
| 57 |
+
"max_similarity": 0.7614468336105347,
|
| 58 |
+
"evidence": [
|
| 59 |
+
{
|
| 60 |
+
"idx": 45,
|
| 61 |
+
"page": 23,
|
| 62 |
+
"score": 0.7614468336105347,
|
| 63 |
+
"text": "Nguồn gốc nhân thức\nNguồn gốc tâm lí\n\n##### **Tính chất của tôn giáo**\n\n\n Các điều kiện kinh tế-xã hội là cho các tôn giáo bịphân liệt, chia rẽ\n\n Các tôn giáo là nơi sinh hoạt văn hóa tinh thần của một cộng đồng\n\n TÍnh chất chính trịcủa tôn giáo chỉxuất hiện khi xã hội đã phân chia giai cấp,\ncó sựkhác biệt, sựđối kháng vềlợi ích. ##### **Nguyên tắc trong giải quyết vấn đềtôn giáo**\n\n\n Tôn trọng, đảm bảo quyền tựdo tín ngưỡng và không tín ngưỡng của nhân\n\ndân\n\n Khắc phục dần những ảnh hưởng tiêu cực của tôn giáo phải gắn liền với quá\ntrình cỉa tạo xã hội cũ, xây dựng xa hội mới."
|
| 64 |
+
},
|
| 65 |
+
{
|
| 66 |
+
"idx": 23,
|
| 67 |
+
"page": 23,
|
| 68 |
+
"score": 0.7602448463439941,
|
| 69 |
+
"text": "Phân biệt hai mặt chính trịvà tư tưởng, tín ngưỡng tôn giáo và lợi dụng tín\nngưỡng tôn giáo\n\n Quan điểm lịch sửcụthểtrong giải quyết vấn đềtín ngưỡng, tôn giáo\n\n##### **Tác động của tôn giáo**\n\n\n Khuyến khích đoàn kết, khoan dung giữa các tôn giáo, phát huy các giá trịtốt\nđẹp của tôn giáo\n\n Có vai trò xây dựng đối với xã hội và đóng góp những giá trịtốt đẹp\n\n Kênh quan trọng đểthúc đẩy mởrộng đối ngoại\n\n Phòng chống xung đột, kiến tạo hòa bình, quản trịxã hội\nTác hại tiêu cực của tôn giáo: phương hại đến chính sách tựdo tìn ngưỡng, nhân\nthức thái quá và sai lệch vềĐảng và nhà nước, thu tiền trái phép\n\n##### **Chính sách của Đảng và nhà nước**\n\n\n - Là nhu cầu tinh thần\n\n Tôn trọng quyền tựdo, tín ngưỡng, thực hiện chính sách đại đoàn kết là chính\nsách nhất quán, xuyên suốt của Đảng\n\n##### **Phương hướng hoạt động trong thời gian tới**\n\n\n Một, thực hiện hiệu quảchủtrương, chính sách đầu tư phát triển\n\n Nâng cao thống nhất quan điểm chỉđạo\n\n Tăng cường công tác kiểm tra\n\n Tiếp ..."
|
| 70 |
+
},
|
| 71 |
+
{
|
| 72 |
+
"idx": 30,
|
| 73 |
+
"page": 24,
|
| 74 |
+
"score": 0.6624355316162109,
|
| 75 |
+
"text": "Khi tôn giáo xây dựng thành công CNXH thì còn tôn giáo không? Vẫn có vấn đềkhông giái thích được\n\n Vẫn có người tin thì vẫn còn tồn tại\n\n Là một phần trong nhu cầu cơ bản thiết yếu của con người\n\n Điều kiện tồn tại của tôn giáo còn trên khách quan như cơ chếthịtrường\n(muốn xóa bỏtôn gióa phải xóa bỏdc…)\n\n##### **Sựkhác nhau tín ngưỡng và tôn giáo**\n\n\nTôn giáo phải có hệthống, cơ sởthờtự, tín đồ\nTôn giáo mới là sựpha trộn của ác tôn giáo truyền thống, khi có sựchuyển biến kt, xã\nhội có sựvận động của đời sống sẽxuất hiện nhiều tôn giáo. Hiện tượng chuyển đổi tôn giáo\n\n\n**Cô ôn tập**\nChủnghĩa dân tộc và chủnghĩa dân tộc cực đoan, chủnghĩa ly khai dân tộc\n\n Chủnghĩa dân tộc cực đoan và chủnghĩa ly khai dân tộc là trào lưu gây ra sự\nchia rẽvà kì thịdân tộc, khoét sâu và cốtình khơi dậy sựbất hòa, kịch động\nlòng thù hận giữa các dân tộc, thổi phồng sựtựcao tựđại vềdân tộc mình\n\n Hậu quảnghiêm trọng là xung đột, nội chiến thểhiện dưới nhiều hình thức\nchiến tranh lớn, vừa và nhỏ, chiến t..."
|
| 76 |
+
}
|
| 77 |
+
],
|
| 78 |
+
"model_verdict": {
|
| 79 |
+
"supported": true,
|
| 80 |
+
"confidence": 0.99,
|
| 81 |
+
"evidence": "TÍnh chất chính trịcủa tôn giáo chỉ xuất hiện khi xã hội đã phân chia giai cấp, có sự khác biệt, sự đối kháng về lợi ích.",
|
| 82 |
+
"reason": "Câu trả lời trùng khớp với nội dung trong Context."
|
| 83 |
+
}
|
| 84 |
+
},
|
| 85 |
+
"2": {
|
| 86 |
+
"supported_by_embeddings": true,
|
| 87 |
+
"max_similarity": 0.7629456520080566,
|
| 88 |
+
"evidence": [
|
| 89 |
+
{
|
| 90 |
+
"idx": 34,
|
| 91 |
+
"page": 20,
|
| 92 |
+
"score": 0.7629456520080566,
|
| 93 |
+
"text": "Giai cấp thì có giai cấp công nhân và nông dân\nTầng lớp có tri thức, doanh nhân, thương,\nCơ cấu xã hội thời kì quá độ\n+Công nhân: vai trò nòng cốt trong liên minh, lực lượng đi đầu trong sựnghiệp\n\nCNH-HDH. +Nông dân: cơ sở, lực lương quan trọng phát triển kt-xã hội, giữvững ổn định chính\ntrị\n-Kinh tếcơ bản quy định nhất: xác định đúng cơ cấu\nQuan điểm nhất quán: phát triển nền kinh tếthành phần\n-Chính trị: giữvững lập trường chính trị- tư tưởng của giai cấp công nhân, vai trò\nlãnh đạo của Đảng cộng sản, xây dựng Đảng vững mạnh, xây dựng nhà nước pháp\nquyền vềXHCN của dân, do dân, vì dân\n-Văn hóa, xã hội: gắn tăng trưởng kinh tếvới phát triển văn hóa, phát triển, xây dựng\ncon người và thực hiện tiến bộ. Biến văn hóa trởthành tài sản của xã hội. Văn hóa, xã\nhội của liên minh giai cấp tầng lớp còn được thểhiện qua nâng cao chất lượng\nnguồn nhân lực, dân trí, xóa đói giảm nghèo, thực hiện an sinh xã hội\n\n\nPhương hướng tăng cường\n1. Đẩy mạnh quá trình CNH, HDH, giải quyết tốt mối quan hệgiữ..."
|
| 94 |
+
},
|
| 95 |
+
{
|
| 96 |
+
"idx": 1,
|
| 97 |
+
"page": 10,
|
| 98 |
+
"score": 0.5911743640899658,
|
| 99 |
+
"text": "##### **3.2. THỰC TRẠNG GCCN VIỆT NAM VÀ VẤN ĐỀĐẶT RA HIỆN NAY**\n\nNội dung SMLS hiện nay\nVỀNỘI DUNG KINH TẾ\n\n - Giai cấp công nhân là nguồn nhân lực chủyếu tham gia phát triển kinh tếthị\ntrường định hướng XHCN;\n\n - Lực lượng đi đầu trong sựnghiệp đẩy mạnh công nghiệp hóa, hiện đại hóa\n\nđất nước\n\n - Làm cho nước ta trởthành một nước công nghiệp theo hướng hiện đại, định\nhướng XHCN\nVỀNỘI DUNG CHÍNH TRỊ- XÃ HỘI\n\n - Giữvững và tăng cường sựlãnh đạo của Đảng,\n\n - Giữvững bản chất giai cấp công nhân của Đảng, giai cấp công nhân cùng với\nnhân dân lao động dưới sựlãnh đạo của Đảng cộng sản củng cốvà hoàn\nthiện hệthống chính trịXHCN\n\n - Xây dựng nhà nước của dân, do dân, vì dân, xây dựng nền dân chủXHCN, bảo\nvệchếđộxã hội chủnghĩa. VỀNỘI DUNG TƯ TƯỞNG – VĂN HÓA\n\n - Xây dựng và phát triển nền văn hóa Việt Nam tiên tiến, đậm đà bản sắc dân\ntộc, nội dung cốt lõi là xây dựng con người mới XHCN. - Bảo vệsựtrong sáng của chủnghĩa Mác – Lê nin và tư tưởng HồChí Minh,\nchống lại những quan điểm s..."
|
| 100 |
+
},
|
| 101 |
+
{
|
| 102 |
+
"idx": 22,
|
| 103 |
+
"page": 29,
|
| 104 |
+
"score": 0.5815836191177368,
|
| 105 |
+
"text": "Công nhân, nông dân, trí thức, thanh niên, doanh nhiên, phụnữ\n\n Phân tích dc vịtrí, vai trò từng giai cấp, tầng ớp\n\n Một câu tổng kết với từng vịtrí, vai trò, vì sao phải thực hiện liên minh các giai\ncấp\n\n\n5. **CHƯƠNG 6: VẤN ĐỀDÂN TỘC VÀ TÔN GIÁO**\n\n**TÔN GIÁO** : NẮM nguyên tắc giải quyết vấn đềTG trong thời kì quá độ, đặc điểm tôn\ngiáo ởVN, các chính sách của nhà nước và đảng vềtôn giáo\nLiên hệbản thân, ac nhận thức thếnào vềtôn giáo trong thời kì quá độxây dựng\n\nCNXH\n\n\nCHƯƠNG 7: GIA ĐINH\n\nNhững biến đổi của gia đình VN (3 biến đổi) - AC hãy nêu những biến đổi của gia\nđình VN trong thời kì quá độ, ac hãy nêu những phướng hướng, giái pháp đểxây\ndựng. Là sv, ac làm gì đểxây dựng\n\n\nDownloaded by Adoft Putin (dinhnhatthanh248@gmail.com)"
|
| 106 |
+
}
|
| 107 |
+
],
|
| 108 |
+
"model_verdict": {
|
| 109 |
+
"supported": false,
|
| 110 |
+
"confidence": 0.96,
|
| 111 |
+
"evidence": "Giai cấp thì có giai cấp công nhân và nông dân",
|
| 112 |
+
"reason": "Ngữ cảnh chỉ liệt kê giai cấp công nhân và nông dân là hai giai cấp riêng biệt, không nói rằng giai cấp công nhân bao gồm nông dân và thợ thủ công"
|
| 113 |
+
}
|
| 114 |
+
},
|
| 115 |
+
"3": {
|
| 116 |
+
"supported_by_embeddings": true,
|
| 117 |
+
"max_similarity": 0.5998344421386719,
|
| 118 |
+
"evidence": [
|
| 119 |
+
{
|
| 120 |
+
"idx": 28,
|
| 121 |
+
"page": 2,
|
| 122 |
+
"score": 0.5998344421386719,
|
| 123 |
+
"text": "=> đây là những con đường không tưởng, muốn đạt được phải qua đấu tranh và cách mạng,\nkhông vạch ra đc giai cấp nào là giai cấp mang sứmệnh lịch sử. **3. Chủnghĩa xã hội khoa học:**\nCũng hướng đến những tựdo, bình đẳng, bác ái,... nhưng đã vạch ra được giai cấp\nmang sứmệnh lịch sửlà giai cấp công nhân\n**Nghĩa rộng: Là CN Mác- Lê nin luận giải từcác góc độTH, KTCT và chính trị- xã**\n**hội vềsựchuyển biến tất yếu của XH loài người từCNTB lên CNXH.**\n**Nghĩa hẹp: là một trong ba bộphận hợp thành của CN Mác- Lenin (triết học, kinh**\n**tếCT và chủnghĩa xã hội khoa học).**\n\n\n**4. Chủnghĩa xã hội lí luận**\nBao gồm chủnghĩa xã hội không tưởng và chủnghĩa xã hội khoa hoc. **5. Chủnghĩa xã hội hiện thực**\nVận dụng các chủnghĩa xã hội vào xây dựng thực tiễn (CMT10 Nga - 1917)\n\n\nDownloaded by Adoft Putin (dinhnhatthanh248@gmail.com)"
|
| 124 |
+
},
|
| 125 |
+
{
|
| 126 |
+
"idx": 5,
|
| 127 |
+
"page": 5,
|
| 128 |
+
"score": 0.5852417945861816,
|
| 129 |
+
"text": "Con đường, cách thức và phương thức đấu tranh nhằm giải phóng con người, giải\nphóng xã hội khỏi tư hữu, áp bức, bóc lột, xây dựng một xã hội mới tiến bộ, công\nbằng, bình đẳng\n**2. Là một chếđộxã hội hiện thức, một mô hinh, một kiểu tổchức xã hội theo**\n**những nguyên tắc của CNXH**\n\n\n**3. Là một phong trào thực tiễn**\n\n### **1.2 Những điều kiện ra đời của CNXH khoa học**\n\n\n1.2.1. Điều kiện khách quan\n1.2.2. Điều kiện chủquan (vai trò của Mac Angghen\n\n### **2.2 VI."
|
| 130 |
+
},
|
| 131 |
+
{
|
| 132 |
+
"idx": 31,
|
| 133 |
+
"page": 3,
|
| 134 |
+
"score": 0.576014518737793,
|
| 135 |
+
"text": "Chủnghĩa xã hội vs Xã hội chủnghĩa\nChủnghĩa xã hội là một danh từ\nXã hội chủnghĩa là một tính từ\n\n\nThếlực thù địch\n+ Phủnhận: 1886 -> Đổi mới\n+ Cho rằng kinh tếthịtrường định hướng xã hội chủnghĩa không có thực\n=> Có thành tựu hay không có thành tựu đều bịcông kích\n\n\n**Vì sao nói chủnghĩa Mác Lênin vừa thống nhất vừa độc lập với nhau?**\n➢ Thống nhất vì nó là những luận điểm khoa học,\n➢ là hệtư tưởng của giai cấp công nhân\n➢ Đều hướng đến những giá trịtựdo,... mà con người đang hướng đến\n\n\nTriết học Mác Lenin: nghiên cứu những quy luật chung nhất của tựnhiên, xã hội, tư\nduy của 5 HTKT-XH\nKT-CT học Mác Lenin: nghiên cứu quy luật kinh tếtrong quá trình SXVC của HTKT-XH\nTBCN và quá độlên CNXH\nChủnghĩa xã hội khoa học: nghiên cứu những quy luật chính trị- xã hội của HTKT\ncộng sản chủnghĩa\n\n### **1.1 Quan niệm vềchủnghĩa xã hội**\n\n\nCNTB →Ra đời vào thời kì chiếm hữu nô lệ: khi xã hội bắt đầu phân chia giai cấp\n(tầng lớp quý tộc, địa chủ,.."
|
| 136 |
+
}
|
| 137 |
+
],
|
| 138 |
+
"model_verdict": {
|
| 139 |
+
"supported": false,
|
| 140 |
+
"confidence": 0.9,
|
| 141 |
+
"evidence": "Không có đề cập đến \"công nghiệp cơ khí\" trong nội dung cung cấp.",
|
| 142 |
+
"reason": "Context không chứa thông tin nào về sự phát triển của công nghiệp cơ khí là điều kiện kinh tế để chủ nghĩa xã hội ra đời."
|
| 143 |
+
}
|
| 144 |
+
},
|
| 145 |
+
"4": {
|
| 146 |
+
"supported_by_embeddings": true,
|
| 147 |
+
"max_similarity": 0.6957789659500122,
|
| 148 |
+
"evidence": [
|
| 149 |
+
{
|
| 150 |
+
"idx": 47,
|
| 151 |
+
"page": 18,
|
| 152 |
+
"score": 0.6957789659500122,
|
| 153 |
+
"text": "Phương diện tổchức và quản lí xã hội\n\n\nQuan điểm của Đảng cộng sản vềdân chủ(nền dân chủxã hội chủnghĩa)\n\n - QUyền lực thuộc vềnhân dân\n\n - Dân chủgắn liền với công bằng xã hội\n\n - Dân chủđi đôi với kỷluật, kỷcương\n\n - Dân chủtrên mọi lĩnh vực đời sống\n\n - Dân chủđược thểhiện bằng pháp luật\n\n\nNền dân chủchủnô và dân chủtư sản đều là quyền lực thuộc vềtay một giai cấp\nchứkhông phải tất cảcác giai cấp - không phải nền dân chủcho đa sốtrong xã hội\n(không có nền dân chủcho tất cảchỉcó cho đại đa số)\n\n\nĐặc điểm của nhà nước pháp quyền XHCN ởViệt Nam (6 nội dung phải nhớ)\n\n - Bản chất kinh tế\n\n - Bản chất chính trị\n\n - Bản chất xã hội - văn hóa\n\n\nPhải lí giải: vd nếu không có đảng thì có thểđảm bảo dân chủcho mọi tầng lớp\ntrong xã hội không\nQuan niệm chung vềnhà nước pháp quyền\n\n\nDownloaded by Adoft Putin (dinhnhatthanh248@gmail.com)"
|
| 154 |
+
},
|
| 155 |
+
{
|
| 156 |
+
"idx": 31,
|
| 157 |
+
"page": 3,
|
| 158 |
+
"score": 0.6646752953529358,
|
| 159 |
+
"text": "Chủnghĩa xã hội vs Xã hội chủnghĩa\nChủnghĩa xã hội là một danh từ\nXã hội chủnghĩa là một tính từ\n\n\nThếlực thù địch\n+ Phủnhận: 1886 -> Đổi mới\n+ Cho rằng kinh tếthịtrường định hướng xã hội chủnghĩa không có thực\n=> Có thành tựu hay không có thành tựu đều bịcông kích\n\n\n**Vì sao nói chủnghĩa Mác Lênin vừa thống nhất vừa độc lập với nhau?**\n➢ Thống nhất vì nó là những luận điểm khoa học,\n➢ là hệtư tưởng của giai cấp công nhân\n➢ Đều hướng đến những giá trịtựdo,... mà con người đang hướng đến\n\n\nTriết học Mác Lenin: nghiên cứu những quy luật chung nhất của tựnhiên, xã hội, tư\nduy của 5 HTKT-XH\nKT-CT học Mác Lenin: nghiên cứu quy luật kinh tếtrong quá trình SXVC của HTKT-XH\nTBCN và quá độlên CNXH\nChủnghĩa xã hội khoa học: nghiên cứu những quy luật chính trị- xã hội của HTKT\ncộng sản chủnghĩa\n\n### **1.1 Quan niệm vềchủnghĩa xã hội**\n\n\nCNTB →Ra đời vào thời kì chiếm hữu nô lệ: khi xã hội bắt đầu phân chia giai cấp\n(tầng lớp quý tộc, địa chủ,.."
|
| 160 |
+
},
|
| 161 |
+
{
|
| 162 |
+
"idx": 10,
|
| 163 |
+
"page": 13,
|
| 164 |
+
"score": 0.6248639822006226,
|
| 165 |
+
"text": "- Mâu thuẫn giữa LLSX và QHSX, mâu thuẫn tư sản và vô sản\n\n\nĐiều kiện chính trị\n\n\n - GCCN phát triển cảvềsốlượng và chất lượng\n\n\n - GCCN phải giác ngộcách mạng và tốchức ra chính Đảng của mình\n\n\n - GCCN phải kiên quyết giành chính quyền từtay GCTS khi có thời cơ cách\n\n\nmạng và muốn giành chính quyền phải thông qua cách mạng vô sản\n\n\n=> Áp lực của phong trào đấu tranh GCCN, áp lực từsựra đời icủa CNXH\n\n##### **1.3 Những đặc trưng bản chất của chủnghĩa xã hội theo quan điểm** **của Mác**\n\n\n1. Giai phóng GC, giải phóng DT, giải phóng XH, giải phóng con người (giải\nphóng toàn bộcác tầng lớp bịáp bức bóc lột khác)\n**2. Là chếđộdo NDLĐ làm chủ(mọi chính sách đều phục vụnhân dân)**\n3. Có nền KT phát triển cao\n4. Có nhà nước kiểu mới mang bản chất GCCN (chương 5)\n5. Có nền văn hóa phát triển cao\n6. Đẩm bảo bình đăng, đoàn kết giữa các dân tộc (VN là nc đa dân tộc, đa văn\nhóa nên xây dựng đn sẽkhó khăn hơn), quan hệhợp tác hữu nghị\n\n### **2."
|
| 166 |
+
}
|
| 167 |
+
],
|
| 168 |
+
"model_verdict": {
|
| 169 |
+
"supported": true,
|
| 170 |
+
"confidence": 0.98,
|
| 171 |
+
"evidence": "1. Giai phóng GC... 2. Là chế độ... 3. Có nền KT phát triển cao 4. Có nhà nước kiểu mới mang bản chất GCCN 5. Có nền văn hóa phát triển cao 6. Đảm bảo bình đẳng, đoàn kết... (không có mục \"có hệ thống chính trị đa đảng\")",
|
| 172 |
+
"reason": "Trong danh sách 6 đặc trưng của chủ nghĩa xã hội theo Mác, không có mục nào đề cập đến hệ thống chính trị đa đảng, nên đáp án \"Có hệ thống chính trị đa đảng\" là đúng."
|
| 173 |
+
}
|
| 174 |
+
},
|
| 175 |
+
"5": {
|
| 176 |
+
"supported_by_embeddings": true,
|
| 177 |
+
"max_similarity": 0.5826756358146667,
|
| 178 |
+
"evidence": [
|
| 179 |
+
{
|
| 180 |
+
"idx": 3,
|
| 181 |
+
"page": 3,
|
| 182 |
+
"score": 0.5826756358146667,
|
| 183 |
+
"text": "nắm giữtài sản, nô lệlà công cụlao động)\nCNXH không tưởng (trước 1848, trước Mác- Ăngghen)\n**a) Tư tưởng xã hội chủnghĩa trước Mác**\n❖ Tư tưởng XHCN thời cổđại: Phương Đông (địa chủ- phong kiến), phương Tây\n(chủnô, tang lữ- nô lệ) => thểhiện bằng các cuộc đấu tranh của quần chúng\nnhân dân lao động đòi lại quyền dân chủtuy nhiên còn rời rạc (VD khởi nghĩa\nSpartacus). ❖ Tư tưởng XHCN thời trung đại: Phương Tây (đêm trường trung cổ, giáo hội có\nquyền lực hơn cảnhà nước). => thểhiện bằng những câu chuyện, văn thở\nphản ánh ước mơ về“thời đại hoàng kim”\n❖ Tư tưởng XHCN thời cận đại (đầu TK16 - đầu TK19): xuất hiện tầng lớp công\nnhân => tư tưởng CNXH bắt đầu được thành lập. Thểkỷ16 - Thomas More với\ntác phẩm Utopia) - thuật ngữ“Cừu ăn thịt người”. Grachus Babeuf - tuyên\nngôn của những người binh dân\n❖ Thếkỉ19: Tư tưởng XHCN thểhiện dạng học thuyết phê phán: 3 đại diện tiêu\nbiểu (Saint Simon, Charles Fourier, Robert Owen): bước sang giai đoạn mới\n\n\nDownloaded by Adoft Putin (dinhnhatthanh248@g..."
|
| 184 |
+
},
|
| 185 |
+
{
|
| 186 |
+
"idx": 40,
|
| 187 |
+
"page": 5,
|
| 188 |
+
"score": 0.5630186796188354,
|
| 189 |
+
"text": "Lenin bảo vệ, vận dụng và phát triển sáng tạo** **CNXHKH**\n\n\n2.2.2 Thời kì sau CM tháng 10 Nga:\nVềchính trị: vấn đềdân chủvà chuyên chính vô sản\nVềkinh tế: vận hành theo thịtrường, kinh tếNep\n\n##### **_Đối diện: Nhận diện cách mạng màu - Việt Nam có phải đối diện_** **_nguy cơ xảy ra cách mạng màu hay không?_**\n\n+ Biểu hiện của cách mạng màu: các cuộc lật độchếđộhiện tại bằng phương\nthức truyền bá, kích động, lôi kéo người dân tham gia vào các cuộc biểu tình\nkhiến cho các hoạt động xã hội bịngưng trệkhiến cho xung đột người dân và\nchính quyền ngày càng lớn\n+ Bắt nguồn từcáo buộc gian lận bầu cử, nạn tham nhũng, mâu thuẫn lợi ích,\nmâu thuẫn sắc tộc, khó khăn kinh tế… => bịkích động trởthành cách mạng\nhoa nhài, cách mạng hoa tulip,... + Hậu quả: đồng tiền mất giá, cuộc sống đình trệ, kinh tếrơi vào khủng hoảng\ntrầm trọng, đất nước trởthành vùng đệm quốc tế, người dân phải tịnạn, gặp\n\nkhó khăn\n\n+ VN có phải đối mặt với cách mạng màu không? Mục tiêu tấn công nhằm xóa\nbỏCNXH -> VN cũng nằm ..."
|
| 190 |
+
},
|
| 191 |
+
{
|
| 192 |
+
"idx": 28,
|
| 193 |
+
"page": 2,
|
| 194 |
+
"score": 0.5546197891235352,
|
| 195 |
+
"text": "=> đây là những con đường không tưởng, muốn đạt được phải qua đấu tranh và cách mạng,\nkhông vạch ra đc giai cấp nào là giai cấp mang sứmệnh lịch sử. **3. Chủnghĩa xã hội khoa học:**\nCũng hướng đến những tựdo, bình đẳng, bác ái,... nhưng đã vạch ra được giai cấp\nmang sứmệnh lịch sửlà giai cấp công nhân\n**Nghĩa rộng: Là CN Mác- Lê nin luận giải từcác góc độTH, KTCT và chính trị- xã**\n**hội vềsựchuyển biến tất yếu của XH loài người từCNTB lên CNXH.**\n**Nghĩa hẹp: là một trong ba bộphận hợp thành của CN Mác- Lenin (triết học, kinh**\n**tếCT và chủnghĩa xã hội khoa học).**\n\n\n**4. Chủnghĩa xã hội lí luận**\nBao gồm chủnghĩa xã hội không tưởng và chủnghĩa xã hội khoa hoc. **5. Chủnghĩa xã hội hiện thực**\nVận dụng các chủnghĩa xã hội vào xây dựng thực tiễn (CMT10 Nga - 1917)\n\n\nDownloaded by Adoft Putin (dinhnhatthanh248@gmail.com)"
|
| 196 |
+
}
|
| 197 |
+
],
|
| 198 |
+
"model_verdict": {
|
| 199 |
+
"supported": false,
|
| 200 |
+
"confidence": 0.85,
|
| 201 |
+
"evidence": "Context chỉ đề cập đến giai cấp công nhân là giai cấp mang sứ mệnh lịch sử, nhưng không nêu rõ sứ mệnh lịch sử của Cách mạng xã hội chủ nghĩa là \"những nhiệm vụ quan trọng, thiêng liêng...\"",
|
| 202 |
+
"reason": "Không có bằng chứng trong nội dung cung cấp xác nhận định nghĩa cụ thể của sứ mệnh lịch sử như trong đáp án"
|
| 203 |
+
}
|
| 204 |
+
}
|
| 205 |
+
}
|
| 206 |
+
}
|
test/raw_resp.json
CHANGED
|
@@ -1,33 +1,33 @@
|
|
| 1 |
{
|
| 2 |
-
"id": "chatcmpl-
|
| 3 |
"choices": [
|
| 4 |
{
|
| 5 |
"finish_reason": "stop",
|
| 6 |
"index": 0,
|
| 7 |
"message": {
|
| 8 |
-
"content": "{\n \"supported\":
|
| 9 |
-
"reasoning": "We need to determine if the answer \"
|
| 10 |
"role": "assistant"
|
| 11 |
}
|
| 12 |
}
|
| 13 |
],
|
| 14 |
-
"created":
|
| 15 |
"model": "gpt-oss-120b",
|
| 16 |
-
"system_fingerprint": "
|
| 17 |
"object": "chat.completion",
|
| 18 |
"usage": {
|
| 19 |
-
"prompt_tokens":
|
| 20 |
-
"completion_tokens":
|
| 21 |
-
"total_tokens":
|
| 22 |
"prompt_tokens_details": {
|
| 23 |
"cached_tokens": 0
|
| 24 |
}
|
| 25 |
},
|
| 26 |
"time_info": {
|
| 27 |
-
"queue_time": 0.
|
| 28 |
-
"prompt_time": 0.
|
| 29 |
-
"completion_time": 0.
|
| 30 |
-
"total_time": 0.
|
| 31 |
-
"created":
|
| 32 |
}
|
| 33 |
}
|
|
|
|
| 1 |
{
|
| 2 |
+
"id": "chatcmpl-2c88c369-113f-4f09-a6be-df34db03660c",
|
| 3 |
"choices": [
|
| 4 |
{
|
| 5 |
"finish_reason": "stop",
|
| 6 |
"index": 0,
|
| 7 |
"message": {
|
| 8 |
+
"content": "{\n \"supported\": true,\n \"confidence\": 0.99,\n \"evidence\": \"Transformer (big) **28.4** ...; Our model achieves 28.4 BLEU on the WMT 2014 English-to-German translation task\",\n \"reason\": \"Context explicitly states that the Transformer (big) model achieved a BLEU score of 28.4 on the English‑German WMT 2014 task.\"\n}",
|
| 9 |
+
"reasoning": "We need to determine if the answer \"28.4\" is supported by the context. The question: \"Theo nội dung, mô hình Transformer (big) đạt được điểm BLEU bao nhiêu trên nhiệm vụ dịch tiếng Anh‑tiếng Đức WMT 2014?\" The answer given: 28.4.\n\nWe need to see if the context contains that information. In the context, there is a table showing \"Transformer (big) **28.4** **41.8** ...\" The first number likely BLEU for EN-DE, second for EN-FR. Also later in page 1 text: \"Our model achieves 28.4 BLEU on the WMT 2014 English-to-German translation task\". So yes, supported.\n\nThus supported: true, confidence high, evidence: \"Transformer (big) **28.4** ...\" or the sentence. Provide JSON.\n\n",
|
| 10 |
"role": "assistant"
|
| 11 |
}
|
| 12 |
}
|
| 13 |
],
|
| 14 |
+
"created": 1755705584,
|
| 15 |
"model": "gpt-oss-120b",
|
| 16 |
+
"system_fingerprint": "fp_e25f231b468af246abb0",
|
| 17 |
"object": "chat.completion",
|
| 18 |
"usage": {
|
| 19 |
+
"prompt_tokens": 1638,
|
| 20 |
+
"completion_tokens": 290,
|
| 21 |
+
"total_tokens": 1928,
|
| 22 |
"prompt_tokens_details": {
|
| 23 |
"cached_tokens": 0
|
| 24 |
}
|
| 25 |
},
|
| 26 |
"time_info": {
|
| 27 |
+
"queue_time": 0.00066583,
|
| 28 |
+
"prompt_time": 0.070852175,
|
| 29 |
+
"completion_time": 0.173571485,
|
| 30 |
+
"total_time": 0.24927616119384766,
|
| 31 |
+
"created": 1755705584
|
| 32 |
}
|
| 33 |
}
|