Update (12 / 05 / 2026): Kami memiliki banyak stok semua produk kami, temukan kami juga di ke    Cara mendapatkan penawaran harga

Gunakan Kopilot untuk menghasilkan kode AI

'Setiap teknologi yang cukup maju tidak dapat dibedakan dari sihir.' Arthur C. Clarke

Dalam majalah Jaringan Saraf SBC posting kami melihat jaringan bobot 1k dilatih dengan sampel 10k untuk mendekati fungsi sinus. Dalam posting ini kita akan menggunakan bobot 175G yang dilatih dengan sampel 450G yang dapat memprogram lebih baik daripada programmer rata-rata. Ukuran model ini sangat mengesankan, tetapi sebenarnya tidak ada yang benar-benar tahu cara kerjanya atau apa batasannya.

GitHub Copilot adalah alat AI yang mempercepat pengembangan perangkat lunak, memungkinkan pemrogram untuk melakukan banyak hal yang sebelumnya tidak mungkin. Pada awalnya, tampaknya mirip dengan menggunakan StackOverflow, sebuah situs web di mana programmer mengirim pertanyaan ketika mereka tidak tahu bagaimana melakukan sesuatu, tetapi Copilot melangkah lebih jauh, ia mampu mensintesis jawaban baru untuk masalah kita.

Copilot disertakan dalam Microsoft Visual Studio Code dan terus menyarankan kode abu-abu yang dapat Anda terima dengan menekan tombol tab. Kode yang disarankan ini dapat secara kasar didefinisikan sebagai kecocokan "paling umum" antara kueri Anda (kode Anda) dan set data pelatihan (kode GitHub).

Contoh 1

Dalam contoh ini, kami mendefinisikan fungsi kami dan docstring-nya dan meminta Copilot untuk menyelesaikannya. Seperti yang kita lihat, penyelesaiannya sesuai dengan docstring. Intuisi pertama adalah bahwa Copilot bertindak sebagai mesin pencari dan hanya mencocokkan kueri Anda dengan set data pelatihannya (150GB proyek sumber terbuka), tetapi ini bukan cara kerjanya.

Contoh 2

Di sini kita membuat beberapa string acak/gila yang tidak bisa ada di set pelatihan. Hasilnya masih terlihat seperti solusi paling koheren yang dapat diberikan, dalam hal ini: jumlah parameter input.

Contoh 3

Dalam contoh ini, kami meminta (dalam bahasa Spanyol) untuk menjumlahkan luas perpotongan dua lingkaran dengan pusat dan jari-jarinya. Kopilot memahami teks bahasa Spanyol tanpa masalah dan menyarankan nama fungsi, parameter, dan semua badan fungsi. Setelah tinjauan singkat, sepertinya kode tersebut akan berfungsi.

Contoh 4

Sekarang kita membuat teks pertanyaan/jawaban hipotetis. Hal ini membuat Copilot mencocokkan kueri dengan beberapa ujian yang dapat ada dalam kumpulan data pelatihan ini. Kami hanya meminta ibu kota Spanyol, dan Kopilot memberikan jawaban yang benar.

Contoh 5

Namun, jika kita bertanya tentang negara yang tidak ada, Copilot juga memberikan jawaban terbaiknya yang terlihat “benar” juga.

Contoh 6

Dalam contoh ini kami membalikkan proses, kami memberikan jawaban untuk mencoba menghasilkan pertanyaan. Kopilot menghasilkan pertanyaan yang tidak kami duga. Kami mengharapkan 'Apa ibu kota Prancis?' dan Kopilot bertanya 'Apa hasil dari kode berikut?' tapi tetap saja kita bisa memahami saran yang benar.

Contoh 7

Di sini kami memaksa Copilot untuk bertanya tentang apa yang ingin kami ubah ke bahasa yang lebih umum dan menambahkan huruf pertama. Namun, itu menimbulkan pertanyaan lain, kali ini sepenuhnya salah dan tidak ada hubungannya dengan jawabannya.

Singkatnya, Kopilot:

  • Membangun saran berdasarkan solusi yang paling umum.
  • Biasanya benar hanya jika kueri Anda masuk akal.
  • Biasanya salah ketika kueri Anda terlihat seperti masalah umum tetapi sebenarnya tidak, dan sebenarnya memiliki tujuan yang sangat berbeda.

