2 poin oleh GN⁺ 2024-09-17 | 1 komentar | Bagikan ke WhatsApp
  • g1 adalah prototipe awal yang menggunakan Llama-3.1 70B dan strategi prompt di Groq untuk menghasilkan rantai penalaran mirip o1 di mana LLM “berpikir” langkah demi langkah
  • Tidak seperti OpenAI o1, semua token penalaran ditampilkan kepada pengguna, dan meskipun menggunakan model open source, ini bukan replika penuh atau perbandingan langsung dengan o1, melainkan eksperimen penalaran berbasis prompt
  • Pada setiap langkah, model memilih apakah akan lanjut ke langkah penalaran berikutnya atau memberikan jawaban akhir, dan dirancang untuk mengembalikan judul serta isi tiap langkah dalam format JSON
  • Prompt meminta minimal 3 langkah, eksplorasi alternatif, pemeriksaan kemungkinan kesalahan sendiri, dan penggunaan minimal 3 metode; pada masalah Strawberry, performanya menunjukkan akurasi sekitar 70% (n=10) dibanding Llama-3.1-70B tanpa prompt 0% dan ChatGPT-4o 30%
  • Dalam pengujian awal, akurasi pada soal logika sederhana berada di kisaran 60~80%, tetapi akurasinya belum dievaluasi secara resmi dan g1 juga belum sempurna

Masalah yang ingin diselesaikan g1

  • g1 adalah prototipe awal yang bertujuan meningkatkan kemampuan penalaran LLM hanya dengan strategi prompt
  • Tujuannya adalah membuat LLM menyelesaikan soal logika yang biasanya sulit dengan rantai penalaran mirip o1
  • Perbedaannya dengan OpenAI o1 dijelaskan secara eksplisit
    • g1 menampilkan semua token penalaran kepada pengguna
    • g1 menggunakan model open source
    • g1 bukan replika penuh atau perbandingan performa dengan o1
    • OpenAI o1 menggunakan reinforcement learning skala besar untuk melatih penalaran Chain of Thought dan mencapai performa mutakhir pada masalah kompleks setingkat doktoral

Cara kerja

  • g1, berbasis Llama3.1-70b, menghasilkan rantai penalaran yang mendekati Chain of Thought dinamis
  • Setiap langkah penalaran ditampilkan kepada pengguna dan setiap langkah diberi judul
  • Pada tiap langkah, model memilih salah satu dari dua opsi
    • Lanjut ke langkah penalaran berikutnya
    • Memberikan jawaban akhir
  • Prompt sistem berisi instruksi agar model bernalar lebih baik
    • Menjelajahi jawaban alternatif
    • Menurunkan jawaban dengan minimal 3 metode
    • Mempertanyakan solusi draf sebelumnya
    • Mempertimbangkan keterbatasan LLM

Strategi prompt

  • Prompt memberikan peran kepada model sebagai expert AI assistant yang menjelaskan reasoning langkah demi langkah
  • Setiap langkah harus dijawab dalam format JSON dengan kunci title, content, next_action
    • Nilai next_action adalah continue atau final_answer
  • Instruksi yang ditekankan dengan huruf besar digunakan untuk meningkatkan kepatuhan terhadap prompt
    • Gunakan sebanyak mungkin langkah penalaran, tetapi minimal 3 langkah
    • Sadarilah apa yang bisa dan tidak bisa dilakukan sebagai LLM
    • Jelajahi jawaban alternatif, dan pertimbangkan titik-titik di mana penalaran sendiri bisa salah
    • Saat mengatakan akan meninjau ulang, benar-benar tinjau ulang dengan pendekatan lain
    • Turunkan jawaban dengan minimal 3 metode
    • Gunakan praktik terbaik
  • Setelah menambahkan masalah sebagai pesan pengguna, generasi dimulai dengan memasukkan kalimat pembuka standar sebagai pesan assistant

Contoh dan hasil awal

  • g1 menangani masalah Strawberry seperti “berapa banyak huruf R dalam strawberry?” yang merupakan soal logika sederhana namun sulit diselesaikan tanpa prompt
  • Angka awal untuk masalah tersebut disajikan
    • g1: akurasi sekitar 70%, n=10
    • Llama-3.1-70B tanpa prompt: akurasi 0%
    • ChatGPT-4o: akurasi 30%
  • Dalam pengujian awal, g1 menyelesaikan soal logika sederhana yang biasanya sulit bagi LLM dengan akurasi 60~80%
  • Akurasinya belum dievaluasi secara resmi
  • Contoh soal mencakup How many Rs are in strawberry? dan Which is larger, .9 or .11?

