Slide 1

Slide 1 text

ා͘ͳ͍ ϝϞϦංେԽ

Slide 2

Slide 2 text

͓͓͍͔ͭ͠͞ !UTVLBTB@PJTIJ

Slide 3

Slide 3 text

'"5"-&33033FBDIFEIFBQMJNJU"MMPDBUJPOGBJMFE +BWB4DSJQUIFBQPVUPGNFNPSZ

Slide 4

Slide 4 text

ຊ൪͚ͩى͜ Δ

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

ຊ൪ͰϓϩϑΝ ΠϦϯά͢Δ͠ ͔ͳ͍

Slide 7

Slide 7 text

IUUQT[FOOEFWVCJF@EFWBSUJDMFTCGBFGF

Slide 8

Slide 8 text

͍͍ͩͨͷ৔ॴΛ ݟ͚ͭΔͷ͕ Ұ൪େมͳͷͰ ͜͜ΛΫϦΞͰ͖ͨΒ ͋ͱ͸ॗʑͱ΍Δ͚ͩ

Slide 9

Slide 9 text

Slide 10

Slide 10 text

ςετ Λॻ͘

Slide 11

Slide 11 text

Slide 12

Slide 12 text

ίʔυ ΛಡΉ

Slide 13

Slide 13 text

($͕͔͔Βͳ͍ύλʔϯ

Slide 14

Slide 14 text

const cache: Map = new Map(); άϩʔόϧม਺ʹେ͖ͳσʔλ΍ঃʑʹ૿͑ΔσʔλΛ࣋ͨͤΔ

Slide 15

Slide 15 text

($͕͔͔ΔલʹώʔϓΛѹഭ͢Δύλʔϯ

Slide 16

Slide 16 text

ϧʔϓॲཧͰେྔͳΦϒδΣΫτΛੜ੒ function generateLargeNumberOfObjects() { const objects: { id: number; data: string }[] = []; for (let i = 0; i < 1000000; i++) { const obj = { id: i, data: ‘aaa….’ }; objects.push(obj); } return objects; }

Slide 17

Slide 17 text

ΫϩʔδϟʔͰ૿͑ΔσʔλΛอ࣋ function createDataAccumulator() { let data: number[] = []; return function addData(newData: number): void { data.push(newData); }; } Const accumulateData = createDataAccumulator(); accumulateData(1); accumulateData(2); …

Slide 18

Slide 18 text

େ͖ͳσʔλΛҰ౓ʹѻ͏ const data = fs.readFileSync(filePath, 'utf8');

Slide 19

Slide 19 text

Կ͔ͷด͡๨Ε

Slide 20

Slide 20 text

const connection = mysql.createConnection({…}); connection.query('SELECT * FROM hoge_table’); // connection.end();

Slide 21

Slide 21 text

ࣗ෼ͨͪͷॻ͍ͨίʔυ͕ݪҼͳΒ ͍͍ͩͨίʔυಡΊ͹ݟ͔ͭΔ

Slide 22

Slide 22 text

ࣗ෼ͨͪͷॻ͍ͨίʔυͰͳ͍৔߹ ͸ϓϩϑΝΠϥʔ͕ͳ͍ͱݫ͍͠

Slide 23

Slide 23 text

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

νϟοτͷ ձ࿩͕૿͑Δ ͱΤϥʔ

Slide 26

Slide 26 text

ɾຊ൪؀ڥͰͷΈൃੜ͢Δ ɹɾ,T.#ϝϞϦ ɾϩʔΧϧ։ൃ؀ڥͰ͸ϓϩηεͷϝϞϦݟͯ΋.#͘Β͍ ɹɾ.BD(#ϝϞϦ '"5"-&33033FBDIFEIFBQMJNJU"MMPDBUJPOGBJMFE +BWB4DSJQUIFBQPVUPGNFNPSZ

Slide 27

Slide 27 text

($

Slide 28

Slide 28 text

IFBQPVUPG NFNPSZ

Slide 29

Slide 29 text

NODE_OPTIONS=—max-old-space-size=250

Slide 30

Slide 30 text

const chatPrompt = ChatPromptTemplate.fromMessages([ [ "system", "You are a helpful assistant that translates {input_language} to {output_language}.", ], ["human", "{text}"], ["human", "{text}"], ["human", "{text}"], ["human", "{text}"], ["human", "{text}"], ["human", "{text}"], ["human", "{text}"], ["human", “{text}"], … ["human", “{text}"], ]);

Slide 31

Slide 31 text

memoryCheck() { const heap = process.memoryUsage(); const msg = []; for (const key in heap) { msg.push(`${key}: ${Math.round(heap[key] / 1024 / 1024)} MB`); } console.log(msg.join(', ')); }

Slide 32

Slide 32 text

start rss: 164 MB, heapTotal: 31 MB, heapUsed: 28 MB end rss: 1137 MB, heapTotal: 999 MB, heapUsed: 959 MB

Slide 33

Slide 33 text

ίʔυ͸େৎ෉ͦ͏

Slide 34

Slide 34 text

σόοΨʔ

Slide 35

Slide 35 text

ৄࡉ͸هࣄʹ͋Γ·͢ IUUQT[FOOEFWVCJF@EFWBSUJDMFTGEE

Slide 36

Slide 36 text

export async function getEncoding( encoding: TiktokenEncoding, options?: { signal?: AbortSignal; extendedSpecialTokens?: Record; } ) { (লུ) return new Tiktoken( await cache[encoding], options?.extendedSpecialTokens ); }

Slide 37

Slide 37 text

start rss: 110 MB, heapTotal: 58 MB, heapUsed: 34 MB end rss: 231 MB, heapTotal: 116 MB, heapUsed: 93 MB

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

·ͱΊ

Slide 40

Slide 40 text

ϓϩϑΝΠϥʔ Λ࢖͑ΔΑ͏ʹ ͓ͯ͘͠

Slide 41

Slide 41 text

Α͋͘Δ ύλʔϯ Λ஌͓ͬͯ͘

Slide 42

Slide 42 text

࠶ݱςετ ͕ॻ͚Ε͹ ҆৺

Slide 43

Slide 43 text

͓͠·͍