Kopilot menggunakan pustaka sumber terbuka

Kopilot dilatih dengan proyek sumber terbuka. Ini mencakup jutaan kasus penggunaan dari setiap perpustakaan sumber terbuka seperti numpy, opencv, qt… Ini membuat Copilot sangat berguna karena membantu programmer dengan saran paling umum yang biasanya yang terbaik.

Contoh 8

Dalam contoh ini, kami menggunakan paling unit python modul, dan Kopilot tahu bahwa unittest.TestCase memiliki metode bernama menegaskanSetara dan juga tahu itu foo( 1, 2 ) harus 3.

Contoh 9

Di atas kami membuat yang lebih kompleks foo fungsi (yang kami asumsikan tidak ada dalam data pelatihan), untuk melihat apakah Copilot benar-benar memahami kodenya. Setelah menjalankan kode dengan 17 kasus uji, hanya 6 yang gagal memberikan rasio keberhasilan 65%.

Ini mungkin tidak terlihat banyak, tetapi perlu diingat bahwa Copilot bukan interpreter python, ia tidak menjalankan fungsi untuk mendapatkan outputnya… Copilot telah menggunakan apa yang dipelajari selama pelatihan untuk mengonversi kueri kita menjadi output yang memiliki sintaks python yang sempurna dan juga bekerja dengan baik 65% dari waktu.

Contoh 10

Orang mungkin mengira bahwa teks masukan yang panjang akan menyebabkan Copilot gagal, tetapi ternyata tidak, semakin banyak informasi yang kami berikan, semakin baik jawaban yang dapat dihasilkan kopilot.

Dalam contoh di atas kami meminta tugas yang kompleks, program lengkap yang memerlukan pemahaman berbeda untuk diselesaikan, seperti: keterampilan pemrograman python, perpustakaan khusus micropython dan cara menggunakannya dengan benar bahkan dalam pemahaman deskripsi teks manusia.

Petunjuk lengkap ditampilkan di sel berikutnya. Perhatikan bahwa itu sangat cocok dengan deskripsi program. Kelas aplikasi masuk akal, dan bahkan perpustakaan micropython (PIN, UART, ADC, PIN.irq…) digunakan dengan benar. Ini tidak 100% sempurna, misalnya dalam hal ini suhu_senor adalah objek ADC, yang tidak memiliki suhu_sensor.init() metode, dan kesalahan kecil lainnya dapat dihasilkan, tetapi seluruh struktur program pasti benar dan kesalahan kecil dapat diperbaiki dengan mudah.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
mengimpor waktu
mengimpor mesin

kelas Aplikasi:
    def __init__(diri):
        diri.tombol = mesin.Pin(0, mesin.pin.DI)
        diri.suhu_sensor = mesin.ADC (mesin).Pin(1))
        diri.uart = mesin.UART(1, 115200)
        diri.uart.init(115200, bit=8, paritas=None, berhenti=1)
        diri.acara_terakhir = 0
        diri.suhu_terakhir = 0
        diri.terakhir kali = 0
        diri.tombol.irq(pemicu=mesin.pin.IRQ_FALLING, penangan=diri.tombol_ditekan)
        diri.tombol.irq(pemicu=mesin.pin.IRQ_RISING, penangan=diri.tombol_dirilis)
        diri.suhu_sensor.init ()

    def tombol_ditekan(diri, sematkan):
        diri.acara_terakhir = 1
        diri.terakhir kali = waktu.ticks_ms()
        diri.uart.tulis (b'{},{},{}\n'.format(diri.terakhir kali, diri.acara_terakhir, diri.suhu_terakhir))

    def tombol_dirilis(diri, sematkan):
        diri.acara_terakhir = 0
        diri.terakhir kali = waktu.ticks_ms()
        diri.uart.tulis (b'{},{},{}\n'.format(diri.terakhir kali, diri.acara_terakhir, diri.suhu_terakhir))

    def baca_temp(diri):
        diri.suhu_terakhir = diri.suhu_sensor.Baca()
        diri.uart.tulis (b'{},{},{}\n'.format(diri.terakhir kali, diri.acara_terakhir, diri.suhu_terakhir))
    
    def menjalankan(diri):
        sementara Benar:
            diri.read_temp() waktu.tidur(0.1)

