การซื้อคืนนี้ใช้เครื่องสแกนรายวันที่ง่ายมากสำหรับ Arxiv ซึ่งใช้ GPT4 และการจับคู่ผู้เขียนเพื่อค้นหาเอกสารที่คุณอาจพบว่าน่าสนใจ โดยจะทำงานทุกวันผ่านการกระทำของ GitHub และสามารถโพสต์ข้อมูลนี้เพื่อหย่อนผ่านบอทหรือเพียงแค่แสดงผลบนเว็บไซต์หน้า GitHub แบบคงที่
สามารถดูการสาธิตหนังสือพิมพ์รายวันแบบง่ายๆ ได้ที่นี่ บน cs.CL
ตามการประมาณการต้นทุน การเรียกใช้สิ่งนี้บน cs.CL
ทั้งหมดมีค่าใช้จ่าย 0.07 USD ในวันที่ 7/2/2024
นี่เป็นขั้นตอนที่จำเป็นขั้นต่ำในการทำให้สแกนเนอร์ทำงานได้ ขอแนะนำอย่างยิ่งให้อ่านเนื้อหาทั้งหมดเพื่อตัดสินใจว่าคุณต้องการวิ่งประเภทใด
config/paper_topics.template.txt
ไปยัง config/paper_topics.txt
และกรอกประเภทเอกสารที่คุณต้องการติดตามconfig/authors.template.txt
ไปยัง config/authors.txt
และแสดงรายการผู้เขียนที่คุณต้องการติดตามจริงๆ ตัวเลขที่อยู่ข้างหลังผู้เขียนมีความสำคัญ เป็นรหัสผู้เขียน semantic scholar ซึ่งคุณสามารถค้นหาได้โดยการค้นหาผู้เขียนใน semantic scholar และใช้ตัวเลขที่ส่วนท้ายของ URLconfig/config.ini
OAI_KEY
) เป็น ``ความลับ GitHubณ จุดนี้บอทของคุณควรทำงานทุกวันและเผยแพร่เว็บไซต์แบบคงที่ คุณสามารถทดสอบสิ่งนี้ได้ด้วยการรันเวิร์กโฟลว์การดำเนินการ GitHub ด้วยตนเอง
ไม่บังคับ แต่แนะนำเป็นอย่างยิ่ง :
S2_KEY
) เป็นความลับ GitHub มิฉะนั้นขั้นตอนการค้นหาผู้เขียนจะช้ามากSLACK_KEY
เป็นความลับ GitHubSLACK_CHANNEL_ID
ในความลับ GitHubconfigs/config.ini
เพื่อปรับแต่งวิธีการกรองสิ่งต่างๆในแต่ละวันเวลา 13.00 น. UTC บอทจะทำงานและโพสต์ไปที่ slack และเผยแพร่เว็บไซต์หน้า GitHub (ดูรายละเอียดการดำเนินการ publish_md และ cron_runs)
โดยทั่วไปขั้นตอนจะเหมือนกับข้างต้น แต่คุณต้องตั้งค่าสภาพแวดล้อมผ่าน requirements.txt
แทนที่จะส่งข้อมูลรับรองผ่านความลับ GitHub คุณต้องตั้งค่าตัวแปรสภาพแวดล้อม OAI_KEY
, SLACK_KEY
, SLACK_CHANNEL_ID
หากต้องการรันทุกอย่าง เพียงโทรไป main.py
หมายเหตุอื่น ๆ: คุณอาจต้องการไม่ push to slack ซึ่งในกรณีนี้ให้ตั้งค่าจุดสิ้นสุดเอาต์พุตที่คุณต้องการ (json, markdown, slack) ในฟิลด์ dump_json
, dump_md
และ push_to_slack
ของ config/config.ini
หาก Semantic Scholar API หมดเวลาหรือช้า คุณควรได้รับคีย์ S2 api และตั้งค่าเป็น S2_KEY
ในตัวแปรสภาพแวดล้อมของคุณ (เนื่องจากข้อจำกัดของการกระทำของ GitHub สิ่งนี้จะช่วยได้ก็ต่อเมื่อมีการเรียกใช้โค้ดในเครื่อง)
ทำให้มันทำงานด้วยตัวเอง: ทั้งหมดนี้แทบจะไม่ต้องใช้การประมวลผลเลย ดังนั้นคุณจึงสามารถเช่า VM ที่ถูกที่สุดจาก AWS ใส่ repo นี้ลงไป ติดตั้ง requirements.txt
ตั้งค่าตัวแปรสภาพแวดล้อมอย่างเหมาะสม และเพิ่ม crontab ต่อไปนี้
0 13 * * * python ~/arxiv_scanner/main.py
crontab นี้จะเรียกใช้สคริปต์ทุก ๆ 13.00 น. UTC, 18.00 น. แปซิฟิก
paper_topics.txt
ไฟล์ paper_topics.txt
ใช้เพื่อสร้างพรอมต์สำหรับ GPT เป็นรายการหัวข้อที่คุณต้องการติดตาม ตัวอย่างชุดหนึ่งอาจเป็นประมาณนี้
1. New methodological improvements to RLHF or instruction-following which are specific fine-tuning steps that are taken to make language models better at following user instructions across a range of tasks.
- Relevant: papers that discuss specific methods like RLHF, or instruction-tuning datasets, improving these methods, or analyzing them.
- Not relevant: papers about adaptation to some task. Simply following instructions or inputs are not sufficient.
2. Shows new powerful test set contamination or membership inference methods for language models. Test set contamination is the phenomenon where a language model observes a benchmark dataset during pretraining.
- Relevant: test statistics that can detect contamination of benchmarks in language models. statistics that can provide guarantees are more interesting. membership inference methods that are general enough to apply to language models are also relevant.
- Not relevant: any papers that do not consider language models, or that do not consider test set contamination.
3. Shows a significant advance in the performance of diffusion language models.
- Relevant: papers that study language models that are also diffusion models. Continuous diffusions are even more relevant, while discrete diffusions are less so.
- Not relevant: papers about image diffusions like DALL-E or Stable Diffusion, or papers that do not explicitly mention language models or applications to text.
นี่เป็นเพียงพรอมต์มาตรฐาน แต่การระบุอย่างเฉพาะเจาะจงสามารถช่วยได้ โดยเฉพาะอย่างยิ่งสำหรับสิ่งต่างๆ เช่น 'แบบจำลองภาษาการแพร่กระจาย' หรือ 'การปฏิบัติตามคำสั่ง' ซึ่ง LM อาจสับสนว่าการแพร่กระจายของภาพมีความเกี่ยวข้องหรือไม่ หรือการทำงานบางอย่างดีกว่าหรือไม่ เพียงพอที่จะปรับปรุงการสอนตาม
คุณอาจต้องการติดตามสิ่งนี้โดยมีประเด็นความสนใจทั่วไปบางอย่างเช่น
In suggesting papers to your friend, remember that he enjoys papers on statistical machine learning, and generative modeling in natural language processing.
Your friend also likes learning about surprising empirical results in language models, as well as clever statistical tricks.
He does not want to read papers that are about primarily applications of methods to specific domains.
สคริปต์จะดึงชุดเอกสาร ArXiv สำหรับวันที่ระบุผ่านฟีด RSS เพื่อหลีกเลี่ยงการประกาศซ้ำซ้อน ระบบจะดึงฟีด RSS ภายในวันสุดท้ายเท่านั้น เพื่อหลีกเลี่ยงไม่ให้เอกสารสูญหาย คุณจะต้องดำเนินการนี้ทุกวัน มันกรองเอกสาร UPDATED
ใด ๆ และประกาศเฉพาะเอกสารใหม่เท่านั้น
ตรรกะการกรองค่อนข้างง่าย ก่อนอื่นเราจะตรวจสอบการจับคู่ของผู้แต่ง
authors.txt
รหัสนั้นจะอยู่ในตัวเลือกที่ตั้งค่าไว้ด้วยคะแนนเริ่มต้น author_match_score
จากนั้นเราจะตรวจสอบความเกี่ยวข้องที่ประเมินโดย GPT เราทำสิ่งนี้ในสองขั้นตอน
hcutoff
ใน config.ini
ทั้งนี้เพื่อลดต้นทุนmodel
ใน config.ini
คุณควรใช้ GPT3.5 ในการแก้ไขข้อบกพร่องเท่านั้น มันใช้งานไม่ได้กับจุดประสงค์นี้! ขั้นตอนนี้ใช้การตั้งค่าพรอมต์ต่อไปนี้ซึ่งกำหนดไว้ใน configs/
คุณเป็นผู้ช่วยอ่านรายงานที่เป็นประโยชน์ โดยมีหน้าที่อ่านโพสต์รายวันจาก ArXiv และระบุเอกสารบางฉบับที่อาจเกี่ยวข้องกับเพื่อนของคุณ ข้างล่างนี้จะมีเอกสารมากถึง 5 เรื่อง งานของคุณคือค้นหาเอกสารที่:
- เกณฑ์ 1
- เกณฑ์ 2
[เอกสาร]
เขียนคำตอบในรูปแบบ JSONL โดยมี {ARXIVID, COMMENT, RELEVANCE, NOVELTY} ในแต่ละบรรทัด หนึ่งบรรทัดสำหรับรายงานแต่ละฉบับ ARXIVID ควรเป็น ArXiv ID ความคิดเห็นควรระบุว่ามีเกณฑ์ที่ตรงกับบทความอย่างใกล้ชิดหรือไม่ หากเป็นเช่นนั้นควรระบุเป็นตัวเลข (ไม่ต้องระบุเกณฑ์ที่ไม่ตรงกัน) การจับคู่เหล่านี้ไม่ควรอิงตามคำทั่วไป เช่น "การสร้างแบบจำลองภาษา" หรือ "ความก้าวหน้า" และควรอ้างอิงถึงเกณฑ์โดยเฉพาะ ความเกี่ยวข้องควรเป็นคะแนนความเกี่ยวข้องตั้งแต่ 1-10 โดยที่ 10 ต้องเกี่ยวข้องโดยตรงกับเกณฑ์เฉพาะเจาะจงที่ตรงกันทุกประการด้วยการจับคู่คีย์เวิร์ดที่มีความหมายใกล้เคียงกัน และผู้แต่งที่มีชื่อเสียงในการทำงานในหัวข้อนี้ 10 ไม่เกี่ยวข้องกับเกณฑ์ใดๆ และไม่เกี่ยวข้องกับ ความสนใจทั่วไปของเพื่อนของคุณ 2-3 คือเอกสารที่เกี่ยวข้องกับความสนใจทั่วไป แต่ไม่ใช่เกณฑ์เฉพาะ และ 5 คือการจับคู่โดยตรงกับความสนใจเฉพาะ เกณฑ์ ความแปลกใหม่ควรเป็นคะแนนตั้งแต่ 1 ถึง 10 โดย 10 คือการค้นพบที่มีจุดประสงค์ทั่วไปที่แหวกแนวที่จะเปลี่ยนแปลงทั้งสาขา และ 1 คืองานที่ปรับปรุงด้านหนึ่งของปัญหา หรือเป็นการนำไปใช้กับสาขาที่เฉพาะเจาะจงมาก อ่านบทคัดย่ออย่างละเอียดเพื่อพิจารณาเรื่องนี้ และถือว่าผู้เขียนไม่สามารถเชื่อถือได้ในการกล่าวอ้างเรื่องความแปลกใหม่
config/papers_topics.txt
) และความแปลกใหม่ (ระดับ 1-10)config.ini
สุดท้ายนี้ เอกสารทั้งหมดจะถูกจัดเรียงตาม author_match_score
สูงสุด และผลรวมของคะแนนความเกี่ยวข้องและความแปลกใหม่ที่ได้รับการจัดอันดับ GPT (คะแนนความเกี่ยวข้องและความแปลกใหม่จะแสดงในผลลัพธ์สุดท้ายเท่านั้น หากอยู่เหนือเกณฑ์การตัดออกที่คุณตั้งไว้ในการกำหนดค่า ไฟล์). จากนั้นเอกสารจะถูกเรนเดอร์และผลักไปยังจุดสิ้นสุด (ไฟล์ข้อความหรือ Slack)
repo นี้ใช้ ruff check .
และ ruff format .
โปรดติดตั้ง hook ล่วงหน้าโดยการรัน pre-commit install
รหัส filter_papers.py
ยังสามารถเรียกใช้เป็นสคริปต์แบบสแตนด์อโลนได้ สิ่งนี้จะใช้ชุดเอกสารใน in/debug_papers.json
เรียกใช้การกำหนดค่าใด ๆ และแจ้งให้คุณมีและส่งคืนเอาต์พุตไปที่ out/filter_paper_test.debug.json
หากคุณพบว่าบอททำผิดพลาด คุณสามารถค้นหาแบตช์ที่เกี่ยวข้องได้ใน out/gpt_paper_batches.debug.json
และคัดลอกสิ่งนั้นลงในไฟล์ debug_papers
ที่เกี่ยวข้อง
วิธีนี้ช่วยให้คุณสร้างเกณฑ์มาตรฐานสำหรับตัวกรองและดูว่ามีอะไรเกิดขึ้นที่อีกด้านหนึ่ง
repo และโค้ดนี้เดิมสร้างโดย Tatsunori Hashimoto ได้รับอนุญาตภายใต้ใบอนุญาต Apache 2.0 ขอขอบคุณ Chenglei Si สำหรับการทดสอบและเปรียบเทียบตัวกรอง GPT