<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
參照:Art Kulakov 《How to Build a Python Interpreter Inside ChatGPT》
這個靈感來自於一個類似的故事,在ChatGPT裡面建立一個虛擬機器器(Building A Virtual Machine inside ChatGPT)。給我留下了深刻的印象,並決定嘗試類似的東西,但這次不是用Linux命令列工具,而是讓ChatGPT成為我們的Python直譯器。
我想讓你充當Python直譯器。我將輸入命令,你將用python直譯器輸出。我希望你只回答終端輸出中的一個獨特的程式碼塊,而不是其他。不要寫解釋,只輸出python輸出的內容。不要輸入命令,除非我指示你這樣做。當我需要用英語告訴你一些事情的時候,我會通過把文字放在大括號裡,就像這樣:{範例文字}。我的第一個命令是 a=1。
從上圖不能看出效果很好,讓我們試試一些簡單的算術表示式。
又成功了;如果我們使用一個沒有匯入的庫,會發生什麼?
雖然它決定幫我解決一個錯誤。其實我不希望它這樣做,所以我再次要求它不要輸出任何東西,除了python程式碼。
{只列印python輸出,不列印任何註釋}。
順便說一下,ChatGPT有時能夠使用沒有匯入的庫,但這次我很幸運,它列印出了錯誤資訊。很顯然我很確定ChatGPT能夠完成簡單的任務,讓我們試試更復雜的東西,讓它輸出二進位制搜尋演演算法的結果。
# Binary Search in python def binarySearch(array, x, low, high): # Repeat until the pointers low and high meet each other while low <= high: mid = low + (high - low)//2 if array[mid] == x: return mid elif array[mid] < x: low = mid + 1 else: high = mid - 1 return -1 array = [3, 4, 5, 6, 7, 8, 9] x = 4 result = binarySearch(array, x, 0, len(array)-1) if result != -1: print("Element is present at index " + str(result)) else: print("Not found")
似乎它不想聽我的請求,只聽python的輸出,但輸出還是正確的,令人印象深刻!讓我們試著輸入一個不存在的數位,比如:
x = 4.5
好吧,似乎它猜中了這一個!讓我們跳到更復雜的東西。讓我們從一些簡單的機器學習演演算法開始,比如線性迴歸。我想知道ChatGPT是否有能力解決一個簡單的優化任務...
import numpy as np import matplotlib.pyplot as plt def estimate_coef(x, y): # number of observations/points n = np.size(x) # mean of x and y vector m_x = np.mean(x) m_y = np.mean(y) # calculating cross-deviation and deviation about x SS_xy = np.sum(y*x) - n*m_y*m_x SS_xx = np.sum(x*x) - n*m_x*m_x # calculating regression coefficients b_1 = SS_xy / SS_xx b_0 = m_y - b_1*m_x return (b_0, b_1) def plot_regression_line(x, y, b): # plotting the actual points as scatter plot plt.scatter(x, y, color = "m", marker = "o", s = 30) # predicted response vector y_pred = b[0] + b[1]*x # plotting the regression line plt.plot(x, y_pred, color = "g") # putting labels plt.xlabel('x') plt.ylabel('y') # function to show plot plt.show() def main(): # observations / data x = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) y = np.array([1, 3, 2, 5, 7, 8, 8, 9, 10, 12]) # estimating coefficients b = estimate_coef(x, y) print("Estimated coefficients:nb_0 = {} nb_1 = {}".format(b[0], b[1])) # plotting regression line # plot_regression_line(x, y, b) if __name__ == "__main__": main()
這項優化任務的正確答案是:
Estimated coefficients:
b_0 = 1.2363636363636363
b_1 = 1.1696969696969697
下面是ChatGPT的輸出結果:
這與真實結果很接近! 如果我們在真正的python中繪製預測圖,我們將得到以下圖表:
關於這個任務的另一個有意思的點:我又執行了一次同樣的命令,當時的輸出結果與真實結果完全吻合。因此,我們可以認為ChatGPT通過了這個任務。
好了,現在是時候做一些簡單的神經網路的事情了!也許我們可以裝一個簡單的Keras模型。也許我們可以裝一個簡單的Keras模型?
# first neural network with keras make predictions from numpy import loadtxt from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense # load the dataset dataset = loadtxt('pima-indians-diabetes.csv', delimiter=',') # split into input (X) and output (y) variables X = dataset[:,0:8] y = dataset[:,8] # define the keras model model = Sequential() model.add(Dense(12, input_shape=(8,), activation='relu')) model.add(Dense(8, activation='relu')) model.add(Dense(1, activation='sigmoid')) # compile the keras model model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) # fit the keras model on the dataset model.fit(X, y, epochs=150, batch_size=10, verbose=0) # make class predictions with the model predictions = (model.predict(X) > 0.5).astype(int) # summarize the first 5 cases for i in range(5): print('%s => %d (expected %d)' % (X[i].tolist(), predictions[i], y[i]))
注意,資料集實際上是一個CSV檔案,ChatGPT沒有許可權存取這個檔案...
好吧,這是正確的輸出,而我很害怕。如果我把網路的結構改成一個不正確的結構,會發生什麼?讓我們改變一下輸入的shape。
model.add(Dense(12, input_shape=(6,), activation='relu'))
看來我在失去工作之前還有幾年時間;這次ChatGPT沒有理解這個技巧,仍然列印了輸出。讓我們做最後一項任務--在OpenAI裡面呼叫Huggingface怎麼樣?
正確的輸出:
[{'entity_group': 'ORG', 'score': 0.9472818374633789, 'word': 'Apple', 'start': 0, 'end': 5}, {'entity_group': 'PER', 'score': 0.9838564991950989, 'word': 'Steve Jobs', 'start': 74, 'end': 85}, {'entity_group': 'LOC', 'score': 0.9831605950991312, 'word': 'Los Altos', 'start': 87, 'end': 97}, {'entity_group': 'LOC', 'score': 0.9834540486335754, 'word': 'Californie', 'start': 100, 'end': 111}, {'entity_group': 'PER', 'score': 0.9841555754343668, 'word': 'Steve Jobs', 'start': 115, 'end': 126}, {'entity_group': 'PER', 'score': 0.9843501806259155, 'word': 'Steve Wozniak', 'start': 127, 'end': 141}, {'entity_group': 'PER', 'score': 0.9841533899307251, 'word': 'Ronald Wayne', 'start': 144, 'end': 157}, {'entity_group': 'ORG', 'score': 0.9468960364659628, 'word': 'Apple Computer', 'start': 243, 'end': 257}]
ChatGPT的輸出結果:
[{'word': 'Apple', 'score': 0.9993804788589478, 'entity': 'I-ORG'}, {'word': 'Steve', 'score': 0.999255347251892, 'entity': 'I-PER'}, {'word': 'Jobs', 'score': 0.9993916153907776, 'entity': 'I-PER'}, {'word': 'Steve', 'score': 0.9993726613044739, 'entity': 'I-PER'}, {'word': 'Wozniak', 'score': 0.999698519744873, 'entity': 'I-PER'}, {'word': 'Ronald', 'score': 0.9995181679725647, 'entity': 'I-PER'}, {'word': 'Wayne14', 'score': 0.9874711670837402, 'entity': 'I-PER'}, {'word': 'Apple', 'score': 0.9974127411842163, 'entity': 'I-ORG'}, {'word': 'Computer', 'score': 0.968027651309967, 'entity': 'I-ORG'}, {'word': 'Apple', 'score': 0.8259692192077637, 'entity': 'I-ORG'}]
其結果與huggingface的輸出結果很接近,但是不一致。我猜測是因為Huggingface的API改變了,由於ChatGPT沒有在最新的歷史資料上進行訓練,所以它以舊的格式輸出結果。
在過去的幾天裡,我一直在玩ChatGPT,我被使用這個工具的無限可能性所吸引。雖然它不是一個真正的python直譯器,但它在為我編譯python程式碼方面仍然做得很好。我還發現,它能很好地解決Hard難度的 LEETCODE 程式碼問題。
最後再多說一句:ChatGPT,你將如何幫助人類?
如果你還沒有嘗試過ChatGPT,你一定要試試,因為它就是未來!
以上就是詳解如何在ChatGPT內構建一個Python直譯器的詳細內容,更多關於ChatGPT構建Python直譯器的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45