{ "cells": [ { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Using custom data configuration hu-faq-question-language=hu,scope=faq\n", "Reusing dataset mqa (/Users/eend/.cache/huggingface/datasets/clips___mqa/hu-faq-question-language=hu,scope=faq/0.0.0/7eda4cdcbd6f009259fc516f204d776915a5f54ea2ad414c3dcddfaacd4dfe0b)\n", "100%|██████████| 1/1 [00:00<00:00, 70.47it/s]\n", "Using custom data configuration hu-cqa-question-language=hu,scope=cqa\n", "Reusing dataset mqa (/Users/eend/.cache/huggingface/datasets/clips___mqa/hu-cqa-question-language=hu,scope=cqa/0.0.0/7eda4cdcbd6f009259fc516f204d776915a5f54ea2ad414c3dcddfaacd4dfe0b)\n", "100%|██████████| 1/1 [00:00<00:00, 389.26it/s]\n", "Downloading: 5.27kB [00:00, 2.07MB/s] \n", "Downloading: 2.36kB [00:00, 1.39MB/s] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Downloading and preparing dataset squad/plain_text (download: 33.51 MiB, generated: 85.63 MiB, post-processed: Unknown size, total: 119.14 MiB) to /Users/eend/.cache/huggingface/datasets/squad/plain_text/1.0.0/d6ec3ceb99ca480ce37cdd35555d6cb2511d223b9150cce08a837ef62ffea453...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Downloading: 30.3MB [00:00, 78.5MB/s]\n", "Downloading: 4.85MB [00:00, 63.4MB/s] \n", "100%|██████████| 2/2 [00:01<00:00, 1.16it/s]\n", "100%|██████████| 2/2 [00:00<00:00, 709.70it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Dataset squad downloaded and prepared to /Users/eend/.cache/huggingface/datasets/squad/plain_text/1.0.0/d6ec3ceb99ca480ce37cdd35555d6cb2511d223b9150cce08a837ef62ffea453. Subsequent calls will reuse this data.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 2/2 [00:00<00:00, 259.74it/s]\n" ] } ], "source": [ "from datasets import load_dataset\n", "\n", "faq_hu = load_dataset(\"clips/mqa\", scope=\"faq\", language=\"hu\")\n", "cqa_hu = load_dataset(\"clips/mqa\", scope=\"cqa\", language=\"hu\")\n", "squad = load_dataset(\"squad\")" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'id': ['5733be284776f41900661182', '5733be284776f4190066117f'],\n", " 'title': ['University_of_Notre_Dame', 'University_of_Notre_Dame'],\n", " 'context': ['Architecturally, the school has a Catholic character. Atop the Main Building\\'s gold dome is a golden statue of the Virgin Mary. Immediately in front of the Main Building and facing it, is a copper statue of Christ with arms upraised with the legend \"Venite Ad Me Omnes\". Next to the Main Building is the Basilica of the Sacred Heart. Immediately behind the basilica is the Grotto, a Marian place of prayer and reflection. It is a replica of the grotto at Lourdes, France where the Virgin Mary reputedly appeared to Saint Bernadette Soubirous in 1858. At the end of the main drive (and in a direct line that connects through 3 statues and the Gold Dome), is a simple, modern stone statue of Mary.',\n", " 'Architecturally, the school has a Catholic character. Atop the Main Building\\'s gold dome is a golden statue of the Virgin Mary. Immediately in front of the Main Building and facing it, is a copper statue of Christ with arms upraised with the legend \"Venite Ad Me Omnes\". Next to the Main Building is the Basilica of the Sacred Heart. Immediately behind the basilica is the Grotto, a Marian place of prayer and reflection. It is a replica of the grotto at Lourdes, France where the Virgin Mary reputedly appeared to Saint Bernadette Soubirous in 1858. At the end of the main drive (and in a direct line that connects through 3 statues and the Gold Dome), is a simple, modern stone statue of Mary.'],\n", " 'question': ['To whom did the Virgin Mary allegedly appear in 1858 in Lourdes France?',\n", " 'What is in front of the Notre Dame Main Building?'],\n", " 'answers': [{'text': ['Saint Bernadette Soubirous'], 'answer_start': [515]},\n", " {'text': ['a copper statue of Christ'], 'answer_start': [188]}]}" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "squad['train'][:2]" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'id': ['4ddf184a540032092a43461d4904ffc0',\n", " '2d3fd2e40d3369e9e03acb43f8290d23'],\n", " 'text': ['\\n**[JavaFX 1.0](http://www.javafx.com/)** adták csütörtök december 4. \\n\\n\\nMint a fejlesztő, mit gondol a JavaFX? A munkahelyen, van olyan tervei, hogy lépjenek előre JavaFX-alapú alkalmazások vagy weboldalak? Van rövid távú tervek tanulni JavaFX?\\n\\n ',\n", " '\\nÉn portolása egy játék, amelyet eredetileg írt a Win32 API, Linux (jó, portolása az OS X port a Win32 port Linux).\\n\\n\\nAzt már végre `QueryPerformanceCounter`azzal, hogy a uSeconds mivel az eljárás elindításához: \\n\\n\\n\\n```\\nBOOL QueryPerformanceCounter(LARGE_INTEGER* performanceCount)\\n{\\n gettimeofday(¤tTimeVal, NULL);\\n performanceCount->QuadPart = (currentTimeVal.tv_sec - startTimeVal.tv_sec);\\n performanceCount->QuadPart *= (1000 * 1000);\\n performanceCount->QuadPart += (currentTimeVal.tv_usec - startTimeVal.tv_usec);\\n\\n return true;\\n}\\n\\n```\\n\\nEz, párosulva `QueryPerformanceFrequency()`így állandó 1000000 a frekvencia, jól működik **a gépemen** , hogy nekem egy 64 bites változót, amely `uSeconds`, mivel a program induló.\\n\\n\\nÍgy *van ez a hordozható?* Nem akarom, hogy felfedezzék azt másként működik, ha a kernel-ben összeállított egy bizonyos módon, vagy ilyesmi. Jól vagyok vele, hogy nem hordozható, hogy valami más, mint a Linux, de.\\n\\n '],\n", " 'name': ['JavaFX 1.0 megjelent. Ön mit gondol?\\n====================================\\n\\n',\n", " 'Van gettimeofday () garantáltan a us felbontás?\\n===============================================\\n\\n'],\n", " 'domain': ['coredump.biz', 'coredump.biz'],\n", " 'bucket': ['2020.05', '2020.10'],\n", " 'answers': [[{'text': '\\nAmennyire én tudom JavaFX esik lapos rajta arcát. Átnéztem a demókat és példa forráskódot és nem vagyok lenyűgözve. JavaFX egy fárasztó csata, hogy a versenyt az Adobe és a Silverlight amelyeket már a vad egy ideig. Figyeljük meg, hogy én vagyok sokáig Java fejlesztő.\\n\\n ',\n", " 'name': '',\n", " 'is_accepted': False},\n", " {'text': '\\nÉn biztosan gondolom, hogy érdemes egy pillantást, mint amilyennek látszik, mint a RIA itt maradni, és a több platformon / döntéseket, annál jobb. Sun biztos módja mögött, bár tekintve Micrsoft késett a játék Siliverlight és még előttünk álló út V Ha mást nem is, azt szeretném látni, hogy mit tett a Sun másként azok végrehajtását az Adobe és a Microsoft.\\n\\n ',\n", " 'name': '',\n", " 'is_accepted': False},\n", " {'text': '\\nJavaFX az egyetlen nyílt RIA platform, így azt hiszem, hogy felzárkózzon a verseny előbb vagy utóbb.\\n\\n\\nÚgy néz ki, nagyon jó a 1.0 verzió. Demos jól dokumentáltak, és kínál mindent, amit kell.\\n\\n\\nVannak problémák természetesen. Java applet tűnik javult egy kicsit, de ez még mindig messze elmarad. Berakás hosszú ideig magas CPU terhelés. Ez nem mutat előrelépést, mint a szokásos flash alkalmazás tenni, így a felhasználó nem lehet biztos abban, hogy az ő internet lassú, applet vagy nagy java lassú. Azt is el kellett fogadnia bizonyítvány, még több, mint egy néhány demót.\\n\\n ',\n", " 'name': '',\n", " 'is_accepted': False},\n", " {'text': '\\nSzeretem a koncepció JavaFX, de nem volt az esélye, hogy bármit vele. Én nem rendesen Internet alkalmazások, így azt kell menni az utamból, hogy próbálja ki a legújabb platformokon.\\n\\n ',\n", " 'name': '',\n", " 'is_accepted': False},\n", " {'text': '\\nMég egy dolog, hogy megtanulják, hogy szeretnék tanulni, hogy nem volt ideje megtanulni.\\n\\n\\nÍgéretesnek tűnik, de egyetértek másokkal. Ez egy fárasztó csata, és ott van a kétség, hogy ez lesz jellemző a hosszú távon. Egy pozitív Java FX, hogy ez lesz meghosszabbítja a karrierem-beruházások a Java nyelvet.\\n\\n\\nAzt is minél több RIA platformok kialakulni a JVM - így míg a Java csökkenhetnek a JVM továbbra is.\\n\\n ',\n", " 'name': '',\n", " 'is_accepted': False}],\n", " [{'text': '\\nTalán. De van nagyobb problémákat. `gettimeofday()`eredményezhet helytelen időzítés, ha vannak olyan folyamatok a rendszer, hogy a változás az időzítő (azaz ntpd). Egy „normális” linux, bár úgy vélem, a felbontás `gettimeofday()`is 10us. Meg lehet ugrani előre és hátra, és időt, következésképpen alapuló folyamatok fut a rendszer. Ez hatékonyan teszi a választ a kérdésre nincs.\\n\\n\\nMeg kell nézni `clock_gettime(CLOCK_MONOTONIC)`az időzítés időközönként. Ez azonban számos kisebb problémák miatt a dolgok, mint a többmagos rendszerek és külső órajel beállításokat.\\n\\n\\nIs, nézd át a `clock_getres()`funkciót.\\n\\n ',\n", " 'name': '',\n", " 'is_accepted': True},\n", " {'text': '\\nAz én tapasztalataim és amit olvastam az interneten keresztül, a válasz „Nem”, akkor nem garantált. Attól függ, hogy a processzor sebességét, az operációs rendszer, ízét Linux, stb\\n\\n ',\n", " 'name': '',\n", " 'is_accepted': False},\n", " {'text': '\\n\\n> \\n> A tényleges felbontása gettimeofday () függ a hardver architektúra. Intel processzorok, valamint a SPARC gépeket kínálnak nagyfelbontású időzítő, amelyek mérik ezredmásodperc. Egyéb hardverarchitektúrák esik vissza a rendszer időzítő, amely tipikusan beállítása 100 Hz. Ezekben az esetekben az idő felbontás kevésbé lesznek pontosak.\\n> \\n> \\n> \\n\\n\\nKaptam ezt a választ [High Resolution Időmérés és időzítők, I. rész](http://web.archive.org/web/20160711223333/http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=272)\\n\\n ',\n", " 'name': '',\n", " 'is_accepted': False},\n", " {'text': '\\n**Nagy felbontású, alacsony rezsi időzítése Intel processzorok**\\n\\n\\nHa az Intel hardver, itt van, hogy olvassa el a CPU valós idejű használati számláló. Azt fogja mondani, a CPU-ciklusok számát óta végrehajtott processzort elindult. Ez talán a legfinomabb szemcséjű számláló kaphat a teljesítmény méréséhez.\\n\\n\\nMegjegyzendő, hogy ez a szám a CPU ciklusokat. A linux kaphat a processzor sebességét a / proc / cpuinfo és osztódnak, hogy a másodpercek száma. Alakítja át ezt a kettős elég praktikus.\\n\\n\\nAmikor futtatom ezt én doboz, kapok\\n\\n\\n\\n```\\n11867927879484732\\n11867927879692217\\nit took this long to call printf: 207485\\n\\n```\\n\\nItt a [Intel fejlesztői útmutatót](http://cs.smu.ca/~jamuir/rdtscpm1.pdf) ad tonna részletességgel.\\n\\n\\n\\n```\\n#include \\n#include \\n\\ninline uint64_t rdtsc() {\\n uint32_t lo, hi;\\n __asm__ __volatile__ (\\n \"xorl %%eax, %%eax\\\\n\"\\n \"cpuid\\\\n\"\\n \"rdtsc\\\\n\"\\n : \"=a\" (lo), \"=d\" (hi)\\n :\\n : \"%ebx\", \"%ecx\");\\n return (uint64_t)hi << 32 | lo;\\n}\\n\\nmain()\\n{\\n unsigned long long x;\\n unsigned long long y;\\n x = rdtsc();\\n printf(\"%lld\\\\n\",x);\\n y = rdtsc();\\n printf(\"%lld\\\\n\",y);\\n printf(\"it took this long to call printf: %lld\\\\n\",y-x);\\n}\\n\\n```\\n ',\n", " 'name': '',\n", " 'is_accepted': False},\n", " {'text': '\\n\\n> \\n> Tehát azt mondja ezredmásodperc kifejezetten, de azt mondja, a felbontás a rendszer órája nincs megadva. Gondolom felbontás ebben az összefüggésben azt jelenti, hogy az a legkisebb összeg, hogy valaha is növekedhet?\\n> \\n> \\n> \\n\\n\\nAz adatstruktúra úgy definiáljuk, mint amelynek mikroszekundum, mint egy mértékegység, de ez nem jelenti azt, hogy az óra vagy az operációs rendszer valójában képes mérni, hogy finoman.\\n\\n\\nMint a többi ember azt, `gettimeofday()`rossz, mert az idő beállításával okozhat órajelelcsúszás és dobja ki a számításból. `clock_gettime(CLOCK_MONOTONIC)`az, amit akarsz, és `clock_getres()`megmondja, hogy a pontosság az óra.\\n\\n ',\n", " 'name': '',\n", " 'is_accepted': False},\n", " {'text': '\\n@Bernard:\\n\\n\\n\\n> \\n> Be kell vallanom, a legtöbb példa egyenesen a fejem fölött. Ez nem fordul le, és úgy tűnik, működik, mégis. Biztonságos ez az SMP rendszerek vagy SpeedStep?\\n> \\n> \\n> \\n\\n\\nEz egy jó kérdés ... Azt hiszem, hogy a kód rendben van. Gyakorlati szempontból, tudjuk használni a cégem minden nap, és mi fut elég széles skáláját dobozok, minden 2-8 magot. Természetesen YMMV stb, de úgy tűnik, hogy egy megbízható és alacsony rezsi (mert nem teszi vál- tani rendszer-space) módszer az időzítés.\\n\\n\\nÁltalában hogyan működik:\\n\\n\\n* állapítsa meg a blokk kódot kell szerelő (és illékony, ezért az optimalizáló hagyják egyedül).\\n* végrehajtja a CPUID utasítást. Amellett, hogy egyre néhány CPU információk (amelyek nem teszünk semmit) szinkronizálja a CPU végrehajtási puffert úgy hogy az időzítést nem befolyásolja out-of-order végrehajtás.\\n* végrehajtja a rdtsc (értsd timestamp) végrehajtását. Ez letölti száma gépi ciklus óta végrehajtott processzor alaphelyzetbe állt. Ez egy 64 bites érték, így a jelenlegi CPU sebességet akkor körülveszi minden 194 év múlva. Érdekes, hogy az eredeti Pentium referencia megjegyzik, hogy körbe minden 5800 évben.\\n* Az elmúlt pár sor tárolja az értékeket a regiszterek a változók hi és lo, és tegye, hogy a 64 bites visszatérési értéke.\\n\\n\\nKülönös megjegyzések:\\n\\n\\n* out-of-order végrehajtás okozhat hibás eredményeket, így végre a „CPUID” utasítás, amely azon túlmenően, hogy egy kis információt a processzor is szinkronizálja bármely out-of-order utasítás végrehajtását.\\n* A legtöbb operációs rendszer szinkronizálja a számlálók a CPU mikor indul el, így a válasz jó, hogy egy pár nano-másodperc.\\n* A téli álmot alvó megjegyzés valószínűleg igaz, de a gyakorlatban valószínűleg nem törődnek időzítések között hibernáció határokat.\\n* kapcsolatos SpeedStep: Újabb Intel CPU kompenzálja a sebesség változik, és visszatér egy beállított száma. Tettem egy gyors át néhány doboz a hálózatunkon, és már csak egy doboz, amely nem volt meg: a Pentium 3 fut néhány régi adatbázis szerver. (Ezek linux dobozokat, így egyeztettem: grep constant\\\\_tsc / proc / cpuinfo)\\n* Nem vagyok biztos abban, hogy a AMD CPU vagyunk elsősorban Intel bolt, bár tudom, hogy néhány alacsony szintű rendszerek guruk volt egy AMD értékelést.\\n\\n\\nRemélem ez kielégíti a kíváncsiságát, ez egy érdekes és (IMHO) keretében tanulmányozott programozás területén. Tudod, amikor Jeff és Joel volt szó, hogy egy programozó kell tudni C? Azt kiabált nekik, hogy „hé elfelejteni, hogy a magas szintű C dolgok ... szerelő, amit meg kell tanulni, ha azt szeretné tudni, hogy mi a számítógép csinál!”\\n\\n ',\n", " 'name': '',\n", " 'is_accepted': False},\n", " {'text': '\\nA bor valóban használja gettimeofday (), hogy végre QueryPerformanceCounter (), és köztudott, hogy sok Windows játékok dolgozni Linux és Mac.\\n\\n\\nElindítja \\n\\n\\nvezet \\n\\n ',\n", " 'name': '',\n", " 'is_accepted': False},\n", " {'text': '\\nReading a RDTSC nem megbízható az SMP rendszerek, mivel minden egyes CPU fenntartja saját számlálót és minden ellen nem garantált, hogy a szinkronizált a másikhoz képest CPU.\\n\\n\\nLehet, hogy azt sugallják, próbál **`clock_gettime(CLOCK_REALTIME)`**. A POSIX utasítás azt jelzi, hogy ez végre kell hajtani minden kompatibilis rendszereket. Ez olyan ns száma, de valószínűleg ellenőrizni fogja majd **`clock_getres(CLOCK_REALTIME)`**a rendszer, hogy mi a tényleges felbontás.\\n\\n ',\n", " 'name': '',\n", " 'is_accepted': False},\n", " {'text': '\\nLehet, hogy érdekli a [Linux GYIK-`clock_gettime(CLOCK_REALTIME)`](http://juliusdavies.ca/posix_clocks/clock_realtime_linux_faq.html)\\n\\n ',\n", " 'name': '',\n", " 'is_accepted': False},\n", " {'text': '\\n[Ez a válasz](https://stackoverflow.com/a/98/) említi problémák az óra beállítása közben. Mindkét problémákra garantálja kullancs egységek és a problémák az idő beállítása is megoldódnak C ++ 11 a ``könyvtárban.\\n\\n\\nAz óra `std::chrono::steady_clock`garantáltan nem kell korrigálni, továbbá előre lép állandó sebességgel képest valós időben, így technológiák, mint a SpeedStep nem befolyásolja azt.\\n\\n\\nTudod kap typesafe egységek átalakításával az egyik `std::chrono::duration`szakterületek, például `std::chrono::microseconds`. Az ilyen típusú, nincs kétség, az egységek által használt kullancs értéket. Ugyanakkor szem előtt tartani, hogy az óra nem feltétlenül ezt az állásfoglalást. Ön tudja alakítani egy időtartamot attoseconds nélkül, hogy ténylegesen egy órát, hogy pontos.\\n\\n ',\n", " 'name': '',\n", " 'is_accepted': False}]]}" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cqa_hu['train'][100:102]" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'id': ['bbfce58894a1bb9140659cfbfe334fb6',\n", " '3f98c644c947963c7990c047661fcfc5'],\n", " 'text': ['', ''],\n", " 'name': ['a rendszerpartíciót újratelepítés nélkül nagyobbá tehetem windows és programok?',\n", " 'van-e ingyenes eszköz a c meghajtó nagyobbá tételéhez?'],\n", " 'domain': ['hdd-tool.com', 'hdd-tool.com'],\n", " 'bucket': ['2020.40', '2020.40'],\n", " 'answers': [[{'text': 'igen, ez a cikk háromféle módszert mutat be 3féle eszköz segítségével e feladat elvégzéséhez.',\n", " 'name': '',\n", " 'is_accepted': True}],\n", " [{'text': 'igen, niubi partition editor ingyenes kiadása van a windows 10/8/7/vista/xp otthoni felhasználók.',\n", " 'name': '',\n", " 'is_accepted': True}]]}" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "faq_hu['train'][100:102]" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "171" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = set(cqa_hu['train']['domain'])\n", "len(a)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[('hotels.com', 321784),\n", " ('travelminit.hu', 105216),\n", " ('tripadvisor.co.hu', 84606),\n", " ('travelminit.ro', 50327),\n", " ('booking.com', 20315),\n", " ('aszinonimaszotar.hu', 18896),\n", " ('skyscanner.hu', 16717),\n", " ('szallasvadasz.hu', 13759),\n", " ('esky.hu', 12513),\n", " ('travelminit.com', 12455),\n", " ('pitchup.com', 9906),\n", " ('kiwi.com', 9452),\n", " ('languagecourse.net', 8284),\n", " ('ekuponok.com', 7385),\n", " ('rentalcargroup.com', 6980),\n", " ('solvusoft.com', 6807),\n", " ('flatio.hu', 5650),\n", " ('haziallat.hu', 4255),\n", " ('miapanasz.hu', 3814),\n", " ('liveagent.hu', 3632)]" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from collections import Counter\n", "\n", "faq_domains = Counter(faq_hu['train']['domain'])\n", "faq_domains.most_common(20)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "interpreter": { "hash": "02e357c7440d8ed11be29edfeecade50b9c6cce68ea0a63234d5a765afff05f4" }, "kernelspec": { "display_name": "Python 3.9.6 64-bit ('hf_venv': venv)", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.6" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }