วิธีการสร้าง กราฟความรู้ จากแหล่งข้อมูลที่ไม่มีโครงสร้าง
ข้อแม้: repo นี้ให้ซอร์สโค้ดและสมุดบันทึกซึ่งมาพร้อมกับการสอนการเรียนการสอน; มันไม่ได้มีไว้เพื่อเป็นไลบรารีหรือผลิตภัณฑ์แพ็คเกจ
python3 -m venv venv
source venv/bin/activate
python3 -m pip install -U pip wheel
python3 -m pip install -r requirements.txt แอพสาธิตเต็มรูปแบบอยู่ใน demo.py :
python3 demo.py การสาธิตนี้ทำให้แหล่งข้อความจากบทความเกี่ยวกับการเชื่อมโยงระหว่างภาวะสมองเสื่อมและการกินเนื้อแดงที่ผ่านการประมวลผลอย่างสม่ำเสมอจากนั้นสร้างกราฟโดยใช้ NetworkX ฐานข้อมูลเวกเตอร์ของการฝังตัวของข้อความโดยใช้ LanceDB และโมเดลฝังเอนทิตีโดยใช้ gensim.Word2Vec
data/kg.json - การทำให้เป็นอนุกรมของกราฟ NetworkXdata/lancedb - ตารางฐานข้อมูลเวกเตอร์data/entity.w2v - โมเดลการฝังเอนทิตีkg.html - การสร้างภาพกราฟแบบโต้ตอบใน PyVis คอลเลกชันของสมุดบันทึก Jupyter แสดงให้เห็นถึงขั้นตอนสำคัญในเวิร์กโฟลว์นี้:
./venv/bin/jupyter-labconstruct.ipynb - การก่อสร้าง KG โดยละเอียดโดยใช้กราฟคำศัพท์chunk.ipynb - ตัวอย่างง่ายๆของวิธีการขูดและข้อความvector.ipynb - Query lancedb Table สำหรับการฝังตัวของข้อความ (หลังจากเรียกใช้ demo.py )embed.ipynb - สอบถามโมเดลการฝังเอนทิตี (หลังจากเรียกใช้ demo.py ) วัตถุประสงค์: สร้าง กราฟความรู้ (กก.) โดยใช้ไลบรารีโอเพ่นซอร์สที่แบบจำลองการเรียนรู้ลึกให้ บริการโซลูชันจุด ที่มุ่งเน้นอย่างแคบ ๆ เพื่อสร้างส่วนประกอบสำหรับกราฟ: โหนด, ขอบ, คุณสมบัติ
ขั้นตอนเหล่านี้กำหนดกระบวนการทั่วไปโดยที่บทช่วยสอนนี้หยิบขึ้นมาที่ กราฟคำศัพท์ :
ซ้อนทับความหมาย:
กราฟข้อมูล:
กราฟคำศัพท์:
วิธีการนี้ตรงกันข้ามกับการใช้ โมเดลภาษาขนาดใหญ่ (LLM) เป็น ขนาดเดียวที่เหมาะกับวิธีการ "กล่องดำ" ทั้งหมด เพื่อสร้างกราฟทั้งหมดโดยอัตโนมัติ วิธีการกล่องดำไม่ทำงานได้ดีสำหรับการปฏิบัติ KG ในสภาพแวดล้อมที่มีการควบคุมซึ่งจำเป็นต้องมีการตรวจสอบคำอธิบายหลักฐานการให้ข้อมูลที่มาจากข้อมูล ฯลฯ
ยังดีกว่าตรวจสอบผลลัพธ์ระดับกลางหลังจากขั้นตอนการอนุมานแต่ละขั้นตอนเพื่อรวบรวมความคิดเห็นของมนุษย์สำหรับการดูแลส่วนประกอบ KG เช่นโดยใช้ Argilla
KGs ใช้ในแอพที่มีความสำคัญต่อภารกิจเช่นการตรวจสอบโดยทั่วไปขึ้นอยู่กับการอัปเดตไม่ใช่กระบวนการก่อสร้างขั้นตอนเดียว ด้วยการผลิตกิโลกรัมตามขั้นตอนข้างต้นการอัปเดตสามารถจัดการได้อย่างมีประสิทธิภาพมากขึ้น แอพดาวน์สตรีมเช่น กราฟ RAG สำหรับการลงดินผลลัพธ์ LLM จะได้รับประโยชน์จากคุณภาพข้อมูลที่ดีขึ้น
spaCy : https://spacy.io/GLiNER : https://github.com/urchade/glinerGLiREL : https://github.com/jackboyla/GliRelOpenNRE : https://github.com/thunlp/opennreNetworkX : https://networkx.org/PyVis : https://github.com/westhealth/pyvisLanceDB : https://github.com/lancnb/lancingbgensim : https://github.com/piskvorky/gensimpandas : https://pandas.pydata.org/Pydantic : https://github.com/pydantic/pydanticPyinstrument : https://github.com/joerick/pyinstrument หมายเหตุ: คุณต้องใช้สคริปต์ nre.sh เพื่อโหลดโมเดลที่ได้รับการฝึกอบรมล่วงหน้า OpenNRE ก่อนที่จะเรียกใช้สมุดบันทึก opennre.ipynb