Skip to content

level2-nlp-mrc-nlp-04 created by GitHub Classroom

boostcampaitech6/level2-nlp-mrc-nlp-04

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

67 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ Project ์†Œ๊ฐœ

ํ•ญ๋ชฉ ๋‚ด์šฉ
ํ”„๋กœ์ ํŠธ ์ฃผ์ œ ๊ธฐ๊ณ„ ๋…ํ•ด MRC (Machine Reading Comprehension) ์ค‘ โ€˜Open-Domain Question Answeringโ€™ ๋ฅผ ์ฃผ์ œ๋กœ,ย ์ฃผ์–ด์ง„ย ์งˆ์˜์™€ ๊ด€๋ จ๋œ ๋ฌธ์„œ๋ฅผ ํƒ์ƒ‰ํ•˜๊ณ , ํ•ด๋‹น ๋ฌธ์„œ์—์„œ ์ ์ ˆํ•œ ๋‹ต๋ณ€์„ ์ฐพ๊ฑฐ๋‚˜ ์ƒ์„ฑํ•˜๋Š” task๋ฅผย ์ˆ˜ํ–‰
ํ”„๋กœ์ ํŠธ ๊ตฌํ˜„ ๋‚ด์šฉ โ€ข Retrieval ๋‹จ๊ณ„์™€ Reader ๋‹จ๊ณ„์˜ two-stage ๊ตฌ์กฐ ์‚ฌ์šฉ
โ€ข ํ‰๊ฐ€ ์ง€ํ‘œ๋กœ๋Š” EMย Score(Exactย Matchย Score)์ด ์‚ฌ์šฉ๋˜์—ˆ๊ณ ,ย ๋ชจ๋ธ์ด ์˜ˆ์ธกํ•œ text์™€ ์ •๋‹ต text๊ฐ€ ๊ธ€์ž ๋‹จ์œ„๋กœ ์™„์ „ํžˆ ๋˜‘๊ฐ™์€ ๊ฒฝ์šฐ์—๋งŒ ์ ์ˆ˜ ๋ถ€์—ฌ
์ง„ํ–‰ ๊ธฐ๊ฐ„ 2024๋…„ 2์›” 7์ผ ~ 2024๋…„ 2์›” 22์ผ

์ตœ์ข… ๋ฆฌ๋”๋ณด๋“œ

image ์ตœ์ข… ๋ฆฌ๋”๋ณด๋“œ ์ˆœ์œ„ 2์œ„

โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๋ฐ ํ˜‘์—… ํ™˜๊ฒฝ

image

Notion, Slack, Zoom ์„ ํ†ตํ•ด ํšŒ์˜๋ฅผ ์ง„ํ–‰ํ–ˆ์œผ๋ฉฐ, Github์„ ํ†ตํ•ด ์ฝ”๋“œ ๊ณต์œ ๋ฅผ ๋ฐ Issues ๊ธฐ๋Šฅ์„ ์ด์šฉํ•œ ๊ด€๋ฆฌ๋ฅผ ์ง„ํ–‰. Wandb๋ฅผ ์ด์šฉํ•ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ์‹คํ—˜ ๊ด€๋ฆฌ.

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ Team & Members ์†Œ๊ฐœ

๐Ÿ’๐Ÿปโ€โ™‚๏ธ Members

๊ตฌํฌ์ฐฌ ๊น€๋ฏผ์„ ์†์œ ๋ฆผ ์˜คํƒœ์—ฐ ์ด์ƒ์ˆ˜ ์ตœ์˜ˆ์ง„

๐Ÿ‘ธ๐Ÿป Members' Role

์ „๋ฐ˜์ ์ธ ํ”„๋กœ์ ํŠธ ๊ณผ์ •์„ ๋ชจ๋‘ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ถ„์—…์„ ํ•˜์—ฌ ํ˜‘์—…์„ ์ง„ํ–‰ํ–ˆ์œผ๋ฉฐ, ์ดˆ๊ธฐ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ• ๋‹จ๊ณ„๋ถ€ํ„ฐ Github์„ ์—ฐ๋™ํ•˜์—ฌ ์„ธ๋ถ€ task ๋งˆ๋‹ค issue์™€ branch๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ฐ์ž์˜ task๋ฅผ ์ˆ˜ํ–‰ํ–ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ ๋ฒ„์ „ ๊ด€๋ฆฌ์™€ ์ฝ”๋“œ ๊ณต์œ ๊ฐ€ ์›ํ™œํ•˜๊ฒŒ ์ด๋ฃจ์–ด์งˆ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

์ด๋ฆ„ ์—ญํ• 
๊ตฌํฌ์ฐฌ ๋ฒ ์ด์Šค๋ผ์ธ ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง, ๊นƒ ๊ด€๋ฆฌ,
Retrieverย ๋ชจ๋ธ ๊ฐœ์„ (DPR), Reader ๋ชจ๋ธ ๊ฐœ์„ (PLM ์„ ์ • ๋ฐ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹)
๊น€๋ฏผ์„ ๋ฒ ์ด์Šค๋ผ์ธ ์ฝ”๋“œ ๊ธฐ๋Šฅ ์ถ”๊ฐ€(slack ์—ฐ๋™), ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ(Question row ์ผ๋ฐ˜๋ช…์‚ฌ ์ถ”๊ฐ€),
Retrieverย ๋ชจ๋ธ ๊ฐœ์„ (DPR, SPR)
์†์œ ๋ฆผ EDA, Retrieverย ๋ชจ๋ธ ๊ฐœ์„ (SPR), Reader ๋ชจ๋ธ ๊ฐœ์„ (PLM ์„ ์ • ๋ฐ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹),
๋ฐ์ดํ„ฐ ํ›„์ฒ˜๋ฆฌ, ์•™์ƒ๋ธ” ์ฝ”๋“œ ์ž‘์„ฑ(Hard Voting)
์˜คํƒœ์—ฐ Retrieverย ๋ชจ๋ธ ๊ฐœ์„ (SPR),
Reader ๋ชจ๋ธ ๊ฐœ์„ (Dataset Fine-Tuning, Curriculum Learning, CNN Layer ์ถ”๊ฐ€)
์ด์ƒ์ˆ˜ Retrieverย ๋ชจ๋ธ ๊ฐœ์„ (DPR),
Reader ๋ชจ๋ธ ๊ฐœ์„ (Dataset Fine-Tuning, Curriculum Learning)
์ตœ์˜ˆ์ง„ ๋ฒ ์ด์Šค๋ผ์ธ ์ฝ”๋“œ ๊ธฐ๋Šฅ ์ถ”๊ฐ€(wandb ์—ฐ๋™), Retrieverย ๋ชจ๋ธ ๊ฐœ์„ (ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹),
์•™์ƒ๋ธ” ์ฝ”๋“œ ์ž‘์„ฑ(Soft Voting)

๐Ÿ’พ ๋ฐ์ดํ„ฐ ์†Œ๊ฐœ

ย json ํ˜•์‹์˜ย ๋ฐ์ดํ„ฐ์…‹์ด ์ œ๊ณต๋˜์—ˆ๊ณ , train ๋ฐ์ดํ„ฐ์…‹์€ย ์งˆ๋ฌธ์˜ ๊ณ ์œ  id, ์งˆ๋ฌธ,ย ๋‹ต๋ณ€ย ํ…์ŠคํŠธ ๋ฐ ๋‹ต๋ณ€์˜ ์‹œ์ž‘ ์œ„์น˜,ย ๋‹ต๋ณ€์ดย ํฌํ•จ๋œ ๋ฌธ์„œ,ย ๋ฌธ์„œ์˜ย ์ œ๋ชฉ,ย ๋ฌธ์„œ์˜ย ๊ณ ์œ  id๋ฅผย ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค.ย ์ด๋•Œ train_dataset ๊ฒฝ๋กœย ๋‚ด ํŒŒ์ผ์€ 3952๊ฐœ์˜ย ์ƒ˜ํ”Œ์„ ํฌํ•จํ•˜๋Š” train ๋ฐ์ดํ„ฐ์™€ย 240๊ฐœ์˜ย ์ƒ˜ํ”Œ์„ ํฌํ•จํ•˜๋Š” validation ๋ฐ์ดํ„ฐ์…‹์œผ๋กœย ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

๋ฐ์ดํ„ฐ์…‹ ์ •๋ณด

