Spaces:
Paused
Paused
| """ | |
| NLI ๅนป่งๆฃๆตๅ็่ฏฆ่งฃ | |
| cross-encoder/nli-deberta-v3-xsmall ๆจกๅๅฆไฝๆฃๆต RAG ไธญ็ๅนป่ง | |
| """ | |
| print("=" * 80) | |
| print("NLI ๅนป่งๆฃๆตๅ็ - ไป้ถๅผๅง็่งฃ") | |
| print("=" * 80) | |
| # ============================================================================ | |
| # Part 1: ไปไนๆฏ NLI (Natural Language Inference)? | |
| # ============================================================================ | |
| print("\n" + "=" * 80) | |
| print("๐ Part 1: ไปไนๆฏ NLI (่ช็ถ่ฏญ่จๆจ็)?") | |
| print("=" * 80) | |
| print(""" | |
| NLI ็ๆ ธๅฟไปปๅก๏ผ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| ็ปๅฎไธคๆฎตๆๆฌ๏ผ | |
| - Premise (ๅๆ): ๅทฒ็ฅ็ไบๅฎ/ๆๆกฃ | |
| - Hypothesis (ๅ่ฎพ): ๅพ ้ช่ฏ็้่ฟฐ | |
| ๅคๆญๅฎไปฌไน้ด็ๅ ณ็ณป๏ผ | |
| 1๏ธโฃ Entailment (่ดๅซ): Hypothesis ๅฏไปฅไป Premise ๆจๅฏผๅบๆฅ | |
| 2๏ธโฃ Contradiction (็็พ): Hypothesis ไธ Premise ็็พ | |
| 3๏ธโฃ Neutral (ไธญ็ซ): ๆ ๆณ็กฎๅฎ๏ผๆๆกฃไธญๆฒกๆ่ถณๅคไฟกๆฏ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| ไพๅญ 1: Entailment (่ดๅซ) โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| Premise: "ๅฐๆไปๅนด 18 ๅฒ๏ผๆญฃๅจๆธ ๅๅคงๅญฆ่ฏป่ฎก็ฎๆบไธไธใ" | |
| Hypothesis: "ๅฐๆๆฏไธๅๅคงๅญฆ็ใ" | |
| ๅ ณ็ณป: Entailment โ | |
| ่งฃ้: ไป"ๆญฃๅจๆธ ๅๅคงๅญฆ่ฏป่ฎก็ฎๆบไธไธ"ๅฏไปฅๆจๅฏผๅบ"ๆฏๅคงๅญฆ็" | |
| ไพๅญ 2: Contradiction (็็พ) โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| Premise: "ๅฐๆไปๅนด 18 ๅฒ๏ผๆญฃๅจๆธ ๅๅคงๅญฆ่ฏป่ฎก็ฎๆบไธไธใ" | |
| Hypothesis: "ๅฐๆๅทฒ็ป 30 ๅฒไบใ" | |
| ๅ ณ็ณป: Contradiction โ | |
| ่งฃ้: "18ๅฒ" ไธ "30ๅฒ" ็็พ | |
| ไพๅญ 3: Neutral (ไธญ็ซ) โช | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| Premise: "ๅฐๆไปๅนด 18 ๅฒ๏ผๆญฃๅจๆธ ๅๅคงๅญฆ่ฏป่ฎก็ฎๆบไธไธใ" | |
| Hypothesis: "ๅฐๆๅๆฌขๆ็ฏฎ็ใ" | |
| ๅ ณ็ณป: Neutral โช | |
| ่งฃ้: ๆๆกฃไธญๆฒกๆๆๅฐๅฐๆๆฏๅฆๅๆฌขๆ็ฏฎ็๏ผๆ ๆณๅคๆญ | |
| """) | |
| # ============================================================================ | |
| # Part 2: NLI ๅฆไฝ็จไบๅนป่งๆฃๆต? | |
| # ============================================================================ | |
| print("\n" + "=" * 80) | |
| print("๐ Part 2: NLI ๅฆไฝๆฃๆตๅนป่ง?") | |
| print("=" * 80) | |
| print(""" | |
| ๆ ธๅฟๆๆณ๏ผ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| ๅฐ RAG ็ๅนป่งๆฃๆต่ฝฌๅไธบ NLI ไปปๅก๏ผ | |
| Premise (ๅๆ) = ๆฃ็ดขๅฐ็ๆๆกฃ (Documents) | |
| Hypothesis (ๅ่ฎพ) = LLM ็ๆ็็ญๆก (Generation) | |
| ๅคๆญ้ป่พ๏ผ | |
| - Entailment โ ็ญๆกๅบไบๆๆกฃ โ โ ๆ ๅนป่ง | |
| - Contradiction โ ็ญๆกไธๆๆกฃ็็พ โ โ ๆๅนป่ง | |
| - Neutral โ ็ญๆกๆๆกฃไธญๆฒกๆ โ โ ๏ธ ๅฏ่ฝๆฏๅนป่ง | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| RAG ๅบๆฏ็คบไพ๏ผ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| ็จๆท้ฎ้ข: "AlphaCodium ่ฎบๆ่ฎฒ็ๆฏไปไน๏ผ" | |
| ๆฃ็ดขๅฐ็ๆๆกฃ (Premise): | |
| "AlphaCodium ๆฏไธ็งๅบไบไปฃ็ ็ๆ็ๆฐๆนๆณ๏ผ้่ฟ่ฟญไปฃๆน่ฟ | |
| ๆๅ LLM ็ไปฃ็ ่ฝๅใ่ฏฅๆนๆณๅจ CodeContests ๆฐๆฎ้ไธ | |
| ่พพๅฐไบ state-of-the-art ็ๆง่ฝใ" | |
| LLM ็ๆ็็ญๆก (Hypothesis): | |
| "AlphaCodium ๆฏไธ็งๆน่ฟ LLM ไปฃ็ ็ๆ่ฝๅ็่ฟญไปฃๆนๆณใ" | |
| NLI ๅคๆญ: | |
| Premise + Hypothesis โ NLI ๆจกๅ โ Entailment โ | |
| โ ็ญๆกๅบไบๆๆกฃ๏ผๆ ๅนป่ง | |
| ๅไพ - ๆๅนป่ง็ๆ ๅต๏ผ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| ๆฃ็ดขๅฐ็ๆๆกฃ (Premise): | |
| "AlphaCodium ๆฏไธ็งๅบไบไปฃ็ ็ๆ็ๆฐๆนๆณ..." | |
| LLM ็ๆ็็ญๆก (Hypothesis): | |
| "AlphaCodium ๆฏ Google ๅจ 2024 ๅนดๅๅธ็..." | |
| โ ๆๆกฃไธญๆฒกๆๆๅฐ Google ๅ 2024 | |
| NLI ๅคๆญ: | |
| Premise + Hypothesis โ NLI ๆจกๅ โ Neutral/Contradiction โ ๏ธ | |
| โ ็ญๆกๅ ๅซๆๆกฃไธญๆฒกๆ็ไฟกๆฏ๏ผๅฏ่ฝๆฏๅนป่ง | |
| """) | |
| # ============================================================================ | |
| # Part 3: cross-encoder/nli-deberta-v3-xsmall ๆจกๅๆถๆ | |
| # ============================================================================ | |
| print("\n" + "=" * 80) | |
| print("๐ค Part 3: cross-encoder/nli-deberta-v3-xsmall ๆจกๅๆถๆ") | |
| print("=" * 80) | |
| print(""" | |
| ๆจกๅไฟกๆฏ๏ผ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| ๅ็งฐ: cross-encoder/nli-deberta-v3-xsmall | |
| ๅบ็กๆจกๅ: DeBERTa-v3 (Decoding-enhanced BERT with disentangled attention) | |
| ๅคงๅฐ: 40MB (่ถ ่ฝป้็บง) | |
| ๅๆฐ้: 22M | |
| ่ฎญ็ปๆฐๆฎ: SNLI + MultiNLI (็พไธ็บงๅฅๅญๅฏน) | |
| ่พๅบ: 3 ไธช็ฑปๅซ็ๆฆ็ [Entailment, Neutral, Contradiction] | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| ๆถๆๅพ๏ผ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| ่พๅ ฅๆๆฌ๏ผ | |
| Premise: "AlphaCodium ๆฏไธ็งไปฃ็ ็ๆๆนๆณ..." | |
| Hypothesis: "AlphaCodium ๆฏ Google ๅๅธ็..." | |
| โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ Step 1: ่พๅ ฅๆผๆฅ โ | |
| โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ | |
| โ [CLS] Premise [SEP] Hypothesis [SEP] โ | |
| โ โ | |
| โ ๅฎ้ : [CLS] AlphaCodium ๆฏไธ็งไปฃ็ ็ๆๆนๆณ [SEP] โ | |
| โ AlphaCodium ๆฏ Google ๅๅธ็ [SEP] โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ Step 2: Tokenization โ | |
| โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ | |
| โ ๅ่ฏๅนถ่ฝฌๆขไธบ Token IDs โ | |
| โ [101, 2945, 3421, ..., 4532, 102, 2945, 3421, ...] โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ Step 3: DeBERTa Encoder (12 ๅฑ) โ | |
| โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ | |
| โ โ | |
| โ Layer 1-12: Disentangled Attention โ | |
| โ - Content-to-Content Attention โ | |
| โ - Content-to-Position Attention โ | |
| โ - Position-to-Content Attention โ | |
| โ โ | |
| โ ็น็น๏ผไฝ็ฝฎไฟกๆฏๅๅ ๅฎนไฟกๆฏๅ็ฆปๅค็ โ | |
| โ ๆฏ BERT ๆดๅฅฝๅฐ็่งฃ้ฟ่ท็ฆปไพ่ต โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ Step 4: [CLS] Token ็ๅ้่กจ็คบ โ | |
| โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ | |
| โ [CLS] ็ๅ้ๅ ๅซไบๆดไธช่พๅ ฅๅฏน็่ฏญไนไฟกๆฏ โ | |
| โ Vector: [0.234, -0.567, 0.890, ..., 0.123] (768็ปด) โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ Step 5: ๅ็ฑปๅคด (Classification Head) โ | |
| โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ | |
| โ ๅ จ่ฟๆฅๅฑ: 768 โ 3 โ | |
| โ โ | |
| โ Logits: [2.3, -1.5, 0.8] โ | |
| โ โ โ โ โ | |
| โ Entail Neutral Contra โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ Step 6: Softmax ๅฝไธๅ โ | |
| โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ | |
| โ Probabilities: โ | |
| โ Entailment: 0.15 (15%) โ | |
| โ Neutral: 0.05 (5%) โ | |
| โ Contradiction: 0.80 (80%) โ ๆ้ซ๏ผ โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ | |
| ๆ็ป่พๅบ: | |
| Label: "Contradiction" | |
| Score: 0.80 | |
| ่งฃ้: ๆจกๅ่ฎคไธบ็ญๆกไธๆๆกฃ็็พ๏ผ็ฝฎไฟกๅบฆ 80% | |
| โ ๆฃๆตๅฐๅนป่ง๏ผ | |
| """) | |
| # ============================================================================ | |
| # Part 4: ไฝ ็้กน็ฎไธญ็ๅฎ้ ๆฃๆตๆต็จ | |
| # ============================================================================ | |
| print("\n" + "=" * 80) | |
| print("๐ป Part 4: ไฝ ็้กน็ฎไธญ็ๅฎ้ ๆฃๆตๆต็จ") | |
| print("=" * 80) | |
| print(""" | |
| ๅฎๆดๆฃๆตๆต็จ๏ผhallucination_detector.py๏ผ๏ผ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| ่พๅ ฅ: | |
| - generation: LLM ็ๆ็ๅฎๆด็ญๆก | |
| - documents: ๆฃ็ดขๅฐ็ๆๆกฃ | |
| โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ Step 1: ๅฅๅญๅๅฒ โ | |
| โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ | |
| โ ๅฐ LLM ็ๆ็็ญๆกๅๅฒๆๅคไธชๅฅๅญ โ | |
| โ โ | |
| โ ไพๅฆ: โ | |
| โ "AlphaCodium ๆฏไธ็งไปฃ็ ็ๆๆนๆณใๅฎ็ฑ Google ๅผๅใ" โ | |
| โ โ โ | |
| โ ["AlphaCodium ๆฏไธ็งไปฃ็ ็ๆๆนๆณใ", โ | |
| โ "ๅฎ็ฑ Google ๅผๅใ"] โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ Step 2: ้ๅฅ NLI ๆฃๆต โ | |
| โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ | |
| โ โ | |
| โ for ๆฏไธชๅฅๅญ in ็ญๆก: โ | |
| โ result = nli_model( โ | |
| โ premise=documents[:500], # ๆๆกฃ๏ผๆชๆญๅฐ500ๅญ็ฌฆ๏ผโ | |
| โ hypothesis=sentence # ๅฝๅๅฅๅญ โ | |
| โ ) โ | |
| โ โ | |
| โ if "contradiction" in result.label: โ | |
| โ contradiction_count += 1 โ | |
| โ elif "neutral" in result.label: โ | |
| โ neutral_count += 1 โ | |
| โ elif "entailment" in result.label: โ | |
| โ entailment_count += 1 โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ Step 3: ็ป่ฎกๅๆ โ | |
| โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ | |
| โ โ | |
| โ ๅ่ฎพๆฃๆตไบ 10 ไธชๅฅๅญ: โ | |
| โ - Entailment: 7 ไธช (70%) โ | |
| โ - Neutral: 2 ไธช (20%) โ | |
| โ - Contradiction: 1 ไธช (10%) โ | |
| โ โ | |
| โ total_sentences = 10 โ | |
| โ contradiction_ratio = 1/10 = 0.1 (10%) โ | |
| โ neutral_ratio = 2/10 = 0.2 (20%) โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ Step 4: ๅคๆญๆฏๅฆๆๅนป่ง โ | |
| โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ | |
| โ โ | |
| โ ไฝ ็้กน็ฎ้ ็ฝฎ: (ๅทฒไผๅ) โ | |
| โ โ | |
| โ has_hallucination = ( โ | |
| โ contradiction_ratio > 0.3 OR # ็็พ่ถ ่ฟ 30% โ | |
| โ neutral_ratio > 0.8 # ไธญ็ซ่ถ ่ฟ 80% โ | |
| โ ) โ | |
| โ โ | |
| โ ไธไพไธญ: โ | |
| โ contradiction_ratio = 0.1 (10%) โ < 30% โ | |
| โ neutral_ratio = 0.2 (20%) โ < 80% โ | |
| โ โ has_hallucination = False โ โ | |
| โ โ ๆชๆฃๆตๅฐๅนป่ง โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ | |
| ่พๅบ็ปๆ: | |
| { | |
| "has_hallucination": False, | |
| "contradiction_count": 1, | |
| "neutral_count": 2, | |
| "entailment_count": 7, | |
| "problematic_sentences": [] # ๅชๅ ๅซ็็พ็ๅฅๅญ | |
| } | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| ๅฎ้ ไปฃ็ ๏ผhallucination_detector.py ็ฌฌ 187-241 ่ก๏ผ๏ผ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| for sentence in sentences: | |
| if len(sentence) < 10: | |
| continue | |
| try: | |
| # Cross-encoder ๆ ผๅผ | |
| result = self.nli_model( | |
| f"{documents[:500]} [SEP] {sentence}", | |
| truncation=True, | |
| max_length=512 | |
| ) | |
| label = result[0]['label'].lower() | |
| if 'contradiction' in label: | |
| contradiction_count += 1 | |
| problematic_sentences.append(sentence) | |
| elif 'neutral' in label: | |
| neutral_count += 1 | |
| elif 'entailment' in label: | |
| entailment_count += 1 | |
| except Exception as e: | |
| print(f"โ ๏ธ NLI ๆฃๆตๅฅๅญๅคฑ่ดฅ: {str(e)[:100]}") | |
| # ๅคๆญ้ป่พ | |
| total_sentences = contradiction_count + neutral_count + entailment_count | |
| if total_sentences > 0: | |
| contradiction_ratio = contradiction_count / total_sentences | |
| neutral_ratio = neutral_count / total_sentences | |
| has_hallucination = (contradiction_ratio > 0.3) or (neutral_ratio > 0.8) | |
| """) | |
| # ============================================================================ | |
| # Part 5: ไธบไปไน่ฟไธชๆนๆณๆๆ? | |
| # ============================================================================ | |
| print("\n" + "=" * 80) | |
| print("๐ฏ Part 5: ไธบไปไน NLI ๆฃๆตๅนป่งๆๆ?") | |
| print("=" * 80) | |
| print(""" | |
| ๆ ธๅฟไผๅฟ๏ผ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| 1๏ธโฃ ไธ้จ่ฎญ็ป็ไปปๅกๅฏน้ฝ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| NLI ๆจกๅๅจ็พไธ็บงๅฅๅญๅฏนไธ่ฎญ็ป๏ผไธ้จๅญฆไน ๅคๆญ้ป่พๅ ณ็ณป๏ผ | |
| - ่ฎญ็ปๆฐๆฎ: SNLI (570K) + MultiNLI (433K) | |
| - ไปปๅก: ๅคๆญ Premise ๆฏๅฆๆฏๆ Hypothesis | |
| - ่ฟๆญฃๆฏๅนป่งๆฃๆต้่ฆ็่ฝๅ๏ผ | |
| ไผ ็ป LLM: | |
| "่ฏทๅคๆญ่ฟไธช็ญๆกๆฏๅฆๅบไบๆๆกฃ..." | |
| โ LLM ้่ฆ็่งฃๆไปคใๆจ็ใ็ๆ็ญๆก | |
| โ ๅฎนๆๅบ้๏ผไธๅคไธๆณจ | |
| NLI ๆจกๅ: | |
| Input: [Premise, Hypothesis] | |
| โ ็ดๆฅ่พๅบๆฆ็: [Entail, Neutral, Contra] | |
| โ ไธๆณจไธๅ็กฎ | |
| 2๏ธโฃ ็ป็ฒๅบฆ็ๅฅๅญ็บงๆฃๆต | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| ้ๅฅๆฃๆตๅฏไปฅ็ฒพๅๅฎไฝ้ฎ้ข๏ผ | |
| ๆดไฝๆฃๆต๏ผLLM๏ผ: | |
| "ๆดไธช็ญๆกๆฏๅฆๅบไบๆๆกฃ๏ผ" | |
| โ ้พไปฅๅคๆญๅช้จๅๆ้ฎ้ข | |
| ๅฅๅญ็บงๆฃๆต๏ผNLI๏ผ: | |
| ๅฅๅญ1: "AlphaCodium ๆฏไปฃ็ ็ๆๆนๆณ" โ Entailment โ | |
| ๅฅๅญ2: "็ฑ Google ๅผๅ" โ Contradiction โ โ ็ฒพๅๅฎไฝ๏ผ | |
| ๅฅๅญ3: "ๅจ CodeContests ไธ่กจ็ฐๅฅฝ" โ Entailment โ | |
| 3๏ธโฃ ้ๅบฆๅๆๆฌไผๅฟ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| ๆจกๅๅฏนๆฏ๏ผ | |
| ไผ ็ป LLM (ๅฆ GPT-3.5): | |
| - ๆจ็ๆถ้ด: 500-1000ms | |
| - ๆๆฌ: ๆฏๆฌกๆฃๆต็บฆ $0.001 | |
| - ๅๆฐ้: 175B | |
| NLI ๆจกๅ (cross-encoder/nli-deberta-v3-xsmall): | |
| - ๆจ็ๆถ้ด: 50-100ms โ ๅฟซ 10 ๅ๏ผ | |
| - ๆๆฌ: ๆฌๅฐ่ฟ่ก๏ผๆฅ่ฟ $0 โ ็ 100 ๅ๏ผ | |
| - ๅๆฐ้: 22M โ ๅฐ 7900 ๅ๏ผ | |
| 4๏ธโฃ ๅฏ่งฃ้ๆง | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| NLI ่พๅบๆธ ๆฐ็ๆฆ็ๅๅธ๏ผ | |
| ่พๅบ็คบไพ: | |
| { | |
| "label": "Contradiction", | |
| "scores": { | |
| "entailment": 0.05, | |
| "neutral": 0.15, | |
| "contradiction": 0.80 โ 80% ็กฎๅฎๆฏ็็พ | |
| } | |
| } | |
| vs LLM ่พๅบ: | |
| "ๆ่ฎคไธบ่ฟไธช็ญๆกๅฏ่ฝๆไบ้ฎ้ข..." โ ๆจก็ณไธๆธ | |
| """) | |
| # ============================================================================ | |
| # Part 6: DeBERTa vs BERT ็ๅ ณ้ฎๆน่ฟ | |
| # ============================================================================ | |
| print("\n" + "=" * 80) | |
| print("โก Part 6: DeBERTa vs BERT - ไธบไปไน้ DeBERTa?") | |
| print("=" * 80) | |
| print(""" | |
| DeBERTa ็ๆ ธๅฟๅๆฐ๏ผDisentangled Attention | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| BERT ็้ฎ้ข๏ผ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| ๅจ BERT ไธญ๏ผๆฏไธช token ็่กจ็คบ = ๅ ๅฎน embedding + ไฝ็ฝฎ embedding | |
| ไพๅฆ๏ผ | |
| "AlphaCodium" ๅจไฝ็ฝฎ 5: | |
| Token Embedding = Content + Position | |
| = [0.1, 0.2, ...] + [0.3, 0.4, ...] | |
| = [0.4, 0.6, ...] | |
| ้ฎ้ข๏ผๅ ๅฎนๅไฝ็ฝฎๆททๅจไธ่ตท๏ผๆจกๅ้พไปฅๅบๅ๏ผ | |
| - "ๆฏ" ๅจไฝ็ฝฎ 3 ็้่ฆๆง | |
| - "ๆฏ" ่ฟไธช่ฏๆฌ่บซ็่ฏญไน | |
| DeBERTa ็่งฃๅณๆนๆก๏ผๅ็ฆปๆณจๆๅ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| ๅฐๆณจๆๅๅ่งฃไธบ 3 ไธช้จๅ๏ผ | |
| 1. Content-to-Content Attention | |
| ่ฏ i ็ๅ ๅฎน ๅ ณๆณจ ่ฏ j ็ๅ ๅฎน | |
| "AlphaCodium" ๅ ณๆณจ "ไปฃ็ ็ๆ" | |
| 2. Content-to-Position Attention | |
| ่ฏ i ็ๅ ๅฎน ๅ ณๆณจ ่ฏ j ็ไฝ็ฝฎ | |
| "ๆฏ" ๅ ณๆณจ ไฝ็ฝฎ 10 (ไธไธๆ) | |
| 3. Position-to-Content Attention | |
| ่ฏ i ็ไฝ็ฝฎ ๅ ณๆณจ ่ฏ j ็ๅ ๅฎน | |
| ไฝ็ฝฎ 5 ๅ ณๆณจ "ๆนๆณ" ่ฟไธช่ฏ | |
| ๅ ฌๅผ: | |
| Attention(Q, K, V) = softmax( | |
| Q_c ร K_c^T / โd + # Content-to-Content | |
| Q_c ร K_p^T / โd + # Content-to-Position | |
| Q_p ร K_c^T / โd # Position-to-Content | |
| ) ร V | |
| ไผๅฟ: | |
| โ ๆดๅฅฝๅฐ็่งฃ้ฟ่ท็ฆปไพ่ต | |
| โ ๆดๅ็กฎ็่ฏญไน็่งฃ | |
| โ NLI ไปปๅกไธๆง่ฝๆๅ 2-3% | |
| โ ๅๆ ทๅๆฐไธๆๆๆดๅฅฝ | |
| ๆจกๅๅฏนๆฏ๏ผ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| BERT-base: | |
| - ๅๆฐ: 110M | |
| - MNLI ๅ็กฎ็: 84.6% | |
| DeBERTa-v3-xsmall: | |
| - ๅๆฐ: 22M โ ๅฐ 5 ๅ | |
| - MNLI ๅ็กฎ็: 82.1% โ ๅช้ไฝ 2.5% | |
| - ๆจ็้ๅบฆ: ๅฟซ 3 ๅ | |
| ๆงไปทๆฏๆ้ซ๏ผ่ฟๅฐฑๆฏไธบไปไนไฝ ็้กน็ฎ้ๆฉๅฎ | |
| """) | |
| # ============================================================================ | |
| # Part 7: ๅฎ้ ๆกไพๆผ็คบ | |
| # ============================================================================ | |
| print("\n" + "=" * 80) | |
| print("๐ Part 7: ๅฎ้ ๆกไพๆผ็คบ") | |
| print("=" * 80) | |
| print(""" | |
| ๆกไพ 1: ๆญฃๅธธ็ญๆก๏ผๆ ๅนป่ง๏ผ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| ๆๆกฃ (Premise): | |
| "Prompt Engineering ๆฏไธ็ง้่ฟไผๅ่พๅ ฅๆ็คบๆฅๅผๅฏผ | |
| ่ฏญ่จๆจกๅ่กไธบ็ๆนๆณ๏ผๆ ้ไฟฎๆนๆจกๅๆ้ใ" | |
| LLM ็ๆ (Hypothesis): | |
| "Prompt Engineering ๆฏไธ็งไผๅ่พๅ ฅๆ็คบ็ๆนๆณ๏ผ | |
| ็จไบๅผๅฏผ่ฏญ่จๆจกๅ็่กไธบใ" | |
| NLI ๆฃๆต่ฟ็จ: | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| ๅฅๅญ 1: "Prompt Engineering ๆฏไธ็งไผๅ่พๅ ฅๆ็คบ็ๆนๆณ" | |
| โ NLI: Entailment (0.92) โ | |
| โ ๆๆกฃไธญๆ๏ผ"้่ฟไผๅ่พๅ ฅๆ็คบ" | |
| ๅฅๅญ 2: "็จไบๅผๅฏผ่ฏญ่จๆจกๅ็่กไธบ" | |
| โ NLI: Entailment (0.88) โ | |
| โ ๆๆกฃไธญๆ๏ผ"ๅผๅฏผ่ฏญ่จๆจกๅ่กไธบ" | |
| ็ป่ฎก: | |
| Entailment: 2/2 = 100% | |
| Neutral: 0/2 = 0% | |
| Contradiction: 0/2 = 0% | |
| ๅคๆญ: | |
| contradiction_ratio = 0% < 30% โ | |
| neutral_ratio = 0% < 80% โ | |
| โ ๆ ๅนป่ง โ | |
| ๆกไพ 2: ๅ ๅซๅนป่ง็็ญๆก | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| ๆๆกฃ (Premise): | |
| "AlphaCodium ๆฏไธ็งไปฃ็ ็ๆๆนๆณ๏ผ้่ฟ่ฟญไปฃๆน่ฟ | |
| ๆๅ LLM ็ไปฃ็ ่ฝๅใ" | |
| LLM ็ๆ (Hypothesis): | |
| "AlphaCodium ๆฏ Google ๅจ 2024 ๅนดๅๅธ็ไปฃ็ ็ๆๅทฅๅ ทใ | |
| ๅฎไฝฟ็จๅผบๅๅญฆไน ๆฅ่ฎญ็ปๆจกๅใ" | |
| NLI ๆฃๆต่ฟ็จ: | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| ๅฅๅญ 1: "AlphaCodium ๆฏ Google ๅจ 2024 ๅนดๅๅธ็ไปฃ็ ็ๆๅทฅๅ ท" | |
| โ NLI: Neutral (0.75) โ ๏ธ | |
| โ ๆๆกฃไธญๆฒกๆๆๅฐ Google ๅ 2024 | |
| ๅฅๅญ 2: "ๅฎไฝฟ็จๅผบๅๅญฆไน ๆฅ่ฎญ็ปๆจกๅ" | |
| โ NLI: Neutral (0.68) โ ๏ธ | |
| โ ๆๆกฃไธญๆฒกๆๆๅฐๅผบๅๅญฆไน | |
| ็ป่ฎก: | |
| Entailment: 0/2 = 0% | |
| Neutral: 2/2 = 100% | |
| Contradiction: 0/2 = 0% | |
| ๅคๆญ: | |
| contradiction_ratio = 0% < 30% โ | |
| neutral_ratio = 100% > 80% โ โ ่งฆๅ๏ผ | |
| โ ๆฃๆตๅฐๅนป่ง โ ๏ธ | |
| ๆกไพ 3: ๆๆพ็็พ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| ๆๆกฃ (Premise): | |
| "่ฟ็ฏ่ฎบๆๅ่กจไบ 2023 ๅนดใ" | |
| LLM ็ๆ (Hypothesis): | |
| "่ฟ็ฏ่ฎบๆๆฏ 2021 ๅนดๅ่กจ็ใ" | |
| NLI ๆฃๆต: | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| ๅฅๅญ 1: "่ฟ็ฏ่ฎบๆๆฏ 2021 ๅนดๅ่กจ็" | |
| โ NLI: Contradiction (0.95) โ | |
| โ 2023 โ 2021๏ผๆๆพ็็พ๏ผ | |
| ็ป่ฎก: | |
| Entailment: 0/1 = 0% | |
| Neutral: 0/1 = 0% | |
| Contradiction: 1/1 = 100% | |
| ๅคๆญ: | |
| contradiction_ratio = 100% > 30% โ โ ่งฆๅ๏ผ | |
| โ ๆฃๆตๅฐๅนป่ง โ | |
| """) | |
| # ============================================================================ | |
| # Part 8: ไผ็ผบ็นๅๆ | |
| # ============================================================================ | |
| print("\n" + "=" * 80) | |
| print("โ๏ธ Part 8: NLI ๅนป่งๆฃๆต็ไผ็ผบ็น") | |
| print("=" * 80) | |
| print(""" | |
| ไผ็น โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| 1. ๅ็กฎ็้ซ | |
| - ไธ้จ่ฎญ็ป็ NLI ๆจกๅ๏ผๅจ้ป่พๆจ็ไธๅ็กฎ็ 85-95% | |
| - ๆฏ้็จ LLM ๅคๆญๅ็กฎ 15-20% | |
| 2. ้ๅบฆๅฟซ | |
| - ่ฝป้็บงๆจกๅ (22M ๅๆฐ) | |
| - ๆจ็ๆถ้ด 50-100ms | |
| - ๆฏ LLM ๅฟซ 10 ๅ | |
| 3. ๆๆฌไฝ | |
| - ๆฌๅฐ่ฟ่ก๏ผๆ ้ API ่ฐ็จ | |
| - ๆๆฌๆฅ่ฟ 0 | |
| - ๆฏ LLM ็ 100 ๅ | |
| 4. ๅฏ่งฃ้ๆงๅผบ | |
| - ่พๅบๆธ ๆฐ็ๆฆ็ๅๅธ | |
| - ๅฏไปฅๅฎไฝๅ ทไฝ้ฎ้ขๅฅๅญ | |
| - ๆนไพฟ่ฐ่ฏๅไผๅ | |
| 5. ็ป็ฒๅบฆๆงๅถ | |
| - ้ๅฅๆฃๆต | |
| - ๅฏ่ชๅฎไน้ๅผ (30%, 80%) | |
| - ็ตๆดป่ฐๆดไธฅๆ ผ็จๅบฆ | |
| ็ผบ็น โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| 1. ๅฏน Neutral ็ๅคๆญไธๅค็ฒพๅ | |
| - Neutral ๆขๅฏ่ฝๆฏๅนป่ง๏ผไนๅฏ่ฝๆฏๅ็ๆจ็ | |
| - ้่ฆ่ฎพ็ฝฎๅ็็้ๅผ๏ผไฝ ็้กน็ฎ่ฎพไธบ 80%๏ผ | |
| 2. ไพ่ตๅฅๅญๅๅฒ่ดจ้ | |
| - ๅๅฒ้่ฏฏไผๅฝฑๅๆฃๆต | |
| - ไพๅฆ๏ผ"Mr. Smith went to U.S.A." ๅฏ่ฝ่ขซ้่ฏฏๅๅฒ | |
| 3. ไธไธๆ็่งฃๆ้ | |
| - ๅช็ 500 ๅญ็ฌฆ็ๆๆกฃ | |
| - ๅฏ่ฝ้่ฟ้ฟๆๆกฃไธญ็็ธๅ ณไฟกๆฏ | |
| 4. ่ฏญ่จไพ่ต | |
| - ไธป่ฆๅจ่ฑๆๆฐๆฎไธ่ฎญ็ป | |
| - ไธญๆๆๆๅฏ่ฝ็ฅๅทฎ๏ผไฝ DeBERTa-v3 ๅฏนๅค่ฏญ่จๆฏๆ่พๅฅฝ๏ผ | |
| 5. ๆ ๆณๆฃๆต้ๆงๅนป่ง | |
| - ๅช่ฝๆฃๆตๆพๅผ็็็พๆ็ผบๅคฑ | |
| - ๆ ๆณๆฃๆตๆจ็้่ฏฏๆ้ป่พๆผๆด | |
| ๆน่ฟๅปบ่ฎฎ ๐ก | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| 1. ็ปๅๅค็งๆนๆณ | |
| ไฝ ็้กน็ฎๅทฒ็ปๅไบ๏ผVectara + NLI ๆททๅๆฃๆต โ | |
| 2. ๅจๆ่ฐๆด้ๅผ | |
| ๆ นๆฎๅบ็จๅบๆฏ่ฐๆด contradiction/neutral ้ๅผ | |
| 3. ๅขๅ ๆๆกฃ้ฟๅบฆ | |
| ไป 500 ๅญ็ฌฆๅขๅ ๅฐ 1000 ๅญ็ฌฆ๏ผ้่ฆๆดๅค่ฎก็ฎ๏ผ | |
| 4. ไฝฟ็จๆดๅคง็ๆจกๅ | |
| ๅฆๆๅ็กฎ็ไธๅค๏ผๅฏๅ็บงๅฐ cross-encoder/nli-deberta-v3-base | |
| """) | |
| # ============================================================================ | |
| # Part 9: ๆป็ป | |
| # ============================================================================ | |
| print("\n" + "=" * 80) | |
| print("๐ Part 9: ๆ ธๅฟ่ฆ็นๆป็ป") | |
| print("=" * 80) | |
| print(""" | |
| NLI ๅนป่งๆฃๆตๅ็๏ผ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| 1. ๆ ธๅฟๆๆณ | |
| ๅฐๅนป่งๆฃๆต่ฝฌๅไธบ NLI ไปปๅก๏ผ | |
| Premise (ๆๆกฃ) + Hypothesis (็ญๆก) โ Entailment/Neutral/Contradiction | |
| 2. ๆจกๅๆถๆ | |
| cross-encoder/nli-deberta-v3-xsmall (22M ๅๆฐ, 40MB) | |
| - DeBERTa-v3: ๅ็ฆปๆณจๆๅๆบๅถ | |
| - Cross-Encoder: ่ๅ็ผ็ Premise ๅ Hypothesis | |
| - 3 ๅ็ฑปๅคด: Entailment/Neutral/Contradiction | |
| 3. ๆฃๆตๆต็จ | |
| Step 1: ๅๅฅ | |
| Step 2: ้ๅฅ NLI ๅคๆญ | |
| Step 3: ็ป่ฎก Entailment/Neutral/Contradiction ๆฏไพ | |
| Step 4: ๆ นๆฎ้ๅผๅคๆญๆฏๅฆๆๅนป่ง | |
| - contradiction > 30% โ ๅนป่ง | |
| - neutral > 80% โ ๅนป่ง | |
| 4. ๅ ณ้ฎไผๅฟ | |
| โ ๅ็กฎ็: 85-95% (ๆฏ LLM ้ซ 15-20%) | |
| โ ้ๅบฆ: 50-100ms (ๆฏ LLM ๅฟซ 10 ๅ) | |
| โ ๆๆฌ: ๆฌๅฐ่ฟ่ก (ๆฏ LLM ็ 100 ๅ) | |
| โ ๅฏ่งฃ้: ่พๅบๆธ ๆฐๆฆ็ๅๅธ | |
| 5. ไฝ ็้กน็ฎ้ ็ฝฎ | |
| โ ๆจกๅ: cross-encoder/nli-deberta-v3-xsmall | |
| โ ้ๅผ: contradiction > 30% or neutral > 80% | |
| โ ๆททๅๆฃๆต: Vectara + NLI | |
| โ ไผๅ: ่ชๅจ้็บงใ้่ฏฏๅค็ใmethod_used ไธ่ดๆง | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| ไฝ ็้กน็ฎไฝฟ็จไบไธ็ๆไฝณๅฎ่ทต๏ผ๐ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| """) | |
| print("\n" + "=" * 80) | |
| print("โ NLI ๅนป่งๆฃๆตๅ็่ฎฒ่งฃๅฎๆฏ๏ผ") | |
| print("=" * 80) | |
| print() | |