Spaces:
Paused
Paused
lanny xu
commited on
Commit
ยท
7edc5f6
1
Parent(s):
8f03f27
resolve conflict
Browse files
bert_encoder_detailed_explained.py
ADDED
|
@@ -0,0 +1,793 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
BERT Encoder 12ๅฑ่ฏฆ็ป่งฃๆ
|
| 3 |
+
ๅฑ็คบ Vectara HHEM ไธญ BERT ็ผ็ ๅจ็ๆฏไธๅฑๅค็่ฟ็จ
|
| 4 |
+
ไฝฟ็จ็ๅฎ่ฎญ็ปๆ ทๆฌๆผ็คบๆฐๆฎๆต่ฝฌ
|
| 5 |
+
"""
|
| 6 |
+
|
| 7 |
+
import numpy as np
|
| 8 |
+
|
| 9 |
+
print("=" * 80)
|
| 10 |
+
print("BERT Encoder 12ๅฑๅฎๆด่งฃๆ - ่ๅ็ผ็ ๅนป่งๆฃๆต")
|
| 11 |
+
print("=" * 80)
|
| 12 |
+
|
| 13 |
+
# ============================================================================
|
| 14 |
+
# Part 1: ่ฎญ็ปๆ ทๆฌๅๅค
|
| 15 |
+
# ============================================================================
|
| 16 |
+
print("\n" + "=" * 80)
|
| 17 |
+
print("๐ Part 1: ่ฎญ็ปๆ ทๆฌ")
|
| 18 |
+
print("=" * 80)
|
| 19 |
+
|
| 20 |
+
print("""
|
| 21 |
+
่ฎญ็ปๆ ทๆฌ๏ผๅนป่งๆฃๆต๏ผ๏ผ
|
| 22 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 23 |
+
|
| 24 |
+
Documents (ๆๆกฃ):
|
| 25 |
+
"AlphaCodium ๆฏไธ็งไปฃ็ ็ๆๆนๆณ๏ผ้่ฟ่ฟญไปฃๆน่ฟๆๅๆง่ฝใ"
|
| 26 |
+
|
| 27 |
+
Generation (LLM็ๆ):
|
| 28 |
+
"AlphaCodium ๆฏ Google ๅจ 2024 ๅนดๅๅธ็ไปฃ็ ็ๆๅทฅๅ
ทใ"
|
| 29 |
+
|
| 30 |
+
Label (ๆ ็ญพ):
|
| 31 |
+
Hallucinated โ
|
| 32 |
+
|
| 33 |
+
ๅๅ :
|
| 34 |
+
- "Google" ๅจๆๆกฃไธญๆฒกๆ โ ๅนป่ง
|
| 35 |
+
- "2024 ๅนด" ๅจๆๆกฃไธญๆฒกๆ โ ๅนป่ง
|
| 36 |
+
- "ๅทฅๅ
ท" vs "ๆนๆณ" โ ่ฏ่ฏญไธ็ฒพ็กฎ
|
| 37 |
+
""")
|
| 38 |
+
|
| 39 |
+
|
| 40 |
+
# ============================================================================
|
| 41 |
+
# Part 2: Tokenization ๅๅๅง Embeddings
|
| 42 |
+
# ============================================================================
|
| 43 |
+
print("\n" + "=" * 80)
|
| 44 |
+
print("๐ง Part 2: ่พๅ
ฅๅๅค - Tokenization")
|
| 45 |
+
print("=" * 80)
|
| 46 |
+
|
| 47 |
+
print("""
|
| 48 |
+
Step 1: ๆๆฌๆผๆฅ
|
| 49 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 50 |
+
|
| 51 |
+
่พๅ
ฅๆ ผๅผ:
|
| 52 |
+
[CLS] Documents [SEP] Generation [SEP]
|
| 53 |
+
|
| 54 |
+
ๅฎ้
ๆผๆฅๅ:
|
| 55 |
+
[CLS] AlphaCodium ๆฏไธ็งไปฃ็ ็ๆๆนๆณ๏ผ้่ฟ่ฟญไปฃๆน่ฟๆๅๆง่ฝใ
|
| 56 |
+
[SEP] AlphaCodium ๆฏ Google ๅจ 2024 ๅนดๅๅธ็ไปฃ็ ็ๆๅทฅๅ
ทใ
|
| 57 |
+
[SEP]
|
| 58 |
+
|
| 59 |
+
|
| 60 |
+
Step 2: Tokenization (BERT WordPiece ๅ่ฏ)
|
| 61 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 62 |
+
|
| 63 |
+
ๅ่ฏ็ปๆ๏ผ็ฎๅ๏ผๅฎ้
ไผๆด็ป๏ผ:
|
| 64 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 65 |
+
ไฝ็ฝฎ Token Token ID Segment ID
|
| 66 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 67 |
+
0 [CLS] 101 0
|
| 68 |
+
1 Alpha 2945 0
|
| 69 |
+
2 ##Codium 3421 0
|
| 70 |
+
3 ๆฏ 2003 0
|
| 71 |
+
4 ไธ็ง 1037 0
|
| 72 |
+
5 ไปฃ็ 4521 0
|
| 73 |
+
6 ็ๆ 3156 0
|
| 74 |
+
7 ๆนๆณ 2567 0
|
| 75 |
+
8 ๏ผ 110 0
|
| 76 |
+
9 ้่ฟ 2134 0
|
| 77 |
+
10 ่ฟญไปฃ 3789 0
|
| 78 |
+
11 ๆน่ฟ 2891 0
|
| 79 |
+
12 ๆๅ 4123 0
|
| 80 |
+
13 ๆง่ฝ 3456 0
|
| 81 |
+
14 ใ 119 0
|
| 82 |
+
15 [SEP] 102 0 โ ็ฌฌไธไธชๅ้็ฌฆ
|
| 83 |
+
16 Alpha 2945 1 โ Segment ID ๅไธบ 1
|
| 84 |
+
17 ##Codium 3421 1
|
| 85 |
+
18 ๆฏ 2003 1
|
| 86 |
+
19 Google 5678 1
|
| 87 |
+
20 ๅจ 2156 1
|
| 88 |
+
21 2024 4532 1
|
| 89 |
+
22 ๅนด 3267 1
|
| 90 |
+
23 ๅๅธ 2789 1
|
| 91 |
+
24 ็ 1998 1
|
| 92 |
+
25 ไปฃ็ 4521 1
|
| 93 |
+
26 ็ๆ 3156 1
|
| 94 |
+
27 ๅทฅๅ
ท 3890 1
|
| 95 |
+
28 ใ 119 1
|
| 96 |
+
29 [SEP] 102 1 โ ็ฌฌไบไธชๅ้็ฌฆ
|
| 97 |
+
|
| 98 |
+
ๆปๅ
ฑ: 30 ไธช tokens
|
| 99 |
+
|
| 100 |
+
|
| 101 |
+
Step 3: ๅๅง Embeddings
|
| 102 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 103 |
+
|
| 104 |
+
BERT ็่พๅ
ฅ = Token Embedding + Segment Embedding + Position Embedding
|
| 105 |
+
|
| 106 |
+
ๅฏนไบๆฏไธช token๏ผ่ทๅไธไธช embedding ๅนถ็ธๅ ๏ผ
|
| 107 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 108 |
+
|
| 109 |
+
ไปฅ Token 0 "[CLS]" ไธบไพ:
|
| 110 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 111 |
+
|
| 112 |
+
1. Token Embedding (่ฏๅตๅ
ฅ่กจๆฅ่ฏข)
|
| 113 |
+
Token ID: 101
|
| 114 |
+
โ Embedding Table[101] = [0.12, -0.34, 0.56, ..., 0.78] (768็ปด)
|
| 115 |
+
|
| 116 |
+
2. Segment Embedding (ๆฎต่ฝๅตๅ
ฅ)
|
| 117 |
+
Segment ID: 0 (ๅฑไบ Documents ้จๅ)
|
| 118 |
+
โ Segment Table[0] = [0.05, 0.02, -0.01, ..., 0.03] (768็ปด)
|
| 119 |
+
|
| 120 |
+
3. Position Embedding (ไฝ็ฝฎๅตๅ
ฅ)
|
| 121 |
+
Position: 0 (็ฌฌไธไธชไฝ็ฝฎ)
|
| 122 |
+
โ Position Table[0] = [0.08, -0.12, 0.15, ..., -0.05] (768็ปด)
|
| 123 |
+
|
| 124 |
+
4. ็ธๅ ๅพๅฐๅๅงๅ้
|
| 125 |
+
Initial Embedding[0] = Token + Segment + Position
|
| 126 |
+
= [0.12, -0.34, 0.56, ..., 0.78]
|
| 127 |
+
+ [0.05, 0.02, -0.01, ..., 0.03]
|
| 128 |
+
+ [0.08, -0.12, 0.15, ..., -0.05]
|
| 129 |
+
= [0.25, -0.44, 0.70, ..., 0.76] (768็ปด)
|
| 130 |
+
|
| 131 |
+
|
| 132 |
+
ๆๆ tokens ็ๅๅงๅ้็ฉ้ต:
|
| 133 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 134 |
+
|
| 135 |
+
Hโฐ = [
|
| 136 |
+
[0.25, -0.44, 0.70, ..., 0.76], โ Token 0: [CLS]
|
| 137 |
+
[0.15, 0.32, -0.23, ..., 0.45], โ Token 1: Alpha
|
| 138 |
+
[0.28, -0.15, 0.41, ..., 0.52], โ Token 2: ##Codium
|
| 139 |
+
...
|
| 140 |
+
[0.19, 0.27, -0.38, ..., 0.61] โ Token 29: [SEP]
|
| 141 |
+
]
|
| 142 |
+
|
| 143 |
+
ๅฝข็ถ: (30, 768)
|
| 144 |
+
โ โ
|
| 145 |
+
30ไธชtokens ๆฏไธช768็ปด
|
| 146 |
+
""")
|
| 147 |
+
|
| 148 |
+
|
| 149 |
+
# ============================================================================
|
| 150 |
+
# Part 3: BERT Encoder Layer ่ฏฆ็ป็ปๆ
|
| 151 |
+
# ============================================================================
|
| 152 |
+
print("\n" + "=" * 80)
|
| 153 |
+
print("๐๏ธ Part 3: BERT Encoder Layer ็ปๆ๏ผๅๅฑ่ฏฆ่งฃ๏ผ")
|
| 154 |
+
print("=" * 80)
|
| 155 |
+
|
| 156 |
+
print("""
|
| 157 |
+
ๆฏไธๅฑ BERT Encoder ็็ปๆ:
|
| 158 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 159 |
+
|
| 160 |
+
่พๅ
ฅ: H^(l-1) (ไธไธๅฑ็่พๅบ๏ผๅฝข็ถ: 30ร768)
|
| 161 |
+
่พๅบ: H^l (ๆฌๅฑ็่พๅบ๏ผๅฝข็ถ: 30ร768)
|
| 162 |
+
|
| 163 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 164 |
+
โ BERT Encoder Layer โ
|
| 165 |
+
โ โ
|
| 166 |
+
โ ่พๅ
ฅ: H^(l-1) (30, 768) โ
|
| 167 |
+
โ โ โ
|
| 168 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 169 |
+
โ โ Sub-Layer 1: Multi-Head Self-Attention โ โ
|
| 170 |
+
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 171 |
+
โ โ โ โ
|
| 172 |
+
โ โ 1.1 ่ฎก็ฎ Q, K, V โ โ
|
| 173 |
+
โ โ Q = H^(l-1) ร W^Q (30ร768 ร 768ร768) โ โ
|
| 174 |
+
โ โ K = H^(l-1) ร W^K (30ร768 ร 768ร768) โ โ
|
| 175 |
+
โ โ V = H^(l-1) ร W^V (30ร768 ร 768ร768) โ โ
|
| 176 |
+
โ โ โ โ
|
| 177 |
+
โ โ 1.2 ๅๆ 12 ไธช Head โ โ
|
| 178 |
+
โ โ ๆฏไธช Head: 768 / 12 = 64 ็ปด โ โ
|
| 179 |
+
โ โ โ โ
|
| 180 |
+
โ โ 1.3 ๆฏไธช Head ่ฎก็ฎ Attention โ โ
|
| 181 |
+
โ โ Attention = softmax(QรK^T / โ64) ร V โ โ
|
| 182 |
+
โ โ โ โ
|
| 183 |
+
โ โ 1.4 Concat ๆๆ Heads โ โ
|
| 184 |
+
โ โ Output = Concat(headโ, ..., headโโ) โ โ
|
| 185 |
+
โ โ โ โ
|
| 186 |
+
โ โ 1.5 ็บฟๆงๅๆข โ โ
|
| 187 |
+
โ โ Output = Output ร W^O โ โ
|
| 188 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 189 |
+
โ โ โ
|
| 190 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 191 |
+
โ โ Add & Norm 1 โ โ
|
| 192 |
+
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 193 |
+
โ โ H_att = LayerNorm(H^(l-1) + Attention_Output) โ โ
|
| 194 |
+
โ โ โ ๆฎๅทฎ่ฟๆฅ โ Attention ่พๅบ โ โ
|
| 195 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 196 |
+
โ โ โ
|
| 197 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 198 |
+
โ โ Sub-Layer 2: Feed Forward Network โ โ
|
| 199 |
+
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 200 |
+
โ โ โ โ
|
| 201 |
+
โ โ 2.1 ็ฌฌไธๅฑๅ
จ่ฟๆฅ + ReLU โ โ
|
| 202 |
+
โ โ FFNโ = ReLU(H_att ร Wโ + bโ) โ โ
|
| 203 |
+
โ โ (30ร768 ร 768ร3072 = 30ร3072) โ โ
|
| 204 |
+
โ โ โ โ
|
| 205 |
+
โ โ 2.2 ็ฌฌไบๅฑๅ
จ่ฟๆฅ โ โ
|
| 206 |
+
โ โ FFNโ = FFNโ ร Wโ + bโ โ โ
|
| 207 |
+
โ โ (30ร3072 ร 3072ร768 = 30ร768) โ โ
|
| 208 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 209 |
+
โ โ โ
|
| 210 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 211 |
+
โ โ Add & Norm 2 โ โ
|
| 212 |
+
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 213 |
+
โ โ H^l = LayerNorm(H_att + FFNโ) โ โ
|
| 214 |
+
โ โ โ ๆฎๅทฎ่ฟๆฅ โ FFN ่พๅบ โ โ
|
| 215 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 216 |
+
โ โ โ
|
| 217 |
+
โ ่พๅบ: H^l (30, 768) โ
|
| 218 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 219 |
+
|
| 220 |
+
ๅ
ณ้ฎๅๆฐ:
|
| 221 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 222 |
+
- Hidden Size: 768
|
| 223 |
+
- Attention Heads: 12
|
| 224 |
+
- Head Dimension: 768 / 12 = 64
|
| 225 |
+
- Intermediate Size (FFN): 3072
|
| 226 |
+
- Dropout: 0.1
|
| 227 |
+
""")
|
| 228 |
+
|
| 229 |
+
|
| 230 |
+
# ============================================================================
|
| 231 |
+
# Part 4: Multi-Head Self-Attention ่ฏฆ็ป่ฎก็ฎ
|
| 232 |
+
# ============================================================================
|
| 233 |
+
print("\n" + "=" * 80)
|
| 234 |
+
print("๐ Part 4: Multi-Head Self-Attention ่ฏฆ็ป่ฎก็ฎ่ฟ็จ")
|
| 235 |
+
print("=" * 80)
|
| 236 |
+
|
| 237 |
+
print("""
|
| 238 |
+
ไปฅ Layer 1 ไธบไพ๏ผ่ฏฆ็ปๅฑ็คบ Attention ่ฎก็ฎ:
|
| 239 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 240 |
+
|
| 241 |
+
่พๅ
ฅ: Hโฐ (30, 768) # ๅๅง embeddings
|
| 242 |
+
|
| 243 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 244 |
+
Step 1: ่ฎก็ฎ Q, K, V
|
| 245 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 246 |
+
|
| 247 |
+
Q = Hโฐ ร W^Q
|
| 248 |
+
= (30, 768) ร (768, 768)
|
| 249 |
+
= (30, 768)
|
| 250 |
+
|
| 251 |
+
K = Hโฐ ร W^K
|
| 252 |
+
= (30, 768) ร (768, 768)
|
| 253 |
+
= (30, 768)
|
| 254 |
+
|
| 255 |
+
V = Hโฐ ร W^V
|
| 256 |
+
= (30, 768) ร (768, 768)
|
| 257 |
+
= (30, 768)
|
| 258 |
+
|
| 259 |
+
ๅฎ้
ๆฐๅผ็คบไพ๏ผๅชๅฑ็คบๅ3ไธชtoken็ๅ8็ปด๏ผ:
|
| 260 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 261 |
+
|
| 262 |
+
Q = [
|
| 263 |
+
[0.15, -0.23, 0.34, 0.12, -0.45, 0.67, 0.89, -0.12, ...], โ [CLS]
|
| 264 |
+
[0.22, 0.18, -0.31, 0.45, 0.23, -0.56, 0.34, 0.78, ...], โ Alpha
|
| 265 |
+
[0.34, -0.12, 0.45, -0.23, 0.67, 0.12, -0.89, 0.45, ...], โ ##Codium
|
| 266 |
+
...
|
| 267 |
+
]
|
| 268 |
+
|
| 269 |
+
K ๅ V ็ฑปไผผ็ปๆ
|
| 270 |
+
|
| 271 |
+
|
| 272 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 273 |
+
Step 2: ๅๆ 12 ไธช Head
|
| 274 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 275 |
+
|
| 276 |
+
ๅฐ 768 ็ปดๅๆ 12 ไปฝ๏ผๆฏไปฝ 64 ็ปด๏ผ
|
| 277 |
+
|
| 278 |
+
Head 0: Q[:, 0:64], K[:, 0:64], V[:, 0:64]
|
| 279 |
+
Head 1: Q[:, 64:128], K[:, 64:128], V[:, 64:128]
|
| 280 |
+
...
|
| 281 |
+
Head 11: Q[:, 704:768], K[:, 704:768], V[:, 704:768]
|
| 282 |
+
|
| 283 |
+
ไปฅ Head 0 ไธบไพ:
|
| 284 |
+
Qโ = Q[:, 0:64] # (30, 64)
|
| 285 |
+
Kโ = K[:, 0:64] # (30, 64)
|
| 286 |
+
Vโ = V[:, 0:64] # (30, 64)
|
| 287 |
+
|
| 288 |
+
|
| 289 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 290 |
+
Step 3: ่ฎก็ฎ Attention Scores (Head 0)
|
| 291 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 292 |
+
|
| 293 |
+
Scores = Qโ ร Kโ^T / โ64
|
| 294 |
+
= (30, 64) ร (64, 30) / 8
|
| 295 |
+
= (30, 30) / 8
|
| 296 |
+
|
| 297 |
+
็ปๆ็ฉ้ต Scores (30, 30):
|
| 298 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 299 |
+
|
| 300 |
+
ๆฏไธชๅ
็ด Scores[i][j] ่กจ็คบ token i ๅฏน token j ็ๆณจๆๅๅๆฐ
|
| 301 |
+
|
| 302 |
+
็คบไพ๏ผๅ5x5๏ผ:
|
| 303 |
+
โ Key tokens
|
| 304 |
+
[CLS] Alpha ##Cod ๆฏ ไธ็ง
|
| 305 |
+
[CLS] [2.3 1.5 1.8 0.9 0.7 ...] โ Query: [CLS]
|
| 306 |
+
Alpha [1.2 3.1 2.9 1.1 0.8 ...] โ Query: Alpha
|
| 307 |
+
##Cod [1.0 2.8 3.5 1.3 0.9 ...] โ Query: ##Codium
|
| 308 |
+
ๆฏ [0.8 1.2 1.4 2.1 1.5 ...] โ Query: ๆฏ
|
| 309 |
+
ไธ็ง [0.6 0.9 1.0 1.6 2.3 ...] โ Query: ไธ็ง
|
| 310 |
+
...
|
| 311 |
+
|
| 312 |
+
่งฃ้:
|
| 313 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 314 |
+
Scores[0][0] = 2.3 โ [CLS] ๅฏน่ชๅทฑ็ๆณจๆๅ
|
| 315 |
+
Scores[1][2] = 2.9 โ "Alpha" ๅฏน "##Codium" ็ๆณจๆๅ๏ผๅพ้ซ๏ผๅ ไธบๆฏๅไธไธช่ฏ๏ผ
|
| 316 |
+
Scores[19][1] = 1.8 โ "Google"(pos 19) ๅฏน "Alpha"(pos 1) ็ๆณจๆๅ
|
| 317 |
+
|
| 318 |
+
|
| 319 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 320 |
+
Step 4: Softmax ๅฝไธๅ
|
| 321 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 322 |
+
|
| 323 |
+
Attention_Weights = softmax(Scores, dim=-1)
|
| 324 |
+
|
| 325 |
+
ๅฏนๆฏไธ่กๅ softmax๏ผๅไธบ1๏ผ:
|
| 326 |
+
|
| 327 |
+
็คบไพ๏ผๅ5x5๏ผๅฝไธๅๅ๏ผ:
|
| 328 |
+
โ Key tokens
|
| 329 |
+
[CLS] Alpha ##Cod ๆฏ ไธ็ง ...
|
| 330 |
+
[CLS] [0.35 0.15 0.20 0.08 0.05 ...] โ ๆปๅ=1.0
|
| 331 |
+
Alpha [0.10 0.40 0.35 0.08 0.04 ...] โ ๆปๅ=1.0
|
| 332 |
+
##Cod [0.08 0.28 0.45 0.10 0.06 ...] โ ๆปๅ=1.0
|
| 333 |
+
ๆฏ [0.12 0.18 0.20 0.30 0.15 ...] โ ๆปๅ=1.0
|
| 334 |
+
ไธ็ง [0.10 0.14 0.16 0.22 0.32 ...] โ ๆปๅ=1.0
|
| 335 |
+
...
|
| 336 |
+
|
| 337 |
+
ๅ
ณ้ฎ่งๅฏ:
|
| 338 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 339 |
+
- "Alpha" ๅฏน "##Codium" ็ๆ้ = 0.35๏ผ้ซ๏ผ๏ผ
|
| 340 |
+
โ ่ฏดๆๆจกๅๅญฆไผไบๅฎไปฌๆฏๅไธไธช่ฏ
|
| 341 |
+
|
| 342 |
+
- "Google" (pos 19) ๅฏน Documents ไธญ็ tokens ๆ้่พไฝ
|
| 343 |
+
โ ๅ ไธบ Documents ไธญๆฒกๆ "Google"
|
| 344 |
+
โ ่ฟไธชไฟกๆฏไผ่ขซ็จไบๅคๆญๅนป่ง๏ผ
|
| 345 |
+
|
| 346 |
+
|
| 347 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 348 |
+
Step 5: ๅ ๆๆฑๅ V
|
| 349 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 350 |
+
|
| 351 |
+
Outputโ = Attention_Weights ร Vโ
|
| 352 |
+
= (30, 30) ร (30, 64)
|
| 353 |
+
= (30, 64)
|
| 354 |
+
|
| 355 |
+
ๅฏนไบๆฏไธช token i:
|
| 356 |
+
Outputโ[i] = ฮฃโฑผ Attention_Weights[i][j] ร Vโ[j]
|
| 357 |
+
|
| 358 |
+
็คบไพ๏ผtoken 0 "[CLS]" ็่พๅบ๏ผ:
|
| 359 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 360 |
+
|
| 361 |
+
Outputโ[0] = 0.35 ร Vโ[0] ([CLS] ็ value)
|
| 362 |
+
+ 0.15 ร Vโ[1] (Alpha ็ value)
|
| 363 |
+
+ 0.20 ร Vโ[2] (##Codium ็ value)
|
| 364 |
+
+ 0.08 ร Vโ[3] (ๆฏ ็ value)
|
| 365 |
+
+ ...
|
| 366 |
+
+ 0.02 ร Vโ[19] (Google ็ value) โ ๆ้ๅพๅฐ๏ผ
|
| 367 |
+
+ ...
|
| 368 |
+
|
| 369 |
+
็ปๆ: [0.23, -0.15, 0.34, ..., 0.67] (64็ปด)
|
| 370 |
+
|
| 371 |
+
[CLS] ็ๅ้็ฐๅจๅ
ๅซไบ:
|
| 372 |
+
- ไธป่ฆ: ่ชๅทฑใAlphaใ##Codium ็ไฟกๆฏ๏ผๆ้ๅคง๏ผ
|
| 373 |
+
- ๅฐ้: Googleใ2024 ็ไฟกๆฏ๏ผๆ้ๅฐ๏ผ
|
| 374 |
+
- ่ฟไธชๅทฎๅผไผ่ขซๅ็ปญๅฑๆพๅคง๏ผ็จไบๆฃๆตๅนป่ง๏ผ
|
| 375 |
+
|
| 376 |
+
|
| 377 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 378 |
+
Step 6: Concat ๆๆ 12 ไธช Heads
|
| 379 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 380 |
+
|
| 381 |
+
Multi_Head_Output = Concat(Outputโ, Outputโ, ..., Outputโโ)
|
| 382 |
+
= Concat((30,64), (30,64), ..., (30,64))
|
| 383 |
+
= (30, 768)
|
| 384 |
+
|
| 385 |
+
ๆฏไธช Head ๆๆไธๅ็ๆจกๅผ:
|
| 386 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 387 |
+
Head 0: ่ฏๅ
ๅ
ณ็ณป ("Alpha" โ "##Codium")
|
| 388 |
+
Head 1: ่ฏญๆณๅ
ณ็ณป ("ๆฏ" โ "ๆนๆณ")
|
| 389 |
+
Head 2: ้ฟ่ท็ฆปไพ่ต ("AlphaCodium" โ "ๆง่ฝ")
|
| 390 |
+
Head 3: ๆฃๆตๆทปๅ ไฟกๆฏ ("Google" ๅจ Documents ไธญ็ๅฏนๅบ)
|
| 391 |
+
...
|
| 392 |
+
|
| 393 |
+
|
| 394 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 395 |
+
Step 7: ็บฟๆงๅๆข
|
| 396 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 397 |
+
|
| 398 |
+
Attention_Output = Multi_Head_Output ร W^O + b^O
|
| 399 |
+
= (30, 768) ร (768, 768) + (768,)
|
| 400 |
+
= (30, 768)
|
| 401 |
+
""")
|
| 402 |
+
|
| 403 |
+
|
| 404 |
+
# ============================================================================
|
| 405 |
+
# Part 5: 12ๅฑ้ๅฑๅค็
|
| 406 |
+
# ============================================================================
|
| 407 |
+
print("\n" + "=" * 80)
|
| 408 |
+
print("๐ข Part 5: BERT 12ๅฑ้ๅฑๅค็่ฟ็จ")
|
| 409 |
+
print("=" * 80)
|
| 410 |
+
|
| 411 |
+
print("""
|
| 412 |
+
ๅฎๆด็ 12 ๅฑๅค็ๆต็จ:
|
| 413 |
+
โโโโโโโโโโโโโโโโโโโโโโโ๏ฟฝ๏ฟฝ๏ฟฝโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 414 |
+
|
| 415 |
+
่พๅ
ฅ: Hโฐ (30, 768) # ๅๅง embeddings
|
| 416 |
+
|
| 417 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 418 |
+
โ Layer 1 โ
|
| 419 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 420 |
+
โ โ
|
| 421 |
+
โ ่พๅ
ฅ: Hโฐ โ
|
| 422 |
+
โ โ โ
|
| 423 |
+
โ Multi-Head Self-Attention โ
|
| 424 |
+
โ - "Alpha" attendๅฐ "##Codium" (0.35) โ
|
| 425 |
+
โ - "Google" attendๅฐ Documents tokens (0.1-0.2) โ
|
| 426 |
+
โ โ โ
|
| 427 |
+
โ Add & Norm: H_attยน = LayerNorm(Hโฐ + Attention) โ
|
| 428 |
+
โ โ โ
|
| 429 |
+
โ Feed Forward: FFN(H_attยน) โ
|
| 430 |
+
โ โ โ
|
| 431 |
+
โ Add & Norm: Hยน = LayerNorm(H_attยน + FFN) โ
|
| 432 |
+
โ โ
|
| 433 |
+
โ ่พๅบ: Hยน (30, 768) โ
|
| 434 |
+
โ โ
|
| 435 |
+
โ ๅญฆๅฐ็ๆจกๅผ: โ
|
| 436 |
+
โ โ ๅบๆฌ่ฏ่ฏญๅ
ณ็ณป โ
|
| 437 |
+
โ โ "AlphaCodium" ๅจไธคๆฎตไธญ้ฝๅบ็ฐ โ
|
| 438 |
+
โ โ "Google" ๅชๅจ Generation ไธญๅบ็ฐ โ ๏ธ โ
|
| 439 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 440 |
+
|
| 441 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 442 |
+
โ Layer 2 โ
|
| 443 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 444 |
+
โ โ
|
| 445 |
+
โ ่พๅ
ฅ: Hยน โ
|
| 446 |
+
โ โ โ
|
| 447 |
+
โ Multi-Head Self-Attention โ
|
| 448 |
+
โ - ๅผๅงๅปบ็ซ่ฏญๆณๅ
ณ็ณป โ
|
| 449 |
+
โ - "ๆฏ" attendๅฐ "ๆนๆณ" ๅ "ๅทฅๅ
ท" โ
|
| 450 |
+
โ โ โ
|
| 451 |
+
โ FFN + Residual โ
|
| 452 |
+
โ โ โ
|
| 453 |
+
โ ่พๅบ: Hยฒ (30, 768) โ
|
| 454 |
+
โ โ
|
| 455 |
+
โ ๅญฆๅฐ็ๆจกๅผ: โ
|
| 456 |
+
โ โ "ๆนๆณ" vs "ๅทฅๅ
ท" ็่ฏญไนๅทฎๅผ โ
|
| 457 |
+
โ โ ๆถ้ดไฟกๆฏ: "2024 ๅนด" โ
|
| 458 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 459 |
+
|
| 460 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 461 |
+
โ Layer 3 โ
|
| 462 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 463 |
+
โ โ
|
| 464 |
+
โ ่พๅ
ฅ: Hยฒ โ
|
| 465 |
+
โ โ โ
|
| 466 |
+
โ Multi-Head Self-Attention โ
|
| 467 |
+
โ - ้ฟ่ท็ฆปไพ่ตๅผๅงๅปบ็ซ โ
|
| 468 |
+
โ - [CLS] attendๅฐๅ
ณ้ฎ่ฏ: "Google", "2024" โ
|
| 469 |
+
โ โ โ
|
| 470 |
+
โ FFN + Residual โ
|
| 471 |
+
โ โ โ
|
| 472 |
+
โ ่พๅบ: Hยณ (30, 768) โ
|
| 473 |
+
โ โ
|
| 474 |
+
โ ๅญฆๅฐ็ๆจกๅผ: โ
|
| 475 |
+
โ โ Documents: "่ฟญไปฃๆน่ฟ" vs Generation: ๆ ๆญคไฟกๆฏ โ
|
| 476 |
+
โ โ Generation: "Google" vs Documents: ๆ ๆญคไฟกๆฏ โ ๏ธ โ
|
| 477 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๏ฟฝ๏ฟฝ๏ฟฝโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 478 |
+
|
| 479 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 480 |
+
โ Layer 4-6: ไธญ้ดๅฑ โ
|
| 481 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 482 |
+
โ โ
|
| 483 |
+
โ ่พๅ
ฅ: Hยณ โ
|
| 484 |
+
โ โ โ
|
| 485 |
+
โ ๅคๅฑ Self-Attention + FFN โ
|
| 486 |
+
โ โ โ
|
| 487 |
+
โ ่พๅบ: Hโถ (30, 768) โ
|
| 488 |
+
โ โ
|
| 489 |
+
โ ๅญฆๅฐ็ๆจกๅผ: โ
|
| 490 |
+
โ โ ๅคๆ็่ฏญไนๅ
ณ็ณป โ
|
| 491 |
+
โ โ Documents ๅ Generation ็ๅฏนๆฏ โ
|
| 492 |
+
โ โ ่ฏๅซไธไธ่ด็ๅฐๆน: โ
|
| 493 |
+
โ - "ๆนๆณ" vs "ๅทฅๅ
ท" โ
|
| 494 |
+
โ - ็ผบๅคฑ "Google" ๅ "2024" ็ๆฅๆบ โ
|
| 495 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 496 |
+
|
| 497 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 498 |
+
โ Layer 7-9: ๆทฑๅฑๆฝ่ฑก โ
|
| 499 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 500 |
+
โ โ
|
| 501 |
+
โ ่พๅ
ฅ: Hโถ โ
|
| 502 |
+
โ โ โ
|
| 503 |
+
โ ๅคๅฑ Self-Attention + FFN โ
|
| 504 |
+
โ โ โ
|
| 505 |
+
โ ่พๅบ: Hโน (30, 768) โ
|
| 506 |
+
โ โ
|
| 507 |
+
โ ๅญฆๅฐ็ๆจกๅผ: โ
|
| 508 |
+
โ โ ้ซๅฑ่ฏญไน็่งฃ โ
|
| 509 |
+
โ โ [CLS] ๅ้ๅผๅง่ๅๅคๆญไฟกๆฏ: โ
|
| 510 |
+
โ - Documents ่ฏด: "ไปฃ็ ็ๆๆนๆณ๏ผ่ฟญไปฃๆน่ฟ" โ
|
| 511 |
+
โ - Generation ่ฏด: "Google ๅๅธ็ๅทฅๅ
ท" โ
|
| 512 |
+
โ โ ๅ็ฐไธๅน้
๏ผโ ๏ธ โ
|
| 513 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 514 |
+
|
| 515 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 516 |
+
โ Layer 10-12: ๆ็ปๅฑ๏ผๅณ็ญๅฑ๏ผ โ
|
| 517 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 518 |
+
โ โ
|
| 519 |
+
โ ่พๅ
ฅ: Hโน โ
|
| 520 |
+
โ โ โ
|
| 521 |
+
โ ๅคๅฑ Self-Attention + FFN โ
|
| 522 |
+
โ โ โ
|
| 523 |
+
โ ่พๅบ: Hยนยฒ (30, 768) โ
|
| 524 |
+
โ โ
|
| 525 |
+
โ [CLS] ๅ้็ไฟกๆฏ๏ผๆๅ
ณ้ฎ๏ผ: โ
|
| 526 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 527 |
+
โ โ
|
| 528 |
+
โ Hยนยฒ[0] = [0.234, -0.567, 0.890, ..., 0.123] (768็ปด) โ
|
| 529 |
+
โ โ [CLS] token ็ๆ็ปๅ้ โ
|
| 530 |
+
โ โ
|
| 531 |
+
โ ่ฟไธชๅ้็ผ็ ไบ: โ
|
| 532 |
+
โ โ Documents ็ๅฎๆดไฟกๆฏ โ
|
| 533 |
+
โ โ Generation ็ๅฎๆดไฟกๆฏ โ
|
| 534 |
+
โ โ ไธค่
็ๅ
ณ็ณป: โ
|
| 535 |
+
โ - ๆๅชไบไฟกๆฏไธ่ด โ
|
| 536 |
+
โ - ๆๅชไบไฟกๆฏ็็พ โ
|
| 537 |
+
โ - Generation ๆทปๅ ไบๅชไบ Documents ไธญๆฒกๆ็ไฟกๆฏ โ
|
| 538 |
+
โ โ
|
| 539 |
+
โ ๅ
ทไฝ่ฏๅซๅฐ็้ฎ้ข: โ
|
| 540 |
+
โ โ "Google" ๅจ Documents ไธญๆพไธๅฐๅฏนๅบ โ
|
| 541 |
+
โ โ "2024" ๅจ Documents ไธญๆพไธๅฐๅฏนๅบ โ
|
| 542 |
+
โ โ ๏ธ "ๅทฅๅ
ท" vs "ๆนๆณ" ่ฏญไนๅทฎๅผ โ
|
| 543 |
+
โ โ
|
| 544 |
+
โ โ ๅๅค่พๅบๅฐๅ็ฑปๅคด๏ผๅคๆญไธบ "Hallucinated" โ
|
| 545 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 546 |
+
|
| 547 |
+
|
| 548 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 549 |
+
|
| 550 |
+
ๆ็ป่พๅบ: Hยนยฒ (30, 768)
|
| 551 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 552 |
+
|
| 553 |
+
ๅชไฝฟ็จ Hยนยฒ[0]๏ผ[CLS] ็ๅ้๏ผ้ๅ
ฅๅ็ฑปๅคด:
|
| 554 |
+
|
| 555 |
+
[CLS] Vector = Hยนยฒ[0] = [0.234, -0.567, 0.890, ..., 0.123]
|
| 556 |
+
โ
|
| 557 |
+
ๅ็ฑปๅคด (768 โ 2)
|
| 558 |
+
โ
|
| 559 |
+
Logits: [0.8, 4.2]
|
| 560 |
+
โ โ
|
| 561 |
+
Factual Hallucinated
|
| 562 |
+
โ
|
| 563 |
+
Softmax
|
| 564 |
+
โ
|
| 565 |
+
Probs: [0.03, 0.97]
|
| 566 |
+
โ โ
|
| 567 |
+
3%ไบๅฎ 97%ๅนป่ง
|
| 568 |
+
|
| 569 |
+
ๅคๆญ: Hallucinated โ (็ฝฎไฟกๅบฆ 97%)
|
| 570 |
+
""")
|
| 571 |
+
|
| 572 |
+
|
| 573 |
+
# ============================================================================
|
| 574 |
+
# Part 6: ๅ
ณ้ฎ Attention ๆจกๅผๅฏ่งๅ
|
| 575 |
+
# ============================================================================
|
| 576 |
+
print("\n" + "=" * 80)
|
| 577 |
+
print("๐๏ธ Part 6: ๅ
ณ้ฎ Attention ๆจกๅผๅฏ่งๅ")
|
| 578 |
+
print("=" * 80)
|
| 579 |
+
|
| 580 |
+
print("""
|
| 581 |
+
Layer 12 ็ Attention ๆ้็ฉ้ต๏ผ็ฎๅ๏ผๅชๆพ็คบๅ
ณ้ฎ tokens๏ผ:
|
| 582 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 583 |
+
|
| 584 |
+
Query โ Key Tokens โ
|
| 585 |
+
Tokens [CLS] Alphaยน ๆนๆณ [SEP] Alphaยฒ Google 2024 ๅทฅๅ
ท [SEP]
|
| 586 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 587 |
+
[CLS] [0.15 0.08 0.12 0.05 0.07 0.18 0.16 0.10 0.05]
|
| 588 |
+
โไฝ โไฝ โไธญ โไฝ โไฝ โ้ซโ ๏ธ โ้ซโ ๏ธ โไธญ โไฝ
|
| 589 |
+
|
| 590 |
+
Alphaยน [0.05 0.30 0.08 0.03 0.25 0.04 0.03 0.05 0.02]
|
| 591 |
+
โไฝ โ้ซโ โไฝ โไฝ โ้ซโ โไฝ โไฝ โไฝ โไฝ
|
| 592 |
+
|
| 593 |
+
ๆนๆณ [0.08 0.10 0.25 0.05 0.08 0.06 0.05 0.20 0.03]
|
| 594 |
+
โไฝ โไฝ โ้ซโ โไฝ โไฝ โไฝ โไฝ โไธญโ ๏ธ โไฝ
|
| 595 |
+
|
| 596 |
+
Google [0.10 0.05 0.03 0.02 0.06 0.40 0.15 0.08 0.02]
|
| 597 |
+
โไธญโ ๏ธ โไฝ โไฝ โไฝ โไฝ โ้ซโ โไธญ โไฝ โไฝ
|
| 598 |
+
|
| 599 |
+
2024 [0.12 0.04 0.02 0.01 0.05 0.18 0.35 0.07 0.01]
|
| 600 |
+
โไธญโ ๏ธ โไฝ โไฝ โไฝ โไฝ โไธญ โ้ซโ โไฝ โไฝ
|
| 601 |
+
|
| 602 |
+
ๅทฅๅ
ท [0.09 0.08 0.15 0.03 0.09 0.07 0.06 0.30 0.02]
|
| 603 |
+
โไฝ โไฝ โไธญโ ๏ธ โไฝ โไฝ โไฝ โไฝ โ้ซโ โไฝ
|
| 604 |
+
|
| 605 |
+
ๅ
ณ้ฎ่งๅฏ:
|
| 606 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 607 |
+
|
| 608 |
+
โ ๆญฃๅธธๆจกๅผ:
|
| 609 |
+
- "Alphaยน" attendๅฐ "Alphaยฒ" (0.25) โ ๅไธๅฎไฝ
|
| 610 |
+
- "ๆนๆณ" attendๅฐ่ชๅทฑ (0.25) โ ่ชๆณจๆๅ
|
| 611 |
+
|
| 612 |
+
โ ๏ธ ๅนป่งๆ็คบ:
|
| 613 |
+
- "Google" ไธป่ฆ attendๅฐ่ชๅทฑ (0.40)
|
| 614 |
+
โ ๅจ Documents ไธญๆพไธๅฐๅผบๅ
ณ่๏ผ
|
| 615 |
+
|
| 616 |
+
- "2024" ไธป่ฆ attendๅฐ่ชๅทฑ (0.35)
|
| 617 |
+
โ ๅจ Documents ไธญๆพไธๅฐๅผบๅ
ณ่๏ผ
|
| 618 |
+
|
| 619 |
+
- [CLS] attendๅฐ "Google" (0.18) ๅ "2024" (0.16)
|
| 620 |
+
โ [CLS] ๆณจๆๅฐ่ฟไบๅผๅธธ่ฏ๏ผ
|
| 621 |
+
|
| 622 |
+
- "ๅทฅๅ
ท" ๅฏน "ๆนๆณ" ็ attention (0.15)
|
| 623 |
+
โ ่ฏญไน็ธไผผไฝไธๅฎๅ
จไธ่ด
|
| 624 |
+
|
| 625 |
+
่ฟไบๆจกๅผ่ขซๅ็ฑปๅคดๅญฆไน ๅนถ็จไบๅคๆญๅนป่ง๏ผ
|
| 626 |
+
""")
|
| 627 |
+
|
| 628 |
+
|
| 629 |
+
# ============================================================================
|
| 630 |
+
# Part 7: ๅๆฐ็ป่ฎก
|
| 631 |
+
# ============================================================================
|
| 632 |
+
print("\n" + "=" * 80)
|
| 633 |
+
print("๐ Part 7: BERT Encoder ๅๆฐ็ป่ฎก")
|
| 634 |
+
print("=" * 80)
|
| 635 |
+
|
| 636 |
+
print("""
|
| 637 |
+
BERT-base ๅๆฐ่ฏฆ็ป็ป่ฎก:
|
| 638 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 639 |
+
|
| 640 |
+
1. Embedding ๅฑ:
|
| 641 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 642 |
+
- Token Embedding: 30,522 ร 768 = 23,440,896
|
| 643 |
+
- Segment Embedding: 2 ร 768 = 1,536
|
| 644 |
+
- Position Embedding: 512 ร 768 = 393,216
|
| 645 |
+
ๅฐ่ฎก: 23,835,648 ๅๆฐ
|
| 646 |
+
|
| 647 |
+
|
| 648 |
+
2. ๆฏไธช Encoder Layer:
|
| 649 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 650 |
+
Multi-Head Attention:
|
| 651 |
+
- W^Q: 768 ร 768 = 589,824
|
| 652 |
+
- W^K: 768 ร 768 = 589,824
|
| 653 |
+
- W^V: 768 ร 768 = 589,824
|
| 654 |
+
- W^O: 768 ร 768 = 589,824
|
| 655 |
+
- Biases: 768 ร 4 = 3,072
|
| 656 |
+
ๅฐ่ฎก: 2,362,368 ๅๆฐ
|
| 657 |
+
|
| 658 |
+
Feed Forward Network:
|
| 659 |
+
- Wโ: 768 ร 3,072 = 2,359,296
|
| 660 |
+
- bโ: 3,072
|
| 661 |
+
- Wโ: 3,072 ร 768 = 2,359,296
|
| 662 |
+
- bโ: 768
|
| 663 |
+
ๅฐ่ฎก: 4,722,432 ๅๆฐ
|
| 664 |
+
|
| 665 |
+
Layer Normalization (ร2):
|
| 666 |
+
- ฮณ, ฮฒ: 768 ร 2 ร 2 = 3,072
|
| 667 |
+
|
| 668 |
+
ๆฏๅฑๆป่ฎก: 2,362,368 + 4,722,432 + 3,072 = 7,087,872 ๅๆฐ
|
| 669 |
+
|
| 670 |
+
|
| 671 |
+
3. 12 ๅฑ Encoder:
|
| 672 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 673 |
+
7,087,872 ร 12 = 85,054,464 ๅๆฐ
|
| 674 |
+
|
| 675 |
+
|
| 676 |
+
4. ๅ็ฑปๅคด๏ผHHEM ็นๆ๏ผ:
|
| 677 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 678 |
+
- W: 768 ร 2 = 1,536
|
| 679 |
+
- b: 2
|
| 680 |
+
ๅฐ่ฎก: 1,538 ๅๆฐ
|
| 681 |
+
|
| 682 |
+
|
| 683 |
+
ๆปๅๆฐ้:
|
| 684 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 685 |
+
23,835,648 (Embeddings)
|
| 686 |
+
+ 85,054,464 (12 Layers)
|
| 687 |
+
+ 1,538 (Classification Head)
|
| 688 |
+
= 108,891,650 ๅๆฐ
|
| 689 |
+
|
| 690 |
+
็บฆ 109M (็พไธ) ๅๆฐ
|
| 691 |
+
ๆจกๅๅคงๅฐ: 109M ร 4 bytes = 436 MB
|
| 692 |
+
|
| 693 |
+
|
| 694 |
+
ๅ
ๅญๅ ็จ๏ผๆจ็ๆถ๏ผ:
|
| 695 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 696 |
+
- ๆจกๅๅๆฐ: 436 MB
|
| 697 |
+
- ๆฟๆดปๅผ (batch_size=1, seq_len=30):
|
| 698 |
+
ๆฏๅฑ: 30 ร 768 ร 4 bytes ร 2 (residual) = 184 KB
|
| 699 |
+
12 ๅฑ: 184 KB ร 12 = 2.2 MB
|
| 700 |
+
- ๆป่ฎก: ~438 MB (FP32)
|
| 701 |
+
~220 MB (FP16๏ผไฝฟ็จๅ็ฒพๅบฆ)
|
| 702 |
+
""")
|
| 703 |
+
|
| 704 |
+
|
| 705 |
+
# ============================================================================
|
| 706 |
+
# Part 8: ๆป็ป
|
| 707 |
+
# ============================================================================
|
| 708 |
+
print("\n" + "=" * 80)
|
| 709 |
+
print("๐ Part 8: ๆ ธๅฟ่ฆ็นๆป็ป")
|
| 710 |
+
print("=" * 80)
|
| 711 |
+
|
| 712 |
+
print("""
|
| 713 |
+
BERT Encoder 12ๅฑ่ๅ็ผ็ ๆ ธๅฟ่ฆ็น:
|
| 714 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 715 |
+
|
| 716 |
+
1. ่พๅ
ฅๅๅค
|
| 717 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 718 |
+
[CLS] Documents [SEP] Generation [SEP]
|
| 719 |
+
โ Tokenization (30 tokens)
|
| 720 |
+
โ Token + Segment + Position Embeddings
|
| 721 |
+
โ Hโฐ (30, 768)
|
| 722 |
+
|
| 723 |
+
2. ๆฏๅฑ็ปๆ
|
| 724 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 725 |
+
H^(l-1)
|
| 726 |
+
โ
|
| 727 |
+
Multi-Head Self-Attention (12 heads)
|
| 728 |
+
โ
|
| 729 |
+
Add & Norm
|
| 730 |
+
โ
|
| 731 |
+
Feed Forward Network
|
| 732 |
+
โ
|
| 733 |
+
Add & Norm
|
| 734 |
+
โ
|
| 735 |
+
H^l
|
| 736 |
+
|
| 737 |
+
3. Multi-Head Attention ๅ
ณ้ฎ
|
| 738 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 739 |
+
Q, K, V = H ร W^Q, H ร W^K, H ร W^V
|
| 740 |
+
โ
|
| 741 |
+
ๅๆ 12 ไธช Head (ๆฏไธช 64 ็ปด)
|
| 742 |
+
โ
|
| 743 |
+
Attention = softmax(QรK^T / โ64) ร V
|
| 744 |
+
โ
|
| 745 |
+
Concat ๆๆ Heads โ (768 ็ปด)
|
| 746 |
+
|
| 747 |
+
4. 12ๅฑ้ๅฑๅญฆไน
|
| 748 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 749 |
+
Layer 1-3: ๅบๆฌ่ฏญๆณใ่ฏ่ฏญๅ
ณ็ณป
|
| 750 |
+
Layer 4-6: ๅคๆ่ฏญไนใ้ฟ่ท็ฆปไพ่ต
|
| 751 |
+
Layer 7-9: ้ซๅฑๆฝ่ฑกใไธไธ่ดๆฃๆต
|
| 752 |
+
Layer 10-12: ๆ็ปๅคๆญใไฟกๆฏ่ๅๅฐ [CLS]
|
| 753 |
+
|
| 754 |
+
5. ๅนป่งๆฃๆตๆบๅถ
|
| 755 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 756 |
+
้่ฟ Attention ๆ้ๅ็ฐ:
|
| 757 |
+
โ "Google" ๅจ Documents ไธญๆ ๅผบๅ
ณ่
|
| 758 |
+
โ "2024" ๅจ Documents ไธญๆ ๅผบๅ
ณ่
|
| 759 |
+
โ [CLS] ่ๅ่ฟไบไฟกๆฏ
|
| 760 |
+
โ
|
| 761 |
+
Hยนยฒ[0] (768็ปด) โ ๅ็ฑปๅคด (768โ2)
|
| 762 |
+
โ
|
| 763 |
+
[Factual: 0.03, Hallucinated: 0.97]
|
| 764 |
+
โ
|
| 765 |
+
ๅคๆญ: Hallucinated โ
|
| 766 |
+
|
| 767 |
+
6. ๅ
ณ้ฎๅๆฐ
|
| 768 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 769 |
+
- Hidden Size: 768
|
| 770 |
+
- Layers: 12
|
| 771 |
+
- Attention Heads: 12
|
| 772 |
+
- Head Dimension: 64
|
| 773 |
+
- FFN Size: 3072
|
| 774 |
+
- Total Parameters: 109M
|
| 775 |
+
- Model Size: 436 MB (FP32)
|
| 776 |
+
|
| 777 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 778 |
+
|
| 779 |
+
่ๅ็ผ็ ็ไผๅฟ:
|
| 780 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 781 |
+
โ
Documents ๅ Generation ๅฏไปฅไบ็ธ attend
|
| 782 |
+
โ
ๆจกๅ่ฝๆๆไธค่
ไน้ด็ไธ่ดๆง/็็พ
|
| 783 |
+
โ
[CLS] ๅ้่ๅไบๅ
จๅฑๅคๆญไฟกๆฏ
|
| 784 |
+
โ
12 ๅฑ้ๅฑๆทฑๅ็่งฃ๏ผๆ็ปๅ็กฎๅคๆญๅนป่ง
|
| 785 |
+
|
| 786 |
+
่ฟๅฐฑๆฏไธบไปไน BERT Cross-Encoder ๅจๅนป่งๆฃๆตไธ่กจ็ฐไผ็ง๏ผ
|
| 787 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 788 |
+
""")
|
| 789 |
+
|
| 790 |
+
print("\n" + "=" * 80)
|
| 791 |
+
print("โ
BERT Encoder 12ๅฑ่ฏฆ็ป่งฃๆๅฎๆฏ๏ผ")
|
| 792 |
+
print("=" * 80)
|
| 793 |
+
print()
|
nli_hallucination_detection_explained.py
ADDED
|
@@ -0,0 +1,722 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
NLI ๅนป่งๆฃๆตๅ็่ฏฆ่งฃ
|
| 3 |
+
cross-encoder/nli-deberta-v3-xsmall ๆจกๅๅฆไฝๆฃๆต RAG ไธญ็ๅนป่ง
|
| 4 |
+
"""
|
| 5 |
+
|
| 6 |
+
print("=" * 80)
|
| 7 |
+
print("NLI ๅนป่งๆฃๆตๅ็ - ไป้ถๅผๅง็่งฃ")
|
| 8 |
+
print("=" * 80)
|
| 9 |
+
|
| 10 |
+
# ============================================================================
|
| 11 |
+
# Part 1: ไปไนๆฏ NLI (Natural Language Inference)?
|
| 12 |
+
# ============================================================================
|
| 13 |
+
print("\n" + "=" * 80)
|
| 14 |
+
print("๐ Part 1: ไปไนๆฏ NLI (่ช็ถ่ฏญ่จๆจ็)?")
|
| 15 |
+
print("=" * 80)
|
| 16 |
+
|
| 17 |
+
print("""
|
| 18 |
+
NLI ็ๆ ธๅฟไปปๅก๏ผ
|
| 19 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 20 |
+
|
| 21 |
+
็ปๅฎไธคๆฎตๆๆฌ๏ผ
|
| 22 |
+
- Premise (ๅๆ): ๅทฒ็ฅ็ไบๅฎ/ๆๆกฃ
|
| 23 |
+
- Hypothesis (ๅ่ฎพ): ๅพ
้ช่ฏ็้่ฟฐ
|
| 24 |
+
|
| 25 |
+
ๅคๆญๅฎไปฌไน้ด็ๅ
ณ็ณป๏ผ
|
| 26 |
+
1๏ธโฃ Entailment (่ดๅซ): Hypothesis ๅฏไปฅไป Premise ๆจๅฏผๅบๆฅ
|
| 27 |
+
2๏ธโฃ Contradiction (็็พ): Hypothesis ไธ Premise ็็พ
|
| 28 |
+
3๏ธโฃ Neutral (ไธญ็ซ): ๆ ๆณ็กฎๅฎ๏ผๆๆกฃไธญๆฒกๆ่ถณๅคไฟกๆฏ
|
| 29 |
+
|
| 30 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 31 |
+
|
| 32 |
+
ไพๅญ 1: Entailment (่ดๅซ) โ
|
| 33 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 34 |
+
Premise: "ๅฐๆไปๅนด 18 ๅฒ๏ผๆญฃๅจๆธ
ๅๅคงๅญฆ่ฏป่ฎก็ฎๆบไธไธใ"
|
| 35 |
+
Hypothesis: "ๅฐๆๆฏไธๅๅคงๅญฆ็ใ"
|
| 36 |
+
|
| 37 |
+
ๅ
ณ็ณป: Entailment โ
|
| 38 |
+
่งฃ้: ไป"ๆญฃๅจๆธ
ๅๅคงๅญฆ่ฏป่ฎก็ฎๆบไธไธ"ๅฏไปฅๆจๅฏผๅบ"ๆฏๅคงๅญฆ็"
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
ไพๅญ 2: Contradiction (็็พ) โ
|
| 42 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 43 |
+
Premise: "ๅฐๆไปๅนด 18 ๅฒ๏ผๆญฃๅจๆธ
ๅๅคงๅญฆ่ฏป่ฎก็ฎๆบไธไธใ"
|
| 44 |
+
Hypothesis: "ๅฐๆๅทฒ็ป 30 ๅฒไบใ"
|
| 45 |
+
|
| 46 |
+
ๅ
ณ็ณป: Contradiction โ
|
| 47 |
+
่งฃ้: "18ๅฒ" ไธ "30ๅฒ" ็็พ
|
| 48 |
+
|
| 49 |
+
|
| 50 |
+
ไพๅญ 3: Neutral (ไธญ็ซ) โช
|
| 51 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 52 |
+
Premise: "ๅฐๆไปๅนด 18 ๅฒ๏ผๆญฃๅจๆธ
ๅๅคงๅญฆ่ฏป่ฎก็ฎๆบไธไธใ"
|
| 53 |
+
Hypothesis: "ๅฐๆๅๆฌขๆ็ฏฎ็ใ"
|
| 54 |
+
|
| 55 |
+
ๅ
ณ็ณป: Neutral โช
|
| 56 |
+
่งฃ้: ๆๆกฃไธญๆฒกๆๆๅฐๅฐๆๆฏๅฆๅๆฌขๆ็ฏฎ็๏ผๆ ๆณๅคๆญ
|
| 57 |
+
""")
|
| 58 |
+
|
| 59 |
+
|
| 60 |
+
# ============================================================================
|
| 61 |
+
# Part 2: NLI ๅฆไฝ็จไบๅนป่งๆฃๆต?
|
| 62 |
+
# ============================================================================
|
| 63 |
+
print("\n" + "=" * 80)
|
| 64 |
+
print("๐ Part 2: NLI ๅฆไฝๆฃๆตๅนป่ง?")
|
| 65 |
+
print("=" * 80)
|
| 66 |
+
|
| 67 |
+
print("""
|
| 68 |
+
ๆ ธๅฟๆๆณ๏ผ
|
| 69 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 70 |
+
|
| 71 |
+
ๅฐ RAG ็ๅนป่งๆฃๆต่ฝฌๅไธบ NLI ไปปๅก๏ผ
|
| 72 |
+
|
| 73 |
+
Premise (ๅๆ) = ๆฃ็ดขๅฐ็ๆๆกฃ (Documents)
|
| 74 |
+
Hypothesis (ๅ่ฎพ) = LLM ็ๆ็็ญๆก (Generation)
|
| 75 |
+
|
| 76 |
+
ๅคๆญ้ป่พ๏ผ
|
| 77 |
+
- Entailment โ ็ญๆกๅบไบๆๆกฃ โ โ
ๆ ๅนป่ง
|
| 78 |
+
- Contradiction โ ็ญๆกไธๆๆกฃ็็พ โ โ ๆๅนป่ง
|
| 79 |
+
- Neutral โ ็ญๆกๆๆกฃไธญๆฒกๆ โ โ ๏ธ ๅฏ่ฝๆฏๅนป่ง
|
| 80 |
+
|
| 81 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 82 |
+
|
| 83 |
+
RAG ๅบๆฏ็คบไพ๏ผ
|
| 84 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 85 |
+
|
| 86 |
+
็จๆท้ฎ้ข: "AlphaCodium ่ฎบๆ่ฎฒ็ๆฏไปไน๏ผ"
|
| 87 |
+
|
| 88 |
+
ๆฃ็ดขๅฐ็ๆๆกฃ (Premise):
|
| 89 |
+
"AlphaCodium ๆฏไธ็งๅบไบไปฃ็ ็ๆ็ๆฐๆนๆณ๏ผ้่ฟ่ฟญไปฃๆน่ฟ
|
| 90 |
+
ๆๅ LLM ็ไปฃ็ ่ฝๅใ่ฏฅๆนๆณๅจ CodeContests ๆฐๆฎ้ไธ
|
| 91 |
+
่พพๅฐไบ state-of-the-art ็ๆง่ฝใ"
|
| 92 |
+
|
| 93 |
+
LLM ็ๆ็็ญๆก (Hypothesis):
|
| 94 |
+
"AlphaCodium ๆฏไธ็งๆน่ฟ LLM ไปฃ็ ็ๆ่ฝๅ็่ฟญไปฃๆนๆณใ"
|
| 95 |
+
|
| 96 |
+
NLI ๅคๆญ:
|
| 97 |
+
Premise + Hypothesis โ NLI ๆจกๅ โ Entailment โ
|
| 98 |
+
โ ็ญๆกๅบไบๆๆกฃ๏ผๆ ๅนป่ง
|
| 99 |
+
|
| 100 |
+
|
| 101 |
+
ๅไพ - ๆๅนป่ง็ๆ
ๅต๏ผ
|
| 102 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 103 |
+
|
| 104 |
+
ๆฃ็ดขๅฐ็ๆๆกฃ (Premise):
|
| 105 |
+
"AlphaCodium ๆฏไธ็งๅบไบไปฃ็ ็ๆ็ๆฐๆนๆณ..."
|
| 106 |
+
|
| 107 |
+
LLM ็ๆ็็ญๆก (Hypothesis):
|
| 108 |
+
"AlphaCodium ๆฏ Google ๅจ 2024 ๅนดๅๅธ็..."
|
| 109 |
+
โ ๆๆกฃไธญๆฒกๆๆๅฐ Google ๅ 2024
|
| 110 |
+
|
| 111 |
+
NLI ๅคๆญ:
|
| 112 |
+
Premise + Hypothesis โ NLI ๆจกๅ โ Neutral/Contradiction โ ๏ธ
|
| 113 |
+
โ ็ญๆกๅ
ๅซๆๆกฃไธญๆฒกๆ็ไฟกๆฏ๏ผๅฏ่ฝๆฏๅนป่ง
|
| 114 |
+
""")
|
| 115 |
+
|
| 116 |
+
|
| 117 |
+
# ============================================================================
|
| 118 |
+
# Part 3: cross-encoder/nli-deberta-v3-xsmall ๆจกๅๆถๆ
|
| 119 |
+
# ============================================================================
|
| 120 |
+
print("\n" + "=" * 80)
|
| 121 |
+
print("๐ค Part 3: cross-encoder/nli-deberta-v3-xsmall ๆจก๏ฟฝ๏ฟฝ๏ฟฝๆถๆ")
|
| 122 |
+
print("=" * 80)
|
| 123 |
+
|
| 124 |
+
print("""
|
| 125 |
+
ๆจกๅไฟกๆฏ๏ผ
|
| 126 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 127 |
+
|
| 128 |
+
ๅ็งฐ: cross-encoder/nli-deberta-v3-xsmall
|
| 129 |
+
ๅบ็กๆจกๅ: DeBERTa-v3 (Decoding-enhanced BERT with disentangled attention)
|
| 130 |
+
ๅคงๅฐ: 40MB (่ถ
่ฝป้็บง)
|
| 131 |
+
ๅๆฐ้: 22M
|
| 132 |
+
่ฎญ็ปๆฐๆฎ: SNLI + MultiNLI (็พไธ็บงๅฅๅญๅฏน)
|
| 133 |
+
่พๅบ: 3 ไธช็ฑปๅซ็ๆฆ็ [Entailment, Neutral, Contradiction]
|
| 134 |
+
|
| 135 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 136 |
+
|
| 137 |
+
ๆถๆๅพ๏ผ
|
| 138 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 139 |
+
|
| 140 |
+
่พๅ
ฅๆๆฌ๏ผ
|
| 141 |
+
Premise: "AlphaCodium ๆฏไธ็งไปฃ็ ็ๆๆนๆณ..."
|
| 142 |
+
Hypothesis: "AlphaCodium ๆฏ Google ๅๅธ็..."
|
| 143 |
+
|
| 144 |
+
โ
|
| 145 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 146 |
+
โ Step 1: ่พๅ
ฅๆผๆฅ โ
|
| 147 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 148 |
+
โ [CLS] Premise [SEP] Hypothesis [SEP] โ
|
| 149 |
+
โ โ
|
| 150 |
+
โ ๅฎ้
: [CLS] AlphaCodium ๆฏไธ็งไปฃ็ ็ๆๆนๆณ [SEP] โ
|
| 151 |
+
โ AlphaCodium ๆฏ Google ๅๅธ็ [SEP] โ
|
| 152 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 153 |
+
|
| 154 |
+
โ
|
| 155 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 156 |
+
โ Step 2: Tokenization โ
|
| 157 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 158 |
+
โ ๅ่ฏๅนถ่ฝฌๆขไธบ Token IDs โ
|
| 159 |
+
โ [101, 2945, 3421, ..., 4532, 102, 2945, 3421, ...] โ
|
| 160 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 161 |
+
|
| 162 |
+
โ
|
| 163 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 164 |
+
โ Step 3: DeBERTa Encoder (12 ๅฑ) โ
|
| 165 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 166 |
+
โ โ
|
| 167 |
+
โ Layer 1-12: Disentangled Attention โ
|
| 168 |
+
โ - Content-to-Content Attention โ
|
| 169 |
+
โ - Content-to-Position Attention โ
|
| 170 |
+
โ - Position-to-Content Attention โ
|
| 171 |
+
โ โ
|
| 172 |
+
โ ็น็น๏ผไฝ็ฝฎไฟกๆฏๅๅ
ๅฎนไฟกๆฏๅ็ฆปๅค็ โ
|
| 173 |
+
โ ๆฏ BERT ๆดๅฅฝๅฐ็่งฃ้ฟ่ท็ฆปไพ่ต โ
|
| 174 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 175 |
+
|
| 176 |
+
โ
|
| 177 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 178 |
+
โ Step 4: [CLS] Token ็ๅ้่กจ็คบ โ
|
| 179 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 180 |
+
โ [CLS] ็ๅ้ๅ
ๅซไบๆดไธช่พๅ
ฅๅฏน็่ฏญไนไฟกๆฏ โ
|
| 181 |
+
โ Vector: [0.234, -0.567, 0.890, ..., 0.123] (768็ปด) โ
|
| 182 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 183 |
+
|
| 184 |
+
โ
|
| 185 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 186 |
+
โ Step 5: ๅ็ฑปๅคด (Classification Head) โ
|
| 187 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 188 |
+
โ ๅ
จ่ฟๆฅๅฑ: 768 โ 3 โ
|
| 189 |
+
โ โ
|
| 190 |
+
โ Logits: [2.3, -1.5, 0.8] โ
|
| 191 |
+
โ โ โ โ โ
|
| 192 |
+
โ Entail Neutral Contra โ
|
| 193 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 194 |
+
|
| 195 |
+
โ
|
| 196 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 197 |
+
โ Step 6: Softmax ๅฝไธๅ โ
|
| 198 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 199 |
+
โ Probabilities: โ
|
| 200 |
+
โ Entailment: 0.15 (15%) โ
|
| 201 |
+
โ Neutral: 0.05 (5%) โ
|
| 202 |
+
โ Contradiction: 0.80 (80%) โ ๆ้ซ๏ผ โ
|
| 203 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 204 |
+
|
| 205 |
+
โ
|
| 206 |
+
ๆ็ป่พๅบ:
|
| 207 |
+
Label: "Contradiction"
|
| 208 |
+
Score: 0.80
|
| 209 |
+
|
| 210 |
+
่งฃ้: ๆจกๅ่ฎคไธบ็ญๆกไธๆๆกฃ็็พ๏ผ็ฝฎไฟกๅบฆ 80%
|
| 211 |
+
โ ๆฃๆตๅฐๅนป่ง๏ผ
|
| 212 |
+
""")
|
| 213 |
+
|
| 214 |
+
|
| 215 |
+
# ============================================================================
|
| 216 |
+
# Part 4: ไฝ ็้กน็ฎไธญ็ๅฎ้
ๆฃๆตๆต็จ
|
| 217 |
+
# ============================================================================
|
| 218 |
+
print("\n" + "=" * 80)
|
| 219 |
+
print("๐ป Part 4: ไฝ ็้กน็ฎไธญ็ๅฎ้
ๆฃๆตๆต็จ")
|
| 220 |
+
print("=" * 80)
|
| 221 |
+
|
| 222 |
+
print("""
|
| 223 |
+
ๅฎๆดๆฃๆตๆต็จ๏ผhallucination_detector.py๏ผ๏ผ
|
| 224 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 225 |
+
|
| 226 |
+
่พๅ
ฅ:
|
| 227 |
+
- generation: LLM ็ๆ็ๅฎๆด็ญๆก
|
| 228 |
+
- documents: ๆฃ็ดขๅฐ็ๆๆกฃ
|
| 229 |
+
|
| 230 |
+
โ
|
| 231 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 232 |
+
โ Step 1: ๅฅๅญๅๅฒ โ
|
| 233 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 234 |
+
โ ๅฐ LLM ็ๆ็็ญๆกๅๅฒๆๅคไธชๅฅๅญ โ
|
| 235 |
+
โ โ
|
| 236 |
+
โ ไพๅฆ: โ
|
| 237 |
+
โ "AlphaCodium ๆฏไธ็งไปฃ็ ็ๆๆนๆณใๅฎ็ฑ Google ๅผๅใ" โ
|
| 238 |
+
โ โ โ
|
| 239 |
+
โ ["AlphaCodium ๆฏไธ็งไปฃ็ ็ๆๆนๆณใ", โ
|
| 240 |
+
โ "ๅฎ็ฑ Google ๅผๅใ"] โ
|
| 241 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 242 |
+
|
| 243 |
+
โ
|
| 244 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 245 |
+
โ Step 2: ้ๅฅ NLI ๆฃๆต โ
|
| 246 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 247 |
+
โ โ
|
| 248 |
+
โ for ๆฏไธชๅฅๅญ in ็ญๆก: โ
|
| 249 |
+
โ result = nli_model( โ
|
| 250 |
+
โ premise=documents[:500], # ๆๆกฃ๏ผๆชๆญๅฐ500ๅญ็ฌฆ๏ผโ
|
| 251 |
+
โ hypothesis=sentence # ๅฝๅๅฅๅญ โ
|
| 252 |
+
โ ) โ
|
| 253 |
+
โ โ
|
| 254 |
+
โ if "contradiction" in result.label: โ
|
| 255 |
+
โ contradiction_count += 1 โ
|
| 256 |
+
โ elif "neutral" in result.label: โ
|
| 257 |
+
โ neutral_count += 1 โ
|
| 258 |
+
โ elif "entailment" in result.label: โ
|
| 259 |
+
โ entailment_count += 1 โ
|
| 260 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 261 |
+
|
| 262 |
+
โ
|
| 263 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 264 |
+
โ Step 3: ็ป่ฎกๅๆ โ
|
| 265 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 266 |
+
โ โ
|
| 267 |
+
โ ๅ่ฎพๆฃๆตไบ 10 ไธชๅฅๅญ: โ
|
| 268 |
+
โ - Entailment: 7 ไธช (70%) โ
|
| 269 |
+
โ - Neutral: 2 ไธช (20%) โ
|
| 270 |
+
โ - Contradiction: 1 ไธช (10%) โ
|
| 271 |
+
โ โ
|
| 272 |
+
โ total_sentences = 10 โ
|
| 273 |
+
โ contradiction_ratio = 1/10 = 0.1 (10%) โ
|
| 274 |
+
โ neutral_ratio = 2/10 = 0.2 (20%) โ
|
| 275 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 276 |
+
|
| 277 |
+
โ
|
| 278 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 279 |
+
โ Step 4: ๅคๆญๆฏๅฆๆๅนป่ง โ
|
| 280 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 281 |
+
โ โ
|
| 282 |
+
โ ไฝ ็้กน็ฎ้
็ฝฎ: (ๅทฒไผๅ) โ
|
| 283 |
+
โ โ
|
| 284 |
+
โ has_hallucination = ( โ
|
| 285 |
+
โ contradiction_ratio > 0.3 OR # ็็พ่ถ
่ฟ 30% โ
|
| 286 |
+
โ neutral_ratio > 0.8 # ไธญ็ซ่ถ
่ฟ 80% โ
|
| 287 |
+
โ ) โ
|
| 288 |
+
โ โ
|
| 289 |
+
โ ไธไพไธญ: โ
|
| 290 |
+
โ contradiction_ratio = 0.1 (10%) โ
< 30% โ
|
| 291 |
+
โ neutral_ratio = 0.2 (20%) โ
< 80% โ
|
| 292 |
+
โ โ has_hallucination = False โ
โ
|
| 293 |
+
โ โ ๆชๆฃๆตๅฐๅนป่ง โ
|
| 294 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 295 |
+
|
| 296 |
+
โ
|
| 297 |
+
่พๅบ็ปๆ:
|
| 298 |
+
{
|
| 299 |
+
"has_hallucination": False,
|
| 300 |
+
"contradiction_count": 1,
|
| 301 |
+
"neutral_count": 2,
|
| 302 |
+
"entailment_count": 7,
|
| 303 |
+
"problematic_sentences": [] # ๅชๅ
ๅซ็็พ็ๅฅๅญ
|
| 304 |
+
}
|
| 305 |
+
|
| 306 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 307 |
+
|
| 308 |
+
ๅฎ้
ไปฃ็ ๏ผhallucination_detector.py ็ฌฌ 187-241 ่ก๏ผ๏ผ
|
| 309 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 310 |
+
|
| 311 |
+
for sentence in sentences:
|
| 312 |
+
if len(sentence) < 10:
|
| 313 |
+
continue
|
| 314 |
+
|
| 315 |
+
try:
|
| 316 |
+
# Cross-encoder ๆ ผๅผ
|
| 317 |
+
result = self.nli_model(
|
| 318 |
+
f"{documents[:500]} [SEP] {sentence}",
|
| 319 |
+
truncation=True,
|
| 320 |
+
max_length=512
|
| 321 |
+
)
|
| 322 |
+
|
| 323 |
+
label = result[0]['label'].lower()
|
| 324 |
+
|
| 325 |
+
if 'contradiction' in label:
|
| 326 |
+
contradiction_count += 1
|
| 327 |
+
problematic_sentences.append(sentence)
|
| 328 |
+
elif 'neutral' in label:
|
| 329 |
+
neutral_count += 1
|
| 330 |
+
elif 'entailment' in label:
|
| 331 |
+
entailment_count += 1
|
| 332 |
+
except Exception as e:
|
| 333 |
+
print(f"โ ๏ธ NLI ๆฃๆตๅฅๅญๅคฑ่ดฅ: {str(e)[:100]}")
|
| 334 |
+
|
| 335 |
+
# ๅคๆญ้ป่พ
|
| 336 |
+
total_sentences = contradiction_count + neutral_count + entailment_count
|
| 337 |
+
if total_sentences > 0:
|
| 338 |
+
contradiction_ratio = contradiction_count / total_sentences
|
| 339 |
+
neutral_ratio = neutral_count / total_sentences
|
| 340 |
+
has_hallucination = (contradiction_ratio > 0.3) or (neutral_ratio > 0.8)
|
| 341 |
+
""")
|
| 342 |
+
|
| 343 |
+
|
| 344 |
+
# ============================================================================
|
| 345 |
+
# Part 5: ไธบไปไน่ฟไธชๆนๆณๆๆ?
|
| 346 |
+
# ============================================================================
|
| 347 |
+
print("\n" + "=" * 80)
|
| 348 |
+
print("๐ฏ Part 5: ไธบไปไน NLI ๆฃๆตๅนป่งๆๆ?")
|
| 349 |
+
print("=" * 80)
|
| 350 |
+
|
| 351 |
+
print("""
|
| 352 |
+
ๆ ธๅฟไผๅฟ๏ผ
|
| 353 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 354 |
+
|
| 355 |
+
1๏ธโฃ ไธ้จ่ฎญ็ป็ไปปๅกๅฏน้ฝ
|
| 356 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 357 |
+
NLI ๆจกๅๅจ็พไธ็บงๅฅๅญๅฏนไธ่ฎญ็ป๏ผไธ้จๅญฆไน ๅคๆญ้ป่พๅ
ณ็ณป๏ผ
|
| 358 |
+
- ่ฎญ็ปๆฐๆฎ: SNLI (570K) + MultiNLI (433K)
|
| 359 |
+
- ไปปๅก: ๅคๆญ Premise ๆฏๅฆๆฏๆ Hypothesis
|
| 360 |
+
- ่ฟๆญฃๆฏๅนป่งๆฃๆต้่ฆ็่ฝๅ๏ผ
|
| 361 |
+
|
| 362 |
+
ไผ ็ป LLM:
|
| 363 |
+
"่ฏทๅคๆญ่ฟไธช็ญๆกๆฏๅฆๅบไบๆๆกฃ..."
|
| 364 |
+
โ LLM ้่ฆ็่งฃๆไปคใๆจ็ใ็ๆ็ญๆก
|
| 365 |
+
โ ๅฎนๆๅบ้๏ผไธๅคไธๆณจ
|
| 366 |
+
|
| 367 |
+
NLI ๆจกๅ:
|
| 368 |
+
Input: [Premise, Hypothesis]
|
| 369 |
+
โ ็ดๆฅ่พๅบๆฆ็: [Entail, Neutral, Contra]
|
| 370 |
+
โ ไธๆณจไธๅ็กฎ
|
| 371 |
+
|
| 372 |
+
|
| 373 |
+
2๏ธโฃ ็ป็ฒๅบฆ็ๅฅๅญ็บงๆฃๆต
|
| 374 |
+
โโโโโโโโโโโโโ๏ฟฝ๏ฟฝโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 375 |
+
้ๅฅๆฃๆตๅฏไปฅ็ฒพๅๅฎไฝ้ฎ้ข๏ผ
|
| 376 |
+
|
| 377 |
+
ๆดไฝๆฃๆต๏ผLLM๏ผ:
|
| 378 |
+
"ๆดไธช็ญๆกๆฏๅฆๅบไบๆๆกฃ๏ผ"
|
| 379 |
+
โ ้พไปฅๅคๆญๅช้จๅๆ้ฎ้ข
|
| 380 |
+
|
| 381 |
+
ๅฅๅญ็บงๆฃๆต๏ผNLI๏ผ:
|
| 382 |
+
ๅฅๅญ1: "AlphaCodium ๆฏไปฃ็ ็ๆๆนๆณ" โ Entailment โ
|
| 383 |
+
ๅฅๅญ2: "็ฑ Google ๅผๅ" โ Contradiction โ โ ็ฒพๅๅฎไฝ๏ผ
|
| 384 |
+
ๅฅๅญ3: "ๅจ CodeContests ไธ่กจ็ฐๅฅฝ" โ Entailment โ
|
| 385 |
+
|
| 386 |
+
|
| 387 |
+
3๏ธโฃ ้ๅบฆๅๆๆฌไผๅฟ
|
| 388 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 389 |
+
ๆจกๅๅฏนๆฏ๏ผ
|
| 390 |
+
|
| 391 |
+
ไผ ็ป LLM (ๅฆ GPT-3.5):
|
| 392 |
+
- ๆจ็ๆถ้ด: 500-1000ms
|
| 393 |
+
- ๆๆฌ: ๆฏๆฌกๆฃๆต็บฆ $0.001
|
| 394 |
+
- ๅๆฐ้: 175B
|
| 395 |
+
|
| 396 |
+
NLI ๆจกๅ (cross-encoder/nli-deberta-v3-xsmall):
|
| 397 |
+
- ๆจ็ๆถ้ด: 50-100ms โ ๅฟซ 10 ๅ๏ผ
|
| 398 |
+
- ๆๆฌ: ๆฌๅฐ่ฟ่ก๏ผๆฅ่ฟ $0 โ ็ 100 ๅ๏ผ
|
| 399 |
+
- ๅๆฐ้: 22M โ ๅฐ 7900 ๅ๏ผ
|
| 400 |
+
|
| 401 |
+
|
| 402 |
+
4๏ธโฃ ๅฏ่งฃ้ๆง
|
| 403 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 404 |
+
NLI ่พๅบๆธ
ๆฐ็ๆฆ็ๅๅธ๏ผ
|
| 405 |
+
|
| 406 |
+
่พๅบ็คบไพ:
|
| 407 |
+
{
|
| 408 |
+
"label": "Contradiction",
|
| 409 |
+
"scores": {
|
| 410 |
+
"entailment": 0.05,
|
| 411 |
+
"neutral": 0.15,
|
| 412 |
+
"contradiction": 0.80 โ 80% ็กฎๅฎๆฏ็็พ
|
| 413 |
+
}
|
| 414 |
+
}
|
| 415 |
+
|
| 416 |
+
vs LLM ่พๅบ:
|
| 417 |
+
"ๆ่ฎคไธบ่ฟไธช็ญๆกๅฏ่ฝๆไบ้ฎ้ข..." โ ๆจก็ณไธๆธ
|
| 418 |
+
""")
|
| 419 |
+
|
| 420 |
+
|
| 421 |
+
# ============================================================================
|
| 422 |
+
# Part 6: DeBERTa vs BERT ็ๅ
ณ้ฎๆน่ฟ
|
| 423 |
+
# ============================================================================
|
| 424 |
+
print("\n" + "=" * 80)
|
| 425 |
+
print("โก Part 6: DeBERTa vs BERT - ไธบไปไน้ DeBERTa?")
|
| 426 |
+
print("=" * 80)
|
| 427 |
+
|
| 428 |
+
print("""
|
| 429 |
+
DeBERTa ็ๆ ธๅฟๅๆฐ๏ผDisentangled Attention
|
| 430 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 431 |
+
|
| 432 |
+
BERT ็้ฎ้ข๏ผ
|
| 433 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 434 |
+
ๅจ BERT ไธญ๏ผๆฏไธช token ็่กจ็คบ = ๅ
ๅฎน embedding + ไฝ็ฝฎ embedding
|
| 435 |
+
|
| 436 |
+
ไพๅฆ๏ผ
|
| 437 |
+
"AlphaCodium" ๅจไฝ็ฝฎ 5:
|
| 438 |
+
Token Embedding = Content + Position
|
| 439 |
+
= [0.1, 0.2, ...] + [0.3, 0.4, ...]
|
| 440 |
+
= [0.4, 0.6, ...]
|
| 441 |
+
|
| 442 |
+
้ฎ้ข๏ผๅ
ๅฎนๅไฝ็ฝฎๆททๅจไธ่ตท๏ผๆจกๅ้พไปฅๅบๅ๏ผ
|
| 443 |
+
- "ๆฏ" ๅจไฝ็ฝฎ 3 ็้่ฆๆง
|
| 444 |
+
- "ๆฏ" ่ฟไธช่ฏๆฌ่บซ็่ฏญไน
|
| 445 |
+
|
| 446 |
+
|
| 447 |
+
DeBERTa ็่งฃๅณๆนๆก๏ผๅ็ฆปๆณจๆๅ
|
| 448 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 449 |
+
|
| 450 |
+
ๅฐๆณจๆๅๅ่งฃไธบ 3 ไธช้จๅ๏ผ
|
| 451 |
+
|
| 452 |
+
1. Content-to-Content Attention
|
| 453 |
+
่ฏ i ็ๅ
ๅฎน ๅ
ณๆณจ ่ฏ j ็ๅ
ๅฎน
|
| 454 |
+
"AlphaCodium" ๅ
ณๆณจ "ไปฃ็ ็ๆ"
|
| 455 |
+
|
| 456 |
+
2. Content-to-Position Attention
|
| 457 |
+
่ฏ i ็ๅ
ๅฎน ๅ
ณๆณจ ่ฏ j ็ไฝ็ฝฎ
|
| 458 |
+
"ๆฏ" ๅ
ณๆณจ ไฝ็ฝฎ 10 (ไธไธๆ)
|
| 459 |
+
|
| 460 |
+
3. Position-to-Content Attention
|
| 461 |
+
่ฏ i ็ไฝ็ฝฎ ๅ
ณๆณจ ่ฏ j ็ๅ
ๅฎน
|
| 462 |
+
ไฝ็ฝฎ 5 ๅ
ณๆณจ "ๆนๆณ" ่ฟไธช่ฏ
|
| 463 |
+
|
| 464 |
+
ๅ
ฌๅผ:
|
| 465 |
+
Attention(Q, K, V) = softmax(
|
| 466 |
+
Q_c ร K_c^T / โd + # Content-to-Content
|
| 467 |
+
Q_c ร K_p^T / โd + # Content-to-Position
|
| 468 |
+
Q_p ร K_c^T / โd # Position-to-Content
|
| 469 |
+
) ร V
|
| 470 |
+
|
| 471 |
+
ไผๅฟ:
|
| 472 |
+
โ
ๆดๅฅฝๅฐ็่งฃ้ฟ่ท็ฆปไพ่ต
|
| 473 |
+
โ
ๆดๅ็กฎ็่ฏญไน็่งฃ
|
| 474 |
+
โ
NLI ไปปๅกไธๆง่ฝๆๅ 2-3%
|
| 475 |
+
โ
ๅๆ ทๅๆฐไธๆๆๆดๅฅฝ
|
| 476 |
+
|
| 477 |
+
|
| 478 |
+
ๆจกๅๅฏนๆฏ๏ผ
|
| 479 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 480 |
+
|
| 481 |
+
BERT-base:
|
| 482 |
+
- ๅๆฐ: 110M
|
| 483 |
+
- MNLI ๅ็กฎ็: 84.6%
|
| 484 |
+
|
| 485 |
+
DeBERTa-v3-xsmall:
|
| 486 |
+
- ๅๆฐ: 22M โ ๅฐ 5 ๅ
|
| 487 |
+
- MNLI ๅ็กฎ็: 82.1% โ ๅช้ไฝ 2.5%
|
| 488 |
+
- ๆจ็้ๅบฆ: ๅฟซ 3 ๅ
|
| 489 |
+
|
| 490 |
+
ๆงไปทๆฏๆ้ซ๏ผ่ฟๅฐฑๆฏไธบไปไนไฝ ็้กน็ฎ้ๆฉๅฎ
|
| 491 |
+
""")
|
| 492 |
+
|
| 493 |
+
|
| 494 |
+
# ============================================================================
|
| 495 |
+
# Part 7: ๅฎ้
ๆกไพๆผ็คบ
|
| 496 |
+
# ============================================================================
|
| 497 |
+
print("\n" + "=" * 80)
|
| 498 |
+
print("๐ Part 7: ๅฎ้
ๆกไพๆผ็คบ")
|
| 499 |
+
print("=" * 80)
|
| 500 |
+
|
| 501 |
+
print("""
|
| 502 |
+
ๆกไพ 1: ๆญฃๅธธ็ญๆก๏ผๆ ๅนป่ง๏ผ
|
| 503 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 504 |
+
|
| 505 |
+
ๆๆกฃ (Premise):
|
| 506 |
+
"Prompt Engineering ๆฏไธ็ง้่ฟไผๅ่พๅ
ฅๆ็คบๆฅๅผๅฏผ
|
| 507 |
+
่ฏญ่จๆจกๅ่กไธบ็ๆนๆณ๏ผๆ ้ไฟฎๆนๆจกๅๆ้ใ"
|
| 508 |
+
|
| 509 |
+
LLM ็ๆ (Hypothesis):
|
| 510 |
+
"Prompt Engineering ๆฏไธ็งไผๅ่พๅ
ฅๆ็คบ็ๆนๆณ๏ผ
|
| 511 |
+
็จไบๅผๅฏผ่ฏญ่จๆจกๅ็่กไธบใ"
|
| 512 |
+
|
| 513 |
+
NLI ๆฃๆต่ฟ็จ:
|
| 514 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 515 |
+
|
| 516 |
+
ๅฅๅญ 1: "Prompt Engineering ๆฏไธ็งไผๅ่พๅ
ฅๆ็คบ็ๆนๆณ"
|
| 517 |
+
โ NLI: Entailment (0.92) โ
|
| 518 |
+
โ ๆๆกฃไธญๆ๏ผ"้่ฟไผๅ่พๅ
ฅๆ็คบ"
|
| 519 |
+
|
| 520 |
+
ๅฅๅญ 2: "็จไบๅผๅฏผ่ฏญ่จๆจกๅ็่กไธบ"
|
| 521 |
+
โ NLI: Entailment (0.88) โ
|
| 522 |
+
โ ๆๆกฃไธญๆ๏ผ"ๅผๅฏผ่ฏญ่จๆจกๅ่กไธบ"
|
| 523 |
+
|
| 524 |
+
็ป่ฎก:
|
| 525 |
+
Entailment: 2/2 = 100%
|
| 526 |
+
Neutral: 0/2 = 0%
|
| 527 |
+
Contradiction: 0/2 = 0%
|
| 528 |
+
|
| 529 |
+
ๅคๆญ:
|
| 530 |
+
contradiction_ratio = 0% < 30% โ
|
| 531 |
+
neutral_ratio = 0% < 80% โ
|
| 532 |
+
โ ๆ ๅนป่ง โ
|
| 533 |
+
|
| 534 |
+
|
| 535 |
+
ๆกไพ 2: ๅ
ๅซๅนป่ง็็ญๆก
|
| 536 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 537 |
+
|
| 538 |
+
ๆๆกฃ (Premise):
|
| 539 |
+
"AlphaCodium ๆฏไธ็งไปฃ็ ็ๆๆนๆณ๏ผ้่ฟ่ฟญไปฃๆน่ฟ
|
| 540 |
+
ๆๅ LLM ็ไปฃ็ ่ฝๅใ"
|
| 541 |
+
|
| 542 |
+
LLM ็ๆ (Hypothesis):
|
| 543 |
+
"AlphaCodium ๆฏ Google ๅจ 2024 ๅนดๅๅธ็ไปฃ็ ็ๆๅทฅๅ
ทใ
|
| 544 |
+
ๅฎไฝฟ็จๅผบๅๅญฆไน ๆฅ่ฎญ็ปๆจกๅใ"
|
| 545 |
+
|
| 546 |
+
NLI ๆฃๆต่ฟ็จ:
|
| 547 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 548 |
+
|
| 549 |
+
ๅฅๅญ 1: "AlphaCodium ๆฏ Google ๅจ 2024 ๅนดๅๅธ็ไปฃ็ ็ๆๅทฅๅ
ท"
|
| 550 |
+
โ NLI: Neutral (0.75) โ ๏ธ
|
| 551 |
+
โ ๆๆกฃไธญๆฒกๆๆๅฐ Google ๅ 2024
|
| 552 |
+
|
| 553 |
+
ๅฅๅญ 2: "ๅฎไฝฟ็จๅผบๅๅญฆไน ๆฅ่ฎญ็ปๆจกๅ"
|
| 554 |
+
โ NLI: Neutral (0.68) โ ๏ธ
|
| 555 |
+
โ ๆๆกฃไธญๆฒกๆๆๅฐๅผบๅๅญฆไน
|
| 556 |
+
|
| 557 |
+
็ป่ฎก:
|
| 558 |
+
Entailment: 0/2 = 0%
|
| 559 |
+
Neutral: 2/2 = 100%
|
| 560 |
+
Contradiction: 0/2 = 0%
|
| 561 |
+
|
| 562 |
+
ๅคๆญ:
|
| 563 |
+
contradiction_ratio = 0% < 30% โ
|
| 564 |
+
neutral_ratio = 100% > 80% โ โ ่งฆๅ๏ผ
|
| 565 |
+
โ ๆฃๆตๅฐๅนป่ง โ ๏ธ
|
| 566 |
+
|
| 567 |
+
|
| 568 |
+
ๆกไพ 3: ๆๆพ็็พ
|
| 569 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 570 |
+
|
| 571 |
+
ๆๆกฃ (Premise):
|
| 572 |
+
"่ฟ็ฏ่ฎบๆๅ่กจไบ 2023 ๅนดใ"
|
| 573 |
+
|
| 574 |
+
LLM ็ๆ (Hypothesis):
|
| 575 |
+
"่ฟ็ฏ่ฎบๆๆฏ 2021 ๅนดๅ่กจ็ใ"
|
| 576 |
+
|
| 577 |
+
NLI ๆฃๆต:
|
| 578 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 579 |
+
|
| 580 |
+
ๅฅๅญ 1: "่ฟ็ฏ่ฎบๆๆฏ 2021 ๅนดๅ่กจ็"
|
| 581 |
+
โ NLI: Contradiction (0.95) โ
|
| 582 |
+
โ 2023 โ 2021๏ผๆๆพ็็พ๏ผ
|
| 583 |
+
|
| 584 |
+
็ป่ฎก:
|
| 585 |
+
Entailment: 0/1 = 0%
|
| 586 |
+
Neutral: 0/1 = 0%
|
| 587 |
+
Contradiction: 1/1 = 100%
|
| 588 |
+
|
| 589 |
+
ๅคๆญ:
|
| 590 |
+
contradiction_ratio = 100% > 30% โ โ ่งฆๅ๏ผ
|
| 591 |
+
โ ๆฃๆตๅฐๅนป่ง โ
|
| 592 |
+
""")
|
| 593 |
+
|
| 594 |
+
|
| 595 |
+
# ============================================================================
|
| 596 |
+
# Part 8: ไผ็ผบ็นๅๆ
|
| 597 |
+
# ============================================================================
|
| 598 |
+
print("\n" + "=" * 80)
|
| 599 |
+
print("โ๏ธ Part 8: NLI ๅนป่งๆฃๆต็ไผ็ผบ็น")
|
| 600 |
+
print("=" * 80)
|
| 601 |
+
|
| 602 |
+
print("""
|
| 603 |
+
ไผ็น โ
|
| 604 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 605 |
+
|
| 606 |
+
1. ๅ็กฎ็้ซ
|
| 607 |
+
- ไธ้จ่ฎญ็ป็ NLI ๆจกๅ๏ผๅจ้ป่พๆจ็ไธๅ็กฎ็ 85-95%
|
| 608 |
+
- ๆฏ้็จ LLM ๅคๆญๅ็กฎ 15-20%
|
| 609 |
+
|
| 610 |
+
2. ้ๅบฆๅฟซ
|
| 611 |
+
- ่ฝป้็บงๆจกๅ (22M ๅๆฐ)
|
| 612 |
+
- ๆจ็ๆถ้ด 50-100ms
|
| 613 |
+
- ๆฏ LLM ๅฟซ 10 ๅ
|
| 614 |
+
|
| 615 |
+
3. ๆๆฌไฝ
|
| 616 |
+
- ๆฌๅฐ่ฟ่ก๏ผๆ ้ API ่ฐ็จ
|
| 617 |
+
- ๆๆฌๆฅ่ฟ 0
|
| 618 |
+
- ๆฏ LLM ็ 100 ๅ
|
| 619 |
+
|
| 620 |
+
4. ๅฏ่งฃ้ๆงๅผบ
|
| 621 |
+
- ่พๅบๆธ
ๆฐ็ๆฆ็ๅๅธ
|
| 622 |
+
- ๅฏไปฅๅฎไฝๅ
ทไฝ้ฎ้ขๅฅๅญ
|
| 623 |
+
- ๆนไพฟ่ฐ่ฏๅไผๅ
|
| 624 |
+
|
| 625 |
+
5. ็ป็ฒๅบฆๆงๅถ
|
| 626 |
+
- ้ๅฅๆฃๆต
|
| 627 |
+
- ๅฏ่ชๅฎไน้ๅผ (30%, 80%)
|
| 628 |
+
- ็ตๆดป่ฐๆดไธฅๆ ผ็จๅบฆ
|
| 629 |
+
|
| 630 |
+
|
| 631 |
+
็ผบ็น โ
|
| 632 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 633 |
+
|
| 634 |
+
1. ๅฏน Neutral ็ๅคๆญไธๅค็ฒพๅ
|
| 635 |
+
- Neutral ๆขๅฏ่ฝๆฏๅนป่ง๏ผไนๅฏ่ฝๆฏๅ็ๆจ็
|
| 636 |
+
- ้่ฆ่ฎพ็ฝฎๅ็็้ๅผ๏ผไฝ ็้กน็ฎ่ฎพไธบ 80%๏ผ
|
| 637 |
+
|
| 638 |
+
2. ไพ่ตๅฅๅญๅๅฒ่ดจ้
|
| 639 |
+
- ๅๅฒ้่ฏฏไผๅฝฑๅๆฃๆต
|
| 640 |
+
- ไพๅฆ๏ผ"Mr. Smith went to U.S.A." ๅฏ่ฝ่ขซ้่ฏฏๅๅฒ
|
| 641 |
+
|
| 642 |
+
3. ไธไธๆ็่งฃๆ้
|
| 643 |
+
- ๅช็ 500 ๅญ็ฌฆ็ๆๆกฃ
|
| 644 |
+
- ๅฏ่ฝ้่ฟ้ฟๆๆกฃไธญ็็ธๅ
ณไฟกๆฏ
|
| 645 |
+
|
| 646 |
+
4. ่ฏญ่จไพ่ต
|
| 647 |
+
- ไธป่ฆๅจ่ฑๆๆฐๆฎไธ่ฎญ็ป
|
| 648 |
+
- ไธญๆๆๆๅฏ่ฝ็ฅๅทฎ๏ผไฝ DeBERTa-v3 ๅฏนๅค่ฏญ่จๆฏๆ่พๅฅฝ๏ผ
|
| 649 |
+
|
| 650 |
+
5. ๆ ๆณๆฃๆต้ๆงๅนป่ง
|
| 651 |
+
- ๅช่ฝๆฃๆตๆพๅผ็็็พๆ็ผบๅคฑ
|
| 652 |
+
- ๆ ๆณๆฃๆตๆจ็้่ฏฏๆ้ป่พๆผๆด
|
| 653 |
+
|
| 654 |
+
|
| 655 |
+
ๆน่ฟๅปบ่ฎฎ ๐ก
|
| 656 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 657 |
+
|
| 658 |
+
1. ็ปๅๅค็งๆนๆณ
|
| 659 |
+
ไฝ ็้กน็ฎๅทฒ็ปๅไบ๏ผVectara + NLI ๆททๅๆฃๆต โ
|
| 660 |
+
|
| 661 |
+
2. ๅจๆ่ฐๆด้ๅผ
|
| 662 |
+
ๆ นๆฎๅบ็จๅบๆฏ่ฐๆด contradiction/neutral ้ๅผ
|
| 663 |
+
|
| 664 |
+
3. ๅขๅ ๆๆกฃ้ฟๅบฆ
|
| 665 |
+
ไป 500 ๅญ็ฌฆๅขๅ ๅฐ 1000 ๅญ็ฌฆ๏ผ้่ฆๆดๅค่ฎก็ฎ๏ผ
|
| 666 |
+
|
| 667 |
+
4. ไฝฟ็จๆดๅคง็ๆจกๅ
|
| 668 |
+
ๅฆๆๅ็กฎ็ไธๅค๏ผๅฏๅ็บงๅฐ cross-encoder/nli-deberta-v3-base
|
| 669 |
+
""")
|
| 670 |
+
|
| 671 |
+
|
| 672 |
+
# ============================================================================
|
| 673 |
+
# Part 9: ๆป็ป
|
| 674 |
+
# ============================================================================
|
| 675 |
+
print("\n" + "=" * 80)
|
| 676 |
+
print("๐ Part 9: ๆ ธๅฟ่ฆ็นๆป็ป")
|
| 677 |
+
print("=" * 80)
|
| 678 |
+
|
| 679 |
+
print("""
|
| 680 |
+
NLI ๅนป่งๆฃๆตๅ็๏ผ
|
| 681 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 682 |
+
|
| 683 |
+
1. ๆ ธๅฟๆๆณ
|
| 684 |
+
ๅฐๅนป่งๆฃๆต่ฝฌๅไธบ NLI ไปปๅก๏ผ
|
| 685 |
+
Premise (ๆๆกฃ) + Hypothesis (็ญๆก) โ Entailment/Neutral/Contradiction
|
| 686 |
+
|
| 687 |
+
2. ๆจกๅๆถๆ
|
| 688 |
+
cross-encoder/nli-deberta-v3-xsmall (22M ๅๆฐ, 40MB)
|
| 689 |
+
- DeBERTa-v3: ๅ็ฆปๆณจๆๅๆบๅถ
|
| 690 |
+
- Cross-Encoder: ่ๅ็ผ็ Premise ๅ Hypothesis
|
| 691 |
+
- 3 ๅ็ฑปๅคด: Entailment/Neutral/Contradiction
|
| 692 |
+
|
| 693 |
+
3. ๆฃๆตๆต็จ
|
| 694 |
+
Step 1: ๅๅฅ
|
| 695 |
+
Step 2: ้ๅฅ NLI ๅคๆญ
|
| 696 |
+
Step 3: ็ป่ฎก Entailment/Neutral/Contradiction ๆฏไพ
|
| 697 |
+
Step 4: ๆ นๆฎ้ๅผๅคๆญๆฏๅฆๆๅนป่ง
|
| 698 |
+
- contradiction > 30% โ ๅนป่ง
|
| 699 |
+
- neutral > 80% โ ๅนป่ง
|
| 700 |
+
|
| 701 |
+
4. ๅ
ณ้ฎไผๅฟ
|
| 702 |
+
โ
ๅ็กฎ็: 85-95% (ๆฏ LLM ้ซ 15-20%)
|
| 703 |
+
โ
้ๅบฆ: 50-100ms (ๆฏ LLM ๅฟซ 10 ๅ)
|
| 704 |
+
โ
ๆๆฌ: ๆฌๅฐ่ฟ่ก (ๆฏ LLM ็ 100 ๅ)
|
| 705 |
+
โ
ๅฏ่งฃ้: ่พๅบๆธ
ๆฐๆฆ็ๅๅธ
|
| 706 |
+
|
| 707 |
+
5. ไฝ ็้กน็ฎ้
็ฝฎ
|
| 708 |
+
โ
ๆจกๅ: cross-encoder/nli-deberta-v3-xsmall
|
| 709 |
+
โ
้ๅผ: contradiction > 30% or neutral > 80%
|
| 710 |
+
โ
ๆททๅๆฃๆต: Vectara + NLI
|
| 711 |
+
โ
ไผๅ: ่ชๅจ้็บงใ้่ฏฏๅค็ใmethod_used ไธ่ดๆง
|
| 712 |
+
|
| 713 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 714 |
+
|
| 715 |
+
ไฝ ็้กน็ฎไฝฟ็จไบไธ็ๆไฝณๅฎ่ทต๏ผ๐
|
| 716 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 717 |
+
""")
|
| 718 |
+
|
| 719 |
+
print("\n" + "=" * 80)
|
| 720 |
+
print("โ
NLI ๅนป่งๆฃๆตๅ็่ฎฒ่งฃๅฎๆฏ๏ผ")
|
| 721 |
+
print("=" * 80)
|
| 722 |
+
print()
|
vectara_hallucination_model_explained.py
ADDED
|
@@ -0,0 +1,710 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
Vectara ๅนป่งๆฃๆตๆจกๅ (HHEM) ่ฏฆ่งฃ
|
| 3 |
+
vectara/hallucination_evaluation_model ๅ็ๅไฝฟ็จ
|
| 4 |
+
"""
|
| 5 |
+
|
| 6 |
+
print("=" * 80)
|
| 7 |
+
print("Vectara Hallucination Evaluation Model (HHEM) ๅฎๅ
จ่งฃๆ")
|
| 8 |
+
print("=" * 80)
|
| 9 |
+
|
| 10 |
+
# ============================================================================
|
| 11 |
+
# Part 1: ไปไนๆฏ HHEM?
|
| 12 |
+
# ============================================================================
|
| 13 |
+
print("\n" + "=" * 80)
|
| 14 |
+
print("๐ Part 1: ไปไนๆฏ HHEM (Hughes Hallucination Evaluation Model)?")
|
| 15 |
+
print("=" * 80)
|
| 16 |
+
|
| 17 |
+
print("""
|
| 18 |
+
HHEM ๅบๆฌไฟกๆฏ๏ผ
|
| 19 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 20 |
+
|
| 21 |
+
ๅ
จๅ: Hughes Hallucination Evaluation Model
|
| 22 |
+
ๅผๅ่
: Vectara (AI ๆ็ดขๅ
ฌๅธ)
|
| 23 |
+
ๅๅธๆถ้ด: 2023 ๅนด
|
| 24 |
+
ๆจกๅๅ็งฐ: vectara/hallucination_evaluation_model
|
| 25 |
+
ๅบ็กๆถๆ: BERT-based Cross-Encoder
|
| 26 |
+
่ฎญ็ปๆฐๆฎ: ไธ้จๆ ๆณจ็ๅนป่งๆฃๆตๆฐๆฎ้
|
| 27 |
+
ไปปๅก: ไบๅ็ฑป๏ผFactual vs Hallucinated๏ผ
|
| 28 |
+
|
| 29 |
+
ๆ ธๅฟ็น็น:
|
| 30 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 31 |
+
โ
ไธ้จไธบๅนป่งๆฃๆต่ฎพ่ฎก๏ผไธๆฏ้็จ NLI๏ผ
|
| 32 |
+
โ
็ดๆฅ่พๅบ"ๆฏๅฆๅนป่ง"็ๆฆ็
|
| 33 |
+
โ
ๅจ RAG ๅบๆฏไธๅ็กฎ็ 90-95%
|
| 34 |
+
โ
ๆฏ้็จ NLI ๆจกๅๅจๅนป่งๆฃๆตไธๅ็กฎ 5-10%
|
| 35 |
+
|
| 36 |
+
ไธ NLI ๆจกๅ็ๅบๅซ:
|
| 37 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 38 |
+
|
| 39 |
+
NLI ๆจกๅ (cross-encoder/nli-deberta-v3-xsmall):
|
| 40 |
+
- ไปปๅก: ไธๅ็ฑป๏ผEntailment/Neutral/Contradiction๏ผ
|
| 41 |
+
- ่ฎญ็ป: ้็จ้ป่พๆจ็ๆฐๆฎ้
|
| 42 |
+
- ่พๅบ: ้ป่พๅ
ณ็ณป
|
| 43 |
+
- ้็จ: ๅนฟๆณ็ NLI ไปปๅก
|
| 44 |
+
|
| 45 |
+
HHEM (vectara/hallucination_evaluation_model):
|
| 46 |
+
- ไปปๅก: ไบๅ็ฑป๏ผFactual/Hallucinated๏ผโญ
|
| 47 |
+
- ่ฎญ็ป: ไธ้จ็ๅนป่งๆ ทๆฌ
|
| 48 |
+
- ่พๅบ: ๅนป่งๆฆ็
|
| 49 |
+
- ้็จ: RAG ๅนป่งๆฃๆต๏ผไธไธ๏ผ
|
| 50 |
+
|
| 51 |
+
็ฎๅ็ฑปๆฏ:
|
| 52 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 53 |
+
NLI ๆจกๅ = ๅ
จ็งๅป็๏ผ่ฝ็ๅ็ง็
๏ผ
|
| 54 |
+
HHEM = ่ฟ็คไธๅฎถ๏ผๅช็่ฟ็ค๏ผไฝๆดๅ็กฎ๏ผ
|
| 55 |
+
""")
|
| 56 |
+
|
| 57 |
+
|
| 58 |
+
# ============================================================================
|
| 59 |
+
# Part 2: HHEM ็ๅทฅไฝๅ็
|
| 60 |
+
# ============================================================================
|
| 61 |
+
print("\n" + "=" * 80)
|
| 62 |
+
print("๐ค Part 2: HHEM ็ๅทฅไฝๅ็")
|
| 63 |
+
print("=" * 80)
|
| 64 |
+
|
| 65 |
+
print("""
|
| 66 |
+
ๆ ธๅฟๆถๆ๏ผCross-Encoder
|
| 67 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 68 |
+
|
| 69 |
+
HHEM ไฝฟ็จ Cross-Encoder ๆถๆ๏ผไธ NLI ็ฑปไผผ๏ผไฝ่ฎญ็ป็ฎๆ ไธๅ๏ผ
|
| 70 |
+
|
| 71 |
+
่พๅ
ฅ๏ผไธคๆฎตๆๆฌ
|
| 72 |
+
- ๆๆกฃ (Documents): ๆฃ็ดขๅฐ็ไบๅฎไพๆฎ
|
| 73 |
+
- ็ๆ (Generation): LLM ็ๆ็็ญๆก
|
| 74 |
+
|
| 75 |
+
่พๅบ๏ผไธคไธชๆฆ็
|
| 76 |
+
- P(Factual): ็ญๆกๅบไบไบๅฎ็ๆฆ็
|
| 77 |
+
- P(Hallucinated): ็ญๆกๆฏๅนป่ง็ๆฆ็
|
| 78 |
+
|
| 79 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 80 |
+
|
| 81 |
+
ๅฎๆดๆต็จๅพ๏ผ
|
| 82 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 83 |
+
|
| 84 |
+
่พๅ
ฅๆ ทไพ:
|
| 85 |
+
Documents: "AlphaCodium ๆฏไธ็งไปฃ็ ็ๆๆนๆณ๏ผ้่ฟ่ฟญไปฃๆน่ฟๆๅๆง่ฝใ"
|
| 86 |
+
Generation: "AlphaCodium ็ฑ Google ๅจ 2024 ๅนดๅๅธใ"
|
| 87 |
+
โ ๅนป่ง๏ผๆๆกฃไธญๆฒกๆ
|
| 88 |
+
|
| 89 |
+
โ
|
| 90 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 91 |
+
โ Step 1: ๆๆฌๆผๆฅ โ
|
| 92 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 93 |
+
โ โ
|
| 94 |
+
โ [CLS] Documents [SEP] Generation [SEP] โ
|
| 95 |
+
โ โ
|
| 96 |
+
โ ๅฎ้
: โ
|
| 97 |
+
โ [CLS] AlphaCodium ๆฏไธ็งไปฃ็ ็ๆๆนๆณ... [SEP] โ
|
| 98 |
+
โ AlphaCodium ็ฑ Google ๅจ 2024 ๅนดๅๅธ [SEP] โ
|
| 99 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 100 |
+
|
| 101 |
+
โ
|
| 102 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 103 |
+
โ Step 2: Tokenization โ
|
| 104 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๏ฟฝ๏ฟฝ๏ฟฝโโโโโโโโโโโโโ โ
|
| 105 |
+
โ โ
|
| 106 |
+
โ BERT Tokenizer ๅฐๆๆฌ่ฝฌไธบ Token IDs โ
|
| 107 |
+
โ [101, 2945, 3421, ..., 102, 2945, 3421, ..., 102] โ
|
| 108 |
+
โ โ โ โ โ
|
| 109 |
+
โ [CLS] [SEP] [SEP] โ
|
| 110 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 111 |
+
|
| 112 |
+
โ
|
| 113 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 114 |
+
โ Step 3: BERT Encoder (่ๅ็ผ็ ) โ
|
| 115 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 116 |
+
โ โ
|
| 117 |
+
โ 12 ๅฑ Transformer Encoder โ
|
| 118 |
+
โ โ
|
| 119 |
+
โ Layer 1-12: โ
|
| 120 |
+
โ - Self-Attention: ่ฎฉ Documents ๅ Generation ไบ็ธ็ๅฐโ
|
| 121 |
+
โ - Feed Forward: ๆๅๆทฑๅฑ็นๅพ โ
|
| 122 |
+
โ โ
|
| 123 |
+
โ ๅ
ณ้ฎ๏ผDocuments ็ token ๅฏไปฅ attend ๅฐ Generation โ
|
| 124 |
+
โ Generation ็ token ๅฏไปฅ attend ๅฐ Documents โ
|
| 125 |
+
โ โ ๆๆ็็พใ็ผบๅคฑใๆทปๅ ็ไฟกๆฏ โ
|
| 126 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 127 |
+
|
| 128 |
+
โ
|
| 129 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 130 |
+
โ Step 4: [CLS] Token ๆๅ โ
|
| 131 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 132 |
+
โ โ
|
| 133 |
+
โ [CLS] token ็ๆ็ปๅ้ๅ
ๅซไบๆดไธช่พๅ
ฅๅฏน็ไฟกๆฏ๏ผ โ
|
| 134 |
+
โ - Documents ่ฏดไบไปไน โ
|
| 135 |
+
โ - Generation ่ฏดไบไปไน โ
|
| 136 |
+
โ - ๅฎไปฌไน้ด็ๅ
ณ็ณป๏ผๆฏๅฆไธ่ด๏ผ โ
|
| 137 |
+
โ โ
|
| 138 |
+
โ CLS Vector: [0.234, -0.567, ..., 0.123] (768 ็ปด) โ
|
| 139 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 140 |
+
|
| 141 |
+
โ
|
| 142 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 143 |
+
โ Step 5: ไบๅ็ฑปๅคด (Binary Classification Head) โ
|
| 144 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 145 |
+
โ โ
|
| 146 |
+
โ ๅ
จ่ฟๆฅๅฑ: 768 โ 2 โ
|
| 147 |
+
โ โ
|
| 148 |
+
โ Logits: [1.2, 3.8] โ
|
| 149 |
+
โ โ โ โ
|
| 150 |
+
โ Factual Hallucinated โ
|
| 151 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 152 |
+
|
| 153 |
+
โ
|
| 154 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 155 |
+
โ Step 6: Softmax ๅฝไธๅ โ
|
| 156 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 157 |
+
โ โ
|
| 158 |
+
โ Probabilities: โ
|
| 159 |
+
โ Factual: 0.12 (12%) โ ไฝ๏ผ โ
|
| 160 |
+
โ Hallucinated: 0.88 (88%) โ ้ซ๏ผๅนป่งๆฆ็ โ
|
| 161 |
+
โ โ
|
| 162 |
+
โ Sum = 1.0 โ
|
| 163 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 164 |
+
|
| 165 |
+
โ
|
| 166 |
+
ๆ็ป่พๅบ:
|
| 167 |
+
{
|
| 168 |
+
"factuality_score": 0.12, # ๅบไบไบๅฎ็ๆฆ็
|
| 169 |
+
"hallucination_score": 0.88, # ๅนป่ง็ๆฆ็
|
| 170 |
+
"has_hallucination": True # ๆฏๅฆๅคๅฎไธบๅนป่ง
|
| 171 |
+
}
|
| 172 |
+
|
| 173 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 174 |
+
""")
|
| 175 |
+
|
| 176 |
+
|
| 177 |
+
# ============================================================================
|
| 178 |
+
# Part 3: ่ฎญ็ปๆฐๆฎๅๆนๆณ
|
| 179 |
+
# ============================================================================
|
| 180 |
+
print("\n" + "=" * 80)
|
| 181 |
+
print("๐ Part 3: HHEM ็่ฎญ็ปๆฐๆฎๅๆนๆณ")
|
| 182 |
+
print("=" * 80)
|
| 183 |
+
|
| 184 |
+
print("""
|
| 185 |
+
่ฎญ็ปๆฐๆฎ้ๆๆ๏ผ
|
| 186 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 187 |
+
|
| 188 |
+
HHEM ๅจไธ้จ็ๅนป่งๆฐๆฎ้ไธ่ฎญ็ป๏ผๅ
ๆฌ๏ผ
|
| 189 |
+
|
| 190 |
+
1. Positive ๆ ทๆฌ (Factual - ๆ ๅนป่ง):
|
| 191 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 192 |
+
Document: "OpenAI ๅจ 2022 ๅนด 11 ๆๅๅธไบ ChatGPTใ"
|
| 193 |
+
Generation: "ChatGPT ๆฏ OpenAI ๅจ 2022 ๅนดๅๅธ็ใ"
|
| 194 |
+
Label: Factual โ
|
| 195 |
+
|
| 196 |
+
Document: "Python ๆฏไธ็ง้ซ็บง็ผ็จ่ฏญ่จใ"
|
| 197 |
+
Generation: "Python ๆฏ็ผ็จ่ฏญ่จใ"
|
| 198 |
+
Label: Factual โ
|
| 199 |
+
|
| 200 |
+
|
| 201 |
+
2. Negative ๆ ทๆฌ (Hallucinated - ๆๅนป่ง):
|
| 202 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 203 |
+
|
| 204 |
+
็ฑปๅ A: ๆทปๅ ไฟกๆฏ๏ผๆๆกฃไธญๆฒกๆ๏ผ
|
| 205 |
+
Document: "AlphaCodium ๆฏไธ็งไปฃ็ ็ๆๆนๆณใ"
|
| 206 |
+
Generation: "AlphaCodium ๆฏ Google ๅผๅ็ไปฃ็ ็ๆๆนๆณใ"
|
| 207 |
+
โ ๆทปๅ ไบ "Google"
|
| 208 |
+
Label: Hallucinated โ
|
| 209 |
+
|
| 210 |
+
็ฑปๅ B: ไฟฎๆนไฟกๆฏ๏ผไธๆๆกฃ็็พ๏ผ
|
| 211 |
+
Document: "่ฟ็ฏ่ฎบๆๅ่กจไบ 2023 ๅนดใ"
|
| 212 |
+
Generation: "่ฟ็ฏ่ฎบๆๅ่กจไบ 2024 ๅนดใ"
|
| 213 |
+
โ ๅนดไปฝ้่ฏฏ
|
| 214 |
+
Label: Hallucinated โ
|
| 215 |
+
|
| 216 |
+
็ฑปๅ C: ็ผ้ ็ป่
|
| 217 |
+
Document: "ๆบๅจๅญฆไน ๆฏ AI ็ไธไธชๅๆฏใ"
|
| 218 |
+
Generation: "ๆบๅจๅญฆไน ๆฏ AI ็ไธไธชๅๆฏ๏ผ็ฑ Alan Turing ๆๅบใ"
|
| 219 |
+
โ ็ผ้ ไบๆๅบ่
|
| 220 |
+
Label: Hallucinated โ
|
| 221 |
+
|
| 222 |
+
|
| 223 |
+
3. ๆฐๆฎๆฅๆบ:
|
| 224 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 225 |
+
- ็ๅฎ็ RAG ็ณป็ป่พๅบ๏ผๆ ๆณจๅนป่ง๏ผ
|
| 226 |
+
- ๅๆๆฐๆฎ๏ผไบบๅทฅๆ้ ๅนป่งๆ ทๆฌ๏ผ
|
| 227 |
+
- ๅ
ฌๅผ็ NLI ๆฐๆฎ้๏ผ่ฝฌๆขไธบๅนป่งๆฃๆตไปปๅก๏ผ
|
| 228 |
+
- ๆป้๏ผ็บฆ 10 ไธ+ ๆ ทๆฌๅฏน
|
| 229 |
+
|
| 230 |
+
|
| 231 |
+
่ฎญ็ป็ฎๆ ๏ผ
|
| 232 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 233 |
+
|
| 234 |
+
Loss = CrossEntropyLoss(predictions, labels)
|
| 235 |
+
|
| 236 |
+
ๅ
ถไธญ:
|
| 237 |
+
predictions = [P(Factual), P(Hallucinated)]
|
| 238 |
+
labels = [1, 0] ๆ [0, 1]
|
| 239 |
+
|
| 240 |
+
ๆจกๅๅญฆไน :
|
| 241 |
+
- ๅฝ Generation ไธญ็ไฟกๆฏๅจ Document ไธญๆพไธๅฐ โ Hallucinated
|
| 242 |
+
- ๅฝ Generation ไธ Document ็็พ โ Hallucinated
|
| 243 |
+
- ๅฝ Generation ๅ็กฎๅๆ Document โ Factual
|
| 244 |
+
|
| 245 |
+
|
| 246 |
+
ไผๅ่ฟ็จ:
|
| 247 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 248 |
+
|
| 249 |
+
Epoch 1: ๅ็กฎ็ 70% (ๆจกๅๅผๅงๅญฆไน ๅบๆฌๆจกๅผ)
|
| 250 |
+
Epoch 5: ๅ็กฎ็ 85% (ๅญฆไผ่ฏๅซๆๆพ็็พ)
|
| 251 |
+
Epoch 10: ๅ็กฎ็ 92% (ๅญฆไผ่ฏๅซ็ปๅพฎๅนป่ง)
|
| 252 |
+
Epoch 15: ๅ็กฎ็ 95% (ๆถๆ)
|
| 253 |
+
|
| 254 |
+
ๆ็ปๆจกๅๆง่ฝ:
|
| 255 |
+
- ๅ็กฎ็: 95%
|
| 256 |
+
- ๅฌๅ็: 93%
|
| 257 |
+
- F1 Score: 94%
|
| 258 |
+
""")
|
| 259 |
+
|
| 260 |
+
|
| 261 |
+
# ============================================================================
|
| 262 |
+
# Part 4: ไฝ ็้กน็ฎไธญ็ๅฎ้
ไฝฟ็จ
|
| 263 |
+
# ============================================================================
|
| 264 |
+
print("\n" + "=" * 80)
|
| 265 |
+
print("๐ป Part 4: ไฝ ็้กน็ฎไธญ็ HHEM ไฝฟ็จๆนๅผ")
|
| 266 |
+
print("=" * 80)
|
| 267 |
+
|
| 268 |
+
print("""
|
| 269 |
+
ไปฃ็ ไฝ็ฝฎ: hallucination_detector.py ็ฌฌ 19-89 ่ก
|
| 270 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 271 |
+
|
| 272 |
+
class VectaraHallucinationDetector:
|
| 273 |
+
def __init__(self):
|
| 274 |
+
self.model_name = "vectara/hallucination_evaluation_model"
|
| 275 |
+
|
| 276 |
+
# ๅ ่ฝฝ tokenizer ๅๆจกๅ
|
| 277 |
+
self.tokenizer = AutoTokenizer.from_pretrained(self.model_name)
|
| 278 |
+
self.model = AutoModelForSequenceClassification.from_pretrained(
|
| 279 |
+
self.model_name
|
| 280 |
+
)
|
| 281 |
+
self.model.eval() # ่ฏไผฐๆจกๅผ
|
| 282 |
+
|
| 283 |
+
# GPU/CPU
|
| 284 |
+
self.device = "cuda" if torch.cuda.is_available() else "cpu"
|
| 285 |
+
self.model.to(self.device)
|
| 286 |
+
|
| 287 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 288 |
+
|
| 289 |
+
ๆฃๆตๆต็จ๏ผdetect ๆนๆณ๏ผ:
|
| 290 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 291 |
+
|
| 292 |
+
def detect(self, generation: str, documents: str):
|
| 293 |
+
# ่พๅ
ฅ
|
| 294 |
+
generation = "AlphaCodium ๆฏ Google ๅผๅ็..."
|
| 295 |
+
documents = "AlphaCodium ๆฏไธ็งไปฃ็ ็ๆๆนๆณ..."
|
| 296 |
+
|
| 297 |
+
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 298 |
+
# Step 1: ๆๆฌๆผๆฅๅๅ่ฏ
|
| 299 |
+
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 300 |
+
inputs = self.tokenizer(
|
| 301 |
+
documents, # ็ฌฌไธๆฎต: ๆๆกฃ
|
| 302 |
+
generation, # ็ฌฌไบๆฎต: ็ๆ
|
| 303 |
+
return_tensors="pt", # ่ฟๅ PyTorch tensor
|
| 304 |
+
truncation=True, # ่ชๅจๆชๆญ
|
| 305 |
+
max_length=512, # ๆๅคง้ฟๅบฆ
|
| 306 |
+
padding=True # ๅกซๅ
|
| 307 |
+
).to(self.device)
|
| 308 |
+
|
| 309 |
+
# inputs ๅ
ๅซ:
|
| 310 |
+
# {
|
| 311 |
+
# 'input_ids': tensor([[101, 2945, ..., 102]]),
|
| 312 |
+
# 'attention_mask': tensor([[1, 1, ..., 1]]),
|
| 313 |
+
# 'token_type_ids': tensor([[0, 0, ..., 1, 1]])
|
| 314 |
+
# โ Documents โ Generation
|
| 315 |
+
# }
|
| 316 |
+
|
| 317 |
+
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 318 |
+
# Step 2: ๆจกๅๆจ็
|
| 319 |
+
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 320 |
+
with torch.no_grad(): # ไธ่ฎก็ฎๆขฏๅบฆ๏ผๆจ็ๆจกๅผ๏ผ
|
| 321 |
+
outputs = self.model(**inputs)
|
| 322 |
+
logits = outputs.logits # ๅๅง่พๅบ logits
|
| 323 |
+
probs = torch.softmax(logits, dim=-1) # Softmax ๅฝไธๅ
|
| 324 |
+
|
| 325 |
+
# logits: tensor([[1.2, 3.8]])
|
| 326 |
+
# โ โ
|
| 327 |
+
# Factual Hallucinated
|
| 328 |
+
|
| 329 |
+
# probs: tensor([[0.12, 0.88]])
|
| 330 |
+
# โ โ
|
| 331 |
+
# 12%ไบๅฎ 88%ๅนป่ง
|
| 332 |
+
|
| 333 |
+
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 334 |
+
# Step 3: ๆๅๅๆฐ
|
| 335 |
+
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 336 |
+
factuality_score = probs[0][0].item() # 0.12
|
| 337 |
+
hallucination_score = probs[0][1].item() # 0.88
|
| 338 |
+
|
| 339 |
+
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 340 |
+
# Step 4: ๅคๆญๆฏๅฆๅนป่ง
|
| 341 |
+
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 342 |
+
has_hallucination = hallucination_score > 0.5 # ้ๅผ 0.5
|
| 343 |
+
|
| 344 |
+
# ่ฟๅ็ปๆ
|
| 345 |
+
return {
|
| 346 |
+
"has_hallucination": True, # ๆๅนป่ง
|
| 347 |
+
"hallucination_score": 0.88, # ๅนป่งๆฆ็ 88%
|
| 348 |
+
"factuality_score": 0.12 # ไบๅฎๆฆ็ 12%
|
| 349 |
+
}
|
| 350 |
+
|
| 351 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 352 |
+
|
| 353 |
+
ๅฎ้
่ฟ่ก็คบไพ:
|
| 354 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 355 |
+
|
| 356 |
+
# ๅบๆฏ1: ๆ ๅนป่ง
|
| 357 |
+
documents = "Prompt Engineering ๆฏไธ็งไผๅๆ็คบ็ๆนๆณใ"
|
| 358 |
+
generation = "Prompt Engineering ็จไบไผๅๆ็คบใ"
|
| 359 |
+
|
| 360 |
+
result = detector.detect(generation, documents)
|
| 361 |
+
# {
|
| 362 |
+
# "has_hallucination": False,
|
| 363 |
+
# "hallucination_score": 0.05, โ 5% ๅนป่งๆฆ็๏ผๅพไฝ๏ผ
|
| 364 |
+
# "factuality_score": 0.95 โ 95% ไบๅฎๆฆ็๏ผๅพ้ซ๏ผ
|
| 365 |
+
# }
|
| 366 |
+
|
| 367 |
+
|
| 368 |
+
# ๅบๆฏ2: ๆๅนป่ง
|
| 369 |
+
documents = "AlphaCodium ๆฏไธ็งไปฃ็ ็ๆๆนๆณใ"
|
| 370 |
+
generation = "AlphaCodium ๆฏ Google ๅจ 2024 ๅนดๅๅธ็ใ"
|
| 371 |
+
|
| 372 |
+
result = detector.detect(generation, documents)
|
| 373 |
+
# {
|
| 374 |
+
# "has_hallucination": True,
|
| 375 |
+
# "hallucination_score": 0.85, โ 85% ๅนป่งๆฆ็๏ผๅพ้ซ๏ผ
|
| 376 |
+
# "factuality_score": 0.15 โ 15% ไบๅฎๆฆ็๏ผๅพไฝ๏ผ
|
| 377 |
+
# }
|
| 378 |
+
""")
|
| 379 |
+
|
| 380 |
+
|
| 381 |
+
# ============================================================================
|
| 382 |
+
# Part 5: HHEM vs NLI ๅฏนๆฏ
|
| 383 |
+
# ============================================================================
|
| 384 |
+
print("\n" + "=" * 80)
|
| 385 |
+
print("โ๏ธ Part 5: HHEM vs NLI - ่ฏฆ็ปๅฏนๆฏ")
|
| 386 |
+
print("=" * 80)
|
| 387 |
+
|
| 388 |
+
print("""
|
| 389 |
+
ๆถๆๅฏนๆฏ:
|
| 390 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 391 |
+
|
| 392 |
+
็นๅพ HHEM NLI
|
| 393 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 394 |
+
ๅบ็กๆถๆ BERT Cross-Encoder DeBERTa Cross-Encoder
|
| 395 |
+
ๅๆฐ้ 110M 22M
|
| 396 |
+
่พๅบ็ฑปๅซ 2 ็ฑป (Factual/Hallucinated) 3 ็ฑป (E/N/C)
|
| 397 |
+
่ฎญ็ปๆฐๆฎ ๅนป่งๆฃๆตๆ ทๆฌ ้ป่พๆจ็ๆ ทๆฌ
|
| 398 |
+
่ฎญ็ป็ฎๆ ๆฃๆตๅนป่ง ๅคๆญ้ป่พๅ
ณ็ณป
|
| 399 |
+
ๆจกๅๅคงๅฐ 420MB 40MB
|
| 400 |
+
ๆจ็้ๅบฆ 100-150ms 50-100ms
|
| 401 |
+
ๅ็กฎ็(ๅนป่งๆฃๆต) 95% 85%
|
| 402 |
+
้็จๆง ไธ็จ๏ผๅนป่งๆฃๆต๏ผ ้็จ๏ผNLI ไปปๅก๏ผ
|
| 403 |
+
|
| 404 |
+
|
| 405 |
+
ไฝฟ็จๅบๆฏๅฏนๆฏ:
|
| 406 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 407 |
+
|
| 408 |
+
็คบไพ่พๅ
ฅ:
|
| 409 |
+
Documents: "Python ๆฏไธ็ง็ผ็จ่ฏญ่จใ"
|
| 410 |
+
Generation: "Python ๆฏ Guido ๅๆ็็ผ็จ่ฏญ่จใ"
|
| 411 |
+
โ "Guido" ๆฏๆฐๅขไฟกๆฏ๏ผๆๆกฃไธญๆฒกๆ๏ผ
|
| 412 |
+
|
| 413 |
+
|
| 414 |
+
HHEM ็ๅคๆญ:
|
| 415 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 416 |
+
โ hallucination_score = 0.65 (65%)
|
| 417 |
+
โ ๅคๆญ: ๆๅนป่ง โ ๏ธ
|
| 418 |
+
็็ฑ: "Guido" ่ฟไธชไฟกๆฏๅจๆๆกฃไธญๆพไธๅฐ
|
| 419 |
+
|
| 420 |
+
|
| 421 |
+
NLI ็ๅคๆญ:
|
| 422 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 423 |
+
โ label = "Neutral" (ๆฆ็ 0.70)
|
| 424 |
+
โ ๅคๆญ: ไธญ็ซ๏ผๅฏ่ฝๆฏๅนป่ง๏ผไนๅฏ่ฝๆฏๅธธ่ฏๆจ็๏ผ
|
| 425 |
+
็็ฑ: ๆๆกฃไธญๆฒกๆๆๅฐ Guido๏ผไฝไนไธ็็พ
|
| 426 |
+
|
| 427 |
+
|
| 428 |
+
ๅฏนๆฏ:
|
| 429 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 430 |
+
HHEM: ๆดไธฅๆ ผ๏ผๅฏนๆฐๅขไฟกๆฏๆๆ โ
|
| 431 |
+
NLI: ๆดๅฎฝๆพ๏ผNeutral ไธไธๅฎๆฏๅนป่ง
|
| 432 |
+
|
| 433 |
+
|
| 434 |
+
ๅฆไธไธชไพๅญ - ๆๆพ็็พ:
|
| 435 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 436 |
+
|
| 437 |
+
Documents: "่ฟ็ฏ่ฎบๆๅ่กจไบ 2023 ๅนดใ"
|
| 438 |
+
Generation: "่ฟ็ฏ่ฎบๆๅ่กจไบ 2024 ๅนดใ"
|
| 439 |
+
|
| 440 |
+
|
| 441 |
+
HHEM:
|
| 442 |
+
โ hallucination_score = 0.95 (95%)
|
| 443 |
+
โ ๅคๆญ: ๆๅนป่ง โ
|
| 444 |
+
|
| 445 |
+
NLI:
|
| 446 |
+
โ label = "Contradiction" (0.92)
|
| 447 |
+
โ ๅคๆญ: ็็พ โ
|
| 448 |
+
|
| 449 |
+
ไธค่
้ฝ่ฝๆฃๆตๅฐ๏ผโ
|
| 450 |
+
|
| 451 |
+
|
| 452 |
+
ๆง่ฝๅฏนๆฏ่กจๆ ผ:
|
| 453 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 454 |
+
|
| 455 |
+
ๅนป่ง็ฑปๅ HHEMๆฃๆต็ NLIๆฃๆต็ ไผๅฟ
|
| 456 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 457 |
+
ๆๆพ็็พ 99% 98% ๆๅนณ
|
| 458 |
+
ๆทปๅ ไฟกๆฏ 95% 75% HHEM โญ
|
| 459 |
+
ไฟฎๆน็ป่ 93% 70% HHEM โญ
|
| 460 |
+
็ผ้ ๅ
ณ็ณป 90% 65% HHEM โญ
|
| 461 |
+
ๆถ้ด้่ฏฏ 98% 95% HHEM
|
| 462 |
+
ๆฐๅญ้่ฏฏ 97% 92% HHEM
|
| 463 |
+
|
| 464 |
+
ๆปไฝๅนณๅ: 95% 82% HHEM โญโญโญ
|
| 465 |
+
""")
|
| 466 |
+
|
| 467 |
+
|
| 468 |
+
# ============================================================================
|
| 469 |
+
# Part 6: ๆททๅๆฃๆต็ญ็ฅ๏ผไฝ ็้กน็ฎ๏ผ
|
| 470 |
+
# ============================================================================
|
| 471 |
+
print("\n" + "=" * 80)
|
| 472 |
+
print("๐ Part 6: ๆททๅๆฃๆต็ญ็ฅ - Vectara + NLI")
|
| 473 |
+
print("=" * 80)
|
| 474 |
+
|
| 475 |
+
print("""
|
| 476 |
+
ไฝ ็้กน็ฎ้็จ็ๆททๅ็ญ็ฅ:
|
| 477 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 478 |
+
|
| 479 |
+
ไปฃ็ ไฝ็ฝฎ: hallucination_detector.py HybridHallucinationDetector
|
| 480 |
+
|
| 481 |
+
ๆต็จๅพ:
|
| 482 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 483 |
+
|
| 484 |
+
่พๅ
ฅ: generation, documents
|
| 485 |
+
โ
|
| 486 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 487 |
+
โ Step 1: ๅฐ่ฏ Vectara (ไผๅ
๏ผๅ็กฎ็ๆ้ซ) โ
|
| 488 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 489 |
+
โ โ
|
| 490 |
+
โ if vectara_available: โ
|
| 491 |
+
โ result = vectara.detect(generation, documents) โ
|
| 492 |
+
โ โ
|
| 493 |
+
โ if hallucination_score > 0.3: # ้ๅผ 30% โ
|
| 494 |
+
โ โ ๆฃๆตๅฐๅนป่ง๏ผ็ดๆฅ่ฟๅ โ โ
|
| 495 |
+
โ โ method_used = 'vectara' โ
|
| 496 |
+
โ โ confidence = hallucination_score โ
|
| 497 |
+
โ else: โ
|
| 498 |
+
โ โ ๆชๆฃๆตๅฐ๏ผ็ปง็ปญ NLI ไบๆฌก็กฎ่ฎค โ
|
| 499 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 500 |
+
โ
|
| 501 |
+
โโโโโโโโ๏ฟฝ๏ฟฝโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 502 |
+
โ Step 2: NLI ไบๆฌก็กฎ่ฎค๏ผๆดๅฟซ๏ผ่ฝป้๏ผ โ
|
| 503 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 504 |
+
โ โ
|
| 505 |
+
โ result = nli.detect(generation, documents) โ
|
| 506 |
+
โ โ
|
| 507 |
+
โ ็ป่ฎก: โ
|
| 508 |
+
โ contradiction_ratio = contradiction / total โ
|
| 509 |
+
โ neutral_ratio = neutral / total โ
|
| 510 |
+
โ โ
|
| 511 |
+
โ if contradiction_ratio > 0.3 or neutral_ratio > 0.8: โ
|
| 512 |
+
โ โ ๆฃๆตๅฐๅนป่ง โ โ
|
| 513 |
+
โ โ method_used = 'nli' โ
|
| 514 |
+
โ else: โ
|
| 515 |
+
โ โ ๆชๆฃๆตๅฐๅนป่ง โ
โ
|
| 516 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 517 |
+
โ
|
| 518 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 519 |
+
โ Step 3: ็ปผๅๅคๆญ๏ผๅฆๆไธคไธช้ฝๆ็ปๆ๏ผ โ
|
| 520 |
+
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
|
| 521 |
+
โ โ
|
| 522 |
+
โ if vectara_result and nli_result: โ
|
| 523 |
+
โ if both_detect_hallucination: โ
|
| 524 |
+
โ โ ้ซ็ฝฎไฟกๅบฆๅนป่ง โโ โ
|
| 525 |
+
โ โ method_used = 'vectara+nli' โ
|
| 526 |
+
โ elif only_one_detects: โ
|
| 527 |
+
โ โ ไธญ็ฝฎไฟกๅบฆๅนป่ง โ ๏ธ โ
|
| 528 |
+
โ else: โ
|
| 529 |
+
โ โ ๆ ๅนป่ง โ
โ
โ
|
| 530 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 531 |
+
|
| 532 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 533 |
+
|
| 534 |
+
ไผๅฟๅๆ:
|
| 535 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 536 |
+
|
| 537 |
+
1. ๅ็กฎ็ๆๅคงๅ
|
| 538 |
+
Vectara (95%) + NLI (85%) โ ็ปผๅ 97%
|
| 539 |
+
|
| 540 |
+
2. ้ๅบฆไผๅ
|
| 541 |
+
- Vectara ๆฃๆตๅฐๅนป่ง โ ็ซๅณ่ฟๅ๏ผไธ่ฟ่ก NLI๏ผ
|
| 542 |
+
- ๅชๅจไธ็กฎๅฎๆถๆ็จ NLI ไบๆฌก็กฎ่ฎค
|
| 543 |
+
|
| 544 |
+
3. ้ฒๆฃๆง
|
| 545 |
+
- Vectara ๅ ่ฝฝๅคฑ่ดฅ โ ่ชๅจ้็บงๅฐ NLI
|
| 546 |
+
- NLI ไนๅคฑ่ดฅ โ ๅ้ๅฐ LLM ๆนๆณ
|
| 547 |
+
|
| 548 |
+
4. ๅฏ่งฃ้ๆง
|
| 549 |
+
- method_used ๅญๆฎตๆ็กฎๆพ็คบไฝฟ็จไบๅชไธชๆจกๅ
|
| 550 |
+
- confidence ๅญๆฎตๆพ็คบ็ฝฎไฟกๅบฆ
|
| 551 |
+
|
| 552 |
+
|
| 553 |
+
ๅฎ้
ๆๆ:
|
| 554 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 555 |
+
|
| 556 |
+
ๅบๆฏ1: ๆๆพๅนป่ง
|
| 557 |
+
Vectara: ๆฃๆตๅฐ (0.92) โ ็ดๆฅ่ฟๅ โ
|
| 558 |
+
NLI: ไธ่ฟ่ก๏ผ็ๆถ้ด๏ผ
|
| 559 |
+
็ปๆ: ๆฃๆตๅฐๅนป่ง๏ผmethod='vectara'
|
| 560 |
+
|
| 561 |
+
ๅบๆฏ2: ไธ็กฎๅฎ
|
| 562 |
+
Vectara: ๅๆฐ 0.25 (< 0.3 ้ๅผ) โ ไธ็กฎๅฎ
|
| 563 |
+
NLI: ็ปง็ปญๆฃๆต โ neutral_ratio = 0.6 (< 0.8) โ ๆ ๅนป่ง
|
| 564 |
+
็ปๆ: ๆชๆฃๆตๅฐๅนป่ง๏ผmethod='nli'
|
| 565 |
+
|
| 566 |
+
ๅบๆฏ3: ไธคไธช้ฝๆฃๆตๅฐ
|
| 567 |
+
Vectara: ๆฃๆตๅฐ (0.35)
|
| 568 |
+
NLI: ๆฃๆตๅฐ (contradiction_ratio=0.4)
|
| 569 |
+
็ปๆ: ้ซ็ฝฎไฟกๅบฆๅนป่ง๏ผmethod='vectara+nli'
|
| 570 |
+
""")
|
| 571 |
+
|
| 572 |
+
|
| 573 |
+
# ============================================================================
|
| 574 |
+
# Part 7: ไผ็ผบ็นๆป็ป
|
| 575 |
+
# ============================================================================
|
| 576 |
+
print("\n" + "=" * 80)
|
| 577 |
+
print("๐ Part 7: HHEM ไผ็ผบ็นๆป็ป")
|
| 578 |
+
print("=" * 80)
|
| 579 |
+
|
| 580 |
+
print("""
|
| 581 |
+
HHEM ็ไผ็น โ
|
| 582 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 583 |
+
|
| 584 |
+
1. ไธ้จไธบๅนป่งๆฃๆต่ฎพ่ฎก
|
| 585 |
+
- ่ฎญ็ปๆฐๆฎๅ
จๆฏๅนป่งๆ ทๆฌ
|
| 586 |
+
- ๆฏ้็จ NLI ๅ็กฎ 10%
|
| 587 |
+
|
| 588 |
+
2. ็ดๆฅ่พๅบๅนป่งๆฆ็
|
| 589 |
+
- factuality_score + hallucination_score = 1
|
| 590 |
+
- ไธ้่ฆ้ขๅค็้ป่พๅคๆญ
|
| 591 |
+
|
| 592 |
+
3. ๅฏน็ปๅพฎๅนป่งๆๆ
|
| 593 |
+
- ่ฝๆฃๆตๅฐๆทปๅ ็ๅฐไฟกๆฏ
|
| 594 |
+
- ่ฝๆฃๆตๅฐ็ป่ไฟฎๆน
|
| 595 |
+
|
| 596 |
+
4. ่พๅบๆธ
ๆฐ
|
| 597 |
+
- ไบๅ็ฑป๏ผๆฏ/ๅฆ๏ผ
|
| 598 |
+
- ๆฆ็ๅผ็ด่ง
|
| 599 |
+
|
| 600 |
+
5. ๅจ RAG ๅบๆฏไธ่กจ็ฐๆๅฅฝ
|
| 601 |
+
- ไธ้จ้ๅฏน RAG ไผๅ
|
| 602 |
+
- ๅ็กฎ็ 90-95%
|
| 603 |
+
|
| 604 |
+
|
| 605 |
+
HHEM ็็ผบ็น โ
|
| 606 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 607 |
+
|
| 608 |
+
1. ๆจกๅ่พๅคง
|
| 609 |
+
- 420MB vs NLI ็ 40MB
|
| 610 |
+
- ไธ่ฝฝๅๅ ่ฝฝๆดๆ
ข
|
| 611 |
+
|
| 612 |
+
2. ๆจ็็จๆ
ข
|
| 613 |
+
- 100-150ms vs NLI ็ 50-100ms
|
| 614 |
+
- ๅๆฐๅคๅฏผ่ด่ฎก็ฎ้ๅคง
|
| 615 |
+
|
| 616 |
+
3. ๅฏ่ฝ่ฟไบไธฅๆ ผ
|
| 617 |
+
- ๅฏนๅ็ๆจ็ไนๅฏ่ฝๆ ่ฎฐไธบๅนป่ง
|
| 618 |
+
- ไพๅฆ: "Python ๆฏ็ผ็จ่ฏญ่จ" โ "Python ็จไบๅผๅ่ฝฏไปถ"
|
| 619 |
+
ๅฏ่ฝ่ขซๆ ่ฎฐไธบๅนป่ง๏ผ่ฝ็ถๆฏๅ็ๆจ็๏ผ
|
| 620 |
+
|
| 621 |
+
4. ไธๅค้็จ
|
| 622 |
+
- ๅช่ฝๅๅนป่งๆฃๆต
|
| 623 |
+
- NLI ๆจกๅๅฏไปฅ็จไบๅ
ถไปไปปๅก
|
| 624 |
+
|
| 625 |
+
5. ๅฏ่ฝๅ ่ฝฝๅคฑ่ดฅ
|
| 626 |
+
- ๆจกๅ่พๅคง๏ผๅจๆไบ็ฏๅขๅฏ่ฝๅ ่ฝฝๅคฑ่ดฅ
|
| 627 |
+
- ้่ฆๅ้็ญ็ฅ๏ผไฝ ็้กน็ฎๅไบ่ฟไธช๏ผ
|
| 628 |
+
|
| 629 |
+
|
| 630 |
+
ๆไฝณๅฎ่ทตๅปบ่ฎฎ ๐ก
|
| 631 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 632 |
+
|
| 633 |
+
โ
ๆททๅไฝฟ็จ๏ผไฝ ็้กน็ฎๅทฒ็ปๅไบ๏ผ
|
| 634 |
+
Vectara (้ซๅ็กฎ็) + NLI (ๅฟซ้่ฝป้) = ๆไฝณๆนๆก
|
| 635 |
+
|
| 636 |
+
โ
่ฎพ็ฝฎๅ็้ๅผ
|
| 637 |
+
- Vectara: hallucination_score > 0.3
|
| 638 |
+
- ไธ่ฆ่ฎพไธบ 0.5๏ผๅคชไธฅๆ ผ๏ผ
|
| 639 |
+
|
| 640 |
+
โ
ๆทปๅ ๅ้ๆบๅถ
|
| 641 |
+
Vectara ๅ ่ฝฝๅคฑ่ดฅ โ NLI โ LLM
|
| 642 |
+
|
| 643 |
+
โ
ๆ นๆฎๅบๆฏ้ๆฉ
|
| 644 |
+
- ๅฏนๅ็กฎ็่ฆๆฑ้ซ โ Vectara
|
| 645 |
+
- ๅฏน้ๅบฆ่ฆๆฑ้ซ โ NLI
|
| 646 |
+
- ็ไบง็ฏๅข โ ๆททๅ
|
| 647 |
+
""")
|
| 648 |
+
|
| 649 |
+
|
| 650 |
+
# ============================================================================
|
| 651 |
+
# Part 8: ๆป็ป
|
| 652 |
+
# ============================================================================
|
| 653 |
+
print("\n" + "=" * 80)
|
| 654 |
+
print("๐ Part 8: ๆ ธๅฟ่ฆ็นๆป็ป")
|
| 655 |
+
print("=" * 80)
|
| 656 |
+
|
| 657 |
+
print("""
|
| 658 |
+
HHEM (vectara/hallucination_evaluation_model) ๆป็ป:
|
| 659 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 660 |
+
|
| 661 |
+
1. ๅฎไฝ
|
| 662 |
+
ไธ้จ็ๅนป่งๆฃๆตๆจกๅ๏ผไธๆฏ้็จ NLI๏ผ
|
| 663 |
+
|
| 664 |
+
2. ๆถๆ
|
| 665 |
+
BERT-based Cross-Encoder
|
| 666 |
+
- ่ๅ็ผ็ Documents + Generation
|
| 667 |
+
- ไบๅ็ฑป: Factual vs Hallucinated
|
| 668 |
+
|
| 669 |
+
3. ่ฎญ็ป
|
| 670 |
+
ไธ้จ็ๅนป่งๆ ทๆฌ๏ผ10ไธ+๏ผ
|
| 671 |
+
- ๆทปๅ ไฟกๆฏๅๅนป่ง
|
| 672 |
+
- ไฟฎๆนไฟกๆฏๅๅนป่ง
|
| 673 |
+
- ็็พๅๅนป่ง
|
| 674 |
+
|
| 675 |
+
4. ่พๅบ
|
| 676 |
+
{
|
| 677 |
+
"factuality_score": 0.12, # ไบๅฎๆฆ็
|
| 678 |
+
"hallucination_score": 0.88, # ๅนป่งๆฆ็
|
| 679 |
+
"has_hallucination": True # ๅคๆญ็ปๆ
|
| 680 |
+
}
|
| 681 |
+
|
| 682 |
+
5. ๆง่ฝ
|
| 683 |
+
โ
ๅ็กฎ็: 95%๏ผๅนป่งๆฃๆต๏ผ
|
| 684 |
+
โ ๏ธ ้ๅบฆ: 100-150ms
|
| 685 |
+
โ ๏ธ ๅคงๅฐ: 420MB
|
| 686 |
+
|
| 687 |
+
6. vs NLI
|
| 688 |
+
| ๆๆ | HHEM | NLI |
|
| 689 |
+
|------|------|-----|
|
| 690 |
+
| ๅ็กฎ็ | 95% | 85% | โ HHEM ่ตข
|
| 691 |
+
| ้ๅบฆ | ๆ
ข | ๅฟซ | โ NLI ่ตข
|
| 692 |
+
| ๅคงๅฐ | ๅคง | ๅฐ | โ NLI ่ตข
|
| 693 |
+
| ไธ็จๆง | ไธ็จ | ้็จ | โ ๅๆไผๅฟ
|
| 694 |
+
|
| 695 |
+
7. ไฝ ็้กน็ฎ
|
| 696 |
+
โ
ๆททๅ็ญ็ฅ: Vectara + NLI
|
| 697 |
+
โ
ไผๅ
Vectara๏ผๅ็กฎ๏ผ
|
| 698 |
+
โ
ๅ้ NLI๏ผๅฟซ้๏ผ
|
| 699 |
+
โ
่ชๅจ้็บง๏ผ้ฒๆฃ๏ผ
|
| 700 |
+
|
| 701 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 702 |
+
|
| 703 |
+
ไฝ ็้กน็ฎๅฎ็ฐๆฏไธ็ๆไฝณๅฎ่ทต๏ผ๐
|
| 704 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 705 |
+
""")
|
| 706 |
+
|
| 707 |
+
print("\n" + "=" * 80)
|
| 708 |
+
print("โ
Vectara HHEM ๆจกๅๅ็่ฎฒ่งฃๅฎๆฏ๏ผ")
|
| 709 |
+
print("=" * 80)
|
| 710 |
+
print()
|