การเรียนรู้ llms และ genai สำหรับ Dev, Sec, Ops
repo นี้เกี่ยวกับอะไร?
การซื้อคืนนี้มีจุดมุ่งหมายเพื่อจัดโครงสร้างข้อมูลต่างๆ เกี่ยวกับ LLM และ GenAi ใน การบรรยายบทเรียน ที่วิศวกรรมซอฟต์แวร์แบบดั้งเดิมเข้าใจได้ง่าย โดยเน้นประเด็นต่างๆ ที่คุณต้องเข้าใจจากมุมมองด้านการพัฒนา การปฏิบัติการ และความปลอดภัย แม้ว่าจะมีเนื้อหามากมาย แต่ฉันพบว่าตัวเองกำลังอธิบายสิ่งเดิมๆ ซ้ำแล้วซ้ำอีกและพัฒนาเรื่องราวขึ้นมา
บทเรียนส่วนใหญ่จะอิงตามเฟรมเวิร์กของ Langchain และคาดว่าจะมีความคุ้นเคยเล็กน้อยกับภาษาการเขียนโปรแกรม Python มีตัวอย่างมากมายที่ยืมมาจากหน้าเอกสารประกอบและมีการระบุแหล่งที่มาหากเป็นไปได้ ขอชื่นชม Langchain สำหรับการรวบรวมเนื้อหามากมาย!
ภาพรวมบทเรียน
นักพัฒนา
- เรียก LLM อย่างง่ายโดยใช้ OpenAI
- กำลังดูการดีบักใน Langchain
- สนทนากับ OpenAI เพื่อเป็นต้นแบบ
- การใช้เทมเพลตพร้อมท์
- การใช้ Docloader เพื่ออ่านไฟล์ในเครื่องของคุณและเตรียมพร้อมสำหรับ LLM
- อธิบายการคำนวณและการใช้การฝัง
- ทำความเข้าใจว่าการแยกและการแบ่งส่วนมีความสำคัญอย่างไร
- กำลังโหลดการฝังและเอกสารในฐานข้อมูลเวกเตอร์
- ใช้ห่วงโซ่สำหรับคำถามและคำตอบเพื่อใช้รูปแบบ RAG (Retriival Augmented Generation)
- แสดงการใช้เอกสาร OpenAI เพื่อให้ llm สร้างการโทรเพื่อค้นหาข้อมูลแบบเรียลไทม์
- ใช้งานตัวแทนและจัดเตรียมเครื่องมือเพื่อรับข้อมูลเรียลไทม์เพิ่มเติม
การดำเนินงาน
- ค้นหาจำนวนโทเค็นที่คุณใช้และค่าใช้จ่าย
- วิธีแคชการโทรของคุณไปยัง LLM โดยใช้การจับคู่หรือการฝังแบบตรงทั้งหมด
- วิธีแคชการคำนวณการฝังและรันการคำนวณภายในเครื่อง
- เรียกใช้ LLM ในพื้นที่ของคุณเอง (โดยใช้ Ollama)
- ติดตามการโทรของคุณและบันทึกลงในไฟล์ (โดยใช้ตัวจัดการการโทรกลับ)
- กำหนดโครงสร้างเอาต์พุต (เป็น JSON) และให้ LLM ลองอีกครั้งหากไม่ถูกต้อง
ความปลอดภัย
- อธิบาย OWASP 10 อันดับแรกสำหรับ LLMS
- แสดงให้เห็นว่าการฉีดพร้อมท์อย่างง่ายทำงานอย่างไรและกลยุทธ์การบรรเทาผลกระทบบางประการ
- วิธีตรวจจับการฉีดทันทีโดยใช้โมเดลบุคคลที่สามจาก Hugginface
- ตรวจจับการแทรกโปรเจ็กต์โดยใช้พร้อมท์
- ตรวจสอบคำตอบที่ llms ให้มาและพิจารณาว่าตกลงหรือไม่
- ใช้โมเดลหน้ากอดเพื่อตรวจสอบว่าเอาต์พุต LLM เป็นพิษหรือไม่
- แสดงข้อความแจ้งง่ายๆ เพื่อถามความคิดเห็นของ llm เกี่ยวกับช่องโหว่ของ Kubernetes และ Trivy
ข้ามไปที่ https://github.com/jedi4ever/learning-llms-and-genai-for-dev-sec-ops/tree/main/lessons เร็วๆ นี้ !
ประวัติความเป็นมาของ repo นี้
- โครงสร้างบทเรียนเริ่มต้นถูกสร้างขึ้นระหว่างแฮ็กกาตัน GenAI ซึ่งจัดโดย Techstrong/MediaOps อย่างสง่างาม
- บทเรียนได้รับการปรับปรุงเพื่อการนำเสนอที่กลุ่ม London Devops Meetup
- คนอื่นๆ กำลังวางแผนที่จะใช้งานเวอร์ชันของตนเอง
คุณจะช่วยได้อย่างไร?
แจ้งให้เราทราบว่าคุณต้องการดูบทเรียนในหัวข้อใด เปิดปัญหา GitHub เพื่อถาม
ส่งบทเรียนใหม่ ส่งการแก้ไขให้เรา ฯลฯ เพื่อปรับปรุง
ดำเนินการพบปะ/แฮ็กคาตันของคุณเองโดยใช้ repo นี้เป็นฐานและรายงานกลับ! เราชอบที่จะได้ยินเรื่องราวเหล่านั้น ส่งรูปภาพหรือวิดีโอมาให้เรา!
ส่งทวีตขอบคุณไปที่ @patrickdebois
ข้อกำหนดในการรัน repo นี้ (ต้องการความรักมากขึ้น)
รันโดยใช้ devcontainer
โปรเจ็กต์นี้มีคอนเทนเนอร์ Dev เพื่อเรียกใช้ Repo ในเครื่อง หรือคุณสามารถใช้ Google ร่วมมือกันเพื่อเรียกใช้สมุดบันทึก
เรียกใช้ในเครื่อง
- เราใช้ Microsoft VSCode เพื่อเรียกใช้การสาธิต
- เราใช้งานสมุดบันทึก python & jupyter ในพื้นที่
- เราใช้บทกวีเป็นตัวจัดการ env python เสมือนของเรา
Poetry เป็นตัวจัดการแพ็คเกจใหม่ในบล็อก คล้ายกับ Conda หรือ Pip พร้อม venv
poetry init
poetry install --no-root
กำหนดค่า vscode เพื่อใช้บทกวี
- ติดตั้ง python 3.11 (ตัวอย่างส่วนใหญ่ใช้งานได้กับ 3.12) กับ pyenv
- รับเส้นทาง pyenv
pyenv which python
- ตั้งค่าเวอร์ชันกวีนิพนธ์ pyton
poetry env use <the python binary path from pyenv>
- ค้นหาเส้นทางบทกวี env
poetry env info --path
- ใน
view -> command pallete -> python: select interpreter -> enter interpreter path
- เพิ่มเส้นทาง
/Users/patrick.debois/Library/Caches/pypoetry/virtualenvs/london-devops-VW7lFx7f-py3.11
+ เพิ่ม /bin/python to it
-
poetry add ipykernel
กำหนดค่าโน้ตบุ๊ก jupyter
- ติดตั้งปลั๊กอิน vscode
- ติดตั้ง ipykernel
บันทึกการเปลี่ยนแปลง
- เวอร์ชัน 0.1 พร้อมไวยากรณ์ langchain เริ่มต้น
- เวอร์ชัน 0.2 ปรับให้เข้ากับ langchain-community ใหม่ langchain-openai และไวยากรณ์ใหม่