image ์ขŒ์ธก์€ train dataset, ์šฐ์ธก์€ validation dateset ์‹œ๊ฐํ™”์˜ ๊ฒฐ๊ณผ์ด๊ณ , ๊ฐ๊ฐ contextย length,ย questionย length,ย answerย length๋ฅผ ์˜๋ฏธ.

  • ๋ฐ์ดํ„ฐ์…‹์— ๋Œ€ํ•œ ์ •๋ณด

    • train.csv : ์ด 3952๊ฐœ
    • vaildation.csv: 240๊ฐœ
    • test_data.csv : ์ด 600๊ฐœ (์ด์ค‘ 240๊ฐœ์˜ ๋ฐ์ดํ„ฐ์…‹์„ ๋Œ€์ƒ์œผ๋กœ ๋ฆฌ๋”๋ณด๋“œ ์ ์ˆ˜ ์ฑ„์ )
  • column 1: ๊ณ ์œ  id

  • column 2: ์งˆ๋ฌธ

  • column 3: ๋‹ต๋ณ€ text

  • column 4: ๋‹ต๋ณ€์ด ํฌํ•จ๋œ ๋ฌธ์„œ

  • column 5: ๋ฌธ์„œ์˜ ์ œ๋ชฉ

  • column 6: ๋ฌธ์„œ ๊ณ ์œ  id

๐Ÿ’ก Methods

๋ถ„๋ฅ˜ ๋‚ด์šฉ
Retriver ๋ชจ๋ธ ๊ฐœ์„  โ€ข Sparse Passage Retrieval : ๋‹จ์–ด์‚ฌ์ „(BoW)์„ ๊ตฌ์ถ•ํ•˜์—ฌ TF-IDF ๊ธฐ๋ฐ˜์œผ๋กœ ์ค‘์š”๋„๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ํ‰๊ฐ€์ง€ํ‘œ EM์˜ ์„ฑ๋Šฅ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์ •ํ™•ํ•œ ๋‹จ์–ด๋ฅผ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•. TF-IDF ๊ณ„์—ด ์ค‘ SOTA๋ฅผ ๋‹ฌ์„ฑํ•œ ๊ฒƒ์œผ๋กœ ์•Œ๋ ค์ง„ BM25 ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ•˜์—ฌ ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ์‹œ๋„ํ•จ. ๋ชจ๋“  ์ƒํ™ฉ์—์„œ ์œ ์˜๋ฏธํ•œ ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ๋ณด์ž„.

โ€ข Dense Passage Retrieval : Sparse Embedding ์€ ์ค‘์š”ํ•œ ๋‹จ์–ด๊ฐ€ ์ •ํ™•ํžˆ ์ผ์น˜ํ•˜๋Š” ์ƒํ™ฉ์—์„œ ์œ ๋ฆฌํ•˜๋‚˜, Dense Embedding์€ ๋‹จ์–ด์˜ ์œ ์‚ฌ์„ฑ ํ˜น์€ ๋งฅ๋ฝ ํŒŒ์•…์— ์œ ๋ฆฌํ•˜๊ณ  ํ•™์Šต์œผ๋กœ ์ž„๋ฒ ๋”ฉ์„ ๋งŒ๋“ค์–ด์„œ ์ถ”๊ฐ€์ ์ธ ํ•™์Šต์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ. ๋”ฐ๋ผ์„œ ย postive passage์˜ ์œ ์‚ฌ๋„๋ฅผ ๋†’์ด๋ฉด์„œ, negative passage์˜ ์œ ์‚ฌ๋„๋ฅผ ๋‚ฎ์ถ”๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•™์Šต์„ ์‹œ๋„ ํ–ˆ์œผ๋‚˜, ์‹ค์ œ๋กœ๋Š” ๊ฒฐ๊ณผ๊ฐ€ ์ข‹์ง€ ๋ชปํ–ˆ์Œ. ์›์ธ์— ๋Œ€ํ•ด์„œ๋Š” wrap-up report ์ฐธ์กฐ
Reader ๋ชจ๋ธย ๊ฐœ์„  - PLM๋ชจ๋ธ โ€ข ์‹คํ—˜ํ•œ ๋ชจ๋ธ : ์ตœ์ข…์ ์œผ๋กœ klue/roberta-large ์‚ฌ์šฉ
klue/roberta-large, klue/roberta-base, monologg/koelectra-base-v3-finetuned-koquad,RoBertForQuestionAnswering
Reader ๋ชจ๋ธย ๊ฐœ์„  โ€ข Korquadย datasetย ์ถ”๊ฐ€ : Reader ๋ชจ๋ธ ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ์œ„ํ•ด ๋ฐ์ดํ„ฐ ์ฆ๊ฐ•์ด ํ•„์š”ํ•˜๋‹ค์†Œ ํŒ๋‹จ. ๊ทธ์ค‘ ๋Œ€ํšŒ ๋ฐ์ดํ„ฐ์…‹๊ณผ KorQuAD 1.0 ๋ฐ์ดํ„ฐ์…‹์ด context ๊ธธ์ด๋‚˜ ๋ฐ์ดํ„ฐ ์ถœ์ฒ˜๊ฐ€ ์œ ์‚ฌํ•˜๋‹ค๊ณ  ํŒŒ์•…ํ•˜์—ฌ KorQuAD 1.0 ๋ฐ์ดํ„ฐ์…‹์„ ํ™œ์šฉํ•ด ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ํ•˜์—ฌ ํ•™์Šต์„ ์ง„ํ–‰. ๊ธฐ๋ณธ ๋ฒ ์ด์Šค๋ผ์ธ Roberta-large ๊ธฐ์ค€ EM 56.6700 โ†’ 59.5800์œผ๋กœ ์„ฑ๋Šฅ ์ƒ์Šน์„ ํ™•์ธ

