LLM-PREPARE แปลงโครงสร้างไดเรกทอรีโครงการที่ซับซ้อนและไฟล์เป็นไฟล์แบนเดียวหรือชุดไฟล์แบนการประมวลผลโดยใช้การเรียนรู้ในบริบท (ICL)
เครื่องมือ Node.js นี้สแกนไดเรกทอรีโครงการตามอาร์กิวเมนต์ที่ให้ไว้ (อย่างน้อยก็เป็นไดเรกทอรี) มันสร้างมุมมองเลย์เอาต์ที่เรียบง่ายซึ่งมีไดเรกทอรีทั้งหมดและไฟล์ที่ตรงกัน นอกจากนี้ยังรวมมุมมองเลย์เอาต์นี้เข้ากับเนื้อหาข้อความรวมของโครงการทั้งหมด โดยค่าเริ่มต้นเนื้อหาไฟล์ที่รวมจะถูกปลดออกจากความคิดเห็นและช่องว่างที่ไม่จำเป็น เครื่องมือรองรับการบีบอัดเอาต์พุตเพื่อลดการใช้โทเค็นและสามารถจัดการโครงการขนาดใหญ่ได้ มีการแจ้งเตือนตัวอย่างสำหรับคำแนะนำ
การเรียนรู้ในบริบท (ICL) ช่วยให้แบบจำลองสามารถทำงานได้โดยการตีความบริบทที่ให้ไว้ภายในพรอมต์ไม่จำเป็นต้องฝึกอบรมเพิ่มเติมหรือปรับแต่ง
เรียนรู้เพิ่มเติมเกี่ยวกับการเรียนรู้ในบริบท (ICL)
--config เพื่อโหลดไฟล์การกำหนดค่า JSON ที่มีอาร์กิวเมนต์และพา ธ ที่กำหนดไว้ล่วงหน้าเพื่อรวม .ignore โดยอัตโนมัติเพื่อยกเว้นไฟล์หรือไดเรกทอรีเฉพาะCREATE TABLE ตามเนื้อหา CSV ที่ให้ไว้ของคุณfs ให้วิธีการเพิ่มเติมและการสนับสนุนสัญญา.ignore คล้ายกับ .gitignoreyargs ก่อนที่จะติดตั้งตรวจสอบให้แน่ใจว่าคุณมี Node.js และ NPM (Node Package Manager) ติดตั้งในระบบของคุณ คุณสามารถดาวน์โหลดและติดตั้ง node.js ได้จากเว็บไซต์ทางการของ node.js
ในการติดตั้งและใช้ LLM-Prepare ทำตามขั้นตอนเหล่านี้:
โคลนที่เก็บ: เริ่มต้นด้วยการโคลนที่เก็บที่มี LLM-Prepare ไปยังเครื่องในพื้นที่ของคุณ
git clone https://github.com/samestrin/llm-prepare/นำทางไปยังไดเรกทอรีรากของโครงการของคุณและเรียกใช้:
npm installในการทำให้ LLM-Prepare พร้อมใช้งานจากทุกที่ในระบบของคุณคุณต้องติดตั้งทั่วโลก คุณสามารถทำได้โดยใช้ NPM
เรียกใช้คำสั่งต่อไปนี้ในไดเรกทอรีโครงการของคุณ:
npm link สิ่งนี้จะสร้าง Symlink ทั่วโลกให้กับสคริปต์ของคุณ ตอนนี้คุณสามารถเรียกใช้สคริปต์โดยใช้ llm-prepare จากที่ใดก็ได้ในเทอร์มินัลของคุณ
ขั้นตอนการติดตั้งที่ให้ไว้ควรใช้งานได้สำหรับทั้งแพลตฟอร์ม MacOS และ Linux
สำหรับ Windows ตรวจสอบให้แน่ใจว่ามีการเพิ่ม Node.js ลงในเส้นทางของคุณในระหว่างการติดตั้ง คำสั่ง npm link ควรทำงานใน Windows PowerShell หรือ Prompt คำสั่งเพื่อให้คุณสามารถเรียกใช้สคริปต์ทั่วโลก
ในการเรียกใช้สคริปต์คุณต้องให้ข้อโต้แย้งหนึ่งข้อที่บังคับ: เส้นทางไปยังไดเรกทอรีโครงการ ( --path-name หรือ -p )
สิ่งนี้จะประมวลผลไฟล์ทั้งหมดในไดเรกทอรีโครงการที่ระบุโดยเคารพไฟล์ .ignore ใด ๆ และส่งออกเนื้อหาและโครงสร้างรวมไปยังคอนโซลของคุณ ค่าเริ่มต้นรูปแบบไฟล์เป็น "*"
llm-prepare -p " /path/to/project "หรือ
llm-prepare --path " /path/to/project " สิ่งนี้จะประมวลผลไฟล์ JavaScript ทั้งหมดในไดเรกทอรีโครงการที่ระบุโดยเคารพไฟล์ .ignore ใด ๆ และส่งออกเนื้อหาและโครงสร้างรวมไปยังคอนโซลของคุณ
llm-prepare -p " /path/to/project " -f " *.js " สิ่งนี้จะประมวลผลไฟล์ทั้งหมดในไดเรกทอรีโครงการที่ระบุโดยเคารพไฟล์ .ignore ใด ๆ และส่งออกเนื้อหาและโครงสร้างรวมไปยัง output.txt
llm-prepare -p " /path/to/project " -o " output.txt " หากคุณไม่ได้ระบุชื่อไฟล์สิ่งนี้จะประมวลผลไฟล์ทั้งหมดในไดเรกทอรีโครงการที่ระบุโดยเคารพไฟล์ .ignore ใด ๆ และส่งออกเนื้อหาและโครงสร้างรวมไปยัง Project.txt ชื่อไฟล์จะสร้างอัตโนมัติตามไดเรกทอรีระดับบนสุดในตัวแปรชื่อพา ธ
llm-prepare -p " /path/to/project " -oคุณอาจเลือกตั้งค่าตัวแปรสภาพแวดล้อม LLM_PREPARE_OUTPUT_DIR หากตั้งค่าตัวแปรสภาพแวดล้อม LLM_PREPARE_OUTPUT_DIR จะถูกตั้งค่าไฟล์เอาต์พุตจะถูกเขียนลงในไดเรกทอรีนั้น
หากคุณไม่ต้องการรวมไฟล์หรือไดเรกทอรีที่เฉพาะเจาะจงคุณสามารถระบุกฎที่ใช้ --custom-ignore-string
llm-prepare -p " /path/to/project " -o --custom-ignore-string " *docs*,*test* " หากคุณไม่ต้องการรวมไฟล์หรือไดเรกทอรีที่เฉพาะเจาะจงคุณสามารถระบุกฎโดยใช้ชื่อภายนอกและ --custom-ignore-filename ใช้การจัดรูปแบบไฟล์. gitignore
llm-prepare -p " /path/to/project " -o --custom-ignore-filename " /path/to/.ignorefile " หากคุณไม่ต้องการรวมไฟล์หรือไดเรกทอรีที่เฉพาะเจาะจงคุณสามารถระบุกฎโดยใช้ชื่อภายนอกและ --custom-ignore-filename ใช้การจัดรูปแบบไฟล์. gitignore
llm-prepare -p " /path/to/project " -o --custom-ignore-filename " /path/to/.ignorefile " คุณสามารถใช้ไฟล์การกำหนดค่า JSON เพื่อกำหนดอาร์กิวเมนต์และเส้นทางเพื่อรวมไว้ในการประมวลผลล่วงหน้า
ตัวอย่าง config.json ไฟล์:
{
"args" : {
"output-filename" : " output.txt " ,
"compress" : true
},
"include" : [ " ./src/ " , " ./lib/ " ]
}ในการเรียกใช้สคริปต์ด้วยไฟล์กำหนดค่า:
llm-prepare -c " config.json " --help Show help [boolean]
-p, --path Path to the project directory[string] [required]
-f, --file-pattern Pattern of files to include, e.g., ' .js$ ' or
' * ' for all files [string] [default: " * " ]
-o, --output-filename Output filename [string]
-i, --include-comments Include comments ? (Default: false) [boolean]
-c, --compress Compress ? (Default: false) [boolean]
--chunk-size Maximum size (in kilobytes) of each file[number]
-s, --suppress-layout Suppress layout in output (Default: false)
[boolean]
--default-ignore Use a custom default ignore file [string]
--ignore-gitignore Ignore .gitignore file in the root of the
project directory [boolean]
--show-default-ignore Show default ignore file [boolean]
--show-prompts Show example prompts in your browser [boolean]
--custom-ignore-string Comma-separated list of ignore patterns [string]
--custom-ignore-filename Path to a file containing ignore patterns
[string]
--config Path to the config file [string]
-v, --version Display the version number [boolean]"ในขณะที่ Finetuning ด้วยชุดข้อมูลเต็มรูปแบบยังคงเป็นตัวเลือกที่มีประสิทธิภาพหากข้อมูลเกินความยาวบริบทอย่างมากผลลัพธ์ของเราแนะนำว่า ICL บริบทยาวเป็นทางเลือกที่มีประสิทธิภาพ-การซื้อขายค่าใช้จ่ายในการซื้อขายที่เพิ่มขึ้นสำหรับการคำนวณเวลาที่เพิ่มขึ้น
- พรอมต์ขนาดใหญ่สามารถทำได้ดีกว่าการปรับแต่งสำหรับ LLMS นักวิจัยพบว่า
การเรียนรู้ในบริบท (ICL) อนุญาตให้โมเดลภาษาขนาดใหญ่ (LLM) ทำงานโดยการตีความบริบทที่ให้ไว้ในพรอมต์โดยไม่ต้องฝึกอบรมเพิ่มเติมหรือปรับแต่ง วิธีการนี้แตกต่างอย่างมีนัยสำคัญจากวิธีการก่อนหน้านี้ที่แบบจำลองได้รับการฝึกฝนอย่างชัดเจนเกี่ยวกับงานเฉพาะโดยใช้ชุดข้อมูลมากมาย แต่ ICL ใช้ประโยชน์จากฐานความรู้ที่ผ่านการฝึกอบรมมาก่อนของแบบจำลองซึ่งเป็นความเข้าใจที่ครอบคลุมที่สะสมในช่วงการฝึกอบรมที่กว้างขวาง
ในฐานะที่เป็นขนาดโทเค็น - หรือจำนวนข้อมูลที่ LLM สามารถประมวลผลและสร้างในอินสแตนซ์เดียว - เพิ่มขึ้นอย่างมากค่าของ ICL มีความสำคัญมากขึ้น ขนาดโทเค็นที่เพิ่มขึ้นนี้ช่วยให้ LLM สามารถจัดการอินพุตและเอาต์พุตที่ซับซ้อนได้นานขึ้นซึ่งช่วยเพิ่มความสามารถในการทำความเข้าใจและสร้างข้อความที่ซับซ้อน
การเรียนรู้ในบริบท (ICL) จะแนะนำแบบจำลองภาษาขนาดใหญ่ (LLM) ในการทำงานโดยให้บริบทที่เกี่ยวข้องภายในพรอมต์อินพุต โดยทั่วไปแล้วจะมีตัวอย่างคำแนะนำหรือรูปแบบที่ช่วยให้โมเดลเข้าใจวิธีการสร้างคำตอบที่เหมาะสม นี่คือลักษณะและตัวอย่างของการแจ้งเตือน ICL:
ยินดีต้อนรับการมีส่วนร่วมในโครงการนี้ โปรดแยกที่เก็บและส่งคำขอดึงพร้อมกับการเปลี่ยนแปลงหรือการปรับปรุงของคุณ
โครงการนี้ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT - ดูไฟล์ใบอนุญาตสำหรับรายละเอียด