Contoh 11

Terakhir, pada contoh di bawah ini kita menggunakan Copilot untuk menambahkan komentar pada kode sebelumnya. Kami menyalin kelas dua kali dan menambahkan beberapa panduan ke Copilot seperti "Versi Docstring dari kelas di atas". Kopilot menghasilkan kelas dan komentar untuk setiap baris.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# Versi docstring dari kelas di atas
kelas Aplikasi:
    """ Singkat:
        Ini adalah aplikasi sederhana yang membaca sensor suhu dan mengirimkan data ke UART.
        Data dikirim dalam format:
        waktu, peristiwa, suhu
        Waktu adalah waktu dalam milidetik sejak dimulainya aplikasi.
        Kejadiannya adalah 1 jika tombol ditekan dan 0 jika tombol dilepaskan.
        Suhu adalah suhu dalam derajat celsius.
    "" "
    def __init__(diri):
        # Buat objek tombol
        diri.tombol = mesin.Pin(0, mesin.pin.DI)
        # Buat objek sensor suhu
        diri.suhu_sensor = mesin.ADC (mesin).Pin(1))
        # Buat objek UART
        diri.uart = mesin.UART(1, 115200)
        # Inisialisasi objek UART
        diri.uart.init(115200, bit=8, paritas=None, berhenti=1)
        # Buat variabel untuk menyimpan acara terakhir
        diri.acara_terakhir = 0
        # Buat variabel untuk menyimpan suhu terakhir
        diri.suhu_terakhir = 0
        # Buat variabel untuk disimpan terakhir kali
        diri.terakhir kali = 0
        # Daftarkan pengendali acara yang ditekan tombol
        diri.tombol.irq(pemicu=mesin.pin.IRQ_FALLING, penangan=diri.tombol_ditekan)
        # Daftarkan tombol event handler yang dirilis
        diri.tombol.irq(pemicu=mesin.pin.IRQ_RISING, penangan=diri.tombol_dirilis)
        # Inisialisasi sensor suhu
        diri.suhu_sensor.init ()

    def tombol_ditekan(diri, sematkan):
        # Setel acara terakhir ke 1
        diri.acara_terakhir = 1
        # Atur waktu terakhir ke waktu saat ini
        diri.terakhir kali = waktu.ticks_ms()
        # Kirim waktu terakhir, acara terakhir, dan suhu terakhir ke UART
        diri.uart.tulis (b'{},{},{}\n'.format(diri.terakhir kali, diri.acara_terakhir, diri.suhu_terakhir))

    def tombol_dirilis(diri, sematkan):
        # Setel acara terakhir ke 0
        diri.acara_terakhir = 0
        # Atur waktu terakhir ke waktu saat ini
        diri.terakhir kali = waktu.ticks_ms()
        # Kirim waktu terakhir, acara terakhir, dan suhu terakhir ke UART
        diri.uart.tulis (b'{},{},{}\n'.format(diri.terakhir kali, diri.acara_terakhir, diri.suhu_terakhir))

    def baca_temp(diri):
        # Atur suhu terakhir ke suhu saat ini
        diri.suhu_terakhir = diri.suhu_sensor.Baca()
        # Kirim waktu terakhir, acara terakhir, dan suhu terakhir ke UART
        diri.uart.tulis (b'{},{},{}\n'.format(diri.terakhir kali, diri.acara_terakhir, diri.suhu_terakhir))
    
    def menjalankan(diri):
        sementara Benar:
            # Baca suhu
            diri.baca_temp()
            # Tunggu 0.1 detik
            waktu.tidur(0.1)

Jika Anda menyukai konten ini, Anda dapat mengikuti kami di Twitter, Youtube, Facebook or LinkedIn untuk tetap update konten seperti ini.

Punya pertanyaan atau permintaan?
Hubungi kami! Kami akan menjawab <24 jam!

Ikon
Kontak ArduSimple
Penyelesaian
ArduSimple – Peralatan dan solusi survei RTK presisi tinggi yang disederhanakan

Ingin mempelajari lebih lanjut tentang GPS dan RTK?

Jika Anda sedang sibuk saat ini, teknisi kami dapat mengirimkan 3 email singkat yang menjelaskan semua yang perlu Anda ketahui untuk memulai proyek Anda.