ย โ€ข Korquadย Fine-Tuning : ์œ„์˜ KorQuAD 1.0 ๋ฐ์ดํ„ฐ์…‹์„ ์ถ”๊ฐ€ํ•˜์—ฌ ํ•™์Šตํ•œ ๊ฒฝ์šฐ, ๋ฐฉ๋ฒ•๋ก  ์กฐํ•ฉ์— ๋”ฐ๋ผ ์„ฑ๋Šฅ ๋–จ์–ด์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒ. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด train ๋ฐ์ดํ„ฐ๋ณด๋‹ค ์ง€๋ฌธ ๊ธธ์ด๊ฐ€ ๊ธด ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์™ธํ•˜๊ณ  roberta-large๋ฅผ KorQuAD 1.0 ๋กœ fine-tuning ์ง„ํ–‰. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ œ๋Œ€๋กœ๋œ ๋‹จ์–ด๋ฅผ ์ถ”์ถœํ•˜์ง€ ๋ชปํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์ข… ์ œ์ถœ์—๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ.

โ€ข CNN Layer ์ถ”๊ฐ€ : ๊ธฐ์กด RobertaForQuestionAnswering์˜ ๊ฒฝ์šฐ ๋งˆ์ง€๋ง‰์— Linear layer๋งŒ์„ ํ†ต๊ณผํ•˜๋Š”๋ฐ, ์ด ์•ž์— CNN layer ๋ฅผ ์ถ”๊ฐ€ํ•ด ๊ทผ์ ‘ ๋ฐฑํ„ฐ๊ฐ„์˜ ์—ฐ๊ฐ„ ์ •๋ณด๊นŒ์ง€ ํ•™์Šต๋˜๋„๋ก ํ•จ. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์•ฝ 3์ ์˜ ์„ฑ๋Šฅ๊ฐœ์„ ์„ ๋ณด์ž„.
๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ โ€ข Entity Marker : ๋ช…์‚ฌ๋“ค์„ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ question ์•ž์— ์ถ”๊ฐ€

โ€ข ํŠน์ˆ˜๊ธฐํ˜ธ ์ œ๊ฑฐ : ์ผ๋ถ€ ํŠน์ˆ˜ ๊ธฐํ˜ธ(<>, ์ฑ… ์ œ๋ชฉ ๊ธฐํ˜ธ, ๋ถˆํ•„์š”ํ•œ ๋ง๋”ฐ์˜ดํ‘œ ๋“ฑ) ์ œ๊ฑฐ
์•™์ƒ๋ธ” ๋ฐฉ๋ฒ• โ€ข ๋ชจ๋ธ์˜ ๋‹ค์–‘์„ฑ๊ณผ ์„ฑ๋Šฅ์„ ๊ณ ๋ คํ•˜์—ฌ, Hard Voting๊ณผ Soft Voting์˜ ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ์•™์ƒ๋ธ”์„ ์ง„ํ–‰. ์‹คํ—˜ ๊ฒฐ๊ณผ, ์ „๋ฐ˜์ ์œผ๋กœ Hard Voting ๋ฐฉ์‹์ด ๋” ๋†’์€ ์„ฑ๋Šฅ์„ ์œ ๋„ํ•˜์˜€๊ณ , ์ด์— ๋”ฐ๋ผ ์ตœ์ข… ์ œ์ถœ ๊ฒฐ๊ณผ์—๋„ Hard Voting ๋ฐฉ์‹์ด ์ ์šฉ

โ€ข Hard Voting : ์•™์ƒ๋ธ”ํ•œ ํŒŒ์ผ์—์„œ ๋‹จ์ˆœํžˆ ๊ฐ€์žฅ ์ž์ฃผ ๋“ฑ์žฅํ•˜๋Š” ๋‹จ์–ด๋ฅผ ์„ ํƒํ•˜๋Š” ๋ฐฉ์‹. ์ด๋•Œ, ์ตœ๋นˆ๋„ ๋‹จ์–ด๊ฐ€ 2๊ฐœ ์ด์ƒ์ผ ์‹œ ๋žœ๋ค์œผ๋กœ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅ

โ€ข Soft Voting: nbest_predictions.json์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹จ์–ด๋ณ„ ํ™•๋ฅ ๊ฐ’์„ ํ™œ์šฉํ•ด์„œ, ๊ฐ ํŒŒ์ผ์—์„œ ๋‹จ์–ด์˜ ํ™•๋ฅ ๊ฐ’์„ ํ‰๊ท ๋‚ธ ํ›„ ๊ฐ€์žฅ ๋†’์€ ๊ฐ’์„ ์„ ํƒํ•˜๋Š” ๋ฐฉ์‹

๐Ÿ“‚ ํด๋” ๊ตฌ์กฐ

๐Ÿ“ฆlevel2-nlp-mrc-nlp-04
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ code
โ”‚   โ”œโ”€โ”€ README.md
โ”‚   โ”œโ”€โ”€ arguments.py
โ”‚   โ”œโ”€โ”€ custom_model.py
โ”‚   โ”œโ”€โ”€ inference.py
โ”‚   โ”œโ”€โ”€ inference_bm25.py
โ”‚   โ”œโ”€โ”€ inference_es.py
โ”‚   โ”œโ”€โ”€ korquad_finetuning.ipynb
โ”‚   โ”œโ”€โ”€ requirements.txt
โ”‚   โ”œโ”€โ”€ retrieval.py
โ”‚   โ”œโ”€โ”€ retrieval_bm25.py
โ”‚   โ”œโ”€โ”€ retrieval_es.py
โ”‚   โ”œโ”€โ”€ train.py
โ”‚   โ”œโ”€โ”€ train_cnn.py
โ”‚   โ”œโ”€โ”€ trainer_qa.py
โ”‚   โ”œโ”€โ”€ utils
โ”‚   โ”‚   โ”œโ”€โ”€ datetime_helper.py
โ”‚   โ”‚   โ”œโ”€โ”€ file_name_utils.py
โ”‚   โ”‚   โ”œโ”€โ”€ hyper_parameters.py
โ”‚   โ”‚   โ”œโ”€โ”€ logging_utils.py
โ”‚   โ”‚   โ””โ”€โ”€ question ์ „์ฒ˜๋ฆฌ.ipynb
โ”‚   โ””โ”€โ”€ utils_qa.py
โ”œโ”€โ”€ data
โ”œโ”€โ”€ eval.sh
โ”œโ”€โ”€ inference.sh
โ”œโ”€โ”€ run.sh
โ””โ”€โ”€ train.sh

๐Ÿ› ๏ธ ์‚ฌ์šฉ๋ฐฉ๋ฒ•

  1. aistages์˜ ๋งํฌ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ํด๋”๋ฅผ ๋‹ค์šด๋ฐ›๋Š”๋‹ค.
  2. tar -zxvf data.tar.gz ๋กœ ์••์ถ•์„ ํ•ด์ œํ•œ๋‹ค.
  3. data ํด๋”๋ฅผ ๋ณต์‚ฌ + ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•œ๋‹ค.
  4. sh run.sh or chmod +x *.sh๋กœ ์‹คํ–‰๊ถŒํ•œ ์„ค์ • ์ดํ›„์— ./run.sh

๐Ÿ“œ ๋ฐœํ‘œ ์ž๋ฃŒ

MRCแ„ƒแ…ขแ„’แ…ฌแ„‡แ…กแ†ฏแ„‘แ…ญ_PPT.pdf

๐Ÿ“ Wrap-Up Report

MRC_NLP_แ„แ…ตแ†ท แ„…แ…ตแ„‘แ…ฉแ„แ…ณ(04แ„Œแ…ฉ).docx

About

level2-nlp-mrc-nlp-04 created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5