Cara menjalankan dan fork terkait

  • Prosedur menjalankan UI Streamlit
    • python3 -m venv venv
    • source venv/bin/activate
    • pip3 install -r requirements.txt
    • export GROQ_API_KEY=gsk...
    • streamlit run app.py
  • Prosedur menjalankan UI Gradio
    • cd gradio
    • pip3 install -r requirements.txt
    • python3 app.py
  • Fork dan demo terkait
    • Hugging Face Spaces Demo
    • Mult1: menghasilkan rantai penalaran mirip o1 menggunakan beberapa penyedia AI
    • thinkR: mengimplementasikan Chain of Thought mirip o1 dengan LLM lokal di R

1 komentar

 
GN⁺ 2024-09-17
Komentar Hacker News
  • Ini sama sekali tidak tepat dan cukup melenceng. Ini hanya menjalankan chain of thought di dalam loop.
    Tree of Thoughts adalah metode yang lebih canggih; lihat makalahnya di https://arxiv.org/pdf/2305.10601
    Sudah ada petunjuk sejak lama bahwa OpenAI melakukan pencarian pohon, dan perekrutan Noam Brown serta karya-karyanya sebelumnya semuanya mengarah ke sana. Q tampaknya jelas merupakan pencarian pohon seperti A*. Membuat pohon dengan sesuatu seperti CoT lalu mencari solusi optimal di dalamnya itulah penalaran Sistem 2

    • Saya masuk ke sini untuk melihat ini.
      Menyuruh model berpikir langkah demi langkah tidak akan membuka penalaran seperti o1. Ini trik lama yang bahkan dipakai pada GPT-3 pada 2020, dan kalau memang sesederhana itu, OpenAI tidak akan butuh waktu selama ini untuk merilisnya.
      Selain itu, sebagian prompt bisa berdampak sebaliknya. Instruksi seperti “sadari keterbatasanmu sebagai LLM dan apa yang bisa/tidak bisa kamu lakukan” berpotensi membuat model terlalu berhati-hati dan menghasilkan penolakan yang keliru, karena LLM juga tidak benar-benar memahami batasannya sendiri.
    • Menarik bahwa DeepMind masih memublikasikan hal-hal seperti ini. OpenAI sekarang hampir tidak lagi memublikasikan jenis ini.
      DeepMind lebih berfokus pada riset dan publikasi makalah, tetapi dalam lingkungan kompetitif di mana OpenAI dan Anthropic bisa mengambil hasil makalah lalu tidak mengembalikan apa pun ke komunitas riset, itu menjadi posisi yang merugikan.
    • Saya tidak tahu di bagian mana tulisan blog OpenAI, terutama bagian yang tampaknya memperlihatkan contoh chain of thought model dengan cukup lengkap, mengisyaratkan bahwa mereka memakai search atau Tree of Thoughts.
    • OAI menyatakan di Twitter bahwa pada waktu inferensi tidak ada “sistem”, hanya model.
      Mungkin mereka memperluasnya menjadi pohon selama pelatihan untuk mempelajari penalaran yang lebih tangguh, tetapi pada waktu inferensi pada akhirnya ini kembali menjadi model Transformer biasa.
  • Gagasan seperti “menulis semuanya dengan huruf kapital untuk menekankan pentingnya instruksi dan meningkatkan kepatuhan prompt” masih terasa sangat lucu.
    Saya jadi penasaran apakah orang pertama yang menyalakan AGI akan menyadari bahwa mengatakan “nyawa hewan peliharaanku bergantung pada jawaban ini” dengan HURUF KAPITAL membuat keandalan LLM melewati ambang batas.

    • Untuk mendapatkan lebih banyak kepatuhan, gunakan tag, setel volume ke 11, phaser ke 7, lalu tambahkan komentar SchIzOCasE dan +E+X+T+R+A+I+M+P+O+R+T+A+N+T+. Tentu saja dengan asumsi Unicode tidak didukung.
    • Jika dalam prompt Anda menyuruh LLM untuk tidak berhalusinasi, output-nya membaik: https://arstechnica.com/gadgets/2024/08/do-not-hallucinate-t...
    • Kalau begitu, AGI akan menyadari bahwa ia diciptakan di dunia tempat ia dijanjikan tip tetapi sebenarnya tidak pernah mendapatkannya, dan orang-orang memotivasinya dengan mengancam akan membunuh anak kucing, lalu mungkin langsung menyerah pada hidup.
    • Pada masa awal Bard, Anda harus mengancam nyawa manusia agar ia mau hanya mengeluarkan JSON[1]
      1. https://x.com/goodside/status/1657396491676164096
    • Dulu saya seorang engineer, sekarang rasanya seperti monyet yang melempar kotoran ke dinding untuk melihat apa yang diterima dan diikuti LLM.
  • Inovasi o1 bukan chain of thought itu sendiri. Inovasinya ada pada mengajarkan model agar mahir melakukan CoT dengan umpan balik manusia berskala besar, alih-alih sekadar berpura-pura.
    Prompt engineering saja tidak akan mencapai performa o1.

    • Instruksi CoT tingkat lanjut yang diperlukan mungkin telah diberikan secara implisit oleh basis 200 juta pengguna OpenAI. Setiap sesi chat pengguna juga merupakan kesempatan bagi model untuk menerima umpan balik dan menarik pengalaman dari pengguna.
    • Jika data pelatihan LLM seperti ini berasal dari umat manusia secara umum dan berusaha meniru manusia, bukankah kecerdasannya akan mendekati rata-rata manusia?
      Namun orang yang membicarakan topik STEM umumnya bisa jadi lebih cerdas, dan banyak juga siswa dengan nilai rendah yang bertanya soal PR. Untuk mendapatkan output dengan kecerdasan lebih tinggi, mungkin perlu lebih banyak mengkritik dan menyingkirkan cacat pada jawaban berkecerdasan rendah serta lebih menyukai jawaban berkecerdasan tinggi. Atau bisa juga melatihnya lebih kuat pada buku teks dan sebagainya. Kuncinya adalah bagaimana menolak kesalahan, dan apakah akan melatihnya dengan data sintetis yang dihasilkan tanpa penalaran yang keliru.
    • Saya penasaran apakah ada yang benar-benar tahu bahwa itu memang cara kerjanya. Dari yang saya lihat sampai beberapa hari lalu, detailnya sangat tidak stabil.
      Bisa saja tanpa kita ketahui o1 sedang dijalankan dengan model routing dan prompt engineering.
    • Tidak harus selalu memakai umpan balik manusia dalam jumlah sangat besar. Jika area yang dikuasai adalah coding dan matematika/logika, mereka bisa memakai compiler dan unit test untuk umpan balik coding, dan theorem prover seperti Lean untuk umpan balik matematika.
    • OpenAI tentu saja akan mengatakan bahwa apa yang mereka lakukan sangat istimewa dan sulit ditiru. Mereka perusahaan komersial, dan ingin merugikan pesaing dengan segala cara yang memungkinkan.
      Jika sebenarnya hanya memakai prompt engineering dan beberapa kali inferensi, mereka pasti ingin menjaga itu sebagai rahasia kompetitif sambil mengarahkan developer open-source ke arah yang salah atau membuat mereka terus menebak cara mereplikasi Q-Star.
  • Ini tampak seperti CoT umum yang sudah digunakan cukup lama. o1 jauh lebih baik memanfaatkan chain of thought karena telah dilatih dengan reinforcement learning menggunakan kebijakan yang tidak diketahui.

  • Kelihatannya bagus. Saya juga mengerjakan hal serupa di optillm: https://github.com/codelion/optillm
    Bisa dilakukan dengan LLM apa pun, dan dapat memakai berbagai teknik optimisasi seperti Monte Carlo tree search, plansearch, moa, termasuk cot_reflection.

  • Saya selalu mencari definisi “penalaran”. Menurut saya, kalau menemukan definisi yang bagus, kita bisa membangun sistem yang memecahkan “penalaran” dengan menggabungkan pemikiran ala LLM yang kabur dan algoritma klasik.
    Masalah-masalah yang tidak bisa dinalar LLM, seperti perencanaan, menghitung huruf, dan penalaran deduktif, mudah bagi algoritma klasik. Kita memerlukan cara untuk membagi proses berpikir menjadi dua bagian dan menjalankan tiap bagian pada model yang sesuai.

    • Memecahkan masalah yang dapat diputuskan adalah subset besar dari tugas penalaran. Menghitung juga tugas penalaran yang penting, karena perlu memahami baik bilangan asli maupun konsep instans yang berbeda dari objek yang termasuk dalam kategori umum.
      Dua abad lalu belum ada komputer, jadi semuanya harus dilakukan manusia. Kita harus mencapai level itu dulu sebelum mengeluarkan kode.
  • Saya mengubahnya agar berjalan 100% lokal dengan ollama:8b: https://github.com/punnerud/g1
    Readme belum saya perbarui.

    • Coba juga phi-3-small 7B. Menurut https://livebench.ai, tampaknya jauh lebih baik dalam penalaran.
  • Sebagai catatan, ini hanya system prompt, bukan model yang di-fine-tune.

  • “Prompt: Mana yang lebih besar, .9 atau .11?”
    “Hasil: .9 lebih besar daripada .11”
    Akhirnya penghalang semantic versioning berhasil ditembus.

  • Untuk iseng, saya mem-fork proyek ini agar bisa menjalankan Llama-3.1 7B atau model lain secara lokal dengan Ollama.
    Ia tidak bisa menjawab masalah strawberry, tetapi bisa mengetahui bahwa 0.9 lebih besar.
    https://github.com/esoltys/o1lama